点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,我正在尝试使用以下BAPI作为实体类型来提供OData服务:
-BAPI_SO_EMP_SO_GETLIST;
-BAPI_SO_EMP_SO_GETDETAIL;
我遵循了指南(非常有用!),但是,他仅映射了Read和Query操作。 我可以修改数据映射向导并映射"创建和删除"操作(我已按预期进行了测试和工作),但是,我无法映射"更新操作"。 我尝试了以下方法:
但是当我尝试更新/IWFND/GW_CLIENT事务中的条目时,出现以下错误:
我的逻辑解决方案是更改数据源参数,如下所示:
我遇到了一个新错误,我无法推断出任何解决方案:
我该如何解决? 我什至考虑过要去ABAP工作台重新定义UpdateEntity方法,但是我对ABAP的了解几乎为零。 令我更加困惑的是,我正在使用RFC模块创建oData服务,为什么它输出无效的BOR密钥?
预先感谢
威廉
attempt1.jpg (44.8 kB)
嗨,
详细说明并添加Pavan的建议。
您应该使用过-BAPI_EPM_SO_CHANGE。 这些BAPI以某种方式运行。 它们有两种结构-一种用于实际数据,另一种称为" X"结构,用以表示哪些数据已更改。
根据您的情况,尝试按以下方式映射数据。
如果仅创建标题,则将数据传递到SOHEADERDATA并将键(即销售订单ID和true/false值)传递给SOHEADERDATAX。 无论您为SOHEADERDATAX中的相应属性在SOHEADERDATA中传递的数据是什么,都需要将其传递为true才能反映更改。 另外,请注意并使用PERSIST_TO_DB标志将更改提交到数据库。
BR。
谢谢您的回答! 最后,我在ABAP工作台中完成了所有工作,最终我了解了SOHEADERDATAX的用途。 如果有人偶然发现类似问题,这是我的ABAP代码:
嗨,
好吧,这通常发生在OData和Gateway的新手...
如果我是您,那么在进行OData开发之前要进行几点:
第一:通过BAPI BAPI_EMP_SO_CHANGE检查SO的更新。
如果成功完全,那么我将通过OData在其Import/Tables中将相同的参数传递给BAPI。 确保正确完成SEGW(网关生成器)中的映射。
2nd:完成上述步骤后,我将在odata DPC_EXT类上放置一个断点,并检查数据是否通过OData服务正确传递到BAPI。
谢谢
PG
P.S当我们说以下几行时,表示要在测试模式下检查SE37中的BAPI。 (带有提交)
一周热门 更多>