代码启动流程
一、js启动流程
js中启动流程可以在页面中放工作流组件,调用工作流组件的API即 PC端参考如下:
Model.prototype.onButton1Click=function(event){
var processData = this.comp("mainData")
var processCode = 'liuchengqdcs';//要启动的流程编码
this.comp("wfui").start(processCode, "js启动流程", processData.getCurrentRowID(), null, null);//js启动流程是流程标题
}
mainData:要启动流程的业务数据的xid
wfui:工作流组件的xid
小程序端和企业桌面端参考如下:
onButton2Tap(event){
var data = this.comp("restData1");
var processCode = 'liuchengqdcs';//要启动的流程编码
this.comp("wfmui").start(processCode, "js移动端启动", data.getCurrentRowID(), null, null);//js移动端启动是流程标题
}
restData1:要启动流程的业务数据的xid
wfmui:工作流组件的xid
二、java中调用API启动
通过com.justep.util.process.ProcessUtil中提供的API实现,启动流程的API有不同参数的区分,具体可以参考《高级篇——API——ProcessUtil工具类》中的描述
如下是其中的一个实例
JSONObject attr = new JSONObject();
attr.put("sData2", sData2);
JSONObject vars = new JSONObject();
vars.put("test", "bb");
ProcessResult result = ProcessUtil.startProcess(SpringWebUtil.getRequest(), "/SA/wf/default/liuchengqdcs", sData1, null, attr, vars);
List<Task> tasks = result.getActiveTasks();
/SA/wf/default/liuchengqdcs:liuchengqdcs是要启动的流程编码
sData1:要启动流程的业务数据主键值
attrs:任务属性,可以在这里设置sData2,sData3等任务属性的值
vars:流程变量的初始值
三、定义服务通过调用底层动作启动流程
自定义服务实现流程的启动,在服务的实现中需要通过http请求的方式调用平台底层的action实现,具体参考如下:
流程启动的时候需要业务数据的主键值,因此本例是在服务中定义了一个sData1的参数,在调用服务的时候把需要的数据传到服务中使用
服务定义的具体java代码如下:
public String startFlow(String sData1) throws Exception {
//请添加你的业务代码
String serviceUrl = ServiceUtil.getServiceUrl("wf")+"/BusinessServer/service/SA/wf/manager/managerProcess/main";//http请求的具体服务的url
HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
Map<String, String> headers = ServiceUtil.getExtHeaders(request);
String action = "externalStartProcessAction"; //启动流程的action
JSONObject attributes = new JSONObject();
attributes.put("sData1", sData1);
attributes.put("sName", "后端action启动测试");//设置任务标题
JSONObject parameters = new JSONObject();
parameters.put("process", "/SA/wf/default/liuchengqdcs");//liuchengqdcs是要启动的流程编码
parameters.put("attributes",attributes);
JSONObject params = new JSONObject();
params.put("action", action);
params.put("parameters",parameters);
JSONObject reslut = ServiceUtil.post(serviceUrl, params, headers);
return reslut.toJSONString();
}
如上在需要的地方调用startFlow服务传sData1参数的值就可以启动流程