1-owner和caller应该以某种方式与组织机构模型关联(譬如就是一个Party的ID),
wfId应该以某种方式与被处理实体(例如公文 实体)关联。
OSWorkflow建议的关联方式是在被处理实体中加上wfId字段。owner和caller与实际的组织机构模型关联之后, 才能在工作 流端提供“待办事宜”、“我的任务”之类信息,否则业务应用必须对工作流状态和权限判断之后提供这些信息。
2-
<step id="1" name="送假单">
<actions>
<action id="1" name="送出">
<restrict-to>
<conditions>
<condition type="class">
<arg name="class.name">
com.opensymphony.workflow.util.AllowOwnerOnlyCondition
</arg>
</condition>
</conditions>
</restrict-to>
<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="Queued" step="2" owner="${caller}"/>
</results>
</action>
</actions>
</step>
这段配置就是用来限定下一步的执行人必须是这一步的发起人。
osworkflow限制的用法有:
事實上OSWorkflow 2.7版提供了以下四種限制條件。
wfId应该以某种方式与被处理实体(例如公文 实体)关联。
OSWorkflow建议的关联方式是在被处理实体中加上wfId字段。owner和caller与实际的组织机构模型关联之后, 才能在工作 流端提供“待办事宜”、“我的任务”之类信息,否则业务应用必须对工作流状态和权限判断之后提供这些信息。
2-
<step id="1" name="送假单">
<actions>
<action id="1" name="送出">
<restrict-to>
<conditions>
<condition type="class">
<arg name="class.name">
com.opensymphony.workflow.util.AllowOwnerOnlyCondition
</arg>
</condition>
</conditions>
</restrict-to>
<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="Queued" step="2" owner="${caller}"/>
</results>
</action>
</actions>
</step>
这段配置就是用来限定下一步的执行人必须是这一步的发起人。
osworkflow限制的用法有:
事實上OSWorkflow 2.7版提供了以下四種限制條件。
- OSUserGroupCondition:限制由隸屬某指定Group的人執行。
- StatusCondition:限制step的status為某個值時才能執行。
- AllowOwnerOnlyCondition:只允許Owner執行。
- DenyOwnerCondition:只有Owner不能執行。