From 7dd14b7ccf6e1ca8be2dd39f47d6ca05be26da9d Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Tue, 10 Dec 2024 07:31:04 -0500 Subject: [PATCH 1/2] USCA: Fix missing transport entry (#7110) Co-authored-by: Lars Hvam --- src/objects/zcl_abapgit_object_ucsa.clas.abap | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/objects/zcl_abapgit_object_ucsa.clas.abap b/src/objects/zcl_abapgit_object_ucsa.clas.abap index 95b791087..0f80e1516 100644 --- a/src/objects/zcl_abapgit_object_ucsa.clas.abap +++ b/src/objects/zcl_abapgit_object_ucsa.clas.abap @@ -158,6 +158,8 @@ CLASS zcl_abapgit_object_ucsa IMPLEMENTATION. tadir_delete( ). + corr_insert( iv_package ). + ENDMETHOD. @@ -195,6 +197,8 @@ CLASS zcl_abapgit_object_ucsa IMPLEMENTATION. tadir_insert( iv_package ). + corr_insert( iv_package ). + CATCH cx_root INTO lx_root. lv_text = lx_root->get_text( ). zcx_abapgit_exception=>raise( lv_text ). From cf9da3c06dc0a6b907dfa2ce9f175185eb107e9e Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Tue, 10 Dec 2024 15:17:28 -0500 Subject: [PATCH 2/2] Enhance logging with message id and number (#7111) Co-authored-by: Lars Hvam --- .../zcl_abapgit_objects_activation.clas.abap | 21 +++++-- src/ui/lib/zcl_abapgit_log_viewer.clas.abap | 57 ++++++++++++------- src/utils/zcl_abapgit_log.clas.abap | 12 ++-- .../zcl_abapgit_log.clas.testclasses.abap | 41 ++++++++++++- src/utils/zif_abapgit_log.intf.abap | 20 ++++--- 5 files changed, 115 insertions(+), 36 deletions(-) diff --git a/src/objects/core/zcl_abapgit_objects_activation.clas.abap b/src/objects/core/zcl_abapgit_objects_activation.clas.abap index 09d549be6..2aa608696 100644 --- a/src/objects/core/zcl_abapgit_objects_activation.clas.abap +++ b/src/objects/core/zcl_abapgit_objects_activation.clas.abap @@ -398,9 +398,18 @@ CLASS zcl_abapgit_objects_activation IMPLEMENTATION. WHERE type = -show_req->object_type. ENDIF. LOOP AT -mtext ASSIGNING . - ii_log->add_error( - iv_msg = - is_item = ls_item ). + IF sy-tabix = 1. + ii_log->add( + iv_type = 'E' + iv_msg = + iv_class = -message-msgid + iv_number = -message-msgno + is_item = ls_item ). + ELSE. + ii_log->add_error( + iv_msg = + is_item = ls_item ). + ENDIF. ENDLOOP. ENDLOOP. @@ -439,8 +448,10 @@ CLASS zcl_abapgit_objects_activation IMPLEMENTATION. DELETE lt_lines WHERE class = 'D0' AND number = '319'. LOOP AT lt_lines ASSIGNING . - ii_log->add( iv_msg = -line - iv_type = -severity ). + ii_log->add( iv_msg = -line + iv_type = -severity + iv_class = -class + iv_number = |{ -number }| ). ENDLOOP. ii_log->add_info( |View complete activation log in program RSPUTPRT (type D, log name { iv_logname })| ). diff --git a/src/ui/lib/zcl_abapgit_log_viewer.clas.abap b/src/ui/lib/zcl_abapgit_log_viewer.clas.abap index 9c86a540a..b78d2fa71 100644 --- a/src/ui/lib/zcl_abapgit_log_viewer.clas.abap +++ b/src/ui/lib/zcl_abapgit_log_viewer.clas.abap @@ -30,6 +30,8 @@ CLASS zcl_abapgit_log_viewer DEFINITION source TYPE icon_d, callstack TYPE icon_d, cell_type TYPE salv_t_int4_column, + id TYPE sy-msgid, + number TYPE sy-msgno, END OF ty_log_out. TYPES: ty_log_outs TYPE STANDARD TABLE OF ty_log_out @@ -91,7 +93,7 @@ ENDCLASS. -CLASS ZCL_ABAPGIT_LOG_VIEWER IMPLEMENTATION. +CLASS zcl_abapgit_log_viewer IMPLEMENTATION. METHOD calculate_cell_type. @@ -230,7 +232,7 @@ CLASS ZCL_ABAPGIT_LOG_VIEWER IMPLEMENTATION. CLEAR: ls_log. - ls_log-msg = lr_message->text. + ls_log-msg = lr_message->text. ls_log-exception = lr_message->exception. CASE lr_message->type. @@ -268,6 +270,10 @@ CLASS ZCL_ABAPGIT_LOG_VIEWER IMPLEMENTATION. CATCH cx_sy_move_cast_error ##NO_HANDLER. ENDTRY. + ELSEIF lr_message->id IS NOT INITIAL AND lr_message->number IS NOT INITIAL. + ls_log-id = lr_message->id. + ls_log-number = lr_message->number. + ls_log-longtext = icon_system_help. ENDIF. ls_log-obj_type = lr_message->obj_type. @@ -387,6 +393,16 @@ CLASS ZCL_ABAPGIT_LOG_VIEWER IMPLEMENTATION. lo_column->set_technical( abap_true ). ENDIF. + LOOP AT gt_log TRANSPORTING NO FIELDS WHERE id IS NOT INITIAL. + EXIT. + ENDLOOP. + IF sy-subrc <> 0. + lo_column = lo_columns->get_column( |ID| ). + lo_column->set_technical( abap_true ). + lo_column = lo_columns->get_column( |NUMBER| ). + lo_column->set_technical( abap_true ). + ENDIF. + ls_position = zcl_abapgit_popups=>center( iv_width = 125 iv_height = 20 ). @@ -424,31 +440,34 @@ CLASS ZCL_ABAPGIT_LOG_VIEWER IMPLEMENTATION. lt_dummy2 TYPE TABLE OF dval, ls_help_info TYPE help_info. - IF is_log-exception IS NOT BOUND. + IF is_log-exception IS BOUND. + TRY. + lx_abapgit ?= is_log-exception. + CATCH cx_sy_move_cast_error. + RETURN. + ENDTRY. + + lv_docu_object = lx_abapgit->if_t100_message~t100key-msgid && lx_abapgit->if_t100_message~t100key-msgno. + ls_help_info-messageid = lx_abapgit->if_t100_message~t100key-msgid. + ls_help_info-messagenr = lx_abapgit->if_t100_message~t100key-msgno. + ls_help_info-msgv1 = lx_abapgit->msgv1. + ls_help_info-msgv2 = lx_abapgit->msgv2. + ls_help_info-msgv3 = lx_abapgit->msgv3. + ls_help_info-msgv4 = lx_abapgit->msgv4. + ELSEIF is_log-id IS NOT INITIAL AND is_log-number IS NOT INITIAL. + lv_docu_object = is_log-id && is_log-number. + ls_help_info-messageid = is_log-id. + ls_help_info-messagenr = is_log-number. + ELSE. RETURN. ENDIF. - TRY. - lx_abapgit ?= is_log-exception. - CATCH cx_sy_move_cast_error. - RETURN. - ENDTRY. - - lv_docu_object = lx_abapgit->if_t100_message~t100key-msgid. - lv_docu_object+2 = lx_abapgit->if_t100_message~t100key-msgno. - ls_help_info-call = 'D'. ls_help_info-spras = sy-langu. - ls_help_info-messageid = lx_abapgit->if_t100_message~t100key-msgid. - ls_help_info-messagenr = lx_abapgit->if_t100_message~t100key-msgno. ls_help_info-message = is_log-msg. ls_help_info-title = 'Longtext'. ls_help_info-docuid = 'NA'. - ls_help_info-docuobject = lv_docu_object. - ls_help_info-msgv1 = lx_abapgit->msgv1. - ls_help_info-msgv2 = lx_abapgit->msgv2. - ls_help_info-msgv3 = lx_abapgit->msgv3. - ls_help_info-msgv4 = lx_abapgit->msgv4. + ls_help_info-docuobject = condense( lv_docu_object ). CALL FUNCTION 'HELP_START' EXPORTING diff --git a/src/utils/zcl_abapgit_log.clas.abap b/src/utils/zcl_abapgit_log.clas.abap index a22becf90..098d1537a 100644 --- a/src/utils/zcl_abapgit_log.clas.abap +++ b/src/utils/zcl_abapgit_log.clas.abap @@ -90,10 +90,12 @@ CLASS zcl_abapgit_log IMPLEMENTATION. FIELD-SYMBOLS: LIKE LINE OF mt_log. APPEND INITIAL LINE TO mt_log ASSIGNING . - -msg-text = iv_msg. - -msg-type = iv_type. - -item = is_item. - -exception = ix_exc. + -msg-text = iv_msg. + -msg-type = iv_type. + -msg-id = iv_class. + -msg-number = iv_number. + -item = is_item. + -exception = ix_exc. CASE iv_type. WHEN 'E' OR 'A' OR 'X'. @@ -252,6 +254,8 @@ CLASS zcl_abapgit_log IMPLEMENTATION. FIELD-SYMBOLS TYPE ty_log. LOOP AT mt_log ASSIGNING . ls_msg-type = -msg-type. + ls_msg-id = -msg-id. + ls_msg-number = -msg-number. ls_msg-text = -msg-text. ls_msg-obj_type = -item-obj_type. ls_msg-obj_name = -item-obj_name. diff --git a/src/utils/zcl_abapgit_log.clas.testclasses.abap b/src/utils/zcl_abapgit_log.clas.testclasses.abap index d23c5e975..dd897dc12 100644 --- a/src/utils/zcl_abapgit_log.clas.testclasses.abap +++ b/src/utils/zcl_abapgit_log.clas.testclasses.abap @@ -14,7 +14,8 @@ CLASS ltcl_test DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS FINAL. merge_with_min_level FOR TESTING, empty FOR TESTING, clone FOR TESTING, - add FOR TESTING. + add FOR TESTING, + add_with_id_number FOR TESTING. ENDCLASS. @@ -64,6 +65,44 @@ CLASS ltcl_test IMPLEMENTATION. ENDMETHOD. + METHOD add_with_id_number. + + DATA lv_message TYPE string. + DATA lt_messages TYPE zif_abapgit_log=>ty_log_outs. + DATA ls_message LIKE LINE OF lt_messages. + + lv_message = 'abracadabra'. + + mi_cut->add( + iv_msg = lv_message + iv_type = 'W' + iv_class = 'SL' + iv_number = '123' ). + + cl_abap_unit_assert=>assert_equals( + act = mi_cut->count( ) + exp = 1 ). + + cl_abap_unit_assert=>assert_equals( + act = mi_cut->get_status( ) + exp = 'W' ). + + lt_messages = mi_cut->get_messages( ). + READ TABLE lt_messages INDEX 1 INTO ls_message. + cl_abap_unit_assert=>assert_subrc( ). + + cl_abap_unit_assert=>assert_equals( + act = ls_message-text + exp = lv_message ). + cl_abap_unit_assert=>assert_equals( + act = ls_message-id + exp = 'SL' ). + cl_abap_unit_assert=>assert_equals( + act = ls_message-number + exp = '123' ). + + ENDMETHOD. + METHOD get_status. DATA lo_x TYPE REF TO zcx_abapgit_exception. diff --git a/src/utils/zif_abapgit_log.intf.abap b/src/utils/zif_abapgit_log.intf.abap index aeb4ea669..8e18e69be 100644 --- a/src/utils/zif_abapgit_log.intf.abap +++ b/src/utils/zif_abapgit_log.intf.abap @@ -19,6 +19,8 @@ INTERFACE zif_abapgit_log TYPES: BEGIN OF ty_log_out, type TYPE sy-msgty, + id TYPE sy-msgid, + number TYPE sy-msgno, text TYPE string, obj_type TYPE tadir-object, obj_name TYPE tadir-obj_name, @@ -29,9 +31,11 @@ INTERFACE zif_abapgit_log WITH NON-UNIQUE DEFAULT KEY . TYPES: BEGIN OF ty_msg, - text TYPE string, - type TYPE sy-msgty, - level TYPE i, + text TYPE string, + type TYPE sy-msgty, + id TYPE sy-msgid, + number TYPE sy-msgno, + level TYPE i, END OF ty_msg . TYPES: ty_msgs TYPE STANDARD TABLE OF ty_msg @@ -48,10 +52,12 @@ INTERFACE zif_abapgit_log METHODS add IMPORTING - !iv_msg TYPE csequence - !iv_type TYPE sy-msgty DEFAULT 'E' - !is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL - !ix_exc TYPE REF TO cx_root OPTIONAL . + !iv_msg TYPE csequence + !iv_type TYPE sy-msgty DEFAULT 'E' + !iv_class TYPE sy-msgid OPTIONAL + !iv_number TYPE sy-msgno OPTIONAL + !is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL + !ix_exc TYPE REF TO cx_root OPTIONAL . METHODS add_error IMPORTING !iv_msg TYPE csequence