CLASS zcx_bc_function_subrc DEFINITION
PUBLIC
INHERITING FROM cx_static_check
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_t100_message .
CONSTANTS:
BEGIN OF subrc_error," Function &1 error &2 : &3 - &4
msgid TYPE symsgid VALUE 'ZBC',
msgno TYPE symsgno VALUE '130',
attr1 TYPE scx_attrname VALUE 'FUNCNAME',
attr2 TYPE scx_attrname VALUE 'SUBRC',
attr3 TYPE scx_attrname VALUE 'PARAM',
attr4 TYPE scx_attrname VALUE 'STEXT',
END OF subrc_error.
DATA:
funcname TYPE funct-funcname,
subrc TYPE sysubrc,
param TYPE funct-parameter,
stext TYPE funct-stext.
METHODS constructor
IMPORTING
!textid LIKE if_t100_message=>t100key OPTIONAL
!previous LIKE previous OPTIONAL
!funcname TYPE funct-funcname OPTIONAL
!subrc TYPE sysubrc DEFAULT sy-subrc
!param TYPE funct-parameter
!stext TYPE funct-stext.
CLASS-METHODS raise_if_sysubrc_not_initial
IMPORTING
!iv_funcname TYPE funct-funcname
RAISING
zcx_bc_function_subrc.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcx_bc_function_subrc IMPLEMENTATION.
METHOD constructor.
CALL METHOD super->constructor
EXPORTING
previous = previous.
CLEAR me->textid.
IF textid IS INITIAL.
if_t100_message~t100key = if_t100_message=>default_textid.
ELSE.
if_t100_message~t100key = textid.
ENDIF.
me->funcname = funcname.
me->subrc = subrc.
me->param = param.
me->stext = stext.
ENDMETHOD.
METHOD raise_if_sysubrc_not_initial.
CHECK sy-subrc IS NOT INITIAL.
DATA(lv_subrc_bak) = sy-subrc.
SELECT SINGLE parameter INTO @DATA(lv_parameter)
FROM fupararef
WHERE funcname EQ @iv_funcname
AND paramtype EQ @abap_true
AND pposition EQ @lv_subrc_bak.
SELECT SINGLE stext INTO @DATA(lv_stext)
FROM funct
WHERE spras EQ @sy-langu
AND funcname EQ @iv_funcname
AND parameter EQ @lv_parameter
AND kind EQ @abap_true.
IF sy-subrc NE 0.
SELECT SINGLE stext INTO @lv_stext
FROM funct
WHERE funcname EQ @iv_funcname
AND parameter EQ @lv_parameter
AND kind EQ @abap_true.
ENDIF.
RAISE EXCEPTION TYPE zcx_bc_function_subrc
EXPORTING
funcname = iv_funcname
param = lv_parameter
stext = lv_stext
subrc = lv_subrc_bak
textid = zcx_bc_function_subrc=>subrc_error.
ENDMETHOD.
ENDCLASS.
CLASS zcl_sample DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
METHODS sample_method RAISING zcx_bc_function_subrc.
PRIVATE SECTION.
PROTECTED SECTION.
ENDLCASS.
CLASS zcl_sample IMPLEMENTATION.
METHOD sample_method.
CALL FUNCTION 'ZFUNCTION'
EXPORTING
IV_PARAM1 = 'DUMMY'
EXCEPTIONS
some_error = 1
another_error = 2
OTHERS = 3
##FM_SUBRC_OK .
zcx_bc_function_subrc=>raise_if_sysubrc_not_initial( 'ZFUNCTION' ).
ENDMETHOD.
ENDCLASS.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
2 | |
2 | |
2 | |
2 | |
1 | |
1 |