点击此处---> 群内免费提供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)
您必须明确指定要扩展的级别,例如
进行扩展 三个级别。
OData V4添加快捷方式
甚至允许
以请求服务支持的最大级别数(允许通过适当解释" max"来防御DOS攻击) :-)
非常感谢您的澄清,可惜我有一个v2 oData。
一周热门 更多>