08-10-2007 04:53 AM
contextInstance.setVariable(returnVariable.getVariableName(), result, token);
contextInstance.setVariable(variableName, value);
Not specifying the token causes the variable to be set in the root (process) scope. Afterwards everything works correctly.
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="powf:serialValidation">
<swimlane name="initiator" />
<!– –>
<!– Start Review –>
<!– –>
<start-state name="start">
<task name="powf:submitReviewTask" swimlane="initiator" />
<transition name="" to="serialstart"/>
</start-state>
<decision name="serialstart">
<event type="node-enter">
<script>
<variable name="powf_reviewerCnt" access="write" />
<variable name="powf_approveCnt" access="write" />
<variable name="powf_notes" access="write" />
<expression>
powf_reviewerCnt = bpm_assignees.size();
powf_approveCnt = 0;
powf_notes = "Comments :";
</expression>
</script>
</event>
<transition name="serial" to="submitserialreview">
<action class="fr.openwide.plasticomnium.pocdai.workflowactions.SetDAIAsStartedAction" />
<action class="fr.openwide.plasticomnium.pocdai.workflowactions.DumpWorkflowAsXMLAction" />
</transition>
</decision>
<!– –>
<!– Serial Review –>
<!– –>
<decision name="submitserialreview">
<event type="node-enter">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
logger.log("–> powf_approveCnt = " + powf_approveCnt);
logger.log("–> powf_reviewCnt = " + powf_reviewerCnt);
</script>
</action>
</event>
<transition name="endreview" to="endreview">
<condition>#{powf_approveCnt == powf_reviewerCnt}</condition>
</transition>
<transition name="review" to="serialreview">
<condition>#{powf_approveCnt < powf_reviewerCnt}</condition>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
var assignee = bpm_assignees.get(powf_approveCnt);
var mail = actions.create("mail");
mail.parameters.to = assignee.properties.email;
if (mail.parameters.to.length > 0) {
mail.parameters.subject = "New workflow task";
mail.parameters.from = initiator.properties.email;
mail.parameters.template = search.findNode("workspace://SpacesStore/1e38a2b4-39ee-11dc-9526-2de2060ee920");
mail.parameters.text="New workflow task";
mail.execute(bpm_package);
}
</script>
</action>
</transition>
</decision>
<task-node name="serialreview">
<task name="powf:reviewTask">
<assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
<actor>#{bpm_assignees.get(powf_approveCnt)}</actor>
</assignment>
</task>
<transition name="reject" to="endreview">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<variable name="powf_notes" access="read, write" />
<variable name="powf_newNotes" access="read" />
<variable name="bpm_assignees" access="read" />
<variable name="powf_approveCnt" access="read" />
<expression>
var nom = bpm_assignees.get(powf_approveCnt).properties["cm:userName"];
powf_notes = powf_notes + "\r\n" + nom + "\t" + powf_newNotes;
</expression>
</script>
</action>
<action class="fr.openwide.plasticomnium.pocdai.workflowactions.DumpWorkflowAsXMLAction" />
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<variable name="powf_newNotes" access="write" />
<expression>powf_newNotes = "";</expression>
</script>
</action>
</transition>
<transition name="approve" to="submitserialreview">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<variable name="powf_notes" access="read,write" />
<variable name="powf_newNotes" access="read" />
<variable name="bpm_assignees" access="read" />
<variable name="powf_approveCnt" access="read" />
<expression>
var nom = bpm_assignees.get(powf_approveCnt).properties["cm:userName"];
powf_notes = powf_notes + "\r\n" + nom + "\t" + powf_newNotes;
</expression>
</script>
</action>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<variable name="powf_approveCnt" access="write"/>
<expression>
logger.log("about to increment powf_approveCnt; it is now " + powf_approveCnt);
powf_approveCnt = powf_approveCnt + 1;
</expression>
</script>
</action>
<action class="fr.openwide.plasticomnium.pocdai.workflowactions.DumpWorkflowAsXMLAction" />
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<variable name="powf_newNotes" access="write" />
<expression>powf_newNotes = "";</expression>
</script>
</action>
</transition>
</task-node>
<!– –>
<!– End the Review –>
<!– –>
<decision name="endreview">
<transition name="rejected" to="rejected">
</transition>
<transition name="approved" to="approved">
<condition>#{powf_approveCnt == powf_reviewerCnt}</condition>
</transition>
</decision>
<task-node name="rejected">
<task name="powf:rejectedTask" swimlane="initiator" />
<transition name="toEnd" to="end">
<action class="fr.openwide.plasticomnium.pocdai.workflowactions.SetDAIAsNotStartedAction" />
<action class="fr.openwide.plasticomnium.pocdai.workflowactions.ResetRightsAction" />
<action class="fr.openwide.plasticomnium.pocdai.workflowactions.DumpRejectedWorkflowAsXMLAction"/>
</transition>
</task-node>
<task-node name="approved">
<task name="powf:approvedTask" swimlane="initiator" />
<transition name="toEnd" to="end">
<action class="fr.openwide.plasticomnium.pocdai.workflowactions.SetDAIAsNotStartedAction" />
<action class="fr.openwide.plasticomnium.pocdai.workflowactions.SetDAIAsFinishedAction" />
<action class="fr.openwide.plasticomnium.pocdai.workflowactions.DumpAsXMLAction" />
</transition>
</task-node>
<task-node name="endtask">
<task name="powf:endTask" />
<transition name="toEnd" to="end">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<variable name="powf_finalComments" access="read,write" />
<variable name="powf_notes" access="read"/>
<expression>powf_finalComments = powf_notes;</expression>
</script>
</action>
<action class="fr.openwide.plasticomnium.pocdai.workflowactions.SetDAIAsNotStartedAction" />
</transition>
</task-node>
<!– –>
<!– End the Process –>
<!– –>
<end-state name="end" />
</process-definition>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<variable name="powf_approveCnt" access="write"/>
<expression>
logger.log("about to increment powf_approveCnt; it is now " + powf_approveCnt);
powf_approveCnt = powf_approveCnt + 1;
</expression>
</script>
</action>
It appears the powf_approveCnt variable is – in some process instances only! – pushed into a task scope (subsequent tasks will always view it as valued to 0).
<model name="powf:workflowmodel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
<imports>
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
<import uri="http://www.alfresco.org/model/bpm/1.0" prefix="bpm"/>
</imports>
<namespaces>
<namespace uri="http://plastic.omnium.com/1.0" prefix="powf"/>
</namespaces>
<types>
<!– –>
<!– Base WCM "start" task & workflow task definitions –>
<!– –>
<!– Note: Useful for dispatching WCM specific –>
<!– behaviour –>
<!– –>
<type name="powf:startTask">
<parent>bpm:startTask</parent>
<!– <overrides>
<property name="bpm:packageItemActionGroup">
<default>edit_and_remove_package_item_actions</default>
</property>
</overrides>–>
</type>
<type name="powf:workflowTask">
<parent>bpm:workflowTask</parent>
<!– <overrides>
<property name="bpm:packageItemActionGroup">
<default>read_package_item_actions</default>
</property>
</overrides>–>
</type>
<type name="powf:submitReviewTask">
<parent>powf:startTask</parent>
<mandatory-aspects>
<aspect>bpm:assignees</aspect>
</mandatory-aspects>
</type>
<type name="powf:reviewTask">
<parent>powf:workflowTask</parent>
<overrides>
<property name="bpm:packageItemActionGroup">
<default>edit_package_item_actions</default>
</property>
</overrides>
<mandatory-aspects>
<!– One or more reviewers - this is here to allow view of all reviewers –>
<!– in the review task –>
<aspect>bpm:assignees</aspect>
<aspect>powf:reviewInfo</aspect>
</mandatory-aspects>
</type>
<type name="powf:rejectedTask">
<parent>powf:workflowTask</parent>
<mandatory-aspects>
<aspect>bpm:assignees</aspect>
<aspect>powf:reviewInfo</aspect>
</mandatory-aspects>
</type>
<type name="powf:approvedTask">
<parent>powf:workflowTask</parent>
<mandatory-aspects>
<aspect>bpm:assignees</aspect>
<aspect>powf:reviewInfo</aspect>
</mandatory-aspects>
</type>
<type name="powf:endTask">
<parent>powf:workflowTask</parent>
<properties>
<property name="powf:finalComments">
<type>d:text</type>
</property>
</properties>
<mandatory-aspects>
<aspect>bpm:assignees</aspect>
<aspect>powf:reviewInfo</aspect>
</mandatory-aspects>
</type>
</types>
<aspects>
<aspect name="powf:reviewInfo">
<properties>
<property name="powf:reviewerCnt">
<title>Reviewer Count</title>
<type>d:int</type>
<mandatory>true</mandatory>
</property>
<property name="powf:approveCnt">
<title>Approver Count</title>
<type>d:int</type>
<mandatory>true</mandatory>
</property>
<property name="powf:notes">
<type>d:text</type>
</property>
<property name="powf:newNotes">
<type>d:text</type>
</property>
</properties>
</aspect>
</aspects>
</model>
08-10-2007 06:38 AM
08-10-2007 10:40 AM
08-14-2007 04:04 AM
08-15-2007 05:34 AM
08-15-2007 11:44 AM
08-15-2007 01:44 PM
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.