OSWorkFlow-function

  OSWorkFlow概论:function(函数)

function(函数),在OSWorkFlow中是用来定义(引用)并执行外部的商业逻辑和服务,实现OSWorkFlow与外部具体的应用之间交互。
function有二种类型:
pre function(预处理函数)和post function(后处理函数)
pre function在工作流的一个转变操作执行之前调用,例如:在执行Action的一个结果之前,设置这个结果将导致状态改变的Owner
 <action id="0" name="启动工作流">
      <results>
        <unconditional-result id="2" old-status="Finished" status="Queued" step="1" owner="${caller}">
          <pre-functions>
            <function name="set.caller" type="class">
              <arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
            </function>
          </pre-functions>
        </unconditional-result>
      </results>
    </action>
post function在工作流的一个转变操作执行完之后调用:例如在设备申请工作流中,部门经理审核步骤完成之后可以给申请的员工发email通知
等。

function将被应用在step、Action、Result中
具体见workflow_2_7.dtd:
..
<!ELEMENT step (meta*, pre-functions?, external-permissions?, actions?, post-functions?)>
<!ELEMENT action (meta*, restrict-to? , validators?, pre-functions?, results, post-functions?)>
<!ELEMENT result (conditions, validators?, pre-functions?, post-functions?)>
..
 
function在action级别的应用:在执行某一步骤的的Action时,它会首先执行当前Action级别的pre-function,再去寻找Action里的result。
result执行完成之后再调用Action级别的post-function,于是Action的执行结束。
如下图:

function在result级别的应用:类似action级别
function在step级别的应用:上一个步骤执行结束,运转到当前步骤,执行当前步骤的pre-function。当前步骤执行完成,在未运转到下一步骤
之前,执行post-function
如下图:
 
 
 
注意:OSWorkFlow里的Action和我们具体业务操作中的Action(比如:xwork中的Action)的区别:
          OSWorkFlow的Action是个更粗粒度的操作,它是指OSWorkFlow某一步骤可以执行的操作。在我们经常用的action(比如:xwork中的Action),是业务相关的一个操作,在OSWorkFlow相当于一个具体的function。
 
OSWorkFlow的基本概念见:
gigix的 OSWorkflow基本概念>>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值