更新时间:2023-04-27 GMT+08:00
分享

启动工作流

在低代码平台中,您可以通过如下三种方式,启动工作流。

在工作流设计页面启动工作流

  1. 参考如何登录新版应用设计器中操作,登录新版应用设计器。
  2. 在左侧导航栏中,选择“流程”
  3. 单击对应工作流后的,选择“编辑”
  4. 在工作流设计页面,单击页面上方的,启动该工作流。

    在工作流设计页面,可以通过如下两者方式启动。
    • 自定义:将工作流的“开始”图元的开始类型设置为“自定义”启动,不指定事件的起因,即不需要指定触发条件,主要用于接口调用进行启动。

    • 表单:使用表单或页面,启动工作流。选择该项时,需要配置具体的表单、标准页面或高级页面。

接口启动

通过调用工作流的Rest接口“http://AstroZero对外提供的默认域名/u-route/baas/bp/v2.0”,进行启动。

接口URI:POST AstroZero域名/u-route/baas/bp/v2.0/runtime/instances

表1 请求参数

参数

是否必选

参数类型

描述

name

String

工作流的名称,在界面处创建工作流时配置的名称。

version

String

工作流版本号,为可选参数,因为一个工作流可以存在多个版本。如不带版本号表示运行当前启用的版本。

variables

Object

工作流元数据中定义的变量,包括自定义变量和系统变量, key-value形式,key为变量名字,value为变量的值。如果需要在启动工作流前设置工作流的变量,可以填写该参数。如需启动时设置变量,可以在variables中设置系统变量$Flow.BusinessKey;如需设置BP title,可以设置系统变量$Flow.Title。

表2 响应参数

参数

参数类型

描述

resCode

String

返回码,如果返回“0”代表请求成功。

resMsg

String

返回消息,如果成功状态,通常会返回“Success”,其他情况会返回具体的错误信息。

result

Object

在成功请求时会有内容,返回启动工作流之后,工作流实例的运行信息。

例如,创建并启动了一个工作流,工作流名称为“createCloudOK_NEW”,版本号为“1.0.1”,带有4个启动参数。

  • 请求示例
    POST AstroZero域名/u-route/baas/bp/v2.0/runtime/instances
        
     {
        "name":"createCloudOK_NEW",
        "version":"1.0.1",
        "variables":{
            "name":"sun",
            "memorySize":"15",
            "storageSize":"15",
            "expiryDate":"2018-12-12"
        }
    }
  • 响应示例
    {
        "resCode":"0",
        "resMsg":"Success",
        "result":{
            "name":"bpName1",
            "version":"1.0.1",
            "id":"002N000000Sy2NphoRbU",
            "processDefID":"001L000000S8Yi3xG9Gi",
            "interviewLabel":"BP Label 1",
            "nextElem":"subProcess",
            "isTest":true,
            "state":"Dispatched",
            "bpStatus":"New",
            "urgency":0,
            "taskOutcome":"",
            "businessKey":"002N000000Sy2NphoRbU",
            "startTime":"2019-08-27 10:53:04",
            "endTime":"",
            "Ext1":"",
            "Ext2":"",
            "Ext3":"",
            "Ext4":"",
            "Ext5":"",
            "Ext6":"",
            "Ext7":0,
            "Ext8":0,
            "suspended":false,
            "isClosed":false
        }
    }

脚本启动

在脚本代码中,导入工作流的脚本库,通过下面脚本代码方式启动。
import * as bp from "bp";
//......(其他代码)
const client = bp.newInstanceClient();  
client.start(工作流名称, 工作流版本号, 工作流中定义的变量); 

脚本样例如下:

import * as bp from 'bp';
let client = bp.newInstanceClient();
let res = client.start("test", "1.0.1", {  "foo": 1,  "bar": 3});

输出样例如下:

{
    "interviewId": "002N000000FdtN6xwgjI",
    "screen": {
        "allowBack": false,
        "allowFinish": true,
        "allowNext": true,
        "allowPause": false,
        "helpText": "",
        "label": "input phone number",
        "name": "inputphonenumber",
        "pausedText": "",
        "screenFields": [
            {
                "dataType": "text",
                "defaultValue": "135xxxxxxxx",
                "fieldType": "InputField",
                "helpText": "",
                "isRequired": false,
                "label": "phone number",
                "name": "phoneNumber"
            }
        ]
    }
分享:

    相关文档

    相关产品