点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好专家
我想使用Odata发布方法为远程启用的功能模块将多个记录发布到数据库表中。 为此,使用SE80,我使用功能模块创建了数据模型和表的映射字段。 然后创建一个消费模型并激活服务。 然后从REST Client调用该服务,并尝试使用XML Content进行发布,如下所示。
在下面的XML内容中,我尝试将2条记录发布到DB表中,但是将错误显示为"解析XML流时出错"。
您能否建议如何使用Odata创建/发布方法一次传递多个记录,就像我们在功能模块执行时通过单击表选项卡中的NewLine/DoubleLine来发布多个记录一样。
XML内容:
<?xml version =" 1.0" encoding =" utf-8"?>
xmlns =" http://www.w3.org/2005/Atom " xmlns :m =" http://schemas.microsoft.com/ado/2007/08/dataservices/metadata "
xmlns:d =" http://schemas.microsoft.com/ado/2007/08/dataservices ">
scheme =" http://schemas.microsoft.com/ado/2007/08/dataservices/scheme "/> 感谢您的帮助。 谢谢 Uday。
嗨,Uday,
您已经重新定义了/IWBEP/IF_MGW_APPL_SRV_RUNTIME〜CHANGESET_BEGIN和
/IWBEP/IF_MGW_APPL_SRV_RUNTIME〜CHANGESET_END方法来进行批量更新。 请找到以下链接。
http://help.sap .com/saphelp_gateway20sp06/helpdata/zh-CN/90/dc8363306c47d3b2fca1398f5de94b/content.htm
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/40546820-3ea7-2f10-dfab-be373c0da357?overridelayout = true
您的创建URL如下所示,您必须在请求正文中粘贴多个记录。 如有任何问题,请告诉我。
http://Server:port/sap/opu/odata/sap/Z_RFC_POST/z_rfc_postCollection/$ 批处理
<?xml version =" 1.0" encoding =" utf-8"?>
xmlns =" http://www.w3.org/2005/Atom " xmlns:m =" http://schemas.microsoft.com/ado/2007/08/dataservices/metadata "
xmlns:d =" http://schemas.microsoft.com/ado/2007/08/dataservices ">
< id> http://Server:port/sap/opu/odata/sap/Z_RFC_POST/z_rfc_postCollection/
< title type =" text">收货状态
<类别术语="/img/Z_RFC_POST./z_rfc_post"
scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme "/>
<内容类型=" application/atom + xml">
<?xml version =" 1.0" encoding =" utf-8"?>
xmlns =" http://www.w3。 org/2005/Atom " xmlns:m =" http://schemas.microsoft.com/ado/2007/08/dataservices/metadata "
xmlns:d =" htt p://schemas.microsoft.com/ado/2007/08/dataservices ">
scheme=" http: //schemas.microsoft.com/ado/2007/08/dataservices/scheme "/>
<内容类型=" application/atom + xml">
您是否已完成此案例?
因为我有相同的问题。
嗨,Uday,
OData不支持创建多结果 一次性记录。
但是有一个称为深度插入的概念,您可以在其中一次创建父项和子项。 例如销售订单和多个销售订单项目。
在此处检查如何进行深度插入。
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/e0d92637-3d0d-2f10-ebb2-efc1f40a85e8?QuickLink = index&overridelayout = true&53717156092624
有一个选项可以批量更新和搜索 谷歌与OData和$ batch了解更多。
另一个解决方法是为您的实体创建一个虚拟父实体(您需要为其创建多个记录),为您的虚拟实体做一个深层插入,并在数据提供者类方法中,访问所有 孩子们记录下来并打电话给您的FM。
谢谢
克里希纳
Uday,
到目前为止,我还没有尝试过 。 但是您的请求似乎没有错。 (由Arun提供的那一个,而不是您发布的原始的一个。)
只是猜测。
您可以删除以下行(多次提及)并尝试吗?
<?xml version =" 1.0" encoding =" utf-8" standalone =" yes"?>
还要确保此处提到的属性名称与元数据中提到的属性名称完全相同。
嗨,Uday,
我建议您做的是:
尝试首先使用相同的URL和请求正文仅创建一个记录 :
<?xml version =" 1.0" encoding =" utf-8" standalone =" yes"?>
xmlns:d =" http://schemas.microsoft.com/ado/2007/08/dataservices "
xmlns :m =" http://schemas.microsoft.com/ado/2007/08/dataservices/metadata ">
如果适用,请执行批处理
请注意,在执行批处理命令时,必须考虑空格,以便帖子主体不应该包含不必要的新行或空格,因为网关正在对其进行解析。
请告诉我们您是否成功。
祝您好运
跑了。
您好,Kishor,
您共享的链接太有用了。 我对UI5表控件与OData模型绑定并且行是可编辑的东西感到困惑。 用户可以更改除键值之外的任何行。 我在页脚中提供了一个更新按钮。 有什么办法可以在单个有效载荷中更新后台设置的实体?
致谢
Sreehari
一周热门 更多>