diff --git a/abaplint.json b/abaplint.json index d8c2a60e5..527085962 100644 --- a/abaplint.json +++ b/abaplint.json @@ -97,7 +97,7 @@ "forbidden_void_type": { "check": ["^stringtab$", "^SYCHAR01$", "^char2$", "^char20$", "^int4$", "^SYREPID$", "^flag$", "^char12$", "^char10$", "^char70$", "^char4$", "^sydatum$", "^syuzeit$", - "^syst_title$", "^sychar70$", + "^syst_title$", "^sychar70$", "^char30$", "^char50$", "^numc2$", "^sap_bool$", "^SYCHAR10$", "^sylangu$"] }, "forbidden_identifier": true, diff --git a/src/objects/zcl_abapgit_object_iobj.clas.abap b/src/objects/zcl_abapgit_object_iobj.clas.abap index 7fb7f28c9..43e62e077 100644 --- a/src/objects/zcl_abapgit_object_iobj.clas.abap +++ b/src/objects/zcl_abapgit_object_iobj.clas.abap @@ -17,7 +17,21 @@ ENDCLASS. -CLASS zcl_abapgit_object_iobj IMPLEMENTATION. +CLASS ZCL_ABAPGIT_OBJECT_IOBJ IMPLEMENTATION. + + + METHOD clear_field. + + FIELD-SYMBOLS: TYPE data. + + ASSIGN COMPONENT iv_fieldname + OF STRUCTURE cg_metadata + TO . + ASSERT sy-subrc = 0. + + CLEAR: . + + ENDMETHOD. METHOD zif_abapgit_object~changed_by. @@ -244,12 +258,12 @@ CLASS zcl_abapgit_object_iobj IMPLEMENTATION. METHOD zif_abapgit_object~exists. - DATA: lv_iobjnm TYPE char30. + DATA: lv_iobjnm TYPE c LENGTH 30. SELECT SINGLE iobjnm - FROM ('RSDIOBJ') - INTO lv_iobjnm - WHERE iobjnm = ms_item-obj_name. + FROM ('RSDIOBJ') + INTO lv_iobjnm + WHERE iobjnm = ms_item-obj_name. rv_bool = boolc( sy-subrc = 0 ). @@ -439,19 +453,4 @@ CLASS zcl_abapgit_object_iobj IMPLEMENTATION. ig_data = ). ENDMETHOD. - - - METHOD clear_field. - - FIELD-SYMBOLS: TYPE data. - - ASSIGN COMPONENT iv_fieldname - OF STRUCTURE cg_metadata - TO . - ASSERT sy-subrc = 0. - - CLEAR: . - - ENDMETHOD. - ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_smtg.clas.abap b/src/objects/zcl_abapgit_object_smtg.clas.abap index 5a4591e83..eb05846f8 100644 --- a/src/objects/zcl_abapgit_object_smtg.clas.abap +++ b/src/objects/zcl_abapgit_object_smtg.clas.abap @@ -12,9 +12,10 @@ CLASS zcl_abapgit_object_smtg DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje RAISING zcx_abapgit_exception. + PROTECTED SECTION. PRIVATE SECTION. DATA: - mv_template_id TYPE char30, + mv_template_id TYPE c LENGTH 30, mo_structdescr TYPE REF TO cl_abap_structdescr. METHODS: @@ -38,12 +39,53 @@ CLASS zcl_abapgit_object_smtg DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje ct_components TYPE abap_component_tab RAISING zcx_abapgit_exception. - ENDCLASS. -CLASS zcl_abapgit_object_smtg IMPLEMENTATION. +CLASS ZCL_ABAPGIT_OBJECT_SMTG IMPLEMENTATION. + + + METHOD add_component. + + DATA: + ls_component LIKE LINE OF ct_components, + lo_typedescr TYPE REF TO cl_abap_typedescr. + + cl_abap_structdescr=>describe_by_name( + EXPORTING + p_name = iv_structure_name + RECEIVING + p_descr_ref = lo_typedescr + EXCEPTIONS + type_not_found = 1 + OTHERS = 2 ). + + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise( |SMTG not supported| ). + ENDIF. + + ls_component-name = iv_fielname. + ls_component-type ?= lo_typedescr. + INSERT ls_component INTO TABLE ct_components. + + ENDMETHOD. + + + METHOD clear_field. + + FIELD-SYMBOLS: TYPE data. + + ASSIGN + COMPONENT iv_fieldname + OF STRUCTURE cg_header + TO . + ASSERT sy-subrc = 0. + + CLEAR: . + + ENDMETHOD. + METHOD constructor. @@ -57,6 +99,36 @@ CLASS zcl_abapgit_object_smtg IMPLEMENTATION. ENDMETHOD. + METHOD get_structure. + + DATA: lt_components TYPE abap_component_tab. + + add_component( + EXPORTING + iv_fielname = `HEADER` + iv_structure_name = `IF_SMTG_EMAIL_TEMPLATE=>TY_GS_TMPL_HDR` + CHANGING + ct_components = lt_components ). + + add_component( + EXPORTING + iv_fielname = `HEADER_T` + iv_structure_name = `IF_SMTG_EMAIL_TEMPLATE=>TY_GT_TMPL_HDR_T` + CHANGING + ct_components = lt_components ). + + add_component( + EXPORTING + iv_fielname = `CONTENT` + iv_structure_name = `IF_SMTG_EMAIL_TEMPLATE=>TY_GT_TMPL_CONT` + CHANGING + ct_components = lt_components ). + + ro_structdescr = cl_abap_structdescr=>create( lt_components ). + + ENDMETHOD. + + METHOD zif_abapgit_object~changed_by. rv_user = c_user_unknown. ENDMETHOD. @@ -316,76 +388,4 @@ CLASS zcl_abapgit_object_smtg IMPLEMENTATION. ENDTRY. ENDMETHOD. - - - METHOD clear_field. - - FIELD-SYMBOLS: TYPE data. - - ASSIGN - COMPONENT iv_fieldname - OF STRUCTURE cg_header - TO . - ASSERT sy-subrc = 0. - - CLEAR: . - - ENDMETHOD. - - - METHOD get_structure. - - DATA: lt_components TYPE abap_component_tab. - - add_component( - EXPORTING - iv_fielname = `HEADER` - iv_structure_name = `IF_SMTG_EMAIL_TEMPLATE=>TY_GS_TMPL_HDR` - CHANGING - ct_components = lt_components ). - - add_component( - EXPORTING - iv_fielname = `HEADER_T` - iv_structure_name = `IF_SMTG_EMAIL_TEMPLATE=>TY_GT_TMPL_HDR_T` - CHANGING - ct_components = lt_components ). - - add_component( - EXPORTING - iv_fielname = `CONTENT` - iv_structure_name = `IF_SMTG_EMAIL_TEMPLATE=>TY_GT_TMPL_CONT` - CHANGING - ct_components = lt_components ). - - ro_structdescr = cl_abap_structdescr=>create( lt_components ). - - ENDMETHOD. - - - METHOD add_component. - - DATA: - ls_component LIKE LINE OF ct_components, - lo_typedescr TYPE REF TO cl_abap_typedescr. - - cl_abap_structdescr=>describe_by_name( - EXPORTING - p_name = iv_structure_name - RECEIVING - p_descr_ref = lo_typedescr - EXCEPTIONS - type_not_found = 1 - OTHERS = 2 ). - - IF sy-subrc <> 0. - zcx_abapgit_exception=>raise( |SMTG not supported| ). - ENDIF. - - ls_component-name = iv_fielname. - ls_component-type ?= lo_typedescr. - INSERT ls_component INTO TABLE ct_components. - - ENDMETHOD. - ENDCLASS. diff --git a/src/ui/core/zif_abapgit_gui_asset_manager.intf.abap b/src/ui/core/zif_abapgit_gui_asset_manager.intf.abap index 831c67d5f..18229b594 100644 --- a/src/ui/core/zif_abapgit_gui_asset_manager.intf.abap +++ b/src/ui/core/zif_abapgit_gui_asset_manager.intf.abap @@ -4,8 +4,8 @@ INTERFACE zif_abapgit_gui_asset_manager TYPES: BEGIN OF ty_web_asset, url TYPE w3url, - type TYPE char50, - subtype TYPE char50, + type TYPE c LENGTH 50, + subtype TYPE c LENGTH 50, content TYPE xstring, is_cacheable TYPE abap_bool, END OF ty_web_asset . diff --git a/src/utils/zcl_abapgit_user_master_record.clas.abap b/src/utils/zcl_abapgit_user_master_record.clas.abap index 158e01525..f35e8ac94 100644 --- a/src/utils/zcl_abapgit_user_master_record.clas.abap +++ b/src/utils/zcl_abapgit_user_master_record.clas.abap @@ -8,14 +8,14 @@ CLASS zcl_abapgit_user_master_record DEFINITION CLASS-METHODS: get_instance IMPORTING - !iv_user TYPE uname + !iv_user TYPE sy-uname RETURNING VALUE(ro_user) TYPE REF TO zcl_abapgit_user_master_record. METHODS: constructor IMPORTING - !iv_user TYPE uname, + !iv_user TYPE sy-uname, get_name RETURNING @@ -29,7 +29,7 @@ CLASS zcl_abapgit_user_master_record DEFINITION PRIVATE SECTION. TYPES: BEGIN OF ty_user, - user TYPE uname, + user TYPE sy-uname, o_user TYPE REF TO zcl_abapgit_user_master_record, END OF ty_user. diff --git a/src/zcl_abapgit_message_helper.clas.abap b/src/zcl_abapgit_message_helper.clas.abap index 575e12359..33e3a16d6 100644 --- a/src/zcl_abapgit_message_helper.clas.abap +++ b/src/zcl_abapgit_message_helper.clas.abap @@ -111,6 +111,8 @@ CLASS ZCL_ABAPGIT_MESSAGE_HELPER IMPLEMENTATION. METHOD get_t100_longtext. +* method is called dynamically from ZCX_ABAPGIT_EXCEPTION + rv_longtext = itf_to_string( get_t100_longtext_itf( ) ). ENDMETHOD. diff --git a/src/zcl_abapgit_message_helper.clas.testclasses.abap b/src/zcl_abapgit_message_helper.clas.testclasses.abap index 3dcf15d50..d2117f8a7 100644 --- a/src/zcl_abapgit_message_helper.clas.testclasses.abap +++ b/src/zcl_abapgit_message_helper.clas.testclasses.abap @@ -1,4 +1,34 @@ -CLASS ltcl_test DEFINITION +CLASS ltcl_get_t100_longtext DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. + + PUBLIC SECTION. + INTERFACES if_t100_message. + METHODS test01 FOR TESTING. + +ENDCLASS. + +CLASS ltcl_get_t100_longtext IMPLEMENTATION. + + METHOD test01. + + DATA lo_cut TYPE REF TO zcl_abapgit_message_helper. + DATA lv_result TYPE string. + + if_t100_message~t100key-msgid = '00'. + if_t100_message~t100key-msgno = '058'. + if_t100_message~t100key-attr1 = 'ATTR'. + + CREATE OBJECT lo_cut + EXPORTING + ii_t100_message = me. + + lv_result = lo_cut->get_t100_longtext( ). + cl_abap_unit_assert=>assert_not_initial( lv_result ). + + ENDMETHOD. + +ENDCLASS. + +CLASS ltcl_set_msg_vars_for_clike DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. @@ -26,7 +56,7 @@ CLASS ltcl_test DEFINITION is_msg TYPE ty_msg. ENDCLASS. -CLASS ltcl_test IMPLEMENTATION. +CLASS ltcl_set_msg_vars_for_clike IMPLEMENTATION. METHOD test_set_msg_b. CONSTANTS: lc_text_b TYPE string VALUE '0123456789012345678901234567890123456789012345678 0123456789',