系统环境
BIP高级版2207
应用场景
根据业务需求,需要在调出单位相关部门进行审批前通知调动人员,然后在调出单位相关部门审批通过后再次通知调动人员,并且该流程为子项流程,不能放在主流程中。
子流程如下:
尝试解决方案
方案一:
直接在虚活动中设置通知消息;
结果:不能进行正常保存,在打了补丁“patch_2207虚活动通知消息不显示问题.zip”后,可以保存了,但只能保存制单人;由于是子流程所以无法实现在子流程中增加一个制单人节点本人自己审批的方式实现,系统会强制要求你再审一次;
结论:失败;
方案二:
向集团提DSP,希望能修复该BUG,但集团给出的结论是无法修复只能通过其他方式变向实现,如不用子流程;
结论:不能满足业务及客户需求,失败;
方案三:
设置人工节点通过如下公式取指定审批节点的审批人并设置为本人自动审批;
getrealcheckman( "调出部门负责人<审核>");
结果:由于该节点前面是多节点并行,所以无法确定取哪一个节点,当我完成只剩1个节点(其他审批通过),在做最后一个节点提交时结果提示该公式找不到审批人员,初步认为,该公式不能取当前审批人节点;
结论:失败;
重点来了:
基于以上3项的测试并研究了一下SPR,最终想到了一个通过视图+公式的方式解决;
解决思路:
想办法取最近一次审批通过的人员,然后通过取数据库公式实现;
实现方案
取审批通过的人员视图
create or replace view vw_flow_note as
SELECT a.billno,
a.checkman, /*sm_user cuserid*/
a.ts
FROM pub_workflownote a
WHERE a.approveresult = 'Y'
AND a.approvestatus = '1' and a.actiontype='Z' order by a.ts desc;
审批节点公式
getcolvalue(vw_flow_note , checkman,billno , bill_code) ;
流程节点设置
结论:在BIP高级版2207环境下验证通过;