实体类型PlainObject中不存在名为xxx的属性

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

实体类型PlainObject中不存在名为xxx的属性

问题描述

实体类型PlainObject中不存在名为xxx的属性

原因分析

当出现这种错误是,一般是由于PlainObject中的字段别名写错,或者QueryServiceHelper没有获取相应字段,但在后续dynamicObject.get(xxx)获取报错


解决方案

首先需要了解BusinessDataServiceHelper与QueryServiceHelper有什么区别

QueryServiceHelper.query查出来的是平铺对象,也就是PlainObject。查询的时候需要我们传参数selectFields

如果是要查询单据体字段格式为:单据体标识.字段标识,如:

DynamicObjectCollection dynamicObjects = QueryServiceHelper.query("kdec_wfbbill1020_1", "id,billno,kdec_textfield,kdec_integerfield,entryentity.kdec_textfield1,entryentity.kdec_integerfield1 field1", new QFilter[]{qFilter});

其中entryentity.kdec_textfield1,entryentity.kdec_integerfield1 field1都是单据体字段,只不过第二个字段给了别名field1,这时候我们想要获取这两个单据体字段写法为:dynamicObject.get("entryentity.kdec_textfield1")和

dynamicObject.get("field1")。

如果用dynamicObject.get("entryentity1.kdec_textfield1")或者dynamicObject.get("entryentity.kdec_integerfield1") 获取,这时候就会报错:实体类型PlainObject中不存在名为xxx的属性。 

总结: 

只要我们获取的属性在平铺对象中定义了,才能在后续通过dynamicObject只能获取,如果用了别名,就通过别名去获取

也可以通过debug去查看我们的PlainObject对象有哪些属性

实体类型PlainObject中不存在名为xxx的属性

问题描述实体类型PlainObject中不存在名为xxx的属性原因分析当出现这种错误是,一般是由于PlainObject中的字段别名写错,或者QueryServiceH...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息