流程流转过程中经常需要向外部系统输出数据,通过本节介绍,将掌握流程输出基本方法。
本节包括以下主题:
# 数据库
流程流转过程中需要更新第三方数据库,可通过以下方法实现:
- 数据库插入
- 数据库更新/删除
数据库插入
使用数据库插入,可以在目标数据库上运行SQL插入语句,即可插入数据到第三方数据库。
insert into stock(Qty,name) values(@数量,@名称)
数据库更新/删除
使用数据库更新/删除,可以在目标数据库上运行SQL语句,即可更新/删除第三方数据库。
UPDATE stock SET Qty=@数量 WHERE name=@名称
# ESB输出
ESB输出,可参考ESB相关章节的输出功能,如:使用ESB输出订单到金蝶K/3 WISE。
# RESTFul Service
RESTful Service输出,可参考集成模块相关章节的输出功能,如使用RESTful Service输出订单示例:RESTful WebService。
# 业务状态更新
流程在BPM系统跑,第三方系统想同步流程的状态,比如流程流转到哪个步骤了,审批是否通过等。
BPM系统提供了业务状态对照表和流程状态改变自动同步的功能,下面介绍具体配置:
流程在BPM系统跑,第三方系统想同步流程的状态,如何配置呢?
业务状态更新功能的实现,要使用事件子流程和升级开始事件配合使用。以下面这个流程为例,进行配置。
配置升级开始事件
升级开始事件属性,选择审批步骤改变事件,这是系统内置的事件。配置后,审批步骤每次改变,都会自动触发升级事件开始的事件子流程(这里的升级开始事件一定要是非中断的)。
业务状态更新到第三方系统,要配合事件子流程和升级开始事件节点使用。升级开始节点要使用非中断的,这样流程状态一经变更,就会触发一次升级开始事件子流程。
状态更新
更新第三方系统状态可以使用ESB,WebService或者数据库更新,本例使用数据库更:
在事件子流程中拖出任务节点,并切换为数据库更新/删除节点,书写SQL语句更新业务状态到第三方系统。
发起流程查看效果
流程提交后,数据库状态显示正在备货。
按照流程步骤,不应该显示部长审批吗?
第三方系统状态如果直接同步流程审批状态,不利于用户理解,我们在流程属性上做了一个业务状态对照表,如图:
无论流程审批中、退回、还是结束等,业务状态都会自动更新。