点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好,
我们正尝试向OData服务添加一些与Fiori批准采购订单应用程序相关的其他检查。 如果检查失败,则应该在前端显示错误消息(或至少是HTTP响应的一部分)。
BADI:GBAPP_APV_PO_RDP
接口:IF_GBAPP_EX_APV_PO_RDP
方法:CHANGE_SET_DECISION
方法CHANGE_SET_DECISION可能会引发/IWBEP/CX_MGW_BUSI_EXCEPTION类型的异常。
基本上,这就是我想要做的:
CLASS/sie/ad_zcm_cl_fio_apv_check定义公共创建公共。 公共部分。 接口if_badi_interface。 接口if_gbapp_ex_apv_po_rdp。 ENDCLASS。 CLASS/sie/ad_zcm_cl_fio_apv_check实施。 方法if_gbapp_ex_apv_po_rdp〜change_set_decision。 *一些检查 引发例外类型/iwbep/cx_mgw_busi_exception 出口 textid = /iwbep/cx_mgw_busi_exception => business_error_unlimited message_unlimited ='一些错误消息'。 终结法。 ENDCLASS。
不幸的是,该消息不是HTTP响应的一部分。 消息类别和编号是正确的(business_error_unlimited),但是显示的是占位符'&1',而不是消息字符串。
{ "错误":{ "代码":" SY/530", "信息": { " lang":" en", " value":"引发了异常。" }, "内部错误":{ "应用程序":{ " component_id":" MM-PUR", " service_namespace":"/img/SAP/", " service_id":" GBAPP_POAPPROVAL", " service_version":" 0001" }, (...) "错误详情": [ { "代码":"/img/IWBEP/CM_MGW_RT/022", " message":"&1", " propertyref":"", "严重性":"信息", " target":"" }, { " code":"/img/IWBEP/CX_MGW_BUSI_EXCEPTION", " message":"引发了异常。", " propertyref":"", "严重性":"错误", " target":"" } ] } } }
在类CL_GBAPP_APV_PO_API方法SET_DECISION中捕获了异常。
尝试。 呼叫BADI lo_ext_badi_rdp-> change_set_decision 出口 iv_workitem_id =-workitem_id iv_pc_number = -po_number iv_release_code = lv_release_code iv_approval_text = lv_approval_text iv_rejection_text = lv_rejection_text iv_approval_string = -approval_text iv_rejection_string = -rejection_text iv_decision = -决策 输入 ev_decision_processed = lv_decision_processed es_action_successful = lv_action_successful ev_skip_wait = lv_skip_wait ev_wait_loops = lv_wait_loops。 捕捉/iwbep/cx_mgw_busi_exception INTO lcx_badi。 " get_text()返回正确的消息,但lv_msg是单个字符 lv_msg = lcx_badi-> get_text()。 "该方法具有lv_text_msg参数,但此处未使用 lo_cmn_api-> raise_exception_iwbep_business(iv_leading_msg = lv_msg)。ENDTRY。
所以问题是:
使用/IWBEP/CX_MGW_BUSI_EXCEPTION异常类来检索自定义错误消息的正确方法是什么?
对于我的发行版,此问题已通过注释2747538解决。
一周热门 更多>