A8V5低代码实现简单库存台账数量管理
正如图片所示,要低代码来搭建一个具备基本库存台账数量管理功能,是可以的。下面看看要怎样配置才能达到这样的效果?
主数据管理
【底表】仓库主数据
仓库的档案建立,需要有一个统一的规定。
在单据的填写时候,通过选择来指定仓库。
【底表】物料主数据
物料的档案建立,也是有一个统一的规定。
在单据的填写时候,通过选择来指定物料。
【底表】业务伙伴主数据
业务伙伴是客户+供应商
在单据的填写时候,通过选择来确认客户+供应商
【底表】存货交易台账
存货交易台账是用来记录每一笔存货的进出记录
抬头:
- 物料:确认物料。
- 仓库:确认仓库。
- 库存:计算这个物料,在这个仓库的库存数量。
行明细:
记录这个物料在这个仓库的出入库明细。
- 发货 = 出库 = 一笔交易
- 收货 = 入库 = 一笔交易
- 转储 = 出库 + 入库 = 两笔交易
【流程】采购收货单
采购收货单会在存货交易台账产生一笔入库记账,此时:
入库总数量:30
出库总数量:0
库存 = 30 - 0 = 30
采购收货单-业务关系01-关联-选择供应商
非常简单的配置,不做解析
采购收货单-业务关系02-关联-选择物料
非常简单的配置,不做解析
采购收货单-业务关系03-关联-选择仓库
非常简单的配置,不做解析
【关键】采购收货单-业务关系04-触发-写入存货交易台账
这就是配置采购收货单写入存货交易台账,形成存货交易台账明细的业务关系配置:
关键配置(一)
- 业务关系:触发
- 来源:采购收货单
- 目标:存货交易台账
- 触发事件:新建或更新
- 目标表关键字段:物料编码,仓库编码
- 否则:跳过
这个配置的目的是,采购收货可能是要创建一张新的台账记录,譬如A001物料,W002仓库。如果A001+W002的存货交易台账,则要创建一张新的记录。如果已经有这个记录,就跳过。
关键配置(二)
- 映射:如果要新建,物料编码、物料名称、仓库编码、仓库名称,都从采购收货单,写入存货交易台账。
- 权限设置:配置新建、更新的权限。别忘记选择就行。
关键配置(三)
- 新建一个触发:更新记录
- 选项:新增明细行
- 关联条件:物料编码,仓库编码
- 映射规则:单据类型、单据编号、仓库编码、物料编码、入库数量。
这个配置是,把采购收货单的行明细,写入到指定物料+仓库的存货交易台账记录中去。譬如,A001物料,W002仓库的采购收货,就写入到A001+W002的存货交易台账明细。
关键配置解析
(1)采购收货单,收货新物料A001到仓库W002时,需要为新物料A001新建一个该仓库W002的唯一存货交易台账记录,即抬头(主表)部分。
(2)采购收货单,明细的交易数据,需要写入到对应物料A001+仓库W002的唯一存货交易台账明细,即明细(子表)部分。
(3)该物料A001在该仓库W002的入库和出库汇总的差,就是该物料A001在该仓库W002的库存了。
【流程】销售交货单
销售交货单同样要写入物料A001+仓库W002的唯一存货交易台账明细,形成出库记录。
如果出库的数量,大于库存数量,就会产生负库存,这里要加一个校验规则来做控制。
检验规则无法判断多行同样物料+仓库的明细。有存货控制需求,由ERP或WMS来控制。
销售交货单-业务关系01-关联-选择客户
非常简单的配置,不做解析
销售交货单-业务关系02-关联-选择物料
非常简单的配置,不做解析
销售交货单-业务关系03-关联-选择仓库
非常简单的配置,不做解析
【关键】销售交货单-业务关系04-关联-发货明细写入存货交易台账明细
这里的配置,跟采购发货单的【触发:更新记录】配置几乎一样。
关键配置
- 业务关系:触发-更新记录
- 选项:新增明细行
- 关联条件:物料编码,仓库编码
- 映射规则:单据类型、单据编号、仓库编码、物料编码、出库数量。
因为物料A001+仓库W002的唯一存货交易台账,在销售发货(出库)时,必须要先有。所以不用配置触发事件:新建或更新来新增一个物料A001+仓库W002的唯一存货交易台账。只需要做触发事件:更新记录来写入发货数据到物料A001+仓库W002的唯一存货交易台账即可。
【关键】销售交货单-校验规则/业务关系05-负库存控制
all( {仓库数量} >= {出库数量} )
要在销售交货单配置一个规则来控制,并要配套下面的业务关系来使用。
- 业务关系:关联
- 调用关系:存货交易台账【库存数量】 -> 销售交货单【仓库数量】
- 关联条件:物料编码,仓库编码
- 关联时机:打开表单时[设置]✅待发刷新
- 关系映射:【库存数量】 -> 【仓库数量】
库存转储单
库存转储单可以看作是 采购收货单【入库】 + 采购收货单【出库】 的配置都需要,这里就不再详细说明,具体看上面的的配置。
具体业务流程设计可以参考下图:
【特别篇】基于个别计价法的存货管理
如下图例子,如果我们做存货数量管理,同时要做存货成本管理,需要基于个别计价法来做。
- 交易1:采购入库15个商品,商品的采购单价是4999元,就形成存货成本。每次入库都给一个唯一的个别计价编码用来识别唯一存货成本。
- 交易2:第一次销售交货5个,剩余10个
- 交易3:第二次销售交货2个,剩余8个
- 交易4:第三次销售交货1个,剩余7个
- 交易5:转储剩下的7个,从W002仓库,转去W001仓库,成本也是按照4999元转出。但是每次做入库,都需要分配一个全新的个别计价编码,尽管成本单价还是4999元没有变。
个别计价编码也可以是批次号、序列号、项目号,看具体的使用场景。
关键配置1-采购收货单
- 业务关系:采购收货单 -【触发】-> 存货交易底表
- 触发时间:新建记录
- 映射:把采购收货单每一行作为一个新的存货交易底表档案做写入。
- 三个关键字段:物料编码、仓库、个别计价编码。
- 个别计价编码 = 物料编码 + 系统日期 + 系统时间 = A003-2024-11-13-09:57:10 编号精确到秒,这样重复编号可能性会很低,有需要还可以加入项目号、批次号、序列号等增加唯一性。
切记:每一次每一行的入库都要生成成唯一的个别计价编码,这套逻辑才能成立。
这里不考虑同一单据有多行相同物料的情况,这种情况会出现逻辑漏洞。
关键配置2-销售交货单
选择唯一个别计价编码和仓库的物料
物料只能在【存货交易底表】中选择有库存的唯一个别计价编码物料。
这是确保不会出现负库存
⚠️注意:多行同唯一个别计价编码物料无法控制负库存情况
负库存控制规则all( {仓库数量} >= {出库数量} )
业务关系-触发-更新记录
- 业务关系:销售交货单 -【触发】-> 存货交易底表
- 触发事件:更新记录
- 选项:新增明细行
- 关联条件:物料编码、仓库编码、个别计价编码。 作为更新的唯一标识
- 映射:写入到存货交易底表的行明细
转储单
转储就是把上面入库+出库的配置,融合在一个单中。具体配置就不再说明,见前面的采购收货单和销售交货单配置即可。