<initial-actions>
<action id="0" name="開始">
<pre-functions>
<function type="class">
<arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
</function>
<function type="beanshell">
<arg name="script">
propertySet.setString("type", transientVars.get("type"));
</arg>
</function>
</pre-functions>
<results>
<unconditional-result old-status="Finished" status="Queued"
step="1" owner="${caller}" />
</results>
<post-functions>
<function type="class">
<arg name="class.name">
tw.idv.idealist.OutputPropertySet
</arg>
<arg name="author">Steven Shi</arg>
</function>
</post-functions>
</action>
</initial-actions>
Property sets:持久性變數會將變數的值存入OS_PROPERTYENTRY表中,在程式中以propertySet來存取
ransient Map:臨時變數,僅僅在workflow中有效,在程式中以transientVars來存取。
外部類:
OutputPropertySet.java
package tw.idv.idealist;
import java.util.Map;
import com.opensymphony.module.propertyset.PropertySet;
import com.opensymphony.workflow.FunctionProvider;
import com.opensymphony.workflow.WorkflowException;
/**
* @author steven
*/
public class OutputPropertySet implements FunctionProvider {
public void execute(Map transientVars, Map args, PropertySet ps)
throws WorkflowException {
if (ps.getString("type").equals("1")) {
System.out.println("事假");
}
else if (ps.getString("type").equals("2")) {
System.out.println("病假");
}
System.out.println("author => " + args.get("author"));
}
}
外部類要實現 FunctionProvider。外部類在程式中如下形勢 被調用
<function type="class">
<arg name="class.name">
tw.idv.idealist.OutputPropertySet
</arg>
<arg name="author">Steven Shi</arg>
</function>