阅读:3624 回复:5
BPM0942052043
32

帖子

85

跟帖

1335

积分

黄金榴莲
黄金榴莲
  • 社区居民

[已解决]在流程中,多人维护时,如何确定最终是哪个人维护的?

楼主#
更多 发布于:2017-03-27 16:52

图片:捕获1111.JPG



报价单维护可以多人维护,只有一个人维护了就到下个节点(采购经理审批),如何在采购经理审批节点根据上一节点具体的维护人为条件选择参与者?
武汉技术支持团队
40

帖子

1181

跟帖

3860

积分

论坛版主
论坛版主
1楼#
发布于:2017-03-27 17:13
亲~可以通过代码获取到报价单维护操作的人员~然后将这个人存进某个隐藏数据项~
再去做一个业务规则用于匹配报价维护单和采购经理审批两个节点的参与者的对应关系~
最后在报价单维护这个节点的事件里面的活动完成后加上这个规则即可~
俺的思路可能有点笨哦~
期待更多大神分享思路~
t156965365
46

帖子

688

跟帖

4536

积分

H3 BPM互助团队
H3 BPM互助团队
  • 社区居民
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能找到每个已完成节点的实际操作人,未经过大量测试,提供思路。
BPM0942052043
32

帖子

85

跟帖

1335

积分

黄金榴莲
黄金榴莲
  • 社区居民
3楼#
发布于:2017-03-28 13:19
意见不错,我试试,谢了!
BPM0942052043
32

帖子

85

跟帖

1335

积分

黄金榴莲
黄金榴莲
  • 社区居民
4楼#
发布于:2017-04-13 09:50
t156965365:SELECT OT_User.ObjectID,OT_User.Name FROM OT_WorkItem w  
  LEFT OUTER JOIN OT_User ON ISNULL(w.Finisher,w.Participant) ...
回到原帖
如果存在协办,加签或者驳回时存在多个实际操作者,这样只能取最大完成时间。
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)
t156965365
46

帖子

688

跟帖

4536

积分

H3 BPM互助团队
H3 BPM互助团队
  • 社区居民
5楼#
发布于:2017-04-13 11:21
BPM0942052043:如果存在协办,加签或者驳回时存在多个实际操作者,这样只能取最大完成时间。
SELECT OT_User.ObjectID,OT_User.Name
FROM OT_WorkItem w  
  LEFT OUTER JOIN OT_Use...
回到原帖
多个人操作了,肯定多个都要取出来,取个最大时间的没有意义。
游客

返回顶部