Issue is coming for all the Bex Queries which we are executing in Quality and the same query are working fine in Development & Prod. Suggestion will highly appreciable
Below is the code :-
*" IMPORTING
*" REFERENCE(I_R_EXCEPTION) TYPE REF TO CX_ROOT
*" VALUE(I_MSGTY) TYPE SYMSGTY OPTIONAL
*" CHANGING
*" REFERENCE(C_T_MSG) TYPE RS_T_MSG
*"----------------------------------------------------------------------
DATA: l_s_msg TYPE bal_s_msg,
l_s_locmsg TYPE bal_s_msg, "Code location of Msg
l_repid TYPE syrepid,
l_include TYPE syrepid,
l_message TYPE rs_bool,
l_systp TYPE rs_systp,
l_source_line TYPE i,
l_r_no_check TYPE REF TO cx_rs_no_check,
l_r_exception TYPE REF TO cx_root,
l_r_previous TYPE REF TO cx_root,
l_r_no_msg TYPE REF TO cx_rs_no_msg,
l_r_message TYPE REF TO if_rs_message,
l_r_t100 TYPE REF TO if_t100_message,
L_S_MTDKEY type SEOCPDKEY.
FIELD-SYMBOLS:
<l_char> TYPE c.
l_r_previous = i_r_exception.
TRY.
WHILE l_r_previous IS BOUND.
l_r_exception = l_r_previous.
l_r_previous = l_r_exception->previous.
CLEAR: l_r_no_msg,
l_r_message,
l_r_t100.
IF l_r_previous IS INITIAL
AND i_msgty NA 'WIS'.
CALL METHOD l_r_exception->get_source_position
IMPORTING
program_name = l_repid
include_name = l_include
source_line = l_source_line.
if L_repid(3) = 'CL_'.
CL_OO_CLASSNAME_SERVICE=>GET_METHOD_BY_INCLUDE( exporting incname = l_include
receiving mtdkey = L_S_MTDKEY
exceptions others = 1 ).
if sy-subrc = 0.
l_repid = L_S_MTDKEY-CLSNAME.
l_include = L_S_MTDKEY-CPDNAME.
endif.
endif.
IF cl_rsr_mdx_ui_services=>is_debug( ) EQ rs_c_true.
BREAK-POINT. "#EC NOBREAK
ELSEIF sy-tcode EQ 'RSRTRACE'
OR sy-tcode EQ 'RSRCATTTRACE'
OR sy-tcode EQ 'RSRT'
OR sy-tcode EQ 'RSRT2'
OR sy-tcode EQ 'RSRAM'
OR sy-tcode EQ 'RSTT'
OR sy-cprog EQ 'RSTT_EXECUTE_TRACE'.
*_____________________________________________________________________
* error in >> l_repid <<
* >> l_include <<
* >> l_source_line <<
*__________________________^^^^^^^^^^^^^^_____________________________
BREAK-POINT. "#EC NOBREAK
l_message = rs_c_true.
ELSE.
CALL FUNCTION 'RRSV_SYSTYPE_GET'
IMPORTING
sys_type = l_systp.
IF l_systp EQ rs_sys_sap.
l_message = rs_c_true.
ENDIF.
ENDIF.
IF l_message = 'X'.
l_s_locmsg-msgv1 = l_repid.
l_s_locmsg-msgv2 = l_include.
l_s_locmsg-msgv3 = l_source_line.
SHIFT l_s_locmsg-msgv3 LEFT DELETING LEADING space.
l_s_locmsg-msgid = 'RS_EXCEPTION'.
l_s_locmsg-msgno = '301'.
l_s_locmsg-msgty = 'I'.
ENDIF.
ENDIF.
TRY.
l_r_message ?= l_r_exception.
IF l_r_message IS BOUND.
l_s_msg = l_r_message->get_message( ).
CHECK l_s_msg IS NOT INITIAL.
IF i_msgty IS NOT INITIAL.
l_s_msg-msgty = i_msgty.
ENDIF.
INSERT l_s_msg INTO c_t_msg INDEX 1.
CONTINUE.
ENDIF.
CATCH cx_root.
ENDTRY.
TRY.
l_r_t100 ?= l_r_exception.
IF l_r_t100 IS BOUND.
IF i_msgty IS NOT INITIAL.
l_s_msg-msgty = i_msgty.
ELSE.
l_s_msg-msgty = 'E'.
ENDIF.
l_s_msg-msgid = l_r_t100->t100key-msgid.
l_s_msg-msgno = l_r_t100->t100key-msgno.
PERFORM get_msgv USING l_r_exception l_r_t100->t100key-attr1
CHANGING l_s_msg-msgv1.
PERFORM get_msgv USING l_r_exception l_r_t100->t100key-attr2
CHANGING l_s_msg-msgv2.
PERFORM get_msgv USING l_r_exception l_r_t100->t100key-attr3
CHANGING l_s_msg-msgv3.
PERFORM get_msgv USING l_r_exception l_r_t100->t100key-attr4
CHANGING l_s_msg-msgv4.
INSERT l_s_msg INTO c_t_msg INDEX 1.
CONTINUE.
ENDIF.
CATCH cx_root.
ENDTRY.
* default handling
CALL FUNCTION 'RS_EXCEPTION_TEXT_TO_MESSAGE'
EXPORTING
i_r_exception = l_r_exception
IMPORTING
e_s_msg = l_s_msg.
IF i_msgty IS NOT INITIAL.
l_s_msg-msgty = i_msgty.
ENDIF.
INSERT l_s_msg INTO c_t_msg INDEX 1.
ENDWHILE.
CATCH cx_root.
CLEAR: l_s_msg.
l_s_msg-msgty = 'A'.
l_s_msg-msgid = 'BRAIN'.
l_s_msg-msgno = '299'.
l_s_msg-msgv1 = 'SAPLRS_EXCEPTION'.
l_s_msg-msgv2 = 'RS_EXCEPTION_TO_MESSAGE'.
APPEND l_s_msg TO c_t_msg.
ENDTRY.
IF l_message = rs_c_true.
APPEND l_s_locmsg TO c_t_msg.
CLEAR l_s_locmsg.
ENDIF.
CLEAR: l_r_no_msg,
l_r_message,
l_r_t100,
l_r_exception,
l_r_previous.
TRY.
CALL FUNCTION 'RS_EXCEPTION_CLEANUP'.
CATCH cx_root.
ENDTRY.
END FUNCTION.
-----------------------------------------------------------------------------------------------------------
For more details we are getting issue before this below function (CALL FUNCTION 'RRSV_SYSTYPE_GET') is called for the
L_REPID CL_RSD_ODSO
L_INCLUDE GET_HEADER_FROM_DB
L_SOURCE_LINE 21
Hello Arti,
Please check the note no. 2187181 (link).
If it does not help, please also check the note no. 2422498 (link).
Here are some additional workarounds:
Hope it helps.
Cheers,
Sebastian