<?xml version="1.0" encoding="GB2312"?>
<!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="启动任务单工作流">
<results>
<unconditional-result old-status="Finished"
status="Queued" step="1" />
</results>
</action>
</initial-actions>
<steps>
<step id="1" name="第一步:下达任务单">
<actions>
<action id="11" name="第一步:下达任务单">
<restrict-to>
<conditions>
<condition type="class">
<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
<arg name="status">Queued</arg>
</condition>
</conditions>
</restrict-to>
<pre-functions>
<function type="class">
<arg name="class.name">
com.gz.os.function.TaskCreateFunction
</arg>
</function>
<function type="class">
<arg name="class.name">
com.gz.os.function.TaskCaller
</arg>
</function>
<function type="beanshell">
<arg name="script">
String caller = context.getCaller();
String creater=propertySet.getString("creater");
String receiver=propertySet.getString("receiver");
System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"+caller+"/"+creater+"/"+receiver);
</arg>
</function>
</pre-functions>
<results>
<unconditional-result old-status="Finished"
status="uncheck" step="2" />
</results>
</action>
</actions>
</step>
<step id="2" name="任务书未查看状态">
<actions>
<action id="21" name="第二步a:修改任务单">
<restrict-to>
<conditions type="AND">
<condition type="beanshell">
<arg name="script">
String caller = context.getCaller();
String creater=propertySet.getString("creater");
String receiver=propertySet.getString("receiver");
caller.equals(creater)
</arg>
</condition>
<condition type="class">
<arg name="class.name">
com.opensymphony.workflow.util.StatusCondition
</arg>
<arg name="status">uncheck</arg>
</condition>
</conditions>
</restrict-to>
<pre-functions>
<function type="beanshell">
<arg name="script">
String caller = context.getCaller();
String creater=propertySet.getString("creater");
System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"+caller+"/"+creater);
</arg>
</function>
<function type="class">
<arg name="class.name">
com.gz.os.function.TaskUpdateFunction
</arg>
</function>
<function type="class">
<arg name="class.name">
com.gz.os.function.TaskCaller
</arg>
</function>
</pre-functions>
<results>
<unconditional-result old-status="Finished"
status="uncheck" step="2" />
</results>
</action>
<action id="22" name="第二步b:撤销任务单">
<restrict-to>
<conditions type="AND">
<condition type="beanshell">
<arg name="script">
String caller = context.getCaller();
String creater=propertySet.getString("creater");
String receiver=propertySet.getString("receiver");
caller.equals(creater)
</arg>
</condition>
<condition type="class">
<arg name="class.name">
com.opensymphony.workflow.util.StatusCondition
</arg>
<arg name="status">uncheck</arg>
</condition>
</conditions>
</restrict-to>
<pre-functions>
<function type="class">
<arg name="class.name">
com.gz.os.function.TaskUndoFunction
</arg>
</function>
<function type="class">
<arg name="class.name">
com.gz.os.function.TaskCaller
</arg>
</function>
</pre-functions>
<results>
<unconditional-result old-status="Finished"
status="uncheck" step="8" owner="${caller}" />
</results>
</action>
<action id="23" name="第二步c:查看任务单">
<restrict-to>
<conditions type="AND">
<condition type="beanshell">
<arg name="script">
String caller = context.getCaller();
String creater=propertySet.getString("creater");
String receiver=propertySet.getString("receiver");
caller.equals(receiver)
</arg>
</condition>
<condition type="class">
<arg name="class.name">
com.opensymphony.workflow.util.StatusCondition
</arg>
<arg name="status">uncheck</arg>
</condition>
</conditions>
</restrict-to>
<pre-functions>
<!--
<function type="class">
<arg name="class.name">
com.gz.os.function.TaskCheckFunction
</arg>
</function>
-->
<function type="class">
<arg name="class.name">
com.gz.os.function.TaskCaller
</arg>
</function>
</pre-functions>
<results>
<unconditional-result old-status="Finished"
status="check" step="3" owner="${caller}" />
</results>
</action>
</actions>
</step>
<step id="3" name="任务执行中">
<actions>
<action id="31" auto="true" name="更改任务单的状态为执行中">
<restrict-to>
<conditions type="AND">
<condition type="beanshell">
<arg name="script">
String caller = context.getCaller();
String creater=propertySet.getString("creater");
String receiver=propertySet.getString("receiver");
caller.equals(receiver)
</arg>
</condition>
<condition type="class">
<arg name="class.name">
com.opensymphony.workflow.util.StatusCondition
</arg>
<arg name="status">check</arg>
</condition>
</conditions>
</restrict-to>
<pre-functions>
<!--
<function type="class">
<arg name="class.name">
com.gz.os.function.TaskExecuteFunction
</arg>
</function>
-->
<function type="class">
<arg name="class.name">
com.gz.os.function.TaskCaller
</arg>
</function>
</pre-functions>
<results>
<unconditional-result old-status="Finished"
status="execute" step="5" owner="${caller}" />
</results>
</action>
</actions>
</step>
<step id="5" name="第四步:任务执行中">
<actions>
<action id="5" name="第五步:提交任务单">
<restrict-to>
<conditions type="AND">
<condition type="class">
<arg name="class.name">
com.opensymphony.workflow.util.StatusCondition
</arg>
<arg name="status">execute</arg>
</condition>
</conditions>
</restrict-to>
<pre-functions>
<function type="class">
<arg name="class.name">
com.gz.os.function.TaskCaller
</arg>
</function>
</pre-functions>
<results>
<unconditional-result old-status="Finished"
status="submit" step="6" owner="${creater}"/>
</results>
</action>
</actions>
</step>
<step id="6" name="第六步:审核任务单">
<actions>
<action id="6" name="第六步:审核任务单">
<restrict-to>
<conditions type="AND">
<condition type="class">
<arg name="class.name">
com.opensymphony.workflow.util.StatusCondition
</arg>
<arg name="status">submit</arg>
</condition>
</conditions>
</restrict-to>
<results>
<unconditional-result old-status="Finished"
status="Finished" step="8" />
</results>
</action>
</actions>
</step>
<step id="8" name="flow over"></step>
</steps>
</workflow>