封装业务流程(PBP)
功能概述
封装业务流程,简称PBP (Packaged Business Process)是一种特殊的工作流,可以用工作流节点能力编排动作序列,还可以通过定义输入参数,让其他流程调用。如果需要使用封装业务流程中的执行结果,也可以通过输出参数,供外部流程使用。
同时,封装业务流程还会自动生成一套API接口,和定义的输入和输出参数完全对应,供外部系统调用。结合工作表和工作流能力,再加上封装业务流程的API能力,事实上企业拥有了一个可以自由组合的API中心,实现了可组合企业架构(Composable Architect)。
封装业务流程产品理念来自Gartner提出的Packaged Business Capabilities框架。和经典的PBC概念不同的是,PBP这样的可组合应用架构并不依赖前后台分离加微服务(microservice)的原生开发过程,它能够零代码实现同等的效果。

特点和价值
-
1、没有特定数据源,通过定义输入参数来建立触发。
-
2、可被组织内的所有流程调用,最大化流程复用价值。
-
3、具备API能力,供外部系统使用,实现自由组合的业务流程。
哪些场景适合使用封装业务流程
1、可复用的通用业务处理能力
场景1:商品的库存更新
库存的更新涉及多种场景,如商品的销售出库、采购入库、退货入库、盘点等等,在执行库存更新时,往往只需要知道是哪个仓库的,什么商品、出入库类型、出入库数量就可以直接更新库存了。因此可以将更新库存这部分逻辑放在封装业务流程中完成,销售出库、采购入库等工作流只需传入对应的参数,就可以直接完成库存的更新,无需每个工作流都写一遍更新库存的逻辑。
场景2:获取手机号归属地
多个业务表需要记录手机号,如销售线索、客户联系人、员工档案等等,需要知晓手机号归属地。可以通过Webhook节点,调用第三方服务获取到手机号,并返回归属地信息。将这部分功能放在封装业务流程中,每个工作表触发的流程直接调用即可。像这种通过Webhook或代码块实现的通用数据处理能力,非常适合作为封装业务流程,供所有流程调用。
2、多业务对象的API接口服务
场景:外部系统通过API查询多表数据
例如,外部系统需要查询订单数据,主要信息是:
- 订单表数据(订单名称、订单总额、付款日期)
- 订单明细表数据(产品名称、数量、单价、小计)
如果通过工作表API查询,需要调用两次API,而且返回的结果字段比较多,无法只返回需要的字段内容。同时,对于查询状态的提醒无法自定义。
如果使用封装业务流程的API接口,只需传入订单编号,触发流程后,通过查询数据节点逐步查询订单和明细数据,根据不同的查询结果,利用分支自定义查询状态消息,最终通过输出参数返回。
3、标准规范化的业务流程
场景1: 统一管理的财务支付流程
如果公司对财务支付流程要求统一规范化管理,在各类业务活动执行后,和支付相关的流程都需统一调用支 付流程,财务只需在一个应用或流程中处理,那么很适合通过PBP来管理支付流程,例如,在付款申请或报销申请通过后,进入财务支付流程(PBP),财务付款后,并上传付款凭证等信息,再反写到付款申请单中。
场景2:新员工入职流程
根据员工的部门和职位,自动发送员工手册和物品领用清单、根据邮箱或手机号,运维开通各种软件账号清单等等,待一系列任务完成后,将结果发送给员工。 将以上任务放在封装业务流程中,可以方便管理企业流程,帮助企业流程规范化。
4、需要在应用首页一键点击或扫码触发的流程
场景: 设备维修后,维修人员在自定义页面中直接点击按钮启动扫码,扫描设备码并触发PBP,PBP中根据传递进来的设备码查询相关设备和维修工单,然后分别修改为正常状态。
配置示例
我们通过几个案例的介绍,逐步讲解PBP中相关知识点:
示例1.利用封装业务流程实现库存更新,供相关出入库业务流程调用
1.1梳理PBP的4要素
在设置流程前,我们需要梳理出PBP需要的四个要素
-
输入参数
更新库存时,我们需要知道更新对象和数量,以及出入库类型(入库是增加库存,出库是减少库存)。因此流程需要知道商品编号、出入库类型和数量,这个3个信息就是我们需要的参数。
需要定义的输入参数有:产品编号 、出入库类型和出入库数量
如果您的商品是多仓库管理,还需要知道是哪个仓库出入库操作,也需要一个输入参数:仓库信息。这里我们为了快速示例、不再增加此参数。
-
流程编排
触发流程后,通过相关节点进行编排,完成指定商品的库存更新。
-
输出 参数
在库存更新场景中,只需正常执行更新库存操作即可,不需要任何结果通知的返回,因此不需要定义输出参数。我们会在后面的场景示例中介绍输出参数的配置。
-
是否启用API
由于本功能仅在本平台内使用,无需开启API能力。
1.2新建封装业务流程
进入应用的工作流模块,选择左侧导航的“封装业务流程”菜单 ,然后点击右上角的"新建封装业务流程"按钮。

虽然PBP可被组织内所有应用的工作流调用,但依然在一个应用下管理。
1.3定义输入参数
什么是参数,简单来说就是需要外面传递给你的信息,但是这个信息格式需要提前约束好。
例如名称和格式,名称用来区分不同的信息对象,格式用来保证传递进来的内容符合规范。
如果在处理业务时,有些信息是必要的,为空无法正常执行,则可以设定为 必填。
同时,建议充分描述参数说明,这样对方在调用PBP传参数时更加清晰。
在本场景中,需要定义的参数( 名称、格式类型、是否必填和说明)如下:
-
商品编号、文本类型、必填、说明(需要出入库商品的编号)
-
进出库类型、数值类型、必填、 说明(0代表入库,1代表出库)
-
数量、数值类型、必填

流程的触发历史列表中,触发的数据显示的是标题参数的内容。
支持的输入参数类型
- 文本
- 数值
- 人员
- 组织角色
- 部门
- 其中成员、部门、组织角色传递的是对象,不是文本。
- 日期时间
- 附件
- 单选
- 检查项
- 普通数组和对象数组
- 代码块输出的数组,需通过JSON解析后才能选择为输入参数
数组结构示范
-
普通数组
["张三","李四"]
-
对象数组
[{"name":"张三","age":20},{"name":"李四","age":30}]
如果您有一段JSON数组,通过"从JSON示例生成"可以将粘贴进去的JSON数组自动 生成参数。

1.4配置工作流的相关节点
通过相关功能节点的编排实现具体的库存更新逻辑。

重点介绍:节点如何使用输入参数值
在定位具体商品的库存记录时,需要使用传递进来的商品ID,获取单条数据节点中的条件值选择输入参数即可。

其他节点不再赘述。
1.5配置输出参数
前面我们已经梳理好,无需输出参数,点击输出参数节点后、删除空白参数并保存节点。
