0

我正在使用 Alfreso 4.2c 和 Activiti 创建我的工作流程。我有一个要求,在每项任务中我需要向用户提供不同的操作。例如,在任务中,我需要提供“重新安排会议”、“取消会议”、“发送给练习主管”和“取消”等操作,而不仅仅是“完成任务”和“取消”。我已经覆盖了"bpm:outcomePropertyName",但它只更改了工作流程历史记录中的结果标签。

谁能指导我如何实现这一目标?先感谢您。

4

2 回答 2

1

您必须在工作流模型中定义自己的结果约束,例如:

     <type name="my:myTask">
        <parent>wf:activitiReviewTask</parent>
        <overrides>
             <property name="wf:reviewOutcome">
                    <default>Restart Review</default>
                    <constraints>
                        <constraint name="my:myOutcomeOptions" type="LIST">
                            <parameter name="allowedValues">
                                <list>
                                    <value>Approve</value>
                                    <value>Restart Review</value>
                                    <value>Reject</value>
                                </list>
                            </parameter>
                        </constraint>
                    </constraints>
                </property>
        </overrides>
      </type>

当然,您必须将自定义序列流添加到工作流定义中。

    <exclusiveGateway id="reviewDecision" name="Review Decision"></exclusiveGateway>
    <sequenceFlow id="flow3" name="" sourceRef="reviewDecision" targetRef="ReviewRejected">
        <conditionExpression xsi:type="tFormalExpression">${wf_reviewOutcome == 'Reject'}</conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow3" name="" sourceRef="reviewDecision" targetRef="RestartReview">
        <conditionExpression xsi:type="tFormalExpression">${wf_reviewOutcome == 'Restart Review'}</conditionExpression>
    </sequenceFlow>

...

于 2014-01-29T11:11:34.203 回答
0

自定义操作是使用按钮实现的——在 activiti grails 假期请求示例应用程序中。例如。保存输入的任务数据,不完成任务。但是,grails 中的自定义代码是为了实现此功能而编写的。我希望,在 activiti 中有一些标准方式可以将按钮添加为标准表单组件。

于 2014-02-20T19:40:10.293 回答