o具有自引用的数据多层实体?

2020-09-12 03:46发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我有一个基本的产品清单,基本上属于产品层次结构。 因此,表中的每个条目都有一个ID和一个父ID,而父ID可以指向表中另一个条目的ID。 我现在想要实现的是构建一个oData,它可以在不知道deepenes级别的情况下扩展整个树,并使用表示层次结构的嵌套json进行响应。

因此,我用一个实体(产品列表)构建了oData,并通过将ID映射为具有1:M关联的父代ID来定义了从该实体到其自身的关联。 我还创建了一个指向关联的Navigation属性。

现在,我开始覆盖GET_EXPANDED_ENTITYSET方法。 我想要实现的是,每当使用URL/sap/opu/odata/sap/ZORG_TEST_SRV/PRODAREASet调用oData时,$ expand = PRODAREAS&$ format = json都将使用嵌套的json进行响应,该json显示了完整的层次结构,所有 水平。

现在,我想知道如何在方法内部构建层次结构,因为在mpc类中生成的结构没有用于子节点的任何表。

我试图建立一个本地类型(产品),一个本地类型的表类型以及一个包含自身表的本地类型,但这似乎不起作用。 我也尝试过使用类而不是结构,但是在GET_EXPANDED_ENTITYSET内部的copy_data_to_ref调用给了我一个错误,指出不允许使用ref。

如果您不知道自己的结构有多深,使用oData甚至可以使用这种用例吗? 基本上,对于一个自我引用为1:n

的实体,我需要一个深度未知的"全部扩展"


谢谢你和最好的问候


Dimitri

association.jpg (72.0 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我有一个基本的产品清单,基本上属于产品层次结构。 因此,表中的每个条目都有一个ID和一个父ID,而父ID可以指向表中另一个条目的ID。 我现在想要实现的是构建一个oData,它可以在不知道deepenes级别的情况下扩展整个树,并使用表示层次结构的嵌套json进行响应。

因此,我用一个实体(产品列表)构建了oData,并通过将ID映射为具有1:M关联的父代ID来定义了从该实体到其自身的关联。 我还创建了一个指向关联的Navigation属性。

现在,我开始覆盖GET_EXPANDED_ENTITYSET方法。 我想要实现的是,每当使用URL/sap/opu/odata/sap/ZORG_TEST_SRV/PRODAREASet调用oData时,$ expand = PRODAREAS&$ format = json都将使用嵌套的json进行响应,该json显示了完整的层次结构,所有 水平。

现在,我想知道如何在方法内部构建层次结构,因为在mpc类中生成的结构没有用于子节点的任何表。

我试图建立一个本地类型(产品),一个本地类型的表类型以及一个包含自身表的本地类型,但这似乎不起作用。 我也尝试过使用类而不是结构,但是在GET_EXPANDED_ENTITYSET内部的copy_data_to_ref调用给了我一个错误,指出不允许使用ref。

如果您不知道自己的结构有多深,使用oData甚至可以使用这种用例吗? 基本上,对于一个自我引用为1:n

的实体,我需要一个深度未知的"全部扩展"


谢谢你和最好的问候


Dimitri

association.jpg (72.0 kB)
付费偷看设置
发送
2条回答
黑丝骑士
1楼 · 2020-09-12 04:16.采纳回答

您必须明确指定要扩展的级别,例如

获取PRODAREASet?$ expand = PRODAREAS,PRODAREAS/PRODAREAS,PRODAREAS/PRODAREAS/PRODAREAS 

进行扩展 三个级别。

OData V4添加快捷方式

获取PRODAREASet?$ expand = PRODAREAS($ levels = 3)

甚至允许

获取PRODAREASet?$ expand = PRODAREAS($ levels = max)

以请求服务支持的最大级别数(允许通过适当解释" max"来防御DOS攻击) :-)

Nir深蓝
2楼-- · 2020-09-12 04:12

非常感谢您的澄清,可惜我有一个v2 oData。

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答