As we transition to the new Hyland Community, some post links may be temporarily disrupted as we finalize redirects. We apologize for the inconvenience and are working to resolve this as quickly as possible. Details.
<aspect name="my:t1Assignee"> <associations> <association name="my:t1Assignee"> <source> <mandatory>false</mandatory> <many>false</many> </source> <target> <class>cm:person</class> <mandatory>false</mandatory> <many>false</many> </target> </association> </associations> </aspect> <aspect name="my:t2Assignee"> <associations> <association name="my:t2Assignee"> <source> <mandatory>false</mandatory> <many>false</many> </source> <target> <class>cm:person</class> <mandatory>false</mandatory> <many>false</many> </target> </association> </associations> </aspect>
You would need a second bpm:assignee or something along the same lines. It'd probably be easiest to create your own aspects for each assignee, something like: <aspect name="my:t1Assignee"> <associations> <association name="my:t1Assignee"> <source> <mandatory>false</mandatory> <many>false</many> </source> <target> <class>cm:person</class> <mandatory>false</mandatory> <many>false</many> </target> </association> </associations> </aspect> <aspect name="my:t2Assignee"> <associations> <association name="my:t2Assignee"> <source> <mandatory>false</mandatory> <many>false</many> </source> <target> <class>cm:person</class> <mandatory>false</mandatory> <many>false</many> </target> </association> </associations> </aspect> You'd set each of your assignees at the start of the workflow and assign each assignee their respective task.
<aspect name="my:t1Assignee"> <associations> <association name="my:t1Assignee"> <source> <mandatory>false</mandatory> <many>false</many> </source> <target> <class>cm:person</class> <mandatory>false</mandatory> <many>false</many> </target> </association> </associations> </aspect> <aspect name="my:t2Assignee"> <associations> <association name="my:t2Assignee"> <source> <mandatory>false</mandatory> <many>false</many> </source> <target> <class>cm:person</class> <mandatory>false</mandatory> <many>false</many> </target> </association> </associations> </aspect>
<config evaluator="node-type" condition="my:submitNewRequest" replace="true"> <property-sheet> <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" /> <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" /> <show-property name="bpm:workflowPriority" display-label-id="wf_review_priority" /> <show-property name="my:notifyMe" /> <show-property name="bpm:workflowDueDate" display-label-id="wf_review_due_date" /> <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" /> <show-association name="my:t1Assignee" display-label-id="wf_reviewer" /> <show-association name="my:t2Assignee" display-label-id="wf_reviewer" /> </property-sheet> </config>
You'll have to update the start task properties in the web-client-config-custom.xml to allow for those aspects to be set. <config evaluator="node-type" condition="my:submitNewRequest" replace="true"> <property-sheet> <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" /> <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" /> <show-property name="bpm:workflowPriority" display-label-id="wf_review_priority" /> <show-property name="my:notifyMe" /> <show-property name="bpm:workflowDueDate" display-label-id="wf_review_due_date" /> <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" /> <show-association name="my:t1Assignee" display-label-id="wf_reviewer" /> <show-association name="my:t2Assignee" display-label-id="wf_reviewer" /> </property-sheet> </config> Something like that.
<swimlane name="firstReviewer"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{bpm_package.children[0].assocs["mycm:myReferrenceToSite"][0].assocs["mycm:theCustomAspectYouWereToldToUse"][0].properties.userName} </actor> </assignment> </swimlane>
<actor>#{companyhome.childByNamePath("MyCustomPlace").properties("somePropHoldingTheUsername")}</actor>
<swimlane name="assigneeone"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{my:t1Assignee}</actor> </assignment> </swimlane> <swimlane name="assigneetwo"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{my:t2Assignee}</actor> </assignment> </swimlane>
<swimlane name="assigneeone"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{my_t1Assignee}</actor> </assignment> </swimlane> <swimlane name="assigneetwo"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{my_t2Assignee}</actor> </assignment> </swimlane>
<?xml version="1.0" encoding="UTF-8"?> <process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="my:CDC Absence Request Workflow3"> <swimlane name="initiator"/> <start-state name="start"> <task name="my:submitHelloworldTask" swimlane="initiator" /> <transition name="Approve by Boss" to="helloTask"> </transition> </start-state> <swimlane name="assignee"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{my_t3Assignee}</actor> </assignment> </swimlane> <swimlane name="ericl"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{my_t1Assignee}</actor> </assignment> </swimlane> <task-node name="helloTask"> <task name="my:helloTask" swimlane="assignee" ></task> <transition name="rejected" to="hello"></transition> <transition name="approve" to="ltt"></transition> </task-node> <swimlane name="getassignee"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{my_t2Assignee}</actor> </assignment> </swimlane> <task-node name="ltt"> <task name="my:helloEvanTask" swimlane="getassignee" ></task> <transition name="approve" to="evanTask"></transition> <transition name="rejected" to="hello"></transition> </task-node> <task-node name="evanTask"> <task name="my:evanTask" swimlane="ericl"></task> <transition name="rejected" to="hello"/> <transition name="approve" to="hello"> </transition> </task-node> <task-node name="hello"> <task name="my:completedhelloTask" swimlane="initiator"/> <transition name="Confirmed" to="end1"/> </task-node> <end-state name="end1"/> </process-definition>
<model name="my:workflowonemodel" xmlns="http://www.alfresco.org/model/dictionary/1.0"> <description>Workflow One Model</description> <author></author> <version>1.0</version> <imports> <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d" /> <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm" /> <import uri="http://www.alfresco.org/model/bpm/1.0" prefix="bpm"/> <import uri="http://www.alfresco.org/model/workflow/1.0" prefix="wf"/> </imports> <namespaces> <namespace uri="my.model" prefix="my" /> </namespaces> <types> <type name="my:submitHelloworldTask"> <parent>bpm:startTask</parent> <mandatory-aspects> <aspect>my:t3Assignee</aspect> </mandatory-aspects> </type> <type name="my:helloTask"> <parent>bpm:workflowTask</parent> <mandatory-aspects> <aspect>my:t2Assignee</aspect> </mandatory-aspects> </type> <type name="my:helloEvanTask"> <parent>bpm:workflowTask</parent> <mandatory-aspects> <aspect>my:t1Assignee</aspect> </mandatory-aspects> </type> <type name="my:evanTask"> <parent>bpm:workflowTask</parent> </type> <type name="my:completedhelloTask"> <parent>bpm:workflowTask</parent> </type> </types> <aspects> <aspect name="my:t3Assignee"> <associations> <association name="my:t3Assignee"> <source> <mandatory>false</mandatory> <many>false</many> </source> <target> <class>cm:person</class> <mandatory>false</mandatory> <many>false</many> </target> </association> </associations> </aspect> <aspect name="my:t1Assignee"> <associations> <association name="my:t1Assignee"> <source> <mandatory>false</mandatory> <many>false</many> </source> <target> <class>cm:person</class> <mandatory>false</mandatory> <many>false</many> </target> </association> </associations> </aspect> <aspect name="my:t2Assignee"> <associations> <association name="my:t2Assignee"> <source> <mandatory>false</mandatory> <many>false</many> </source> <target> <class>cm:person</class> <mandatory>false</mandatory> <many>false</many> </target> </association> </associations> </aspect> </aspects> </model>
<alfresco-config> <config evaluator="node-type" condition="my:submitHelloworldTask" replace="true"> <property-sheet> <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" /> <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" /> <show-property name="bpm:workflowPriority" display-label-id="wf_review_priority" /> <show-property name="bpm:workflowDueDate" display-label-id="wf_review_due_date" /> <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" /> <show-association name="my:t3Assignee" display-label-id="wf_reviewer" /> </property-sheet> </config> <config evaluator="node-type" condition="my:helloTask" replace="true"> <property-sheet> <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" /> <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" /> <show-property name="bpm:workflowPriority" display-label-id="wf_review_priority" /> <show-property name="bpm:workflowDueDate" display-label-id="wf_review_due_date" /> <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" /> <show-association name="my:t2Assignee" display-label-id="wf_reviewer" /> </property-sheet> </config> <config evaluator="node-type" condition="my:helloEvanTask" replace="true"> <property-sheet> <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" /> <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" /> <show-property name="bpm:workflowPriority" display-label-id="wf_review_priority" /> <show-property name="bpm:workflowDueDate" display-label-id="wf_review_due_date" /> <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" /> <show-association name="my:t1Assignee" display-label-id="wf_reviewer" /> </property-sheet> </config> <config evaluator="node-type" condition="my:evanTask" replace="true"> <property-sheet> <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" /> <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" /> <show-property name="bpm:workflowPriority" display-label-id="wf_review_priority" /> <show-property name="bpm:workflowDueDate" display-label-id="wf_review_due_date" /> </property-sheet> </config> <config evaluator="node-type" condition="my:completedhelloTask" replace="true"> <property-sheet> <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" /> <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" /> <show-property name="bpm:workflowPriority" display-label-id="wf_review_priority" /> <show-property name="bpm:workflowDueDate" display-label-id="wf_review_due_date" /> </property-sheet> </config> </alfresco-config>
… <swimlane name="initiator"/> <swimlane name="reviewer"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{bpm_assignee}</actor> </assignment> </swimlane> <swimlane name="reviewer2"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{bpm_assignee}</actor> </assignment> </swimlane> …
… <type name="new:asignTask"> <parent>bpm:workflowTask</parent> <mandatory-aspects> <aspect>bpm:assignee</aspect> </mandatory-aspects> </type> …. <type name="new:asignTask2"> <parent>bpm:workflowTask</parent> <mandatory-aspects> <aspect>bpm:assignee</aspect> </mandatory-aspects> </type> …
… <config evaluator="node-type" condition="new:asignTask" replace="true"> <property-sheet> <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" /> <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" display-label-id="newDescription"/> <show-property name="bpm:workflowPriority" display-label-id="newPriority" /> <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" /> <show-association name="bpm:assignee" display-label-id="newAssignee"/> </property-sheet> </config> … <config evaluator="node-type" condition="new:asingTask2" replace="true"> <property-sheet> <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" /> <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" display-label-id="newDescription"/> <show-property name="bpm:workflowPriority" display-label-id="newPriority" /> <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" /> <show-association name="bpm:assignee" display-label-id="newAssignee"/> </property-sheet> </config>