后端系统中发生了运行时错误,而不是BAPI消息

2020-09-12 02:00发布

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

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


大家好,我有以下代码,应该可以处理odata上的bapi错误消息:

如果is_bapi_return-type CA'AE'。
       mo_context-> get_message_container()-> add_message_from_bapi(
       is_bapi_message = is_bapi_return
       iv_message_target ='BAPI'
      )。
       引发例外类型/iwbep/cx_mgw_busi_exception
         出口
           textid =/iwbep/cx_mgw_busi_exception => business_error
           message_container = mo_context-> get_message_container()。
     万一。


     如果line_exists(it_bapi_return [type ='E'])。


       mo_context-> get_message_container()-> add_messages_from_bapi(
        it_bapi_messages = it_bapi_return
        iv_determine_leading_msg =/iwbep/if_message_container => gcs_leading_msg_search_option-first
       )。


       引发例外类型/iwbep/cx_mgw_busi_exception
         出口
           textid =/iwbep/cx_mgw_busi_exception => business_error
           message_container = mo_context-> get_message_container()。

     万一。

 

当引发异常时,我在应用程序上获取了以下错误消息:

但是我希望看到以下错误消息:

我在做什么错了?

我们必须做些修饰吗?

谢谢

(23.7 kB)

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

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


大家好,我有以下代码,应该可以处理odata上的bapi错误消息:

如果is_bapi_return-type CA'AE'。
       mo_context-> get_message_container()-> add_message_from_bapi(
       is_bapi_message = is_bapi_return
       iv_message_target ='BAPI'
      )。
       引发例外类型/iwbep/cx_mgw_busi_exception
         出口
           textid =/iwbep/cx_mgw_busi_exception => business_error
           message_container = mo_context-> get_message_container()。
     万一。


     如果line_exists(it_bapi_return [type ='E'])。


       mo_context-> get_message_container()-> add_messages_from_bapi(
        it_bapi_messages = it_bapi_return
        iv_determine_leading_msg =/iwbep/if_message_container => gcs_leading_msg_search_option-first
       )。


       引发例外类型/iwbep/cx_mgw_busi_exception
         出口
           textid =/iwbep/cx_mgw_busi_exception => business_error
           message_container = mo_context-> get_message_container()。

     万一。

 

当引发异常时,我在应用程序上获取了以下错误消息:

但是我希望看到以下错误消息:

我在做什么错了?

我们必须做些修饰吗?

谢谢

(23.7 kB)
付费偷看设置
发送
5条回答
梦想连接
1楼-- · 2020-09-12 02:23

嗨Anujit,

请检查类/IWBEP/CL_TEA_DATA_PROVIDER的方法RAISE_BUSI_EXCEPTION_BAPI中的编码。

此代码包含以下示例服务引发的错误的代码示例。

/sap/opu/odata/IWBEP/TEA_TEST_APPLICATION/ErrorCases('BUSI_BAPI')

关于此,

安德烈

N-Moskvin
2楼-- · 2020-09-12 02:13

我将我的代码与/IWBEP/CL_TEA_DATA_PROVIDER类的方法RAISE_BUSI_EXCEPTION_BAPI中的代码进行了比较。

如果is_bapi_return-type CA'AE'。
       mo_context-> get_message_container()-> add_message_from_bapi(
       is_bapi_message = is_bapi_return
       iv_message_target ='BAPI'
      )。
       引发例外类型/iwbep/cx_mgw_busi_exception
         出口
           message_container = mo_context-> get_message_container()。
     万一。
     如果line_exists(it_bapi_return [type ='E'])。
       mo_context-> get_message_container()-> add_messages_from_bapi(
        it_bapi_messages = it_bapi_return
        iv_determine_leading_msg =/iwbep/if_message_container => gcs_leading_msg_search_option-first
       )。
       引发例外类型/iwbep/cx_mgw_busi_exception
         出口
           message_container = mo_context-> get_message_container()。
     ENDIF。

仍然没有弄清楚,上面的代码有什么问题? 您能提出任何建议吗?

谢谢

Alawn_Xu
3楼-- · 2020-09-12 02:23

您是否使用事务/iwfnd/traces检查了网络上返回了什么错误?

使用时

 iv_determine_leading_msg =/iwbep/if_message_container => gcs_leading_msg_search_option-last
 

我收到以下错误消息

 <?xml版本=" 1.0"编码=" UTF-8"?>
 
 /IWBEP/CM_MGW_RT/022 
 第3次错误 ...
 


使用

 iv_determine_leading_msg =/iwbep/if_message_container => gcs_leading_msg_search_option-first
 

我收到以下错误消息

 <?xml版本=" 1.0"编码=" UTF-8"?>
 
 /IWBEP/CM_MGW_RT/022 
 第一个错误 ...
 


