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

QQ登录

只需一步,快速开始

12
返回列表 发新帖回复
楼主: hecr

流程高级特性之: 批启动批流转

  [复制链接]

170

主题

838

帖子

2136

积分

金牌会员

Rank: 6Rank: 6

积分
2136
QQ
发表于 2014-5-23 17:20:07 | 显示全部楼层
本帖最后由 hua_love2011 于 2014-5-23 17:22 编辑

你好,我给“批流转”按钮添加了事件
代码如下:
stt_SCZBZWTCXActivity.trigger4Click = function(event) {
        batchAdvanceProcess("process1");
}

function batchAdvanceProcess(processID){
        var p = justep.xbl(processID);
        //使用其中的一条待办执行流转查询,并弹出流转对话框给用户修改,以得到control信息
        tasks=justep.xbl("dataTaskDXJ").getID();
        p.advanceQueryExt(tasks[0]);
}

给process控件添加了onBeforeAdvance 事件 代码如下:

stt_SCZBZWTCXActivity.process1BeforeAdvance = function(event) {
        event.cancel = true; //取消后续操作

        //所有的待办按得到的control中的执行人进行流转
        var options = {};
        options.process = justep.Context.getCurrentProcess();
        options.activity =  justep.Context.getCurrentActivity();
        options.action = "batchAdvanceAction";
        options.directExecute = true;
        
        options.parameters = new justep.Request.ActionParam();
        var taskParam = new justep.Request.ListParam();
        for (var i=0; i<tasks.length; i++){
                taskParam.add(tasks);
        }
        options.parameters.setList("datas", taskParam);

        var controlData = null;
        if (event.processControl.getDataType != undefined){
                //2000 sp2及之后的版本
                if (event.processControl.getDataType() == "json"){
                        options.contentType = "json";
                        controlData = event.processControl.getData();
                }else{
                        options.contentType = "xml";
                        controlData = event.processControl.getXMLString();
                }
        }else{
                //2000 sp2之前的版本
                options.contentType = "xml";
                controlData = event.processControl.getXMLString();
        }
        
        
        var controlParam = new justep.Request.ObjectParam(controlData, "com.justep.system.process.ProcessControl");
        options.parameters.setObject("control", controlParam);
        justep.Request.sendBizRequest2(options);
        
        justep.Portal.closeWindow();
};

后台java类按照你的写的,没有被执行到
// 批量处理流程
public static void batchAdvance(List<String> datas,ProcessControl control) {
  System.out.println("--------------------------");
  for (String data : datas) {
   String task = getTaskFromData(data);
   if (!task.equals("")) {
    ProcessControl cur = ProcessUtils.advanceProcessQuery(task);
    modifyFlowToExecutor(cur, control);
    modifyNoticeExecutor(cur, control);

    ProcessUtils.advanceProcess(task, cur);
   }
  }

}
在执行的时候会报“JUSTEP230033, 执行流转查询出错, 任务标识不允许为空”错误,请问怎么解决呢?

你不向前奔跑,没有人愿意停下来等你!
匿名  发表于 2014-7-4 18:46:41
附言没有都添加上,批量的时候只会有一条任务数据加上了附言。是不是需要在java添加一个方法?该怎么做?

87

主题

397

帖子

1330

积分

金牌会员

Rank: 6Rank: 6

积分
1330
QQ
发表于 2014-7-4 18:48:10 | 显示全部楼层
附言没有都添加上,批量的时候只会有一条任务数据加上了附言。是不是需要在java添加一个方法?该怎么做?

80

主题

345

帖子

1668

积分

金牌会员

Rank: 6Rank: 6

积分
1668
发表于 2014-7-10 09:10:55 | 显示全部楼层
mark
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

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

GMT+8, 2024-6-18 18:24 , Processed in 0.067928 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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