本文讨论了在业务系统中实现单据下推时自动获取即时库存及单据审核反审核时更新即时库存数量的需求。提出当前手动操作的问题,并建议通过二开处理,采用实体服务规则配合行更新方式实现自动获取库存,及通过插件方式刷新单据页面以触发库存更新。文中还讨论了配置实现步骤,并指出潜在的性能问题及解决方案选择,同时提到与其他服务结合使用时需注意的事项。
【业务背景】Wise单据直接下推后下游即时库存数量字段能带出当前的即时库存字段显示即时库存,同时在单据审核或者保存更新后可以看到即时库存的变化。
【需求分析】
业务需求分为两部分:
1、单据下推自动获取即时库存
2、单据审核反审核,更新单据上的即时库存数量
星空目前是单据明细配置"获取库存"的按钮操作,需要手动点击。
通常解决方案是在固定的字段值更新事件配置获取库存服务或操作,标准产品不适合在所有库存维度后都配置值更新事件,会有性能问题,因此建议二开处理,在指定的字段后配置。单据转换的场景无法触发下游值更新,这种方式不适合下推场景。
方案:参考这篇文章,使用实体服务规则配合"行更新"的方式处理【单据转换自动获取即时库存信息?行选择来帮您】
单据审核和反审核,采用插件的方式,刷新单据页面,触发实体服务规则,使得获取即时库存的操作被触发。
【配置实现】:出库申请单-其他出库单
1、即时库存字段配置值更新事件,配置"获取即时库存操作"
2、单体体增加实体服务规则,触发1中即时库存数量字段的值更新,注意定义前提条件和勾选"行选择"
3、配置表单插件,审核反审核操作刷新单据页面
总结:
1、整体的调用链为:实体服务规则-行选择-触发即时库存值更新事件-触发"获取即时库存操作",从而实现自动获取的效果。
注意点:实际效果是每切换单据体的选中行,都会触发获取即时库存的操作,明细行较多且切换行操作频繁,这对性能有较大的损耗。如果一定要配置的话,建议前提条件配置完整一些,比如物料、仓库、货主等库存维度都录入后再触发操作
另外一种方案不会有性能问题,可参考:【自动获取即时库存配置方案(二)】
2、结合其他服务使用, 有些使用场景结合"无源单批号拣货服务"同时使用,例如:实体服务规则还是同上配置,同时在仓库字段值更新配置了"无源单批号拣货服务",行选择的实体服务规则触发了拣货,拣货服务执行完又触发了行选择,导致数据出现变更,在审核操作的时候,提示错误
这样的使用场景,只能使用第二种方案:【自动获取即时库存配置方案(二)】
推荐阅读