我正在尝试创建自定义工作流,在工作流开始时,工作流发起人可以选择3个用户在工作流中执行不同的任务(在这种情况下,是作者,审阅者和审批者)
为此,我将每个角色定义为我的工作流模型中的启动任务的一个方面,然后我尝试将这些用户分配到工作流中的流程变量并通过activiti将任务分配给它们:受让人的任务。在我的share-config-custom中,我将角色定义为权限控制。我遵循以下描述的过程: Multiple assignee controls in Alfresco Workflow form
工作流程启动没有问题,Alfresco允许我选择用户,但任务分配不起作用。在工作流历史记录中,它表示任务被分配给“$(author.properties.userName)”,这是我在bpmn文件中使用的表达式,但它没有获取作者变量的userName。
我在下面附上了我的文件的链接。如果他们有问题,或者有更好的方法来实现这一目标,请告诉我!
非常感谢
马库斯
bpmn文件:https://drive.google.com/file/d/0By5ruty8M4IleWlKSmdQNUNXR0k/view?usp=sharing
workflowModel文件:https://drive.google.com/file/d/0By5ruty8M4IlVEFlSWo2SElNNUE/view?usp=sharing
我将在评论中发布share-config-custom
答案 0 :(得分:1)
execution.setVariable('author', task.getVariable('vorwf_author'));
您正在设置变量author
和
您正尝试使用$(author.properties.userName)
此处author
不是对象,因此您无法找到userName。如果你想这样做,那么你必须创建用户对象
示例:输入您的用户名
var author=people.getPerson("user_name");
var authVar=author.properties.userName;
设置变量
execution.setVariable('my_author',authVar);
您可以使用${my_author}
如果您通过此task.getVariable('vorwf_author')
execution.setVariable('author', task.getVariable('vorwf_author'));
然后你可以简单地使用${author}
答案 1 :(得分:0)
我已经设法弄清楚如何做到这一点!首先,我将工作流中的每个“角色”定义为workflowModel.xml文件中的一个方面。以下是其中一个角色的示例:作者:
<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>
然后,我将这些角色设置为定义用户角色的任务定义中的必需方面:
<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>
最后,我可以在我的bpmn文件中将任务分配给用户,而不必设置任何其他变量,例如:
<userTask id="prepareDocument" name="Prepare Document" activiti:assignee="${vorwf_author.properties.userName}" activiti:formKey="vorwf:prepareDocument">