WorkFlow常用的一些情形

1、启用workflow

wf_engine.startprocess(itemtype => l_item_type, itemkey => l_item_key);

internal name:就是itemtype     itemkey是自己随意取的,一般都是有流水码,防止重复

itemkey一般要记录下来,因为以后我们要对此 workflow修改的时候需要用到此itemkey

2、取消wf

wf_engine.abortprocess(itemtype => 'JW_SHIP', itemkey => l_item_key);

用的也是itemtype and itemkey,如果此wf已经取消或其他,再次取消会报错,

所以我们取消前最好有一个判断select * from wf_items,此表中会记录此itemtype,itemkey的结束时间

如果结束时间有了我们就不需要再去取消了

3、推动wf

       wf_engine.completeactivity(itemtype => 'JW_SHIP',
                             itemkey  => v_attribute3,
                             activity => 'JW_OM_PROCESS:JW_OM_NOTIFICATIONS',
                             RESULT   => 'APPROVE');
     
       wf_engine.completeactivity(itemtype => 'JW_SHIP',------审批拒绝
                             itemkey  => v_attribute3,
                             activity => 'JW_OM_PROCESS:JW_OM_NOTIFICATIONS',
                             RESULT   => 'REJECT');

   同样,用的还是itemtype,itemkey,activity:

冒号后面是此notifications的internal name,result 是此通知的result code

这样我们就相当于在审核的时候点了那个按钮一样,用代码实现。

4、functions返回值问题

在wf中调用一个function时如果直接向下走我们结尾用

resultout := 'COMPLETE';说明完成了

但是如果一个函数的result type :Yes/No

就是说一个function调用完成后可能因为不同的结果走向不同

我们就要用

resultout := wf_engine.eng_completed || ':' || 'Y' ;

 resultout := wf_engine.eng_completed || ':' || 'N' ;去判断走向

5、wf or 和and的功能

这个我们字面看意思就知道or就是有一个条件满足就继续走,and就是所有条件满足才继续走

应该很明了:or就是要么审批了,要么确认了,只要有一个满足此单就结束

                     and就是要两个同时满足此单才会结束

eg:wf的一些标准function:or and我们需要从standard.wft中拖过来使用,完整的代码可参考我之前的记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值