我需要构建一个工作流,允许管理员在工作流的第一个任务中从两个不同的组中选择两个受让人。我可以在一种形式中使用两个受让人控件吗?怎么办?
最佳答案
你需要:
在任务内容模型中,将 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>
关于jakarta-ee - Alfresco Workflow 表单中的多个受让人控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34612055/