阅读:3625
回复:5
|
[已解决]在流程中,多人维护时,如何确定最终是哪个人维护的?图片:捕获1111.JPG 报价单维护可以多人维护,只有一个人维护了就到下个节点(采购经理审批),如何在采购经理审批节点根据上一节点具体的维护人为条件选择参与者? |
1楼#
发布于:2017-03-27 17:13
亲~可以通过代码获取到报价单维护操作的人员~然后将这个人存进某个隐藏数据项~
再去做一个业务规则用于匹配报价维护单和采购经理审批两个节点的参与者的对应关系~ 最后在报价单维护这个节点的事件里面的活动完成后加上这个规则即可~ 俺的思路可能有点笨哦~ 期待更多大神分享思路~ |
|
2楼#
发布于:2017-03-28 10:52
SELECT OT_User.ObjectID,OT_User.Name FROM OT_WorkItem w LEFT OUTER JOIN OT_User ON ISNULL(w.Finisher,w.Participant) = OT_User.ObjectID WHERE w.BizObjectId = '57ceb89d-31f8-4964-ac6f-b121baf27ae6' AND w.State = 2 AND NOT EXISTS(SELECT * FROM OT_WorkItem w1 WHERE w1.Approval < 0 AND w.ObjectID = w1.ObjectID) 传入objectid能找到每个已完成节点的实际操作人,未经过大量测试,提供思路。 |
|
4楼#
发布于:2017-04-13 09:50
t156965365:SELECT OT_User.ObjectID,OT_User.Name FROM OT_WorkItem w如果存在协办,加签或者驳回时存在多个实际操作者,这样只能取最大完成时间。 SELECT OT_User.ObjectID,OT_User.Name FROM OT_WorkItem w LEFT OUTER JOIN OT_User ON ISNULL(w.Finisher,w.Participant) = OT_User.ObjectID WHERE w.BizObjectId = '38a9cbab-cd7f-4e44-ac3e-2bebb764ddaa' AND w.State = 2 and w.ActivityCode = 'Activity2' and w.Approval = 1 AND CONVERT(CHAR(23),W.FinishTime, 25) = (SELECT MAX(CONVERT(CHAR(23),W1.FinishTime, 25)) FROM OT_WorkItem w1 WHERE w1.Approval = 1 AND w1.State = 2 and w1.ActivityCode = 'Activity2' and w1.Approval = 1 AND w.BizObjectId = w1.BizObjectId) |
|
5楼#
发布于:2017-04-13 11:21
BPM0942052043:如果存在协办,加签或者驳回时存在多个实际操作者,这样只能取最大完成时间。多个人操作了,肯定多个都要取出来,取个最大时间的没有意义。 |
|