憋了幾天,終于出來了一點東西。下面是流程圖和我寫的xml文件。總的來說,對OSWorkflow還是不能算清楚。重點在設計方面疑問還很多。
流程圖:
XML文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE workflow PUBLIC "-//OpenSymphony Group//DTD OSWorkflow 2.6//EN" "http://www.opensymphony.com/osworkflow/workflow_2_8.dtd"> <workflow> <initial-actions> <action id="100" name="開始通知書質檢發送流程"> <pre-functions> <function type="class"> <arg name="class.name">com.opensymphony.workflow.util.Caller</arg> </function> </pre-functions> <results> <unconditional-result old-status="Finished" status="Underway" step="1" owner="${caller}"/> </results> </action> </initial-actions> <steps> <step id="1" name="提交質檢"> <actions> <action id="1" name="提交質檢文本"> <restrict-to> <conditions type="AND"> <condition type="class"> <arg name="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg> <arg name="group">zj_hyz</arg> </condition> </conditions> </restrict-to> <pre-functions> <function type="class"> <arg name="class.name">com.example.baopi.func.TiJiaoZhiJianFunction</arg> </function> </pre-functions> <results> <unconditional-result old-status="Finished" status="Underway" step="2" owner="zj_zjy1"/> </results> </action> </actions> </step> <step id="2" name="質檢處理"> <actions> <action id="2" name="質檢員處理"> <restrict-to> <conditions type="AND"> <condition type="beanshell"> <arg name="script">true</arg> </condition> <condition type="class"> <arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg> <arg name="status">Underway</arg> </condition> <condition type="class"> <arg name="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg> <arg name="group">zj_zjy</arg> </condition> </conditions> </restrict-to> <pre-functions> <function type="class"> <arg name="class.name">com.example.baopi.func.ZhiJianChuLiFunction</arg> </function> </pre-functions> <results> <unconditional-result old-status="Finished" status="Underway" step="3" owner="zj_hyz1"/> </results> </action> </actions> </step> <step id="3" name="合議組針對質檢修改稿的處理"> <actions> <action id="3" name="合議組處理"> <pre-functions> <function type="class"> <arg name="class.name">com.example.baopi.func.ZhiJianFanHuiFunction</arg> </function> <function type="class"> <arg name="class.name">com.opensymphony.workflow.util.Caller</arg> </function> </pre-functions> <results> <result old-status="Finished" status="Underway" step="5" owner="zj_hyz1" > <conditions type="AND"> <condition type="beanshell"> <arg name="script"> propertySet.getInt("opinion")==2 </arg> </condition> </conditions> </result> <unconditional-result old-status="Finished" status="Underway" step="5" owner="zj_cz1"/> </results> </action> </actions> </step> <step id="5" name="處長處理"> <actions> <action id="5" auto="true" name="處級報批"> <pre-functions> <function type="beanshell"> <arg name="script"> System.out.println("處長處理..."); </arg> </function> </pre-functions> <results> <result old-status="Finished" status="Underway" step="6" owner="zj_bz1" > <conditions type="AND"> <condition type="beanshell"> <arg name="script"> propertySet.getInt("opinion")==2 </arg> </condition> </conditions> </result> <unconditional-result old-status="Finished" status="Finished" step="1" owner="zj_hyz1"/> </results> </action> </actions> </step> <step id="5" name="部級處理"> <actions> <action id="5" auto="true" name="部級處理"> <pre-functions> <function type="beanshell"> <arg name="script"> System.out.println("部級處理..."); </arg> </function> </pre-functions> <results> <unconditional-result old-status="Finished" status="Finished" step="1" owner="zj_hyz1"/> </results> </action> </actions> </step> <step id="15" name="通知書發送處理"> <actions> <action id="15" auto="true" name="發送通知書"> <pre-functions> <function type="beanshell"> <arg name="script"> System.out.println("通知書發送..."); </arg> </function> </pre-functions> <results> <unconditional-result old-status="Finished" status="Finished" step="16" owner="zj_hyz1"/> </results> </action> </actions> </step> <step id="16" name="flow over"> </step> </steps> </workflow> |