09-28-2009 06:47 AM
09-29-2009 02:38 AM
09-29-2009 02:43 AM
09-29-2009 04:21 AM
09-29-2009 12:46 PM
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wf:review">
<swimlane name="initiator" />
<start-state name="start">
<task name="wf:submitReviewTask" swimlane="initiator" />
<transition name="" to="review" />
</start-state>
<swimlane name="reviewer">
<assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
<actor>#{bpm_assignee}</actor>
</assignment>
</swimlane>
<task-node name="review">
<task name="wf:reviewTask" swimlane="reviewer">
<event type="task-create">
<script>
if (bpm_workflowDueDate != void) taskInstance.dueDate = bpm_workflowDueDate;
if (bpm_workflowPriority != void) taskInstance.priority = bpm_workflowPriority;
</script>
</event>
</task>
<transition name="" to="completed" />
<event type="node-enter">
<!– Update the status to Rejected when we enter this task –>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
for (var i = 0; i < bpm_package.children.length; i++)
{
bpm_package.children[i].properties["my:prioridad"] = bpm_workflowPriority;
bpm_package.children[i].properties["my:ultimoestado"] = "Pendent";
bpm_package.children[i].properties["my:ultimotecnico"] = bpm_assignee.properties["cm:userName"];
if(bpm_package.children[i].properties["my:estado"]==null){
bpm_package.children[i].properties["my:estado"] = "Pendent";
bpm_package.children[i].properties["my:tecnico"] = bpm_assignee.properties["cm:userName"];
}else{
bpm_package.children[i].properties["my:estado"][bpm_package.children[i].properties["my:estado"].length] = "Pendent";
bpm_package.children[i].properties["my:tecnico"][bpm_package.children[i].properties["my:tecnico"].length] = bpm_assignee.properties["cm:userName"];
}
bpm_package.children[i].save();
bpm_package.children[i].setInheritsPermissions(false);
var permissions = bpm_package.children[i].permissions;
var acl=[];
for (var j=0; j < permissions.length; j++)
{
acl = permissions[j].split(";");
var perm=acl[2];
var grp=acl[1];
bpm_package.children[i].removePermission(perm,grp);
}
bpm_package.children[i].setPermission("Consumer", bpm_assignee.properties["cm:userName"]);
}
var mail = actions.create("mail");
mail.parameters.to = bpm_assignee.properties["cm:email"];
mail.parameters.subject = "Notificacion de tarea asignada" + bpm_workflowDescription;
mail.parameters.from = "noreply@edu.gva.es";
mail.parameters.text = "No responda a este mensaje.La tarea "+ bpm_workflowDescription +" le ha sido ASIGNADA debe revisarla aqui http://notasinternas.edu.gva.es";
mail.execute(bpm_package);
</script>
</action>
</event>
</task-node>
<task-node name="completed">
<event type="node-enter">
<!– Update the status to Rejected when we enter this task –>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
for (var z = 0; z < bpm_package.children.length; z++)
{
bpm_package.children[z].properties["my:prioridad"] = bpm_workflowPriority;
bpm_package.children[z].properties["my:ultimoestado"] = "Acabat";
bpm_package.children[z].properties["my:ultimotecnico"] = bpm_assignee.properties["cm:userName"];
if(bpm_package.children[z].properties["my:estado"]==null){
bpm_package.children[z].properties["my:estado"] = "Acabat";
bpm_package.children[z].properties["my:tecnico"] = bpm_assignee.properties["cm:userName"];
}else{
bpm_package.children[z].properties["my:estado"][bpm_package.children[z].properties["my:estado"].length] = "Acabat";
bpm_package.children[z].properties["my:tecnico"][bpm_package.children[z].properties["my:tecnico"].length] = bpm_assignee.properties["cm:userName"];
}
bpm_package.children[z].save();
}
</script>
</action>
</event>
<transition name="" to="end" />
</task-node>
<end-state name="end" />
</process-definition>
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wf:parallelreview">
<swimlane name="initiator"></swimlane>
<start-state name="start">
<task name="wf:submitParallelReviewTask" swimlane="initiator" />
<transition name="" to="startreview"/>
</start-state>
<node name="startreview">
<action class="org.alfresco.repo.workflow.jbpm.ForEachFork">
<foreach>#{bpm_assignees}</foreach>
<var>reviewer</var>
</action>
<event type="node-enter">
<script>
<variable name="wf_approveCount" access="write" />
<expression>
wf_approveCount = 0;
</expression>
</script>
</event>
<transition name="review" to="review" />
</node>
<task-node name="review">
<task name="wf:reviewTask">
<assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
<actor>#{reviewer}</actor>
</assignment>
</task>
<event type="node-enter">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
for (var i = 0; i < bpm_package.children.length; i++)
{
bpm_package.children[i].setInheritsPermissions(false);
var permissions = bpm_package.children[i].permissions;
var acl=[];
for (var j=0; j < permissions.length; j++)
{
acl = permissions[j].split(";");
var perm=acl[2];
var grp=acl[1];
bpm_package.children[i].removePermission(perm,grp);
var mail = actions.create("mail");
mail.parameters.to = reviewer.properties["cm:email"];
mail.parameters.subject = "Notificacion de tarea asignada";
mail.parameters.from = "noreply@edu.gva.es";
mail.parameters.text = acl +"No responda a este mensaje.Tiene una tarea ASIGNADA debe revisarla aqui http://notasinternas.edu.gva.es";
mail.execute(bpm_package)
}
bpm_package.children[i].setPermission("Coordinator", reviewer.properties["cm:userName"]);
}
var mail = actions.create("mail");
mail.parameters.to = reviewer.properties["cm:email"];
mail.parameters.subject = "Notificacion de tarea asignada";
mail.parameters.from = "noreply@edu.gva.es";
mail.parameters.text = acl +"No responda a este mensaje.Tiene una tarea ASIGNADA debe revisarla aqui http://notasinternas.edu.gva.es";
mail.execute(bpm_package);
</script>
</action>
</event>
<transition name="reject" to="endreview" />
<transition name="approve" to="endreview">
<script>
<variable name="wf_approveCount" access="read,write" />
<expression>
wf_approveCount = wf_approveCount +1;
</expression>
</script>
</transition>
</task-node>
<join name="endreview">
<transition to="isapproved" />
</join>
<decision name="isapproved">
<event type="node-enter">
<script>
<variable name="wf_reviewerCount" access="write"/>
<variable name="wf_requiredPercent" access="write"/>
<variable name="wf_actualPercent" access="write"/>
<expression>
wf_requiredPercent = wf_requiredApprovePercent;
wf_reviewerCount = bpm_assignees.size();
wf_actualPercent = ((wf_approveCount * 100) / wf_reviewerCount);
</expression>
</script>
</event>
<transition name="reject" to="rejected" />
<transition name="approve" to="approved">
<condition>#{wf_actualPercent >= wf_requiredApprovePercent}</condition>
</transition>
</decision>
<task-node name="rejected">
<transition to="end" />
</task-node>
<task-node name="approved">
<transition to="end" />
</task-node>
<end-state name="end"/>
</process-definition>
09-30-2009 06:49 AM
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.