库存同步

库存同步

背景

公司自研ORP(订单资源管理平台)上线后,公司对库存的管理做了相应的调整,工厂使用用友U8系统进行生产和成品库存管理,销售公司订单部进行销售发货是使用公司自研的订单ERP系统完成货运匹配、订单处理、打包发货等操作.为了实现两套系统中的库存同步,在各自系统中建立了同样的仓库,并靠人工每天将产生的订单进行导入或录入达到库存同步的目的,这种库存同步的方式耗费人工的且库存时效性低,因此需进行系统之间的数据集成,达到数据时效性和降低人工成本的目的

目标

在保证系统稳定的前提下实现库存的自动同步,提高同步的时效性

技术选取

1.U8到中间件的数据同步,采用数据库触发器的方式写入中间件数据库.当有新数据插入的时候会触发触发器,开始往中间件数据库写入数据.
2.为了保证数据传输的可靠性,中间件与ORP的通信采用消息队列方式实现,并开启ACK验证,消息持久化.

系统时序图

U8同步库存到ERP序列图

1
2
3
4
5
6
7
8
sequenceDiagram
participant U8
participant 中间件
participant ERP
U8->>中间件:新的出入库记录(排除ERP同步订单)
中间件->>ERP:发送新的库存变更记录
ERP->>中间件:返回同步结果
note left of 中间件:更新中间件数据库状态

ERP出入库记录同步到U8

1
2
3
4
5
6
7
sequenceDiagram
participant U8
participant 中间件
participant ERP
ERP->>中间件:出入库记录及详情
中间件->>U8:调用存储过程在U8数据库生成发货单和出库单
U8->>中间件:返回单据号和其他信息回写到中间件

总结