【星瀚配置进阶】如何在单据中实现 自动带出“相关资料”的“指定字段”?原创
金蝶云社区-梅文浩1
梅文浩1
11人赞赏了该文章 544次浏览 未经作者许可,禁止转载编辑于2023年10月25日 15:33:22

【星瀚配置进阶】如何实现自动带出“相关资料”的“指定字段”?通过业务规则配置实现。


问题背景:客户需要在【物料库存信息】中添加“默认仓库”,并在供应链的相关单据中,选择物料后自动带出。

问题分析:

    1.在【物料库存信息】中添加基础资料,选择基础资料类别为“仓库”。

image.png

    2.供应链相关单据,包含有采购类型的销售类型的库存类型的,这些单据中的物料都不是基本的物料 基础资料。而是与单据类型相匹配的“物料采购信息”“物料销售信息”“物料库存信息”。在配置业务规则的时候需要重点关注,使用物料主数据的id进行匹配

image.png

    3.要求选择物料后带出,需要配置前置条件:物料字段不为空。此处需要重点关注,以整个字段为判断,不要选择物料.id或者物料.number等次级信息作为判断。会导致规则不生效。

    对于字段为空的校验,可以参考文章:https://vip.kingdee.com/link/s/laiJh


解决方法:

    一、单据中的业务规则配置

    1.1 选择单据体,新增业务规则。过滤条件为:material <> null         //商品编码 字段 不为空

image.png

    1.2 新增 条件成立时执行,计算定义公式的值并填写到指定列:

    warehouse =   GetFieldValue('bd_materialinventoryinfo', 'v81h_mrck.id', 'masterid.id', material.masterid.id)               //使用函数获取单据字段值。此处需要注意,使用主数据物料的id,进行匹配。

            而不能直接使用单据  商品编码的id  或者  商品编码.物料编码.编码  ,进行匹配。

            前者是因为:单据中商品编码是【物料销售信息】,查找的单据是【物料库存信息】,两者id不同;

            后者是因为:编码匹配可能不具有唯一性,需要使用具有唯一性的id进行匹配查找。

image.png

1e94a4b8bf5308dd9fe181bb2f78b81.png

    1.3实现效果:选择物料后自动带出默认仓库,支持手动修改。

image.png


    二、单据转换.转换规则中的业务规则配置

    2.1选择转换规则,新增业务规则,选择“计算出公式的值并填写到指定列”。

        前置条件为:material <> null         //商品编码 字段 不为空

        此处需要注意

         a. 依旧要选择最顶级的字段进行判断,而不是商品编码.id 或者其他;

         b. 条件尽量选择“高级”进行编写判断,而不是“基本”进行配置。否则可能会不生效

image.png

    2.2填写执行的表达式。

    warehouse_id = GetFieldValue('bd_materialinventoryinfo', 'v81h_mrck.id', 'masterid.id', material.masterid.id) 

     //使用函数获取单据字段值。

    此处需要注意:

     a. 使用主数据物料的id,进行匹配。

     b. 被赋值的字段需要写为  字段_id,此格式才能被识别到和写入。

image.png

    2.3实现效果:单据下推后,自动带出物料的默认仓库。

image.png

image.png

赞 11