如何在Java中映射对odata的深度插入请求?

2020-08-16 04:16发布

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

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


专家们,

我创建了具有深度插入关联的sap自定义odata网关服务。

以下是发布odata请求的json数据格式。

 {
   " DummyKey":" XXX",
   " TBL_BSEG":[
     {
       " Belnr":" XXXXXXXXXX",
       " Bukrs":" XXXX",
       .....
     },
     {
       " Belnr":" XXXXXXXXXX",
       " Bukrs":" XXXX",
       .....
     }
   ]
 }
 

而且,我使用生成器的命令行界面从sap自定义odata服务的元数据生成了VDM。

Git Hub -这是我的VDM源代码。 (DummyHeaderSet用于标题数据,而BSEGSet用于子表)

我被困在ODataCreateRequestBuilder主体的数据映射中。

通常,对于单个实体集,它将像下面那样工作。

 Map 主体= new HashMap <>();
 body.put(" Dummykey"," XXX");

 ODataCreateRequest createRequest =
     ODataCreateRequestBuilder
         .withEntity("/img/sap/opu/odata/sap/Y_ODATA_SZ_06_SRV"," DummyHeaderSet")
         .withBodyAsMap(body)
         。建立();

 createRequest.execute(" DestinationName");
 

但是,我不知道如何映射子节点表数据。

我在相关博客中搜索了ODataCreateRequestBuilder主体映射,但我一点也不了解。

是否有符合上述要求的样品?

还是应该与相关的VDM映射?

如果您能提供任何帮助,我将不胜感激。

最好的问候

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

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


专家们,

我创建了具有深度插入关联的sap自定义odata网关服务。

以下是发布odata请求的json数据格式。

 {
   " DummyKey":" XXX",
   " TBL_BSEG":[
     {
       " Belnr":" XXXXXXXXXX",
       " Bukrs":" XXXX",
       .....
     },
     {
       " Belnr":" XXXXXXXXXX",
       " Bukrs":" XXXX",
       .....
     }
   ]
 }
 

而且,我使用生成器的命令行界面从sap自定义odata服务的元数据生成了VDM。

Git Hub -这是我的VDM源代码。 (DummyHeaderSet用于标题数据,而BSEGSet用于子表)

我被困在ODataCreateRequestBuilder主体的数据映射中。

通常,对于单个实体集,它将像下面那样工作。

 Map 主体= new HashMap <>();
 body.put(" Dummykey"," XXX");

 ODataCreateRequest createRequest =
     ODataCreateRequestBuilder
         .withEntity("/img/sap/opu/odata/sap/Y_ODATA_SZ_06_SRV"," DummyHeaderSet")
         .withBodyAsMap(body)
         。建立();

 createRequest.execute(" DestinationName");
 

但是,我不知道如何映射子节点表数据。

我在相关博客中搜索了ODataCreateRequestBuilder主体映射,但我一点也不了解。

是否有符合上述要求的样品?

还是应该与相关的VDM映射?

如果您能提供任何帮助,我将不胜感激。

最好的问候

付费偷看设置
发送
2条回答
My梦
1楼-- · 2020-08-16 04:37

您应该使用生成的类:

 new DefaultOdata06Service();
 

但是我可以看到该服务实际上不允许任何操作。 这向我表明您的元数据不允许任何操作。 请检查服务元数据。

可能会有这样的注释:

  



haha101010
2楼-- · 2020-08-16 04:26

Hi Shine Zaw,

非常抱歉,我错过了您的评论。 是的,请查看我们的文档如何使用该功能。 通常,这很容易,您只需为要创建的实体创建一个新的Java对象,然后通过服务类提供的create操作将其发送即可。

让我知道,以防万一您遇到任何问题。

问候,
Matthias

一周热门 更多>