osworkflow跨步骤应用实例

版权声明:本文为博主原创文章,转载请注明。 https://blog.csdn.net/shf4715/article/details/52692192

工作流动作中都至少包含一个无条件结果“unconditional-result”,意为指定在无条件的情况下工作流将要进行的下一步动作。
当需要指定条件时需指定conditional-result,当条件满足时则会执行该流转步骤。
condition 标签需要包含在conditions中,每个condition返回一个布尔值。当需要多个condition时,需要在conditions标签上加入 type属性,并指明AND或OR,分别为判断条件中的“与”和“或”的关系。

当遇到需要跳过下步工作流时,需要在result中加入condition条件。当有多个condition时需要使用conditions 标签的type属性指明判断方式,实例中注释部分有相关说明。
下面是工作流配置实例:

<step id="1" name="演示步骤">
    <actions>
        <action id="20" name="审核通过">
            <restrict-to>
                <conditions>
                    <condition type="spring">
                        <arg name="group">ROLE_ALL</arg>
                        <arg name="bean.name">userRoleCondition</arg>
                    </condition>
                </conditions>
            </restrict-to>
            <pre-functions>
                <function type="class">
                    <arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
                </function>
            </pre-functions>
            <results>
                <result old-status="Finished" status="Underway" step="2">
                    <!-- type有两个值,AND/OR当又多个condition时作为判断条件 -->
                    <conditions type="AND">
                        <!-- 如果该返回值为false则不执行本result -->
                        <condition type="spring">
                            <arg name="bean.name">NewCondition</arg>
                        </condition>
                    </conditions>
                    <post-functions>
                        <function type="spring">
                            <arg name="subStatus">2</arg>
                            <arg name="bean.name">workflowStatusFunction</arg>
                        </function>
                    </post-functions>
                </result>
                <!-- 如果没有匹配的则执行该conditional-result -->
                <unconditional-result old-status="Finished"
                    status="Underway" step="4">
                    <post-functions>
                        <function type="spring">
                            <arg name="subStatus">3</arg>
                            <arg name="bean.name">workflowStatusFunction</arg>
                        </function>
                    </post-functions>
                </unconditional-result>

            </results>
        </action>
        <!-- ...其他操作 -->
    </actions>
</step>

附:点击下载osworkflow中文手册

展开阅读全文

没有更多推荐了,返回首页