Matrix分布式网格服务

联邦子流程

安装该应用后,调用子流程支持配置、启动远程AWS服务器上的流程。

服务位置

当选择远程AWS(remote)时,可进阶设置远程AWS名称,该列表自动显示已配置的网格节点

子流程模型

配置远程AWS节点流程模型。

实例控制

仅支持映射到子流程启动者选项。

主子流程数据映射

联邦子流程主子流程数据映射需要用户开发实现。AWS平台提供事件接口在主子流程间传递JSON串,供用户自由组合数据映射。

主流程向子流程映射数据

主流程callactivity向远程子流程传参

事件注册到主流程callactivity节点“CALLACTIVITY_BEFORE_SUBPROCESS_START 子流程实例启动前”事件


package com.actionsoft.apps.addons.matrix.test;

import com.actionsoft.bpms.bpmn.constant.SubProcessConst;
import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext;
import com.actionsoft.bpms.bpmn.engine.listener.ExecuteListener;
import com.alibaba.fastjson.JSONObject;

/**
 * callactivity向远程子流程传参
 *
 * @author chengy
 *
 */
public class CallActivitySubInstStartListener extends ExecuteListener {

    @Override
    public void execute(ProcessExecutionContext ctx) throws Exception {
        JSONObject jo = new JSONObject();
        //业务逻辑处理代码
        ......
        jo.put("XXX", "value");
        ctx.setParameter(SubProcessConst.PARAM_CONTEXT_DATA, jo);
        System.out.println("主流程向远程子流程传参:" +  jo.toJSONString() + ".......完");
    }

}

远程子流程接收主流程callactivity传递的参数

事件注册到远程AWS服务器相应子流程流程属性PROCESS_AFTER_CREATE流程创建后事件

 package com.actionsoft.apps.addons.matrix.test;

import com.actionsoft.bpms.bpmn.constant.SubProcessConst;
import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext;
import com.actionsoft.bpms.bpmn.engine.listener.ExecuteListener;

/**
 * 远程子流程接收callactivity传参
 *
 * @author chengy
 *
 */
public class SubInstAfterCreateExecuteListener extends ExecuteListener {

    @Override
    public void execute(ProcessExecutionContext ctx) throws Exception {
        Object o = ctx.getParameter(SubProcessConst.PARAM_CONTEXT_DATA);
        System.out.println("远程子流程接收到主流程传递的参数:::" + o + ".......完");
        //业务逻辑处理代码
        ......
    }

}

子流程向主流程映射数据

远程子流程向主流程callactivity传参

事件注册到远程AWS服务器相应子流程流程属性 PROCESS_BEFORE_COMPLETE 流程完成前事件

package com.actionsoft.apps.addons.matrix.test;

import com.actionsoft.bpms.bpmn.constant.SubProcessConst;
import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext;
import com.actionsoft.bpms.bpmn.engine.listener.InterruptListener;
import com.alibaba.fastjson.JSONObject;

/**
 * 远程子流程向callactivity传参, 事件注册到远程AWS服务器相应子流程流程属性 `PROCESS_BEFORE_COMPLETE 流程完成前`事件
 *
 * @author chengy
 *
 */
public class SubInstBeforeEndExecuteListener extends InterruptListener {

    @Override
    public boolean execute(ProcessExecutionContext ctx) throws Exception {
        JSONObject jo = new JSONObject();
        //业务逻辑处理代码
        ......
        jo.put("y", 1);
        ctx.setParameter(SubProcessConst.PARAM_CONTEXT_DATA, jo);
        System.out.println("远程子流程向主流程传递的参数:::" + jo.toJSONString() + ".........完" );
        return true;
    }

}

主流程接收远程子流程传递过来的参数

事件注册到主流程callactivity节点“CALLACTIVITY_AFTER_SUBPROCESS_COMPLETE 子流程实例结束后”事件

package com.actionsoft.apps.addons.matrix.test;

import com.actionsoft.bpms.bpmn.constant.CallActivityDefinitionConst;
import com.actionsoft.bpms.bpmn.constant.SubProcessConst;
import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext;
import com.actionsoft.bpms.bpmn.engine.core.delegate.TaskBehaviorContext;
import com.actionsoft.bpms.bpmn.engine.listener.ExecuteListener;

/**
 * callactivity接收远程子流程传参,该事件注册到主流程callactivity节点“CALLACTIVITY_AFTER_SUBPROCESS_COMPLETE 子流程实例结束后”事件
 *
 * @author chengy
 *
 */
public class CallActivitySubInstEndistener extends ExecuteListener {

    @Override
    public void execute(ProcessExecutionContext ctx) throws Exception {
        TaskBehaviorContext subCtx = (TaskBehaviorContext) ctx.getParameter(CallActivityDefinitionConst.PARAM_CALLACTIVITY_SUB_CONTEXT);
        Object o = subCtx.getParameter(SubProcessConst.PARAM_CONTEXT_DATA);
        System.out.println("主流程接收到的子流程传递过来的参数:::" + o + ".........完");
        //业务逻辑处理代码
        ......
    }

}

有关调用子流程其它属性的详细介绍参见这里



Seven
 010-62962343-690
 liujx@actionsoft.com.cn
感谢您对该文档的关注!如果您对当前页面内容有疑问或好的建议,请与我联系。如果您需要解答相关技术问题请登录AWS客户成功社区