I'm trying to create a custom workflow, where at the start of the workflow, the workflow initiator can choose 3 users to perform different tasks in the workflow (in this case, an author, a reviewer, and an approver).
To do this I am defining each of these roles as an aspect of my start task in my workflow model, and then I am trying to assign these users to process variables in the workflow and assign the tasks to them through the activiti:assignee task. In my share-config-custom I am defining the roles as authority controls. I am following the process described in: Multiple assignee controls in Alfresco Workflow form
The workflow starts without a problem, and Alfresco allows me to select users, but the task assignment does not work. In the workflow history, it says that the task is assigned to "$(author.properties.userName)", which is the expression I use in my bpmn file, but it is not picking up the userName of the author variable.
I have attached links to my files below. If there is a problem with them, or if there is a better method of achieving this goal, please let me know!
Many thanks
Marcus
bpmn file: https://drive.google.com/file/d/0By5ruty8M4IleWlKSmdQNUNXR0k/view?usp=sharing
workflowModel file: https://drive.google.com/file/d/0By5ruty8M4IlVEFlSWo2SElNNUE/view?usp=sharing
I will post the share-config-custom in the comments
I've managed to figure out how to do this! Firstly, I define each 'role' in the workflow as an aspect in my workflowModel.xml file. Here is an example for one of the roles, author:
<aspects>
<aspect name="vorwf:author">
<associations>
<association name="vorwf:author">
<source>
<mandatory>false</mandatory>
<many>false</many>
</source>
<target>
<class>cm:person</class>
<mandatory>true</mandatory>
<many>false</many>
</target>
</association>
</associations>
</aspect>
I then set these roles as mandatory aspects in the definition of the task where the user roles are defined:
<type name="vorwf:allocateDocumentProperties">
<parent>bpm:startTask</parent>
<properties>
<property name="vorwf:approveRejectOutcome">
<type>d:text</type>
<default>Reject</default>
<constraints>
<constraint type="LIST">
<parameter name="allowedValues">
<list>
<value>Approve</value>
<value>Reject</value>
</list>
</parameter>
</constraint>
</constraints>
</property>
</properties>
<mandatory-aspects>
<aspect>vorwf:author</aspect>
<aspect>vorwf:reviewer</aspect>
<aspect>vorwf:approver</aspect>
</mandatory-aspects>
</type>
Finally, I can assign the task to the user in my bpmn file, without having to set any other variables, for example:
<userTask id="prepareDocument" name="Prepare Document" activiti:assignee="${vorwf_author.properties.userName}" activiti:formKey="vorwf:prepareDocument">