启动BPM
您需要启动BPM,才能使整个BPM流程运转起来。
启动BPM有如下三种方式:
- 在BPM开发设计页面单击
启动该BPM。BPM的开始类型分以下两种:
- 自定义:将BPM的“开始”图元的开始类型设置为“自定义”启动。不指定事件的起因,即不需要指定触发条件。主要用于接口调用进行启动。
- 表单:使用表单或者页面启动BPM。选择该项时,您需要配置具体的表单、标准页面或者高级页面。将BPM的“开始”图元的开始类型设置为“表单”启动。
- 接口启动:通过调用BPM的Rest接口“http://AppCube对外提供的默认域名/u-route/baas/bp/v2.0”进行启动。
接口URI:POST AppCube域名/u-route/baas/bp/v2.0/runtime/instances
表1 请求参数 参数
是否必选
参数类型
描述
name
是
String
BPM的名称,在界面处创建BPM时配置的名称。
version
否
String
BPM版本号,为可选参数,因为一个BPM可以存在多个版本。如不带版本号表示运行当前启用的版本。
variables
否
Object
BPM元数据中定义的变量,包括自定义变量和系统变量, key-value形式,key为变量名字,value为变量的值。如果需要在启动BPM前设置BPM的变量,可以填写该参数。如需启动时设置变量,可以在variables中设置系统变量$Flow.BusinessKey;如需设置BP title,可以设置系统变量$Flow.Title。
表2 响应参数 参数
参数类型
描述
resCode
String
返回码,如果返回“0”代表请求成功。
resMsg
String
返回消息,如果成功状态,通常会返回“Success”,其他情况会返回具体的错误信息。
result
Object
在成功请求时会有内容,返回启动BPM之后,BPM实例的运行信息。
如下创建并启动了一个BPM,BPM名称为“createCloudOK_NEW”,版本号为“1.0.1”,带有4个启动参数。
- 请求示例
POST AppCube域名/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 } }
- 请求示例
- 脚本启动:在脚本代码中导入BPM的脚本库。通过下面脚本代码方式启动。
import * as bp from "bp"; //......(其他代码) const client = bp.newInstanceClient(); client.start(BPM名称, BPM版本号, BP中定义的变量);
脚本样例如下:
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" } ] }

接口启动或者脚本启动,入参中指定BPM版本号,可以不用启用(即激活)BPM。
