起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6082|回复: 12

[结贴] 关于会签的问题请教

[复制链接]
发表于 2018-6-26 11:53:21 | 显示全部楼层 |阅读模式
本帖最后由 忘了忘了 于 2018-6-26 11:57 编辑

一个流程有A到C三个环节。期中B环节是两个人会签。怎么设置B的两个人都审批了才会流转到下一个人去呢?
现在只要一个人审批了,就流转到下一个环节了。(执行规则写的是共同,同时)

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-6-26 13:15:22 | 显示全部楼层
执行规则中共同 同时就可以,不起作用确认生效条件设置的是否正确
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-26 15:04:24 | 显示全部楼层
jishuang 发表于 2018-6-26 13:15
执行规则中共同 同时就可以,不起作用确认生效条件设置的是否正确

现在的问题是共同之后// 下个任务列表
                List<Task> nextTasksList = ProcessUtils.getTaskInProcessContext().getAllNextActiveTask();用这个取不到后续环节,是什么原因?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-6-26 15:10:02 | 显示全部楼层
具体需求要做什么?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-26 15:12:03 | 显示全部楼层
jishuang 发表于 2018-6-26 15:10
具体需求要做什么?

现在共同之后我需要得到下一个环节的taskId等等信息,需要调用方法给企业微信发通知,问题是之前抢占模式之后是可以取到的,但是共同之后这个方法取到的是空,请问是什么原因呢?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-6-26 16:01:06 | 显示全部楼层
只有最后一个人处理的时候才可以获取到
可以判断是不是最后一个人处理再去操作http://docs.wex5.com/bex5-process-question-list-10049/
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-26 16:02:42 | 显示全部楼层
jishuang 发表于 2018-6-26 16:01
只有最后一个人处理的时候才可以获取到
可以判断是不是最后一个人处理再去操作http://docs.wex5.com/bex5-p ...

我试过,最后一个人处理的时候也是获取不到的。就是因为都获取不到。我才说的。两个人都处理了,获取这个下一个环节还是为空
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-6-26 16:32:39 | 显示全部楼层
判断也是在流转后,获取也是在流转后,会获取不到?

http://docs.wex5.com/bex5-process-question-list-10073/
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-26 16:39:38 | 显示全部楼层
jishuang 发表于 2018-6-26 16:32
判断也是在流转后,获取也是在流转后,会获取不到?

http://docs.wex5.com/bex5-process-question-list-10 ...

代码如下
// 流转后
        public static void p01_OutManagerProcessAfterAdvance() {
                Map<String, Object> varMap = new HashMap<String, Object>();
                varMap.put("fRelationID", ProcessUtils.getProcessData1());

                // 当前环节信息
                ActivityInstance currentActivity = ProcessUtils.getAI();
                varMap.put("fCurrentActivityName", currentActivity.getActivityID());
                varMap.put("fCurrentActivityLabel", currentActivity.getActivityLabel());

                // 下个任务列表
                List<Task> nextTasksList = ProcessUtils.getTaskInProcessContext().getAllNextActiveTask();
                System.out.println(nextTasksList.size()+"***00000000000000000000");
                System.out.println(currentActivity.getActivityID()+"++");
                // 根据不同的环节设置不同的处理状态
                if ("businessActivity1".equals(currentActivity.getActivityID())) {
                        varMap.put("fExecute", "已提交");
                } else if ("businessActivity2".equals(currentActivity.getActivityID())) {
                        varMap.put("fExecute", "分管领导已审批");
                } else if ("businessActivity3".equals(currentActivity.getActivityID())) {
                        varMap.put("fExecute", "行政中心已审批");
                } else if ("businessActivity4".equals(currentActivity.getActivityID())) {
                        varMap.put("fExecute", "领导已审批");
                } else if ("businessActivity5".equals(currentActivity.getActivityID())) {
                        varMap.put("fExecute", "已完成");
                }

                // 更新当前人的处理信息
                KSQL.executeUpdate(
                                "update M020_Execute p set p.fExcuteTime=:currentDateTime(),p.fExecute=:fExecute where p.fExecutorID=:currentPersonID() and p.fActivityName=:fCurrentActivityName and p.fRelationID=:fRelationID",
                                varMap, C26V01Constant.DATAMODEL_M001, null);

                // 下个任务列表
                Iterator<Task> nextTasks = nextTasksList.iterator();
               
                while (nextTasks.hasNext()) {
                        // 当前任务的执行列表
                        //System.out.println(nextTasks.next().getExecutorTasks().size()+"------------");
                        Iterator<Task> executeTasks = nextTasks.next().getExecutorTasks().iterator();
                        while (executeTasks.hasNext()) {
                                Task executeTask = executeTasks.next(); // 当前处理任务-+
                                System.out.println("++++++++++++++++++++++++++++++++++");
                                // 下一环节信息
                                varMap.put("fNextActivityName", executeTask.getActivity());
                                varMap.put("fCrrProcessLabel", executeTask.getActivityName());
                                varMap.put("fCrrHandlePsnID", executeTask.getExecutorPersonID());
                                varMap.put("fCrrHandlePsnName", executeTask.getExecutorPersonName());
                                // 更新下个任务处理人处理数据
                                varMap.put("fTaskID", executeTask.getId());
                                varMap.put("fExecutorID", executeTask.getExecutorPersonID());
                                KSQL.executeUpdate(
                                                "update M020_Execute p set p.fTaskID=:fTaskID,p.fExecute='处理中' where p.fExecutorID=:fExecutorID and p.fRelationID=:fRelationID and p.fExecute is null and p.fActivityName=:fNextActivityName",
                                                varMap, C26V01Constant.DATAMODEL_M001, null);

                                // 处理主表
                                KSQL.executeUpdate(
                                                "update M002_OutManager p set p.fStatus='处理中',p.fCrrProcessLabel=:fCrrProcessLabel,p.fCrrHandlePsnID=:fCrrHandlePsnID,p.fCrrHandlePsnName=:fCrrHandlePsnName where p=:fRelationID",
                                                varMap, C26V01Constant.DATAMODEL_M001, null);

                                // 根据下一环节信息发送通知
                                if ("businessActivity1".equals(executeTask.getActivity())) {

                                } else if ("businessActivity2".equals(executeTask.getActivity())) {
                                        Message.send2Activity2ForP01(ProcessUtils.getProcessData1(), executeTask);
                                } else if ("businessActivity3".equals(executeTask.getActivity())) {
                                        Message.send2Activity3ForP01(ProcessUtils.getProcessData1(), executeTask);
                                } else if ("businessActivity4".equals(executeTask.getActivity())) {
                                        Message.send2Activity4ForP01(ProcessUtils.getProcessData1(), executeTask);
                                } else if ("businessActivity5".equals(executeTask.getActivity())) {
                                        Message.send2Activity5ForP01(ProcessUtils.getProcessData1(), executeTask);
                                }

                        }

                }
麻烦看下是什么原因?就是会签之后取不到下一个环节的
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-6-26 16:56:54 | 显示全部楼层
看8楼发的获取task的方法
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-13 09:21 , Processed in 0.055961 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表