本帖最后由 Nathan.guo 于 2024-5-31 09:42 编辑
活字格 10.0 在工作流方便进行了提升,使用流程时会更加方便易用。
一、更加方便地将业务和流数据关联起来
新版本工作流引擎十分灵活且强大,但是业务数据和流程数据时分离的,这就导致在业务侧想看流程相关的信息,比如单据对应流程的处理状态如何,已经流转到那个节点了,负责审批的人员是谁并不容易。
以前的做法是,需要在业务表上手动添加流程实例ID字段,然后在发起流程时将发起流程结果里的流程实例写入到表中,或者利用流程事件或者流程命令条后置命令里上下文中流程实例ID关键字,来将流程实例 ID 存储到业务表中。比如:
在 10.0 版本,我们想把业务数据和流程数据关联则会方便很多。具体操作如下:
在本地设计器设计流程时,在流程全局或者某个节点设置关联的数据表时,会弹出选项页面选项来给业务表创建关联字段:
弹出页面有两个选项,点击创建关联字段后,会自动在我们业务表里创建名称为流程实例ID(文本类型)的字段。
也可以点击取消,我们手动在业务表创建关联字段来存储流程实例ID,然后在数据与流程关联的字段里选择设置即可,不过需要注意的是,工作流的流程实例ID是GUID,所以我们在创建字段时需要将字段的类型设置为文本类型。
当在流程设计中设置好数据和流程关联的字段后,流程实例ID会在流程运行时自动维护到业务表中,不需要我们做其他操作。
这样业务数据和流程数据就通过流程实例ID这个字段关联起来了,从业务表的字段的设置里也能看到,如下:
相比于以前的流程定义视图,这里还创建了两个统计字段,这里使用了 LIST 去统计,可以拿到当前业务单据对应流程的运行到的节点和负责人。
这样,只要在业务表中绑定这两个关联字段,我们就可以在业务侧方便地看流程运行的状态了。这里做了个 demo,效果如下:
需要注意是,业务数据和流程数据关联,不适用于内建库,因为内建库的业务数据和流程数据其实是在两个不同的内建库的,设置关联就存在跨库关联的情况,跨库关联是不支持的。所以这个功能需要使用外联库,且需要保证外联的业务数据库和流程数据库在同一个数据库实例下。
二、添加备注(审批意见)关键字
在流程审批的过程中,会在审批时填写备注(审批意见),如下:
有时候这里审批意见我们是需要拿出存储到业务表中展示的,以前常见的一个做法是在任务完成时事件里调用服务端命令,将流程实例ID和任务ID传递过去,从审批记录视图里面查询获取。但是比较尴尬的时,由于服务端命令在执行的时候,审批记录视图的数据可能还未更新,所以拿不到审批意见。
在 10.0 增加了节点关键字(Action.Comment)。通过这个关键字就能拿到审批意见,然后当做参数传递给服务端命令,在服务端命令用这个参数做业务上的处理就很方便了。
工作流的上述方面的提升让流程和业务数据关联变得更加方便,想在业务侧去记录展示流程的一些数据,观察流程的运行状态就更加容易了。
|