流程流转过程中经常需要向外部系统输出数据,通过本节介绍,将掌握流程输出基本方法。

本节包括以下主题:

# 数据库

流程流转过程中需要更新第三方数据库,可通过以下方法实现:

  • 数据库插入
  • 数据库更新/删除

数据库插入

使用数据库插入,可以在目标数据库上运行SQL插入语句,即可插入数据到第三方数据库。

Image

insert into stock(Qty,name) values(@数量,@名称)

数据库更新/删除

使用数据库更新/删除,可以在目标数据库上运行SQL语句,即可更新/删除第三方数据库。

Image

Image

UPDATE stock SET Qty=@数量 WHERE name=@名称

# ESB输出

ESB输出,可参考ESB相关章节的输出功能,如:使用ESB输出订单到金蝶K/3 WISE

# RESTFul Service

RESTful Service输出,可参考集成模块相关章节的输出功能,如使用RESTful Service输出订单示例:RESTful WebService

# 业务状态更新

流程在BPM系统跑,第三方系统想同步流程的状态,比如流程流转到哪个步骤了,审批是否通过等。

BPM系统提供了业务状态对照表和流程状态改变自动同步的功能,下面介绍具体配置:

流程在BPM系统跑,第三方系统想同步流程的状态,如何配置呢?

业务状态更新功能的实现,要使用事件子流程和升级开始事件配合使用。以下面这个流程为例,进行配置。

Image

配置升级开始事件

升级开始事件属性,选择审批步骤改变事件,这是系统内置的事件。配置后,审批步骤每次改变,都会自动触发升级事件开始的事件子流程(这里的升级开始事件一定要是非中断的)。

业务状态更新到第三方系统,要配合事件子流程和升级开始事件节点使用。升级开始节点要使用非中断的,这样流程状态一经变更,就会触发一次升级开始事件子流程。

Image

状态更新

更新第三方系统状态可以使用ESB,WebService或者数据库更新,本例使用数据库更:

在事件子流程中拖出任务节点,并切换为数据库更新/删除节点,书写SQL语句更新业务状态到第三方系统。

Image

Image

发起流程查看效果

流程提交后,数据库状态显示正在备货。

Image

按照流程步骤,不应该显示部长审批吗?

第三方系统状态如果直接同步流程审批状态,不利于用户理解,我们在流程属性上做了一个业务状态对照表,如图:

无论流程审批中、退回、还是结束等,业务状态都会自动更新。

Image