如何在露天的startevent中设置一个变量?

时间:2015-06-15 07:58:21

标签: workflow alfresco activiti

我想从mcwf:status中的模型中获取属性值startevent。 然后我需要将mcwf:status的值传递给其他表单。

下面是代码,它不是打印变量, 看来extensionElement的部分还没有运行?

bpmn图的片段:

<startEvent id="startevent1" name="Start" activiti:formKey="mcwf:submitReviewTask">
    <extensionElements>
        <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
          <activiti:field name="script">
            <activiti:string><![CDATA[
                        var newstatus = task.getVariableLocal('mcwf_status');
                        execution.setVariable('mcwf_newstatus', newstatus);
                        logger.log("AAAAAAAAA      " + newstatus);
                    ]]></activiti:string>
          </activiti:field>
        </activiti:taskListener>
      </extensionElements>
    </startEvent>

模型文件的片段:

<aspect name="mcwf:status">
            <title>Status</title>
            <properties>
                <property name="mcwf:status">
                    <title>Status</title>
                    <type>d:text</type>
                    <default>0</default>
                    <constraints>
                        <constraint type="LIST">
                          <parameter name="allowedValues">
                            <list>
                            <value>100</value>
                            <value>200</value>
                            </list>
                          </parameter>
                        </constraint>
                    </constraints>
                </property>
            </properties>
        </aspect>

如果我将startevent更改为usertask,那么我会复制extensionElements的代码并粘贴而不是它,并且不知道为什么它可以正常工作。

1 个答案:

答案 0 :(得分:1)

以下是我在下一个任务中使用变量的代码片段。

 <startEvent id="startevent2" name="Start" activiti:initiator="${initiator.properties.userName}" activiti:formKey="aw:TransportManager">
      <extensionElements>
        <activiti:executionListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
          <activiti:field name="script">
            <activiti:string>
            <![CDATA[
              execution.setVariable('aw_vehicle_number',                                                       task.getVariable('aw_vehicle_number'));
              execution.setVariable('aw_reg_number', task.getVariable('aw_reg_number'));
              execution.setVariable('bpm_workflowDescription', task.getVariable('bpm_workflowDescription'));             
              execution.setVariable('aw_finance_comments',task.getVariable('bpm_comment'));
           ]]></activiti:string>
          </activiti:field>
         </activiti:executionListener>
     </extensionElements>
</startEvent>

将activiti:taskListener更改为activiti:executionListener。