mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 20:36:46 +08:00
bal and message functions (#1565)
* bal and message functions * update * fix
This commit is contained in:
parent
20500bd40a
commit
4a115007f1
|
@ -69,7 +69,7 @@ CLASS z2ui5_cl_util DEFINITION
|
||||||
v2 TYPE string,
|
v2 TYPE string,
|
||||||
v3 TYPE string,
|
v3 TYPE string,
|
||||||
v4 TYPE string,
|
v4 TYPE string,
|
||||||
timestampl type timestampl,
|
timestampl TYPE timestampl,
|
||||||
END OF ty_s_msg,
|
END OF ty_s_msg,
|
||||||
ty_t_msg TYPE STANDARD TABLE OF ty_S_msg WITH EMPTY KEY.
|
ty_t_msg TYPE STANDARD TABLE OF ty_S_msg WITH EMPTY KEY.
|
||||||
|
|
||||||
|
@ -459,13 +459,6 @@ CLASS z2ui5_cl_util DEFINITION
|
||||||
VALUE(result) TYPE abap_bool.
|
VALUE(result) TYPE abap_bool.
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
CLASS-METHODS msg_map
|
|
||||||
IMPORTING
|
|
||||||
name TYPE clike
|
|
||||||
val TYPE data
|
|
||||||
is_msg TYPE z2ui5_cl_util=>ty_s_msg
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE z2ui5_cl_util=>ty_s_msg.
|
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
@ -1408,114 +1401,7 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD msg_get.
|
METHOD msg_get.
|
||||||
|
|
||||||
DATA(lv_kind) = z2ui5_cl_util=>rtti_get_type_kind( val ).
|
result = lcl_msp_mapper=>msg_get( val ).
|
||||||
CASE lv_kind.
|
|
||||||
|
|
||||||
WHEN cl_abap_datadescr=>typekind_table.
|
|
||||||
FIELD-SYMBOLS <tab> TYPE ANY TABLE.
|
|
||||||
ASSIGN val TO <tab>.
|
|
||||||
LOOP AT <tab> ASSIGNING FIELD-SYMBOL(<row>).
|
|
||||||
DATA(lt_tab) = msg_get( <row> ).
|
|
||||||
INSERT LINES OF lt_tab INTO TABLE result.
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
WHEN cl_abap_datadescr=>typekind_struct1 OR cl_abap_datadescr=>typekind_struct2.
|
|
||||||
|
|
||||||
IF val IS INITIAL.
|
|
||||||
RETURN.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
DATA(lt_attri) = z2ui5_cl_util=>rtti_get_t_attri_by_any( val ).
|
|
||||||
|
|
||||||
DATA(ls_result) = VALUE ty_s_msg( ).
|
|
||||||
LOOP AT lt_attri REFERENCE INTO DATA(ls_attri).
|
|
||||||
DATA(lv_name) = |VAL-{ ls_attri->name }|.
|
|
||||||
ASSIGN (lv_name) TO FIELD-SYMBOL(<comp>).
|
|
||||||
|
|
||||||
IF ls_attri->name = 'ITEM'.
|
|
||||||
lt_tab = msg_get( <comp> ).
|
|
||||||
INSERT LINES OF lt_tab INTO TABLE result.
|
|
||||||
RETURN.
|
|
||||||
ELSE.
|
|
||||||
ls_result = msg_map( name = ls_attri->name val = <comp> is_msg = ls_result ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDLOOP.
|
|
||||||
IF ls_result-text IS INITIAL AND ls_result-id IS NOT INITIAL.
|
|
||||||
MESSAGE ID ls_result-id TYPE 'I' NUMBER ls_result-no
|
|
||||||
WITH ls_result-v1 ls_result-v2 ls_result-v3 ls_result-v4
|
|
||||||
INTO ls_result-text.
|
|
||||||
ENDIF.
|
|
||||||
INSERT ls_result INTO TABLE result.
|
|
||||||
|
|
||||||
WHEN cl_abap_datadescr=>typekind_oref.
|
|
||||||
TRY.
|
|
||||||
DATA(lx) = CAST cx_root( val ).
|
|
||||||
ls_result = VALUE #( type = 'E' text = lx->get_text( ) ).
|
|
||||||
DATA(lt_attri_o) = z2ui5_cl_util=>rtti_get_t_attri_by_oref( val ).
|
|
||||||
LOOP AT lt_attri_o REFERENCE INTO DATA(ls_attri_o)
|
|
||||||
WHERE visibility = 'U'.
|
|
||||||
lv_name = |VAL->{ ls_attri_o->name }|.
|
|
||||||
ASSIGN (lv_name) TO <comp>.
|
|
||||||
ls_result = msg_map( name = ls_attri_o->name val = <comp> is_msg = ls_result ).
|
|
||||||
ENDLOOP.
|
|
||||||
INSERT ls_result INTO TABLE result.
|
|
||||||
CATCH cx_root.
|
|
||||||
|
|
||||||
DATA obj TYPE REF TO object.
|
|
||||||
obj = val.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
|
|
||||||
DATA lr_tab TYPE REF TO data.
|
|
||||||
CREATE DATA lr_tab TYPE ('if_bali_log=>ty_item_table').
|
|
||||||
ASSIGN lr_tab->* TO FIELD-SYMBOL(<tab2>).
|
|
||||||
|
|
||||||
CALL METHOD obj->(`IF_BALI_LOG~GET_ALL_ITEMS`)
|
|
||||||
RECEIVING
|
|
||||||
item_table = <tab2>.
|
|
||||||
|
|
||||||
DATA(lt_tab2) = msg_get( <tab2> ).
|
|
||||||
INSERT LINES OF lt_tab2 INTO TABLE result.
|
|
||||||
|
|
||||||
CATCH cx_root.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
|
|
||||||
CREATE DATA lr_tab TYPE ('BAPIRETTAB').
|
|
||||||
ASSIGN lr_tab->* TO <tab2>.
|
|
||||||
|
|
||||||
CALL METHOD obj->(`ZIF_LOGGER~EXPORT_TO_TABLE`)
|
|
||||||
RECEIVING
|
|
||||||
rt_bapiret = <tab2>.
|
|
||||||
|
|
||||||
lt_tab2 = msg_get( <tab2> ).
|
|
||||||
INSERT LINES OF lt_tab2 INTO TABLE result.
|
|
||||||
|
|
||||||
CATCH cx_root INTO DATA(lx2).
|
|
||||||
|
|
||||||
|
|
||||||
lt_attri_o = z2ui5_cl_util=>rtti_get_t_attri_by_oref( val ).
|
|
||||||
LOOP AT lt_attri_o REFERENCE INTO ls_attri_o
|
|
||||||
WHERE visibility = 'U'.
|
|
||||||
lv_name = |OBJ->{ ls_attri_o->name }|.
|
|
||||||
ASSIGN (lv_name) TO <comp>.
|
|
||||||
ls_result = msg_map( name = ls_attri_o->name val = <comp> is_msg = ls_result ).
|
|
||||||
ENDLOOP.
|
|
||||||
INSERT ls_result INTO TABLE result.
|
|
||||||
|
|
||||||
ENDTRY.
|
|
||||||
ENDTRY.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
WHEN OTHERS.
|
|
||||||
|
|
||||||
IF rtti_check_clike( val ).
|
|
||||||
INSERT VALUE #( text = val
|
|
||||||
)
|
|
||||||
INTO TABLE result.
|
|
||||||
ENDIF.
|
|
||||||
ENDCASE.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -1538,32 +1424,7 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
|
||||||
WHEN 'E' THEN `Error`
|
WHEN 'E' THEN `Error`
|
||||||
WHEN 'S' THEN `Success`
|
WHEN 'S' THEN `Success`
|
||||||
WHEN `W` THEN `Warning`
|
WHEN `W` THEN `Warning`
|
||||||
ELSE `Information`
|
ELSE `Information` ).
|
||||||
).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD msg_map.
|
|
||||||
|
|
||||||
result = is_msg.
|
|
||||||
CASE name.
|
|
||||||
WHEN 'ID' OR 'MSGID'.
|
|
||||||
result-id = val.
|
|
||||||
WHEN 'NO' OR 'NUMBER' OR 'MSGNO'.
|
|
||||||
result-no = val.
|
|
||||||
WHEN 'MESSAGE' OR 'TEXT'.
|
|
||||||
result-text = val.
|
|
||||||
WHEN 'TYPE' OR 'MSGTY'.
|
|
||||||
result-type = val.
|
|
||||||
WHEN 'MESSAGE_V1' OR 'MSGV1' OR 'V1'.
|
|
||||||
result-v1 = val.
|
|
||||||
WHEN 'MESSAGE_V2' OR 'MSGV2' OR 'V2'.
|
|
||||||
result-v2 = val.
|
|
||||||
WHEN 'MESSAGE_V3' OR 'MSGV3' OR 'V3'.
|
|
||||||
result-v3 = val.
|
|
||||||
WHEN 'MESSAGE_V4' OR 'MSGV4' OR 'V4'.
|
|
||||||
result-v4 = val.
|
|
||||||
ENDCASE.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
|
@ -116,3 +116,166 @@ CLASS lcl_range_to_sql IMPLEMENTATION.
|
||||||
occ = 0 ) }'|.
|
occ = 0 ) }'|.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS lcl_msp_mapper DEFINITION
|
||||||
|
FINAL CREATE PUBLIC.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
CLASS-METHODS msg_map
|
||||||
|
IMPORTING
|
||||||
|
name TYPE clike
|
||||||
|
val TYPE data
|
||||||
|
is_msg TYPE z2ui5_cl_util=>ty_s_msg
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE z2ui5_cl_util=>ty_s_msg.
|
||||||
|
|
||||||
|
CLASS-METHODS msg_get
|
||||||
|
IMPORTING
|
||||||
|
val TYPE any
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE z2ui5_cl_util=>ty_t_msg.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS lcl_msp_mapper IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD msg_get.
|
||||||
|
|
||||||
|
DATA(lv_kind) = z2ui5_cl_util=>rtti_get_type_kind( val ).
|
||||||
|
CASE lv_kind.
|
||||||
|
|
||||||
|
WHEN cl_abap_datadescr=>typekind_table.
|
||||||
|
FIELD-SYMBOLS <tab> TYPE ANY TABLE.
|
||||||
|
ASSIGN val TO <tab>.
|
||||||
|
LOOP AT <tab> ASSIGNING FIELD-SYMBOL(<row>).
|
||||||
|
DATA(lt_tab) = msg_get( <row> ).
|
||||||
|
INSERT LINES OF lt_tab INTO TABLE result.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
WHEN cl_abap_datadescr=>typekind_struct1 OR cl_abap_datadescr=>typekind_struct2.
|
||||||
|
|
||||||
|
IF val IS INITIAL.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
DATA(lt_attri) = z2ui5_cl_util=>rtti_get_t_attri_by_any( val ).
|
||||||
|
|
||||||
|
DATA(ls_result) = VALUE z2ui5_cl_util=>ty_s_msg( ).
|
||||||
|
LOOP AT lt_attri REFERENCE INTO DATA(ls_attri).
|
||||||
|
DATA(lv_name) = |VAL-{ ls_attri->name }|.
|
||||||
|
ASSIGN (lv_name) TO FIELD-SYMBOL(<comp>).
|
||||||
|
|
||||||
|
IF ls_attri->name = 'ITEM'.
|
||||||
|
lt_tab = msg_get( <comp> ).
|
||||||
|
INSERT LINES OF lt_tab INTO TABLE result.
|
||||||
|
RETURN.
|
||||||
|
ELSE.
|
||||||
|
ls_result = msg_map( name = ls_attri->name val = <comp> is_msg = ls_result ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
IF ls_result-text IS INITIAL AND ls_result-id IS NOT INITIAL.
|
||||||
|
MESSAGE ID ls_result-id TYPE 'I' NUMBER ls_result-no
|
||||||
|
WITH ls_result-v1 ls_result-v2 ls_result-v3 ls_result-v4
|
||||||
|
INTO ls_result-text.
|
||||||
|
ENDIF.
|
||||||
|
INSERT ls_result INTO TABLE result.
|
||||||
|
|
||||||
|
WHEN cl_abap_datadescr=>typekind_oref.
|
||||||
|
TRY.
|
||||||
|
DATA(lx) = CAST cx_root( val ).
|
||||||
|
ls_result = VALUE #( type = 'E' text = lx->get_text( ) ).
|
||||||
|
DATA(lt_attri_o) = z2ui5_cl_util=>rtti_get_t_attri_by_oref( val ).
|
||||||
|
LOOP AT lt_attri_o REFERENCE INTO DATA(ls_attri_o)
|
||||||
|
WHERE visibility = 'U'.
|
||||||
|
lv_name = |VAL->{ ls_attri_o->name }|.
|
||||||
|
ASSIGN (lv_name) TO <comp>.
|
||||||
|
ls_result = msg_map( name = ls_attri_o->name val = <comp> is_msg = ls_result ).
|
||||||
|
ENDLOOP.
|
||||||
|
INSERT ls_result INTO TABLE result.
|
||||||
|
CATCH cx_root.
|
||||||
|
|
||||||
|
DATA obj TYPE REF TO object.
|
||||||
|
obj = val.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
|
||||||
|
DATA lr_tab TYPE REF TO data.
|
||||||
|
CREATE DATA lr_tab TYPE ('if_bali_log=>ty_item_table').
|
||||||
|
ASSIGN lr_tab->* TO FIELD-SYMBOL(<tab2>).
|
||||||
|
|
||||||
|
CALL METHOD obj->(`IF_BALI_LOG~GET_ALL_ITEMS`)
|
||||||
|
RECEIVING
|
||||||
|
item_table = <tab2>.
|
||||||
|
|
||||||
|
DATA(lt_tab2) = msg_get( <tab2> ).
|
||||||
|
INSERT LINES OF lt_tab2 INTO TABLE result.
|
||||||
|
|
||||||
|
CATCH cx_root.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
|
||||||
|
CREATE DATA lr_tab TYPE ('BAPIRETTAB').
|
||||||
|
ASSIGN lr_tab->* TO <tab2>.
|
||||||
|
|
||||||
|
CALL METHOD obj->(`ZIF_LOGGER~EXPORT_TO_TABLE`)
|
||||||
|
RECEIVING
|
||||||
|
rt_bapiret = <tab2>.
|
||||||
|
|
||||||
|
lt_tab2 = msg_get( <tab2> ).
|
||||||
|
INSERT LINES OF lt_tab2 INTO TABLE result.
|
||||||
|
|
||||||
|
CATCH cx_root INTO DATA(lx2).
|
||||||
|
|
||||||
|
|
||||||
|
lt_attri_o = z2ui5_cl_util=>rtti_get_t_attri_by_oref( val ).
|
||||||
|
LOOP AT lt_attri_o REFERENCE INTO ls_attri_o
|
||||||
|
WHERE visibility = 'U'.
|
||||||
|
lv_name = |OBJ->{ ls_attri_o->name }|.
|
||||||
|
ASSIGN (lv_name) TO <comp>.
|
||||||
|
ls_result = msg_map( name = ls_attri_o->name val = <comp> is_msg = ls_result ).
|
||||||
|
ENDLOOP.
|
||||||
|
INSERT ls_result INTO TABLE result.
|
||||||
|
|
||||||
|
ENDTRY.
|
||||||
|
ENDTRY.
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
WHEN OTHERS.
|
||||||
|
|
||||||
|
IF z2ui5_cl_util=>rtti_check_clike( val ).
|
||||||
|
INSERT VALUE #( text = val
|
||||||
|
)
|
||||||
|
INTO TABLE result.
|
||||||
|
ENDIF.
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD msg_map.
|
||||||
|
|
||||||
|
result = is_msg.
|
||||||
|
CASE name.
|
||||||
|
WHEN 'ID' OR 'MSGID'.
|
||||||
|
result-id = val.
|
||||||
|
WHEN 'NO' OR 'NUMBER' OR 'MSGNO'.
|
||||||
|
result-no = val.
|
||||||
|
WHEN 'MESSAGE' OR 'TEXT'.
|
||||||
|
result-text = val.
|
||||||
|
WHEN 'TYPE' OR 'MSGTY'.
|
||||||
|
result-type = val.
|
||||||
|
WHEN 'MESSAGE_V1' OR 'MSGV1' OR 'V1'.
|
||||||
|
result-v1 = val.
|
||||||
|
WHEN 'MESSAGE_V2' OR 'MSGV2' OR 'V2'.
|
||||||
|
result-v2 = val.
|
||||||
|
WHEN 'MESSAGE_V3' OR 'MSGV3' OR 'V3'.
|
||||||
|
result-v3 = val.
|
||||||
|
WHEN 'MESSAGE_V4' OR 'MSGV4' OR 'V4'.
|
||||||
|
result-v4 = val.
|
||||||
|
WHEN 'TIME_STMP'.
|
||||||
|
result-timestampl = val.
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
|
@ -769,3 +769,128 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS ltcl_unit_test_msg_mapper DEFINITION FINAL
|
||||||
|
FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
METHODS test_bal FOR TESTING RAISING cx_static_check.
|
||||||
|
METHODS test_cx FOR TESTING RAISING cx_static_check.
|
||||||
|
METHODS test_bapiret FOR TESTING RAISING cx_static_check.
|
||||||
|
METHODS test_bapirettab FOR TESTING RAISING cx_static_check.
|
||||||
|
METHODS test_sy FOR TESTING RAISING cx_static_check.
|
||||||
|
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS ltcl_unit_test_msg_mapper IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD test_sy.
|
||||||
|
|
||||||
|
IF sy-sysid = 'ABC'.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
MESSAGE ID 'NET' TYPE 'I' NUMBER '001' INTO DATA(lv_dummy).
|
||||||
|
DATA(lt_result) = lcl_msp_mapper=>msg_get( sy ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals( exp = `NET`
|
||||||
|
act = lt_result[ 1 ]-id ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals( exp = `001`
|
||||||
|
act = lt_result[ 1 ]-no ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals( exp = `I`
|
||||||
|
act = lt_result[ 1 ]-type ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD test_bapiret.
|
||||||
|
|
||||||
|
IF sy-sysid = 'ABC'.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
DATA(lt_msg) = VALUE bapirettab(
|
||||||
|
( type = 'E' id = 'MSG1' number = '001' message = 'An empty Report field causes an empty XML Message to be sent' )
|
||||||
|
).
|
||||||
|
|
||||||
|
DATA(lt_result) = lcl_msp_mapper=>msg_get( lt_msg[ 1 ] ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals( exp = `MSG1`
|
||||||
|
act = lt_result[ 1 ]-id ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals( exp = `001`
|
||||||
|
act = lt_result[ 1 ]-no ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals( exp = `E`
|
||||||
|
act = lt_result[ 1 ]-type ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD test_bapirettab.
|
||||||
|
|
||||||
|
IF sy-sysid = 'ABC'.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
DATA(lt_msg) = VALUE bapirettab(
|
||||||
|
( type = 'E' id = 'MSG1' number = '001' message = 'An empty Report field causes an empty XML Message to be sent' )
|
||||||
|
( type = 'I' id = 'MSG2' number = '002' message = 'Product already in use' ) ).
|
||||||
|
|
||||||
|
DATA(lt_result) = lcl_msp_mapper=>msg_get( lt_msg ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals( exp = `MSG1`
|
||||||
|
act = lt_result[ 1 ]-id ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals( exp = `001`
|
||||||
|
act = lt_result[ 1 ]-no ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals( exp = `E`
|
||||||
|
act = lt_result[ 1 ]-type ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD test_cx.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
DATA(lv_val) = 1 / 0.
|
||||||
|
CATCH cx_root INTO DATA(lx).
|
||||||
|
DATA(lt_result) = lcl_msp_mapper=>msg_get( lx ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals( exp = `E`
|
||||||
|
act = lt_result[ 1 ]-type ).
|
||||||
|
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
method test_bal.
|
||||||
|
|
||||||
|
TYPES: BEGIN OF ty_log_entry,
|
||||||
|
msgnumber TYPE n LENGTH 6, " Application Log: Internal Message Serial Number
|
||||||
|
msgty TYPE c LENGTH 1, " Message Type
|
||||||
|
msgid TYPE c LENGTH 20, " Message Class
|
||||||
|
msgno TYPE n LENGTH 3, " Message Number
|
||||||
|
msgv1 TYPE c LENGTH 50, " Message Variable
|
||||||
|
msgv2 TYPE c LENGTH 50, " Message Variable
|
||||||
|
msgv3 TYPE c LENGTH 50, " Message Variable
|
||||||
|
msgv4 TYPE c LENGTH 50, " Message Variable
|
||||||
|
msgv1_src TYPE c LENGTH 15, " Origin of a Message Variable
|
||||||
|
msgv2_src TYPE c LENGTH 15, " Origin of a Message Variable
|
||||||
|
msgv3_src TYPE c LENGTH 15, " Origin of a Message Variable
|
||||||
|
msgv4_src TYPE c LENGTH 15, " Origin of a Message Variable
|
||||||
|
detlevel TYPE c LENGTH 1, " Level of Detail
|
||||||
|
probclass TYPE c LENGTH 1, " Problem Class
|
||||||
|
alsort TYPE c LENGTH 3, " Sort Criterion/Grouping
|
||||||
|
time_stmp TYPE p LENGTH 8 DECIMALS 7, " Message Time Stamp
|
||||||
|
msg_count TYPE i, " Cumulated Message Count
|
||||||
|
context TYPE c LENGTH 255, " Context (Generic Placeholder)
|
||||||
|
params TYPE c LENGTH 255, " Parameters (Generic Placeholder)
|
||||||
|
msg_txt TYPE string, " Message Text
|
||||||
|
END OF ty_log_entry.
|
||||||
|
|
||||||
|
endmethod.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
|
@ -77,20 +77,28 @@ CLASS z2ui5_cl_pop_bal IMPLEMENTATION.
|
||||||
METHOD view_display.
|
METHOD view_display.
|
||||||
|
|
||||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||||
popup = popup->dialog( title = `Messages`
|
popup = popup->dialog( title = `Business Application Log`
|
||||||
contentheight = '50%'
|
contentheight = '50%'
|
||||||
contentwidth = '50%'
|
contentwidth = '50%'
|
||||||
verticalScrolling = abap_false
|
verticalScrolling = abap_false
|
||||||
afterclose = client->_event( 'BUTTON_CONTINUE' )
|
afterclose = client->_event( 'BUTTON_CONTINUE' ) ).
|
||||||
).
|
|
||||||
|
|
||||||
popup->message_view( items = client->_bind( mt_msg )
|
DATA(table) = popup->table( client->_bind( mt_msg ) ).
|
||||||
* groupitems = abap_true
|
table->columns(
|
||||||
)->message_item( type = `{TYPE}`
|
)->column( )->text( 'Date' )->get_parent(
|
||||||
title = `{TITLE}`
|
)->column( )->text( 'Time' )->get_parent(
|
||||||
subtitle = `{SUBTITLE}`
|
)->column( )->text( 'Type' )->get_parent(
|
||||||
* description = `{MESSAGE}`
|
)->column( )->text( 'ID' )->get_parent(
|
||||||
* groupname = `{GROUP}`
|
)->column( )->text( 'No' )->get_parent(
|
||||||
|
)->column( )->text( 'Message' ).
|
||||||
|
|
||||||
|
table->items( )->column_list_item( )->cells(
|
||||||
|
)->text( '{DATE}'
|
||||||
|
)->text( '{TIME}'
|
||||||
|
)->text( '{TYPE}'
|
||||||
|
)->text( '{ID}'
|
||||||
|
)->text( '{NUMBER}'
|
||||||
|
)->text( '{MESSAGE}'
|
||||||
).
|
).
|
||||||
|
|
||||||
popup->buttons(
|
popup->buttons(
|
||||||
|
|
Loading…
Reference in New Issue
Block a user