我需要构建一个工作流程,允许管理员在工作流程的第一个任务中从两个不同的组中选择两个受让人。我可以在一种表单中使用两个受让人控件吗?如何?
你需要:
-
在任务内容模型中,将 2 个受让人定义为任务类型的 2 个独立关联。
<type name="my:starttask">
<parent>bpm:startTask</parent>
<associations>
<association name="my:firstassignee">
<title>firstassignee</title>
<source>
<mandatory>false</mandatory>
<many>false</many>
</source>
<target>
<class>cm:person</class>
<mandatory>false</mandatory>
<many>false</many>
</target>
</association>
<association name="my:secondassignee">
<title>secondassignee</title>
<source>
<mandatory>false</mandatory>
<many>false</many>
</source>
<target>
<class>cm:person</class>
<mandatory>false</mandatory>
<many>false</many>
</target>
</association>
</associations>
</type>
-
在您的共享配置自定义中,将 2 个关联定义为权限控制:
<config condition="activiti$myworkflow" evaluator="string-compare">
<forms>
<form>
<field-visibility>
<show id="my:firstassignee" />
<show id="my:secondassignee" />
</field-visibility>
<appearance>
<field set="actors" id="my:firstassignee" >
<control template="/org/alfresco/components/form/controls/authority.ftl">
</control>
</field>
<field set="actors" id="my:secondassignee">
<control template="/org/alfresco/components/form/controls/authority.ftl">
</control>
</field>
-
在 bpm20 文件中,在流程中定义两个 ActivitiScriptNode 变量,并为具有两个 cm:person 关联的 usertask/starttask 定义一个 ExecutionListener。该执行侦听器应该获取输入的值并将它们放入流程范围变量中,如下所示:
<extensionElements>
<activiti:taskListener class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener" event="complete">
<activiti:field name="script">
<activiti:string>
execution.setVariable('firstActivitiScriptNodeVar', task.getVariable('my_firstassignee'));
execution.setVariable('secondActivitiScriptNodeVar', task.getVariable('my_secondassignee'));
</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
-
然后将此代码添加到您的 UserTasks 中,将其分配给输入的用户,如下所示:
<humanPerformer>
<resourceAssignmentExpression>
<formalExpression>${firstActivitiScriptNodeVar.properties.userName}</formalExpression>
</resourceAssignmentExpression>
</humanPerformer>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)