代码启动流程

一、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参数的值就可以启动流程

results matching ""

    No results matching ""

    results matching ""

      No results matching ""