如何在Alfresco中通过Activiti工作流javascript获取bpm_eutput

How to get bpm_outcome by Activiti workflow javascript in Alfresco

本文关键字:javascript 工作流 获取 bpm eutput Activiti Alfresco      更新时间:2023-09-26

我很难通过一个简单的"完整"ScriptTaskListner在任务中获得"bpm:outcome"变量。我补充说,我正在使用Activiti工作流引擎。

这是我的尝试:

var import = task.getVariable('bpm_outcome');

这很奇怪。。。返回的值是"下一个"(!!?!?)

无论如何。。。我读到过,也许这可以完成任务:

任务实例ti=。。。ti.getVariableLocally("bpm_eutput");

ti.getVariable("bpm_output");

但我无法获取taskinstance。。。有什么建议吗?其他"wf:…"变量可以通过简单的task.getvariable尝试完美地捕获。

提前感谢!

在"活动"(与JBPM不同)中,除了"下一步/完成"之外,没有其他结果。

如果你查看Alfresco的默认审查和批准工作流程,你会注意到他们引入了一个新的变量来查看结果:

<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
                  <activiti:field name="script">
                     <activiti:string>
                        execution.setVariable('wf_reviewOutcome', task.getVariable('wf_reviewOutcome'));
                     </activiti:string>
                  </activiti:field>
               </activiti:taskListener>

任务模型:

<property name="wf:reviewOutcome">
                    <type>d:text</type>
                    <default>Reject</default>
                    <constraints>
                        <constraint name="wf:reviewOutcomeOptions" type="LIST">
                            <parameter name="allowedValues">
                                <list>
                                    <value>Approve</value>
                                    <value>Reject</value>
                                </list>
                            </parameter>
                        </constraint>
                    </constraints>
                </property>

共享配置:

<field id="wf:reviewOutcome" label-id="workflow.field.outcome" set="response">
                  <control template="/org/alfresco/components/form/controls/workflow/activiti-transitions.ftl" />
               </field>

所以Alfresco只是使用一个正常的字段来确定结果。所以你的语法是可以的,你只需要得到正确的变量。在这种情况下,它是task.getVariable('wf_reviewOutput')