Merge pull request #654 from larshp/issue_653

refactor lcl_log->add
This commit is contained in:
Lars Hvam 2017-03-11 07:28:56 +01:00 committed by GitHub
commit c75de3fe5d
3 changed files with 67 additions and 67 deletions

View File

@ -99,11 +99,9 @@ CLASS lcl_file_status IMPLEMENTATION.
BINARY SEARCH. " Sorted above BINARY SEARCH. " Sorted above
IF sy-subrc <> 0 OR <ls_res1>-path <> <ls_res2>-path. " All paths are same IF sy-subrc <> 0 OR <ls_res1>-path <> <ls_res2>-path. " All paths are same
io_log->add( iv_msgv1 = 'Files for object' io_log->add( iv_msg = |Files for object { <ls_res1>-obj_type }{
iv_msgv2 = <ls_res1>-obj_type <ls_res1>-obj_name }are not placed in the same folder|
iv_msgv3 = <ls_res1>-obj_name iv_type = 'W'
iv_msgv4 = 'are not placed in the same folder'
iv_msgty = 'W'
iv_rc = '1' ) ##no_text. iv_rc = '1' ) ##no_text.
ENDIF. ENDIF.
ENDLOOP. ENDLOOP.
@ -115,10 +113,9 @@ CLASS lcl_file_status IMPLEMENTATION.
io_dot = io_dot io_dot = io_dot
iv_package = <ls_res1>-package ). iv_package = <ls_res1>-package ).
IF lv_path <> <ls_res1>-path. IF lv_path <> <ls_res1>-path.
io_log->add( iv_msgv1 = 'Package and path does not match for object,' io_log->add( iv_msg = |Package and path does not match for object, {
iv_msgv2 = <ls_res1>-obj_type <ls_res1>-obj_type } { <ls_res1>-obj_name }|
iv_msgv3 = <ls_res1>-obj_name iv_type = 'W'
iv_msgty = 'W'
iv_rc = '2' ) ##no_text. iv_rc = '2' ) ##no_text.
ENDIF. ENDIF.
ENDLOOP. ENDLOOP.
@ -128,17 +125,14 @@ CLASS lcl_file_status IMPLEMENTATION.
LOOP AT lt_res_sort ASSIGNING <ls_res1>. LOOP AT lt_res_sort ASSIGNING <ls_res1>.
IF <ls_res1>-filename IS NOT INITIAL AND <ls_res1>-filename = ls_file-filename. IF <ls_res1>-filename IS NOT INITIAL AND <ls_res1>-filename = ls_file-filename.
io_log->add( iv_msgv1 = 'Multiple files with same filename,' io_log->add( iv_msg = |Multiple files with same filename, { <ls_res1>-filename }|
iv_msgv2 = <ls_res1>-filename iv_type = 'W'
iv_msgty = 'W'
iv_rc = '3' ) ##no_text. iv_rc = '3' ) ##no_text.
ENDIF. ENDIF.
IF <ls_res1>-filename IS INITIAL. IF <ls_res1>-filename IS INITIAL.
io_log->add( iv_msgv1 = 'Filename is empty for object' io_log->add( iv_msg = |Filename is empty for object { <ls_res1>-obj_type } { <ls_res1>-obj_name }|
iv_msgv2 = <ls_res1>-obj_type iv_type = 'W'
iv_msgv3 = <ls_res1>-obj_name
iv_msgty = 'W'
iv_rc = '4' ) ##no_text. iv_rc = '4' ) ##no_text.
ENDIF. ENDIF.

View File

@ -481,11 +481,9 @@ CLASS lcl_objects IMPLEMENTATION.
IF is_supported( is_item ) = abap_false. IF is_supported( is_item ) = abap_false.
IF NOT io_log IS INITIAL. IF NOT io_log IS INITIAL.
io_log->add( iv_msgv1 = 'Object type ignored, not supported:' io_log->add( iv_msg = |Object type ignored, not supported: { is_item-obj_type
iv_msgv2 = is_item-obj_type }-{ is_item-obj_name }|
iv_msgv3 = '-' iv_type = 'E' ).
iv_msgty = 'E'
iv_msgv4 = is_item-obj_name ) ##no_text.
ENDIF. ENDIF.
RETURN. RETURN.
ENDIF. ENDIF.

View File

@ -444,7 +444,7 @@ CLASS lcl_path IMPLEMENTATION.
lv_index TYPE i, lv_index TYPE i,
lt_split TYPE TABLE OF string. lt_split TYPE TABLE OF string.
" filename | c:\filename | /dir/filename | \\server\filename " filename | c:\filename | /dir/filename | \\server\filename
IF iv_path CA '/'. IF iv_path CA '/'.
lv_split = '/'. lv_split = '/'.
ELSE. ELSE.
@ -1051,11 +1051,8 @@ CLASS lcl_log DEFINITION FINAL.
METHODS: METHODS:
add add
IMPORTING IMPORTING
iv_msgv1 TYPE csequence iv_msg TYPE csequence
iv_msgv2 TYPE csequence OPTIONAL iv_type TYPE symsgty DEFAULT 'E'
iv_msgv3 TYPE csequence OPTIONAL
iv_msgv4 TYPE csequence OPTIONAL
iv_msgty TYPE symsgty DEFAULT 'E'
iv_rc TYPE balsort OPTIONAL, iv_rc TYPE balsort OPTIONAL,
count count
RETURNING VALUE(rv_count) TYPE i, RETURNING VALUE(rv_count) TYPE i,
@ -1068,7 +1065,13 @@ CLASS lcl_log DEFINITION FINAL.
show. show.
PRIVATE SECTION. PRIVATE SECTION.
DATA: mt_log TYPE rs_t_msg. TYPES: BEGIN OF ty_log,
msg TYPE string,
type TYPE symsgty,
rc TYPE balsort,
END OF ty_log.
DATA: mt_log TYPE STANDARD TABLE OF ty_log WITH DEFAULT KEY.
ENDCLASS. ENDCLASS.
@ -1077,8 +1080,7 @@ CLASS lcl_log IMPLEMENTATION.
METHOD to_html. METHOD to_html.
DATA: lv_class TYPE string, DATA: lv_class TYPE string,
lv_icon TYPE string, lv_icon TYPE string.
lv_string TYPE string.
FIELD-SYMBOLS: <ls_log> LIKE LINE OF mt_log. FIELD-SYMBOLS: <ls_log> LIKE LINE OF mt_log.
@ -1089,7 +1091,7 @@ CLASS lcl_log IMPLEMENTATION.
ENDIF. ENDIF.
LOOP AT mt_log ASSIGNING <ls_log>. LOOP AT mt_log ASSIGNING <ls_log>.
CASE <ls_log>-msgty. CASE <ls_log>-type.
WHEN 'W'. WHEN 'W'.
lv_icon = 'alert'. lv_icon = 'alert'.
lv_class = 'warning'. lv_class = 'warning'.
@ -1101,12 +1103,9 @@ CLASS lcl_log IMPLEMENTATION.
lv_class = 'error'. lv_class = 'error'.
ENDCASE. ENDCASE.
CONCATENATE <ls_log>-msgv1 <ls_log>-msgv2 <ls_log>-msgv3 <ls_log>-msgv4
INTO lv_string SEPARATED BY space.
ro_html->add( |<span class="{ lv_class }">| ). ro_html->add( |<span class="{ lv_class }">| ).
ro_html->add_icon( iv_name = lv_icon ). ro_html->add_icon( iv_name = lv_icon ).
ro_html->add( lv_string ). ro_html->add( <ls_log>-msg ).
ro_html->add( '</span>' ). ro_html->add( '</span>' ).
ENDLOOP. ENDLOOP.
@ -1117,26 +1116,35 @@ CLASS lcl_log IMPLEMENTATION.
FIELD-SYMBOLS: <ls_log> LIKE LINE OF mt_log. FIELD-SYMBOLS: <ls_log> LIKE LINE OF mt_log.
APPEND INITIAL LINE TO mt_log ASSIGNING <ls_log>. APPEND INITIAL LINE TO mt_log ASSIGNING <ls_log>.
<ls_log>-msgty = iv_msgty. " Error by default <ls_log>-msg = iv_msg.
<ls_log>-msgid = '00'. <ls_log>-type = iv_type.
<ls_log>-msgno = '001'. <ls_log>-rc = iv_rc.
<ls_log>-msgv1 = iv_msgv1.
<ls_log>-msgv2 = iv_msgv2.
<ls_log>-msgv3 = iv_msgv3.
<ls_log>-msgv4 = iv_msgv4.
<ls_log>-alsort = iv_rc. " Error code for unit test, not sure about better field
ENDMETHOD. ENDMETHOD.
METHOD show. METHOD show.
CALL FUNCTION 'RSDC_SHOW_MESSAGES_POPUP' * only supports showing 4 errors, but I guess this is okay
* alternatively refactor to use method TO_HTML instead
DATA: ls_log1 LIKE LINE OF mt_log,
ls_log2 LIKE LINE OF mt_log,
ls_log3 LIKE LINE OF mt_log,
ls_log4 LIKE LINE OF mt_log.
READ TABLE mt_log INDEX 1 INTO ls_log1.
READ TABLE mt_log INDEX 1 INTO ls_log2.
READ TABLE mt_log INDEX 1 INTO ls_log3.
READ TABLE mt_log INDEX 1 INTO ls_log4.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING EXPORTING
i_t_msg = mt_log titel = 'Log'
i_txt = 'Warning' txt1 = ls_log1-msg
i_with_s_on_empty = abap_false txt2 = ls_log2-msg
i_one_msg_direct = abap_false txt3 = ls_log3-msg
i_one_msg_type_s = abap_false txt4 = ls_log4-msg.
##no_text.
ENDMETHOD. ENDMETHOD.
METHOD count. METHOD count.
@ -1148,7 +1156,7 @@ CLASS lcl_log IMPLEMENTATION.
ENDMETHOD. " clear. ENDMETHOD. " clear.
METHOD has_rc. METHOD has_rc.
READ TABLE mt_log WITH KEY alsort = iv_rc TRANSPORTING NO FIELDS. READ TABLE mt_log WITH KEY rc = iv_rc TRANSPORTING NO FIELDS.
rv_yes = boolc( sy-subrc = 0 ). rv_yes = boolc( sy-subrc = 0 ).
ENDMETHOD. "has_rc ENDMETHOD. "has_rc