星空数据——流程实例数据存储原创
金蝶云社区-i求知若渴
i求知若渴
6人赞赏了该文章 617次浏览 未经作者许可,禁止转载编辑于2022年09月25日 07:20:04

多张单据合并下推一张下游单据,系统如何存储流程数据?

1、多张单据是流程的起点的时候,系统会分三个流程实例存储。

示例:多张没有源单的【销售订单】合并下推一张【发货通单】

这个时候是有三个instanceid记录下推动作

select * from t_bf_instanceentry where finstanceid in ('60c070cfff8b68','60c070cfff8b63','60c070cff8b5e')

image.png

当【发货通知单】下推【销售出库单】,每个流程实例都会维护发货通知单】到【销售出库单】的关系。

select * from t_bf_instanceentry where finstanceid in ('60c070cfff8b68','60c070cfff8b63','60c070cff8b5e')

image.png

需要注意的事,由于发货通知单】到【销售出库单】的关系存储在不同的instanceid中,T_BF_INSTANCEAMOUNT的数据(famount字段)不会进行拆分。

select * from t_bf_instanceamount where frouteid in ('60c07241ff8b80','60c07241ff8b83','60c07241ff8b86')

image.png

2、多张单据不是流程的起点的时候,系统以一个流程实例存储流程数据。

示例:一个【销售订单】多次下推【发货通知单】,多个【发货通知单】下推一个【销售出库单】

这个时候只有一个instanceid,记录下推动作

select * from t_bf_instanceentry where finstanceid in ('60c0734aff8b92')

image.png

此时【销售出库单】下推【应收单】,只有一条记录

image.png

综上,多个单据下推一个下游单据,当多个单据是流程的开端时,系统按多个流程实例存储,后续继续下推的时候,多个流程实例都会维护。当多个单据不是流程的开端时,系统按一个流程实例存储,后续下推只需要维护一条数据。

赞 6