SAP Gateway Changeset-错误处理->由于错误而导致的错误消息回滚

2020-08-30 17:44发布

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

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


嗨,

我开发了一个批处理请求作为变更集(多次创建,更新,删除操作)。 如果在单个操作中发生错误,则使用自定义消息引发异常/iwbep/cx_mgw_busi_exception(请参见方法changeset_process)。 自定义消息在/IWBEP/ERROR_LOG中捕获,但是响应显示一条通用错误消息:"由于变更集处理期间的错误(/iwbep/cm_mgw_rt,049)而回滚。

我想将所有自定义消息填充到响应中,以便可以在前端显示消息。

我该如何实现? 感谢您的帮助。

克里斯

(15.8 kB)

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

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


嗨,

我开发了一个批处理请求作为变更集(多次创建,更新,删除操作)。 如果在单个操作中发生错误,则使用自定义消息引发异常/iwbep/cx_mgw_busi_exception(请参见方法changeset_process)。 自定义消息在/IWBEP/ERROR_LOG中捕获,但是响应显示一条通用错误消息:"由于变更集处理期间的错误(/iwbep/cm_mgw_rt,049)而回滚。

我想将所有自定义消息填充到响应中,以便可以在前端显示消息。

我该如何实现? 感谢您的帮助。

克里斯

(15.8 kB)
付费偷看设置
发送
3条回答
Climb_Ma
1楼-- · 2020-08-30 18:21

Christoph Metz

您需要使用消息容器并将所有消息添加到其中。 最后,通过将消息容器传递给它来引发异常。

对于代码,您可以看到以下示例,该示例介绍了如何访问消息容器并添加消息:

https://archive.sap.com/discussions/thread/3470565

http://www.saplearners.com/map- message-odata-response-header-sap-message /

https://help.sap.com/saphelp_gateway20sp12/ helpdata/zh/25/21aecce9db435daaea433071ff7d94/frameset.htm

别忘了将消息容器传递给您将引发的异常。

BR,

Mahesh

吹牛啤
2楼-- · 2020-08-30 18:25

您好克里斯托夫,您找到解决问题的方法了吗?

我们有一个类似的情况:在changeet_process期间引发/iwbep/cx_mgw_busi_exception时,消息将被"由于变更集处理期间的错误而回滚"所覆盖。

这仅在云中发生(OData Provisioning/网关即服务)。 在我们的本地环境中,一切都按预期进行。

Bunny_CDM
3楼-- · 2020-08-30 18:01

嘿,Mahey,

changeset_process方法没有参数io_message_container。

我尝试了以下操作,但仍无法正常工作:

方法/iwbep/if_mgw_appl_srv_runtime〜changeset_process。
     数据:ls_changeset_respone TYPE/iwbep/if_mgw_appl_types => ty_s_changeset_response。

     循环至it_changeset_request ASSIGNING FIELD-SYMBOL()。
       " DATA(lo_message_container)= me->/iwbep/if_mgw_conv_srv_runtime〜get_message_container()。
        -msg_container-> add_message(iv_msg_type ='E'
                                                         iv_msg_id ='/ZTEST/BC'
                                                         iv_msg_number = 009
                                                         iv_msg_v1 ='TEST')。


       引发例外类型/iwbep/cx_mgw_busi_exception
         邮件ID'/ZTEST/BC'
         类型" E"
         编号001
         出口
           message_container =  -msg_container。


     结局。
 ENDMETHOD 

致谢

克里斯

一周热门 更多>