云服务器内容精选

  • 接口启动 通过调用BPM的Rest接口“http://AstroZero对外提供的默认 域名 /u-route/baas/bp/v2.0”,进行启动。 接口URI:POST AstroZero域名/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;如需设置工作流的title,可以设置系统变量$Flow.Title。 表2 响应参数 参数 参数类型 描述 resCode String 返回码,如果返回“0”代表请求成功。 resMsg String 返回消息,如果成功状态,通常会返回“Success”,其他情况会返回具体的错误信息。 result Object 在成功请求时会有内容,返回启动BPM之后,BPM实例的运行信息。 例如,创建并启动了一个BPM,BPM名称为“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 } }
  • 脚本启动 在脚本代码中,导入BPM的脚本库,通过下面脚本代码方式启动。 import * as bp from "bp"; //......(其他代码) const client = bp.newInstanceClient(); client.start(BPM名称, BPM版本号, BPM中定义的变量); 脚本样例如下: 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所在目录下,单击对应的BPM,进入BPM编辑器。 图1 单击待启动的BPM 在BPM设计页面,单击页面上方的,启动该BPM。 在BPM设计页面,可以通过如下两种方式启动。 自定义:将BPM的“开始”图元的开始类型设置为“自定义”启动,不指定事件的起因,即不需要指定触发条件,主要用于接口调用进行启动。 图2 自定义 表单:使用表单或页面,启动BPM。选择该项时,需要配置具体的表单、标准页面或高级页面。 图3 表单
  • 操作步骤 参考登录经典应用设计器中操作,登录经典版应用设计器。 将鼠标放在某个文件夹上,单击加号,选择“BPM”,去创建一个BPM。 图1 创建一个BPM 在BPM开发设计页面,选中空白区域,在右侧配置界面选择。 在“基本信息”页面,可以设置BPM的流程是否可以撤销,以及通过哪个元素后不允许撤销。 图2 BPM基本信息配置 设置后,在运行态可查看到“撤销”按钮,终止的流程该按钮置灰。 图3 运行态效果 单击,在运行态配置页面的“实例显示名”中,可配置BPM运行后,BPM实例在运行态的显示名。 在运行态配置页面的“BPM布局”区域,单击实例详情后的,可编辑BPM运行态布局。 图4 编辑BPM运行态布局 在编辑布局页面,支持修改“实例基本信息”、“当前任务”、“流程历史”的运行态显示标题,还可以编辑“流程历史”中需要显示的列。 单击编辑器上方的,保存BPM。 运行BPM后,在经典版应用设计器左侧,单击,可预览该应用。 在应用预览界面,单击“历史”,在历史任务中单击该实例后的“查看”,可查看到该BPM的运行态布局,查看布局是否符合预期。 图5 预览应用 图6 历史任务 图7 BPM运行态布局
  • 另存版本后进行定制 此处以“LoanRequest”为例进行说明,基于基线“1.0.1”版本另存一个“1.0.2”的定制版本。 参考登录经典应用设计器中操作,登录经典版应用设计器。 单击已创建的“LoanRequest”,进入BPM设计页面。 在页面上方,单击,禁用BPM。 单击页面上方的,进入另存为页面。 “类型”选择“新版本”,标签和名称与之前版本相同,单击“保存”。 系统自动进入新版本“1.0.2”的BPM设计页面。 图1 另存为新版本 当选择“新实例”时,是将原BPM重新另存并命名,新保存后为另一BPM,与选择“新版本”场景不同,适用于新建的BPM,基础BPM仍可使用。 在“1.0.2”版本的BPM设计页面,按需进行定制修改。 修改完成后,单击,进行保存。 单击,运行BPM,保证BPM运行结果符合预期。 符合预期后,单击页面上方的,启用新版本BPM。
  • 在标准页面中与BPM交互 在标准页面的自定义事件中,内置了一些交互的API : 获取变量:context.$bpm.loadVariables(): Promise 提交任务、流程: context.$bpm.submitTask(variables: {[key: string]: any}): Promise 修改变量: context.$bpm.putVariables(variables: {[key: string]: any}): Promise 图2 在标准页面的事件代码中与BPM交互