巧用凭证模板函数--获取单据字段值(GetFieldValue())原创
金蝶云社区-万世明
万世明
30人赞赏了该文章 5,376次浏览 未经作者许可,禁止转载编辑于2021年12月11日 14:17:28
summary-icon摘要由AI智能服务提供

本文介绍了在使用配置凭证模板时,通过GetFieldValue()函数根据单据上现有字段与目标对象之间的关系,获取目标值的方法。通过两个案例(收款单和付款单)展示了如何在业务单据上无直接可用字段时,利用此函数获取如客户分组、商务伙伴等属性,并应用于凭证生成。强调了函数使用的前提是单据字段与目标值间有唯一匹配关系。

应用场景

在配置凭证模板时,经常需要根据某类属性作为科目取值、核算维度取值的判断条件,但是业务单据上又没有直接可用的字段。不过,幸运的是单据上有与该类属性相关的字段。此时获取单据字段值(GetFieldValue())函数就派上了用场,它可以根据单据上现有字段与我们要获取的对象之间的关系,获取目标值。



案例演示

场景一

收款单的付款人类型为客户,客户分为国内客户和国外客户,生成凭证时,需要根据客户分组分别进入不同的应收账款明细科目。


场景分析:在该场景下,我们要获取的关键值是客户分组,但是由于收款单付款方中付款人(即客户)在收款单中只存储为一个付款人ID字段,无法直接取到其某个属性。不过,单据上的付款人ID其实就是对应的客户基础资料ID。

解决思路通过该函数,根据付款人ID字段值找到客户基础资料,再取客户基础资料中的客户分组属性就可以了。


第一步:选取目标对象及要读取的属性

要读取的单据是“客户(bd_customer)”基础资料,要读取的字段就是客户中的“客户分组.分类编码”

注意:本案例要用客户分组作为判断条件,因此用客户分组.分类编码比较好,如果要将读取的字段直接作为核算维度,此处应选择 客户分组.内码

image.png


第二步:建立目标对象与单据上某个字段的联系

要读取的目标对象客户的内码与单据上的付款人ID值是一致的,因此我们就用客户基础资料单据头.内码作为条件字段,条件值就是单据上的付款人ID字段值,意思就是根据单据上付款人ID值与客户的内码匹配,找到对应的客户基础资料。

image.png

image.png


第三步:根据客户分组编码设置条件

上述设置的函数返回值即为客户分组的编码,接着设置客户分组编码等于某个具体值即可

image.png

image.png


场景二

应付账款科目挂了商务伙伴核算维度,付款单生成凭证时需要取到该核算维度


场景分析:在该场景下,付款单中没有商务伙伴维度对应的字段,而收款方ID实际是供应商,不能直接作为商务伙伴取值。不过,供应商的名称与商务伙伴的名称是一致的。

解决思路:通过该函数,根据收款人名称找到相同名称的商务伙伴就可以了。


第一步:选取目标对象及要读取的属性

要读取的单据就是“商务伙伴(bd_bizpartner)”基础资料,实际要读取的字段就是“单据头.内码”

注意:本案例中取到的对象要直接作为核算维度取值,因此读取的字段要使用内码

image.png


第二步:建议目标对象与单据上某个字段的联系

要读取的目标对象商务伙伴的名称与单据上的收款人名称字段值是一致的,因此我们就用商务伙伴基础资料单据头.名称作为条件字段,条件值就是单据上的收款人名称字段值,意思是根据单据上收款人名称与商务伙伴名称匹配,找到同名的商务伙伴基础资料。

image.png

image.png


第三步:上述设置的函数返回值即为商务伙伴内码,可直接作为核算维度取值。

image.png

image.png



总结

获取单据字段值(GetFieldValue())函数是通过目标对象与单据上字段之间某个唯一匹配的关系从而取到目标值,因此使用该函数的前提是:单据上现有的字段与我们要获取的目标值之间有唯一匹配关系比如:目标值是单据上某个字段的一个属性,目标值与单据上某个字段的名称、编码、ID中的某一项相同等,并且根据这种匹配关系是可以找到唯一一个目标值。

当然,该函数的作用并不仅限于凭证模板科目或核算维度取值,大家要真正掌握其原理才能扩展应用到更多场景中。

图标赞 30
30人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!