点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我使用oData,因此会...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我使用oData,因此会...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我使用oData,因此会产生如下错误:
数据:lo_exception类型参考/iwbep/cx_mgw_busi_exception, lo_container类型参考/iwbep/if_message_container。 lo_container = mo_context-> get_message_container()。 lo_container-> add_messages_from_bapi( 出口 it_bapi_messages = lt_return * iv_error_category = iv_determine_leading_msg = abap_true iv_entity_type = iv_entity_name it_key_tab = it_key_tab iv_add_to_response_header = abap_true )。 创建对象lo_exception 出口 * textid = *上一个= message_container = lo_container * http_status_code ='500' * http_header_parameters = * sap_note_id = * msg_code = *实体类型= iv_entity_name *消息='Konnte nicht gespeichert werden!' * message_unlimited = * filter_param = * operation_no = 。 提高例外lo_exception。
但是我总是收到比我想得到的更多的错误消息:
只有中间一个是我添加的错误。
(13.7 kB)
迈克尔,你好,
您使用的是哪个UI5版本? 您拥有什么NW ABAP/SAP GW? 您介意在这里发布您的错误响应(使用JSON会很棒)吗?
我非常清楚此问题...当您从SAP GW向前端发送错误时,您将在前端收到一定的响应结构。 该结构包含前导消息,并且可能包含零个或更多个详细消息。 这是一个示例:
我们假设以下虚拟SAP GW ABAP代码:
使用/sap/opu/odata/sap/ZNABI_EMPLOYEE_SRV/Employees?$ format = json触发此服务实现代码将在响应中产生以下错误消息(JSON格式):
在此示例中,我们提出了一个例外。 但是,SAP GW实际上具有前导消息(代码=/IWBEP/CM_MGW_RT/021)和一个错误详细信息(代码=/IWBEP/CX_MGW_NOT_IMPL_EXC)。 在两种情况下都可以看到,消息几乎是相同的:前导消息以点结束,而错误详细信息消息不以点结束! 只是消息中的代码和点本身不同! 这就是SAPUI5假定有2条不同的消息,因此UI5两次显示"一条"消息的原因。 从最终用户的角度来看,这是一场灾难。
SAPUI5具有发现重复消息并将其删除的逻辑。 这是对应的 ui5 github上的ODataMessageParser.js代码:
换句话说:如果GW将为两条消息发送相同的代码和相同的消息(包括点),那么您在UI中只能看到一次消息! 从上面提到的UI5代码中,您还可以看到UI5仅比较前两个消息。 这意味着,如果SAP GW以不同的顺序向您发送消息(我也认为这也是您的情况),那么您将两次看到(领先)消息
无论如何...恕我直言,这是GW中的错误。 我相信引导消息应该只可用一次(而不是在细节中可用),或者代码+消息应该完全相同。
从您的屏幕截图中,我可以看出一条消息带有一个点,而另一条消息则没有。 此外,我猜代码也不同。 这就是为什么您两次看到该消息的原因。
最好,
纳比
一周热门 更多>