库存单据如何调用生成批号服务?

栏目:云星瀚知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

库存单据如何调用生成批号服务?

问题描述

  • 业务场景:采购收库单在提交时,系统会校验启用了批号管理的物料,批号字段必录;而来源单据(采购订单)无批号信息,且采购入库单是自动生成,没有人参与。

  • 标准产品:批号可以通过点击【生成批号】按钮,依据编码规则自动生成。

  • 能否自行调用生成批号服务,而不是通过点击生成批号来生成批号?


解决方法

  1. 单分录调用生成批号的微服务LotCodeRuleService


dataEntity :一般为当前单据动态表单,获取方法如上;

param:参数为map集合,key如上图固定字符串,value为对应单据分录标识

示例:

Map<String, String> param = new HashMap<>(16);
param.put("entryfield", "entryentity");//entryentity 为要生成批号字段所在分录标识
param.put("material", "material");//material 为分录物料标识
param.put("lotmap", "lotnumber");//lotnumber 为分录批号标识

    此外,此服务只是生成批号微服务,其结果返回值为分录行对应批号Map<Integet,String> 集合,需要自行将其写入批号字段并刷新其字段值;


    2.如果有子单据体需生成批号,调用微服务时,对应方法为:DispatchServiceHelper.invokeBizService("bd", "sbd", "LotCodeRuleService", "getLotCode", dataEntity, entryEntity, param);

        需要多传入一个参数entryEntity:子单据体动态对象集合:

DynamicObjectCollection entryEntity = model.getEntryEntity(TransformBillTplEntryConst.AFTERENTRY);

其他内容与第一点一致;

注意事项(可选)

  • 为了成功生成批号,批号规则属性字段字段均有值之后,再调用微服务。

  • 微服务返回的结果是一个map,二开代码需负责将批号赋值到业务单据。

  • 【生成批号】的按钮,是封装了生成批号主档的功能的。调用微服务生成批号,并不会自动生成批号主档,怎么办?----不需要担心这个问题,因为在提交单据时,系统会自动更新批号主档(如果批号未生成主档,则生成主档;否则更新主档)。


参考资料

库存单据如何调用生成批号服务?

问题描述业务场景:采购收库单在提交时,系统会校验启用了批号管理的物料,批号字段必录;而来源单据(采购订单)无批号信息,且采购入库单...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息