记一次的单据体中的基础资料查询失败的问题原创
金蝶云社区-JeremyG
JeremyG
2人赞赏了该文章 485次浏览 未经作者许可,禁止转载编辑于2023年06月01日 13:30:50

背景:被问到一个问题,说他查单据体中的基础资料,但是报错没有这个属性。他确定元数据里有属性,核心代码就是

BusinessDataServiceHelper.load

最后深入沟通发现是查询的时候没有查出来,然后后面使用的时候报错没有属性。

image.png


 分析:看他的代码,直接三层的.去查询属性,乍一看好像没啥问题,但是隐约记得这么写好像是有点不行,那就自己手动去测试一下。

image.png


过程:

我们本地复现。

1.界面如下,单据体中放入物料和一个基础资料,单据头放入基础资料(作为对比)。

image.png

2.代码查询数据。直接上断点吧。我们看单据头数据能查询出来。单据体的两个基础资料写法不一致(物料也是基础资料,封装了而已),物料能查询出来,基础资料查询不出来。

image.png

3.我们把基础资料的写法也改成物料的写法,发现数据能查询出来。我们发现基础资料(绑定的书籍)数据也能查出来了。

image.png


结论:

ORM查询单据体中的基础资料的属性时,查询的字段必须要查询该基础资料。否则查不出来基础资料数据。

格式:单据体标识.基础资料标识,单据体标识.基础资料标识.基础资料属性标识1,单据体标识.基础资料标识.基础资料属性标识2,...

示例:entryentity.kdec_basedatafield,entryentity.kdec_basedatafield.name



附件是之前写的数据增删改查的文档,初学者可以参考



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