天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
12
返回列表 发新帖
楼主: 派活园

[已解决] 关于流程批量提交的问题

[复制链接]
 楼主| 派活园 发表于 2012-7-17 09:59:12 | 显示全部楼层
回复 10# bess


    都确认了!!!
bess 发表于 2012-7-17 10:01:54 | 显示全部楼层
您好,请您解压一个打包版本的10357版本去测试,我们在打包版本测试是绝对没有问题的,请悉知!!!!!!!
 楼主| 派活园 发表于 2012-7-17 10:02:37 | 显示全部楼层
回复 12# bess


    本来就是10357!!!!!
bess 发表于 2012-7-17 10:06:04 | 显示全部楼层
正在q上沟通、、、
 楼主| 派活园 发表于 2012-7-17 11:21:09 | 显示全部楼层
回复 14# bess


    这个批量提是可以实现,但是有个缺点就是不能实现“批量回退”~希望这个批量功能可以支持“批量回退”~
bess 发表于 2012-7-17 11:22:20 | 显示全部楼层
您好,我们这边会将您的这个建议作为新需求提交至研发,但是我们这边不能保证研发一定会受理,请悉知。
给您带来不便,敬请见谅!
 楼主| 派活园 发表于 2012-7-26 09:30:21 | 显示全部楼层
回复 16# bess
批量回退实现方法:
1)增加一种新的操作(可参考批量提交)
2)实现批量操作的方法如下,函数名doBatchApprove:

                    public int doBatchBack(String[] docIds, WebUser user, Environment evt, ParamsTable params,
                        Collection<String> allowedList) throws Exception {
                System.out.println("batch back start...");
                if (docIds == null || docIds.length == 0) {
                        throw new Exception("{*[Please choose one]*}");
                }

                // BillDefiVO flowVO = null;
                FlowStateRT instance = null;

                int successCount = 0;
                int failCount = 0;

                for (int i = 0; i < docIds.length; i++) {
                        Document doc = (Document) doView(docIds);

                        if (doc != null) {
                                instance = doc.getState();

                                if (instance != null) {
                                        try {
                                                IRunner runner = JavaScriptFactory.getInstance(params.getSessionid(), instance.getFlowVO()
                                                                .getApplicationid());
                                                runner.initBSFManager(doc, params, user, new ArrayList<ValidateMessage>());

                                                String currNodeId = "";
                                                // FlowStateRT rt = doc.getState();
                                                if (instance != null) {
                                                        NodeRT node = instance.getNodeRT(user);
                                                        if (node != null)
                                                                currNodeId = node.getNodeid();
                                                }

                                                //Node nextNode = StateMachine.getNextAllowedNode(allowedList, instance.getFlowVO(), currNodeId);
                                               
                                                StateMachineHelper sh = new StateMachineHelper();
                                                Node nextNode = sh.getBackToNodeList(doc, currNodeId, user).iterator().next();//这个是关键,获取流程回退的节点

                                                doc.setLastFlowOperation(FlowType.getActionCode(nextNode));

                                                doApprove(params, instance, currNodeId, new String[] { nextNode.id }, FlowType
                                                                .getActionCode(nextNode), "", evt, user);

                                                successCount++;
                                        } catch (Exception e) {
                                                failCount++;
                                        }
                                }
                        }
                }
                System.out.println("batch back end...");
                log.info("Approve " + docIds.length + " document(s) with " + failCount + " fail(s)");
                return successCount;
        }
bess 发表于 2012-7-26 09:40:17 | 显示全部楼层
非常感谢楼主分享,现已整理为精华帖,地址如下:http://teemlink.com/bbs/viewthread.php?tid=162879&extra=

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 12:36

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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