创建空白流程服务编排
在数据发布、数据变更等流程运行过程中,用户需要通过调用流程服务API,可以将部件、BOM(Bill Of Material,物料清单)、工艺等数据传递给第三方系统,实现上下游系统之间数据同步。此时,可以通过定义流程服务编排,生成相应的流程服务API,用以后续在流程元模板的“流程编辑”中应用后,实现流程与外部系统对接,如数据同步、数据集成、消息通知等场景。
前提条件
已登录流程引擎。
手动创建流程服务编排
- 在左侧导航栏中,选择“流程服务编排”页面。 ,进入
- 单击“创建”,展开“创建服务”页面。
- 选择“手动创建”页签,并在“基本信息”中,参照如下说明进行设置。
图1 手动创建-基本信息
表1 手动创建-基本信息参数说明 参数
参数说明
服务名称
用户自定义,表示需要创建的流程服务编排的名称。
tag
用户自定义,可根据用途、分组、流程等各维度自定义,以便更灵活管理流程服务编排。
服务来源
服务来源类型,支持XDM、外部系统和内部系统三种来源。
- XDM:表示当前数据建模引擎运行态中的全量数据服务。
- 外部系统:表示外部系统的服务,需要配置域名白名单后才可调用成功。如何配置域名白名单请参见管理我的流程任务。
- 内部系统:表示流程引擎提供的服务,针对需要对流程引擎的API做改造的场景。默认为“内部系统”。
批量执行
设置是否需要批量执行。
- 是:批量执行接口。
- 否:不是批量执行接口,默认为“否”。
变量名
“批量执行”选择为“是”后,您可以根据实际业务需求,定义变量名。
是否异步执行
设置是否异步执行。
- 是:异步执行。
- 否:非异步执行,默认为“否”。
查询方式
“是否异步执行”选择为“是”后,您可以根据实际业务需求进行选择。当前仅支持API查询方式。
服务描述
用户自定义,用于说明当前创建的流程服务编排的作用、使用场景等,以便于其他用户了解和使用该流程服务编排。
长度不能超过64个字符。
- 单击“下一步”,进入“配置信息”页面。
- 在“配置信息”中,“服务类型”选择“HTTP”,并参照如下说明进行设置。
图2 手动创建-配置信息
表2 手动创建-配置信息参数说明 参数
参数说明
服务地址
用于调用服务的完整URL地址,由用户根据实际服务部署情况自定义填写。长度不能超过200个字符(含协议头)。
示例:https://api.example.com/service/v1
方法类型
HTTP请求方法(也称为操作或动词),用于表示当前流程服务编排请求操作的类型。支持的HTTP请求方法类型如下:
- GET:用于获取资源信息,通常用于查询操作,例如获取用户信息、查询数据模型列表等。
- POST:用于提交数据,适用于创建或更新资源操作,例如提交表单、上传文件等。
- PUT:用于更新资源。通常用于更新一个已存在的资源,例如修改用户信息、更新数据模型信息等。
Header参数
Header参数是包含在HTTP请求头(Header)中的键值对,通常用于请求或响应相关的元数据,例如认证信息(Authorization)、内容类型(Content-Type)等。
选择指定方法类型后,您可以在“Header参数”页签下,进一步定义Header参数。
- 参数名称:Header参数的名称,例如Set-Cookie。
- 参数值:参数的值,例如123456。如需使用变量作为参数值,使用${变量名}格式定义,例如${Cookie}。
- 加密:如果您想对参数值进行加密,可设置为
。开启加密后,参数值会显示为“******”。
Query参数
Query参数是附在URL后面的键值对,用于传递请求的参数和值,例如数据筛选、分页、排序等操作。URL以?key=value的形式呈现,多个参数之间用&进行分隔(即URL?key1=value1?key2=value2)。
选择指定方法类型后,您可以在“Query参数”页签下,进一步定义Query参数。
- 参数名称:Query参数的名称,例如page。
- 参数值:参数的值,例如1。如需使用变量作为参数值,使用${变量名}格式定义,例如${page}。
- 加密:如果您想对参数值进行加密,可设置为
。开启加密后,参数值会显示为“******”。
Body参数
Body参数是包含在HTTP请求体中的数据,通常用于传递大量的数据或者复杂的数据结构。根据传输格式和内容类型的不同,Body参数可以有多种类型,目前支持设置的参数类型包括JSON和FORM_DATA。
选择指定方法类型后,您可以在“Body参数”页签下,进一步定义Body参数。
需要注意的是,GET方法不支持配置Body参数。
- 参数类型:
- JSON:JSON是一种轻量级的数据交换格式,通常用于传递结构化数据(如对象、数组)。
- FORM_DATA:是一种在HTTP请求中用于编码表单数据的机制,通常用于上传文件或包含二进制数据的表单提交。
- Rest模板:“参数类型”选择为“JSON”后,您可以根据实际业务需求预先定义JSON结构,用于规定在调用流程服务编排时,客户端发送给服务器端的数据格式。
JSON入参模板示例如下:
{ "username": "string", "phone": "string", "age": 0 }
如需使用变量作为入参值,使用${变量名}格式定义,对应JSON入参模板示例如下:
{ "username": "${stringUsername}", "phone": "${stringPhone}", "age": ${numberAge} }
- Form参数:在HTTP请求中,FORM_DATA可以通过预设参数的方式提前定义好表单数据,以便在请求时直接使用。请根据实际业务需求进行定义。
- 参数名称:通常是表单元素的name属性值,例如username。
- 参数值:通常是用户输入的数据或表单元素的当前值,例如${username}或John。
- 加密:如果您想对参数值进行加密,可设置为
。开启加密后,参数值会显示为“******”。
返参模板
返参模板是定义流程服务编排时预先设定的标准化响应格式,用于明确流程服务编排调用后返回的数据格式、结构和内容规则。支持用户设置JSON格式的返回参数,请根据实际业务需求进行设置。
返参模板示例如下:
{ "userId": "$.user.id", "userName": "$.user.name", "lastLoginTime": "$.logs[0].timestamp" }
请求参数(Query/Header/Body)
指的是调用流程服务编排时传递给流程元模板的入参。
勾选此配置项后,您可以根据实际业务需求预先定义请求参数,以便后续在编排流程元模板的“UI编辑”页面时,为绑定的事件配置相应入参。
- 参数名:请求参数的名称,用户自定义。
- 类型:指定请求参数的数据类型,支持的数据类型包括:BOOLEAN(布尔型)、BYTE(字节型)、SHORT(短整型)、INTEGER(整型)、LONG(长整型)、STRING(字符串型)、FLOAT(浮点型)、DOUBLE(双精度浮点型)、OBJECT(对象型)、BIG_DECIMAL(大数值型)、DATE(日期型)和FILE(文件型)。
- 是否为数组:设置参数是否为数组形式。
- 是:表示该参数为数组类型,适用于处理复选框提交的数据或者需要绑定多个同名参数的情况。例如,在表单中多个选项被选中,可通过定义数组类型的入参来接收这些数据。
- 否:表示该参数为非数组类型,默认设置为“否”。
- 位置:设置请求参数的传递方式,可选择:QUERY(查询字符串)、HERDER(头部信息)和BODY(请求体)。
- 是否必填:设置是否为必填参数。
- 是:表示该参数为必填项。
- 否:表示该参数为非必填项。
- 是否为模板:设置是否为模板参数。
- 是:表示该参数为模板参数。
- 否:表示该参数为非模板参数。
- 默认值:用户自定义。
- 描述:用户自定义。
响应参数
指的是完成流程服务编排调用后返回给流程元模板的数据。
勾选此配置项后,您可以根据实际业务需求预先定义响应参数,以便后续在编排流程元模板的“UI编辑”页面时,为绑定的事件配置相应出参。
- 参数名:响应参数的名称,用户自定义。
- 类型:指定响应参数的数据类型,支持的数据类型包括:BOOLEAN(布尔型)、BYTE(字节型)、SHORT(短整型)、INTEGER(整型)、LONG(长整型)、STRING(字符串型)、FLOAT(浮点型)、DOUBLE(双精度浮点型)、OBJECT(对象型)、BIG_DECIMAL(大数值型)、DATE(日期型)和FILE(文件型)。
- 是否为数组:设置返回的数据是否为数组形式。
- 是:表示该参数为数组类型,常用于返回列表数据(如用户列表、订单集合等)。
- 否:表示该参数为非数组类型,默认设置为“否”。
- 描述:用户自定义。
- 单击“保存并发布”。