jbpm在rest API中修改 task Variable

       最近做的jbpm开发时修改远程rest接口,而我需要做的是:在human task做complete动作的时候修改task Variable:

      问题起因于,刚开始项目组画的流程图没有考虑分支的问题,后来希望加上流程分支,在human task结点,如果审批的人不同意,那么后面的分支网关经过判断后走另外一条路。而我们尝试过在human task调用的rest API中修改流程变量,但是失败。后来我发现human task有一个mapping机制,就是可以把process variable和task variable映射,做到改变task variable,最后对应映射的process variable也会被改变。具体机制和操作见帖子:《JBoss 系列八十三: jBPM 6 中 Process Variable 和 Task Variable 以及它们之间的Mapping模式

http://blog.csdn.net/kylinsoong/article/details/17998427

然而实例代码和官方example都是直接运行流程图,调用的是本地的代码,修改机制不太一样。

我在rest api中用本地修改的方法不一样。我需要在complete前加上修改task variable的代码

            //cmd = new CompleteTaskCommand(taskId, userId, data);
            HashMap<String, Object> contentParams = new HashMap<String, Object>();
            contentParams.put("out_variable", token); 
            RuntimeEngine runtimeEngine = runtimeMgrMgr.getRuntimeEngine(task.getTaskData().getDeploymentId(), task.getTaskData().getProcessInstanceId());
            KieSession kieSession = runtimeEngine.getKieSession();
            TaskService taskService = runtimeEngine.getTaskService();
            long contentId = ((InternalTaskService)taskService).addContent(taskId, contentParams);
            
            cmd = new CompleteTaskCommand(taskId, userId, null);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值