使用以下代码


数据:lv_entity_type TYPE字符串,
ls_bapiret2 TYPE bapirettab,
lt_bapiret2 TYPE bapirettab,
ls_key TYPE/iwbep/s_mgw_tech_pair,
ls_key_tab TYPE/iwbe
lt_key_tab类型/iwbep/t_mgw_name_value_pair。 ls_bapiret2-type ='E'。
ls_bapiret2-id ='/IWBEP/CM_MGW_RT'。
ls_bapiret2-number ='022'。
ls_bapiret2-message_v1 ='第一错误'。 消息ID ls_bapiret2-id
类型'I'
NUMBER ls_bapiret2-number
与ls_bapiret2-message_v1
ls_bapiret2-message_v2
ls_bapiret2-message_v3
ls_bapiret2-ssv_v 信息。 将ls_bapiret2附加到lt_bapiret2。 ls_bapiret2-message_v1 ='第二错误'。 消息ID ls_bapiret2-id
类型'I'
NUMBER ls_bapiret2-number
与ls_bapiret2-message_v1
ls_bapiret2-message_v2
ls_bapiret2-message_v3
ls_bapiret2-ssv_v 信息。 将ls_bapiret2附加到lt_bapiret2。
ls_bapiret2-message_v1 ='第三错误'。 消息ID ls_bapiret2-id
类型'I'
NUMBER ls_bapiret2-number
与ls_bapiret2-message_v1
ls_bapiret2-message_v2
ls_bapiret2-message_v3
ls_bapiret2-ssv_v 信息。 将ls_bapiret2附加到lt_bapiret2。 lv_entity_type = IV_ENTITY_NAME。 mo_context-> get_message_container()-> add_messages_from_bapi(
it_bapi_messages = lt_bapiret2
iv_entity_type = lv_entity_type
iv_determine_ Leading_msg =/iwbep/if_message_contain 引发例外类型/iwbep/cx_tea_business
导出
entity_type = lv_entity_type
message_container = mo_context-> get_message_container()。

 
宇峰Kouji
4楼-- · 2020-09-12 02:16

材料1033真的存在吗? 如果是,是否保持其分类? 看着错误,我想,不是。

请检查是否确实为Z_TESTGGE类的材料保留了分类数据。

哎,真难
5楼-- · 2020-09-12 02:01

我尝试过以下操作:

 METHOD catchexceptionse_get_entityset。
  bapi1003_alloc_values_num的数据lt_allocvaluesnum类型标准表。
  bapi1003_alloc_values_char的数据lt_allocvalueschar类型标准表。
  bapi1003_alloc_values_curr的数据lt_allocvaluescurr类型标准表。
  bapiret2的数据lt_return类型标准表。
  通话功能'BAPI_OBJCL_GETDETAIL'
  出口
  objectkey ='00000000001033'
  objecttable ='MARA'
  classnum ='Z_TESTGGE'
  classtype ='001'
  桌子
  allocvaluesnum = lt_allocvaluesnum
  allocvalueschar = lt_allocvalueschar
  allocvaluescurr = lt_allocvaluescurr
  return = lt_return。
  IF line_exists(lt_return [type ='E'])。
  mo_context-> get_message_container()-> add_messages_from_bapi(it_bapi_messages = lt_return
  iv_entity_type = iv_entity_name
  iv_determine_leading_msg =/iwbep/if_message_container => gcs_leading_msg_search_option-last
  )。
  引发例外类型/iwbep/cx_mgw_busi_exception
  出口
  实体类型= iv_entity_name
  message_container = mo_context-> get_message_container()。
  ENDIF.ENDMETHOD。

,它按预期工作。
现在错误消息与上面的有所不同:

 {

   "错误":{

     " code":" CL/763",

     "信息" : {

       " lang":" en",

       "值":"对象00000000001033不存在"

     },

     " innererror":{

       "申请":{

         " component_id":"",

         " service_namespace":"/img/SAP/",

         " service_id":" ZAM_ODATA_TEST_SRV",

         " service_version":" 0001"

       },

       " transactionid":" 471AD9138F8101A0E005BB46CD90DAF3",

       " timestamp":"",

       " Error_Resolution":{

         " SAP_Transaction":"",

         " SAP_Note":"请参阅SAP Note 1797736进行错误分析(https://service.sap.com/sap/support/notes/1797736)"

       },

       "错误详情" : [

         {

           " code":" CL/763",

           " message":"对象00000000001033不存在",

           " propertyref":"",

           "严重性":"错误",

           " target":""

         }

       ]

     }

   }

 } 

我以前做错了什么? 上面的错误信息是正确的。 不再像以前那样运行时异常。

谢谢

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...