具有Sapui5的SMP中的深层插入帖子(SAP移动性)

2020-09-04 17:09发布

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

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


我已经使用sapui5和cordova kapsel插件构建了一个本地混合应用程序。 我在发布创建操作时实现了深层插入。

我正在使用标题+订单项,然后发布它。

在联机模式下可以正常工作,但在脱机模式下会出现smp错误:

[-10213]不支持对实体集的深层插入

我阅读了离线模式下不支持深度插入的内容。

替代方法是,除了深度插入外,还有其他任何方式可以在脱机模式下进行post(create)操作。

需要进行哪些更改。 我已经很努力了。 我该如何发布sapui5和odata/abap所需的更改

请有人提出建议

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

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


我已经使用sapui5和cordova kapsel插件构建了一个本地混合应用程序。 我在发布创建操作时实现了深层插入。

我正在使用标题+订单项,然后发布它。

在联机模式下可以正常工作,但在脱机模式下会出现smp错误:

[-10213]不支持对实体集的深层插入

我阅读了离线模式下不支持深度插入的内容。

替代方法是,除了深度插入外,还有其他任何方式可以在脱机模式下进行post(create)操作。

需要进行哪些更改。 我已经很努力了。 我该如何发布sapui5和odata/abap所需的更改

请有人提出建议

付费偷看设置
发送
4条回答
Aaron 3364
1楼-- · 2020-09-04 18:08

Akos Grabecz :所以我的方法是删除深层插入并 批量使用Content ID刷新。 更改将适用于ui5代码和服务器端的abap。

现在,我正在使用.create操作,在此操作中,我在标头+订单项中传递了有效负载,并完成了发布。 现在我必须使用批处理和Content ID引用。

lukcy2020
2楼-- · 2020-09-04 17:52

嗨Arka,

深层插入有某些限制,可以在此处阅读:深插入限制

除此之外,您可以批量使用Content-Id引用。 您可以使用在线图书馆的方法:

公共无效的createEntity(EntityValue实体,HttpHeaders标头,RequestOptions选项)

添加标题" Content-ID"的位置

这是关于它的 OData.org 文档(搜索:2.2.1。引用请求 在变更集中):批处理(OData版本2.0)

这些都是关于它的用法的出色SAP博客:
简介:SAP网关中具有Content ID的OData $ batch处理
使用Content- 混合应用程序中的变更集中(批处理请求)中的ID引用

最后但并非最不重要的一点是,应用程序配置文件中可能需要一些服务器端更改(搜索content_id_header_location):应用程序配置文件

如果您还有其他问题,请告诉我。 此致,
Ákos

xfwsx85
3楼-- · 2020-09-04 18:13

嗨Arka,

对于sap建议的方法有更好的解决方法。 在我的上一个项目中,它工作得很好,该项目包含许多多层深度插入实体。 在此解决方案中,您可以保留深层模型,而无需将其拆分为平面实体。 这是一般的想法:

例如,您在GW项目中有多个DeepInsert实体。 一个叫做ProductSet。

您定义一个实体 DeepInsertInput ,它包含一个名称和 body 属性(字符串)。 在用户界面中,您对deepinsert json进行编码(例如base64),然后将其发布到该实体集中。 进行编码的原因是可以将json有效负载打包到另一个json中。 有效负载如下:

 {
 " name":" ProductSet",//DeepInsert标头实体的名称
 " body":" YLKJlXYjx"//JSON负载的编码字符串
 } 

在网关的create()方法中,对正文进行解码并获取json字符串。 并使用ABAP中的HTTP Post请求将其作为json有效负载发送给原始实体。 在此示例中,它将是:

 HTTP:发布
 网址:http:\\  \ ProductSet
 正文:深度插入有效载荷的解码json 

这意味着,您首先使用此 DeepInsertInput 实体只是为了转发深度插入有效负载。 然后,GW将其发送给自己。

我希望我已经清楚地解释了。

可能是下一次,我应该写一篇有关如何详细实现它的博客,并分享一些代码。

亦是此间程序员
4楼-- · 2020-09-04 18:12

好,我正在尝试这样做。

一周热门 更多>