针对“APIEDIT”服务类型的流程服务编排,流程引擎提供了基于BPMN(业务流程模型和符号)标准的可视化编排能力。
当业务逻辑较为复杂(如涉及多接口串行调用、条件分支路由、数据格式转换或并发处理)时,用户无需编写底层代码,即可通过“拖拉拽”的方式在可视化画布中编排“执行流程”,实现工业数据在上下游系统间的复杂流转与加工。
进入“执行流程”可视化配置页面
创建“APIEDIT”服务类型的流程服务编排时,单击“执行流程”,系统自动进入可视化配置页面。页面布局如下:
表1 可视化配置页面功能介绍 | 区域 | 功能说明 |
| 顶部导航栏 | 全局控制与视图管理。 - 编辑:提供撤销、恢复、复制、粘贴、搜索、删除等快捷操作入口。
- 查看:支持一键查看底层JSON源码,便于排查复杂逻辑问题。
- 视图:控制左侧工具栏、右侧属性面板的显示/隐藏,提供沉浸式编辑体验。
- 帮助:提供工具栏说明与快捷键命令指南。
:实时保存当前画布数据。 |
| 左侧工具面板 | :流程工具,提供执行流程所需的所有标准组件(事件、网关、任务等),支持直接拖拽至中央画布。
|
| 在线编辑区 | 核心画布。位于页面中央,用于承载和展示业务逻辑。在此区域进行组件的拖拽摆放、连线、属性配置及样式调整。 |
| 右侧属性面板 | 配置中心。用于配置流程全局及当前选中节点的属性。 - 未选中节点时:显示为“Process_1”,用于配置当前流程服务编排的全局常规信息。
- 选中特定节点时:切换为该节点的专属配置界面(如常规信息、执行逻辑等)。
|
执行流程支持的流程工具
表2 流程工具分类说明 | 分类 | 说明 |
| 工具 | :激活抓手工具,激活后拖动画布,便于在大型复杂流程中全局导航。 :激活套索工具,框选多个图形进行批量操作,也可按住Shift键进行多选。 |
| 事件 | :开始事件,流程的起点,标识业务流程的触发。 :结束事件,流程的终点,标识业务流程的完成。 |
| 网关 | |
| 任务 | :服务任务,调用API服务的节点,用于对接外部系统(如ERP、MES)或内部服务,实现跨系统数据交互。 :脚本任务,执行自定义JavaScript脚本的节点,用于实现数据清洗、格式转换、逻辑计算等纯数据处理任务。 |
为流程服务编排的执行流程添加流程工具
进入可视化配置页面后,直接从左侧工具面板将所需组件拖拽至中央
“在线编辑区”。
图1 为执行流程添加流程工具
选中“在线编辑区”内现有组件,单击组件右侧图标:
:添加连接,在当前节点后新增连线节点。
:移除组件,删除当前选中的组件。
为服务任务设置常规信息
选中“服务任务”组件,在右侧属性面板的“常规”页签中配置:
图2 为服务任务设置常规信息
表3 服务任务的常规信息配置 | 参数 | 参数说明 |
| ID | 系统自动生成的唯一标识,不允许修改。 |
| 中文名称 | 用户自定义。建议采用“动作+对象”命名(如:查询ERP库存接口),以提升流程可读性。 仅支持中文、字母、数字、下划线(_),长度为1-64个字符。 |
| 调用服务 | 指定已发布的流程服务编排,实现与外部系统对接。 单击 ,在弹出窗口中选择目标服务后单击“确定”。 如无可选服务,请参考为流程元模板定义流程服务编排进行创建。 |
| 输入Key | 定义数据流入的上下文变量名。通常使用系统保留字“inputParam”,用于接收并传递流程外部传入的参数给当前 API。 |
| 输出Key | 定义数据流出的上下文变量名。通常使用系统保留字“resultData”,用于将当前API的调用结果返回给流程外部或传递给下游节点。 |
| 输出类型 | 指定API返回数据的结构类型,支持: - Text:纯文本或单值数据。
- Map:键值对对象,如单个设备的信息对象。
- List:数组/集合,如BOM展开后的多层级物料列表。
|
为脚本任务设置常规信息
选中
“脚本任务”组件,在右侧属性面板的
“常规”页签中编写JS脚本,实现数据的灵活加工:
图3 为脚本任务设置常规信息
表4 脚本任务的常规信息配置 | 参数 | 参数说明 |
| ID | 系统自动生成的唯一标识,不允许修改。 |
| 中文名称 | 用户自定义。建议描述具体加工逻辑,如计算BOM总重量、JSON转XML格式。 仅支持中文、字母、数字、下划线(_),长度为1-64个字符。 |
| JS脚本 | 编写自定义JavaScript逻辑脚本。支持以下标准API: - 读取数据:
process.getVariable('key','defaultValue') 获取指定参数的值。如使用“inputParam”作为“Key”,可获取流程外部传入的初始参数。 示例1:获取初始参数 var bomData = process.getVariable('inputParam', {}); 示例2:获取指定参数 var paramValue = process.getVariable('paramName', 'defaultParamValue'); - 写入数据:
process.setVariable('key','value') 将处理后的数据写入上下文。如使用“resultData”作为“Key”,可将处理后的结果返回给流程外部或下游节点。 示例: process.setVariable('resultData', totalWeight); - 特殊方法调用
插件脚本内置了部分特殊方法,支持发起外部接口调用、连接邮箱服务器发送邮件等高级操作。 使用帮助:单击代码编辑器右上方的“展示使用帮助”,系统将展开各个方法的使用说明、参数描述及代码模板,供您参考学习。 关闭帮助:查看完毕后,单击代码编辑器右上方的“关闭使用帮助”,即可返回代码编辑页面继续工作。 - 代码编辑辅助
如果脚本代码较长,可单击代码编辑器右上方的“格式化”,一键美化代码排版,提升代码可读性。 |
| 脚本变量 | 用于配置自定义脚本变量,配置后的变量可在JS脚本代码中获取与调用。 单击“新增”添加变量参数,支持按需新增或删除参数行。 注意:此功能支持加密存储,建议将敏感信息(如密码、密钥、Token等)配置在脚本变量中并开启加密。 字段说明: - 参数名称:自定义变量名称,用于在JS脚本中调用。
- 参数值:自定义变量的具体值。如果涉及敏感数据,请务必配合“加密”功能使用。
- 加密:
:开启加密,参数值将以“******”形式显示,适用于密码、密钥等敏感数据。 :关闭加密,参数值明文显示。默认关闭。 |