安装该应用后,调用子流程
支持配置、启动远程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 + ".........完");
//业务逻辑处理代码
......
}
}
有关调用子流程其它属性的详细介绍参见这里。