Less DDIC references (#3905)

* remove uses of CHAR30

* Update abaplint.json

* add basic unit test for ZCL_ABAPGIT_MESSAGE_HELPER

* replace uses of char50

* fix name

* Update abaplint.json

* use sy-uname instead of uname

in ZCL_ABAPGIT_USER_MASTER_RECORD
This commit is contained in:
Lars Hvam 2020-09-21 07:39:22 +02:00 committed by GitHub
parent 7aa002728b
commit 015800b45b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 134 additions and 103 deletions

View File

@ -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,

View File

@ -17,7 +17,21 @@ ENDCLASS.
CLASS zcl_abapgit_object_iobj IMPLEMENTATION.
CLASS ZCL_ABAPGIT_OBJECT_IOBJ IMPLEMENTATION.
METHOD clear_field.
FIELD-SYMBOLS: <lg_field> TYPE data.
ASSIGN COMPONENT iv_fieldname
OF STRUCTURE cg_metadata
TO <lg_field>.
ASSERT sy-subrc = 0.
CLEAR: <lg_field>.
ENDMETHOD.
METHOD zif_abapgit_object~changed_by.
@ -244,7 +258,7 @@ 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')
@ -439,19 +453,4 @@ CLASS zcl_abapgit_object_iobj IMPLEMENTATION.
ig_data = <lt_xxlattributes> ).
ENDMETHOD.
METHOD clear_field.
FIELD-SYMBOLS: <lg_field> TYPE data.
ASSIGN COMPONENT iv_fieldname
OF STRUCTURE cg_metadata
TO <lg_field>.
ASSERT sy-subrc = 0.
CLEAR: <lg_field>.
ENDMETHOD.
ENDCLASS.

View File

@ -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: <lg_field> TYPE data.
ASSIGN
COMPONENT iv_fieldname
OF STRUCTURE cg_header
TO <lg_field>.
ASSERT sy-subrc = 0.
CLEAR: <lg_field>.
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: <lg_field> TYPE data.
ASSIGN
COMPONENT iv_fieldname
OF STRUCTURE cg_header
TO <lg_field>.
ASSERT sy-subrc = 0.
CLEAR: <lg_field>.
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.

View File

@ -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 .

View File

@ -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.

View File

@ -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.

View File

@ -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',