diff --git a/deps/e070.tabl.xml b/deps/e070.tabl.xml
new file mode 100644
index 000000000..c07db18be
--- /dev/null
+++ b/deps/e070.tabl.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+ E070
+ E
+ TRANSP
+ E070
+ A
+ 1
+
+
+ ZE070
+ A
+ 0
+ APPL0
+ N
+
+
+
+ TRKORR
+ X
+ TRKORR
+ 0
+ X
+ E
+
+
+ TRFUNCTION
+ TRFUNCTION
+ 0
+ X
+ F
+ E
+
+
+ TRSTATUS
+ 0
+ C
+ 000002
+ CHAR
+ 000001
+ CHAR
+
+
+ TARSYSTEM
+ 0
+ C
+ 000020
+ CHAR
+ 000010
+ CHAR
+
+
+ KORRDEV
+ 0
+ C
+ 000008
+ CHAR
+ 000004
+ CHAR
+
+
+ AS4USER
+ 0
+ C
+ 000024
+ CHAR
+ 000012
+ CHAR
+
+
+ AS4DATE
+ 0
+ D
+ 000016
+ DATS
+ 000008
+ DATS
+ T
+
+
+ AS4TIME
+ 0
+ T
+ 000012
+ TIMS
+ 000006
+ TIMS
+ T
+
+
+ STRKORR
+ 0
+ C
+ 000040
+ CHAR
+ 000020
+ CHAR
+
+
+
+
+
diff --git a/deps/e071.tabl.xml b/deps/e071.tabl.xml
new file mode 100644
index 000000000..428375eca
--- /dev/null
+++ b/deps/e071.tabl.xml
@@ -0,0 +1,116 @@
+
+
+
+
+
+ E071
+ E
+ TRANSP
+ E071
+ A
+ 1
+
+
+ ZE071
+ A
+ 0
+ APPL0
+ N
+
+
+
+ TRKORR
+ X
+ TRKORR
+ 0
+ X
+ E
+
+
+ AS4POS
+ X
+ 0
+ N
+ 000012
+ X
+ NUMC
+ 000006
+ NUMC
+
+
+ PGMID
+ 0
+ C
+ 000008
+ CHAR
+ 000004
+ CHAR
+
+
+ OBJECT
+ 0
+ C
+ 000008
+ CHAR
+ 000004
+ CHAR
+
+
+ OBJ_NAME
+ 0
+ C
+ 000240
+ CHAR
+ 000120
+ CHAR
+
+
+ OBJFUNC
+ 0
+ C
+ 000002
+ CHAR
+ 000001
+ CHAR
+
+
+ LOCKFLAG
+ 0
+ C
+ 000002
+ CHAR
+ 000001
+ CHAR
+
+
+ GENNUM
+ 0
+ C
+ 000006
+ CHAR
+ 000003
+ CHAR
+
+
+ LANG
+ 0
+ C
+ 000002
+ LANG
+ 000001
+ LANG
+ X
+
+
+ ACTIVITY
+ 0
+ C
+ 000040
+ CHAR
+ 000020
+ CHAR
+
+
+
+
+
diff --git a/deps/e071k.tabl.xml b/deps/e071k.tabl.xml
new file mode 100644
index 000000000..f2313b631
--- /dev/null
+++ b/deps/e071k.tabl.xml
@@ -0,0 +1,158 @@
+
+
+
+
+
+ E071K
+ E
+ TRANSP
+ E071K
+ A
+ 1
+
+
+ ZE071K
+ A
+ 0
+ APPL0
+ N
+
+
+
+ TRKORR
+ X
+ TRKORR
+ 0
+ X
+ E
+
+
+ PGMID
+ X
+ 0
+ C
+ 000008
+ X
+ CHAR
+ 000004
+ CHAR
+
+
+ OBJECT
+ X
+ 0
+ C
+ 000008
+ X
+ CHAR
+ 000004
+ CHAR
+
+
+ OBJNAME
+ X
+ 0
+ C
+ 000060
+ X
+ CHAR
+ 000030
+ CHAR
+
+
+ AS4POS
+ X
+ 0
+ N
+ 000012
+ X
+ NUMC
+ 000006
+ NUMC
+
+
+ MASTERTYPE
+ 0
+ C
+ 000008
+ CHAR
+ 000004
+ CHAR
+
+
+ MASTERNAME
+ 0
+ C
+ 000080
+ CHAR
+ 000040
+ CHAR
+
+
+ VIEWNAME
+ 0
+ C
+ 000060
+ CHAR
+ 000030
+ CHAR
+
+
+ OBJFUNC
+ 0
+ C
+ 000002
+ CHAR
+ 000001
+ CHAR
+
+
+ TABKEY
+ 0
+ C
+ 000240
+ CHAR
+ 000120
+ CHAR
+
+
+ SORTFLAG
+ 0
+ C
+ 000002
+ CHAR
+ 000001
+ CHAR
+
+
+ FLAG
+ 0
+ C
+ 000002
+ CHAR
+ 000001
+ CHAR
+
+
+ LANG
+ 0
+ C
+ 000002
+ LANG
+ 000001
+ LANG
+ X
+
+
+ ACTIVITY
+ 0
+ C
+ 000040
+ CHAR
+ 000020
+ CHAR
+
+
+
+
+
diff --git a/deps/e07t.tabl.xml b/deps/e07t.tabl.xml
new file mode 100644
index 000000000..2d359dc0e
--- /dev/null
+++ b/deps/e07t.tabl.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+ E07T
+ E
+ TRANSP
+ E07T
+ A
+ 1
+
+
+ ZE07T
+ A
+ 0
+ APPL0
+ N
+ N
+
+
+
+ TRKORR
+ X
+ TRKORR
+ 0
+ X
+ E
+
+
+ LANGU
+ X
+ 0
+ C
+ 000002
+ X
+ LANG
+ 000001
+ LANG
+ X
+
+
+ AS4TEXT
+ 0
+ C
+ 000120
+ CHAR
+ 000060
+ CHAR
+
+
+
+
+
diff --git a/package.json b/package.json
index 14a7c2bb5..100ddd4fb 100644
--- a/package.json
+++ b/package.json
@@ -23,7 +23,7 @@
]
},
"devDependencies": {
- "@abaplint/cli": "^2.113.109",
+ "@abaplint/cli": "^2.113.110",
"@abaplint/database-sqlite": "^2.10.24",
"@abaplint/runtime": "^2.10.44",
"express": "^4.21.2",
@@ -31,6 +31,6 @@
"globals": "^16.0.0",
"abapmerge": "^0.16.6",
"c8": "^10.1.3",
- "eslint": "^9.24.0"
+ "eslint": "^9.25.1"
}
}
diff --git a/src/env/zcl_abapgit_env_factory.clas.xml b/src/env/zcl_abapgit_env_factory.clas.xml
index b0ec0972c..89cdb36ed 100644
--- a/src/env/zcl_abapgit_env_factory.clas.xml
+++ b/src/env/zcl_abapgit_env_factory.clas.xml
@@ -5,7 +5,7 @@
ZCL_ABAPGIT_ENV_FACTORY
E
- ZCL_ABAPGIT_ENV_FACTORY
+ abapGit - Environment Factory
1
X
X
diff --git a/src/env/zcl_abapgit_env_injector.clas.xml b/src/env/zcl_abapgit_env_injector.clas.xml
index e65678311..13910b06b 100644
--- a/src/env/zcl_abapgit_env_injector.clas.xml
+++ b/src/env/zcl_abapgit_env_injector.clas.xml
@@ -5,7 +5,7 @@
ZCL_ABAPGIT_ENV_INJECTOR
E
- ZCL_ABAPGIT_ENV_INJECTOR
+ abapGit - Environment Injector
1
X
X
diff --git a/src/env/zif_abapgit_user_record.intf.xml b/src/env/zif_abapgit_user_record.intf.xml
index 5bb2af8cc..f5df28508 100644
--- a/src/env/zif_abapgit_user_record.intf.xml
+++ b/src/env/zif_abapgit_user_record.intf.xml
@@ -5,7 +5,7 @@
ZIF_ABAPGIT_USER_RECORD
E
- ZIF_ABAPGIT_USER_RECORD
+ abapGit - User Record
2
1
X
diff --git a/src/objects/aff/zcl_abapgit_object_common_aff.clas.abap b/src/objects/aff/zcl_abapgit_object_common_aff.clas.abap
index e7e6f7a3b..5a892810d 100644
--- a/src/objects/aff/zcl_abapgit_object_common_aff.clas.abap
+++ b/src/objects/aff/zcl_abapgit_object_common_aff.clas.abap
@@ -30,7 +30,7 @@ CLASS zcl_abapgit_object_common_aff DEFINITION
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
- zcx_abapgit_exception.
+ zcx_abapgit_type_not_supported.
PROTECTED SECTION.
TYPES: BEGIN OF ty_extension_mapper_pair,
@@ -106,7 +106,7 @@ CLASS zcl_abapgit_object_common_aff IMPLEMENTATION.
ENDTRY.
IF lv_is_supported IS INITIAL.
- zcx_abapgit_exception=>raise( |Object type { is_item-obj_type } is not supported by this system| ).
+ RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
ENDIF.
ENDMETHOD.
diff --git a/src/objects/aff/zcl_abapgit_object_smbc.clas.abap b/src/objects/aff/zcl_abapgit_object_smbc.clas.abap
index ca1b7d606..8bfa3f5d4 100644
--- a/src/objects/aff/zcl_abapgit_object_smbc.clas.abap
+++ b/src/objects/aff/zcl_abapgit_object_smbc.clas.abap
@@ -6,13 +6,44 @@ CLASS zcl_abapgit_object_smbc DEFINITION
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by REDEFINITION.
+ METHODS constructor
+ IMPORTING
+ is_item TYPE zif_abapgit_definitions=>ty_item
+ iv_language TYPE spras
+ io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
+ io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
+ RAISING
+ zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
-CLASS ZCL_ABAPGIT_OBJECT_SMBC IMPLEMENTATION.
+CLASS zcl_abapgit_object_smbc IMPLEMENTATION.
+
+ METHOD constructor.
+
+ DATA: lo_handler TYPE REF TO object,
+ lo_db_api TYPE REF TO object,
+ lr_data TYPE REF TO data.
+
+ super->constructor(
+ is_item = is_item
+ iv_language = iv_language
+ io_files = io_files
+ io_i18n_params = io_i18n_params ).
+
+ TRY.
+ CREATE OBJECT lo_handler TYPE ('CL_SMBC_AFF_OBJECT_HANDLER').
+ CREATE OBJECT lo_db_api TYPE ('CL_MBC_BUSINESS_CONFIG_DB').
+ CREATE DATA lr_data TYPE ('SMBC_CONFIG').
+ CATCH cx_sy_create_object_error
+ cx_sy_create_data_error.
+ RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
+ ENDTRY.
+
+ ENDMETHOD.
METHOD zif_abapgit_object~changed_by.
@@ -24,15 +55,12 @@ CLASS ZCL_ABAPGIT_OBJECT_SMBC IMPLEMENTATION.
FIELD-SYMBOLS: TYPE any,
TYPE any.
- TRY.
- CREATE OBJECT lo_handler TYPE ('CL_SMBC_AFF_OBJECT_HANDLER').
- CREATE OBJECT lo_db_api TYPE ('CL_MBC_BUSINESS_CONFIG_DB').
- CREATE DATA lr_data TYPE ('SMBC_CONFIG').
- ASSIGN lr_data->* TO .
- CATCH cx_sy_create_object_error
- cx_sy_create_data_error.
- zcx_abapgit_exception=>raise( 'SMBC not supported' ).
- ENDTRY.
+
+ CREATE OBJECT lo_handler TYPE ('CL_SMBC_AFF_OBJECT_HANDLER').
+ CREATE OBJECT lo_db_api TYPE ('CL_MBC_BUSINESS_CONFIG_DB').
+ CREATE DATA lr_data TYPE ('SMBC_CONFIG').
+ ASSIGN lr_data->* TO .
+
lv_technical_id = ms_item-obj_name.
CALL METHOD lo_db_api->('IF_MBC_BUSINESS_CONFIG_DB~READ')
EXPORTING
diff --git a/src/objects/aff/zcl_abapgit_object_uiad.clas.abap b/src/objects/aff/zcl_abapgit_object_uiad.clas.abap
index 528d3eb9b..57abd331c 100644
--- a/src/objects/aff/zcl_abapgit_object_uiad.clas.abap
+++ b/src/objects/aff/zcl_abapgit_object_uiad.clas.abap
@@ -8,13 +8,44 @@ CLASS zcl_abapgit_object_uiad DEFINITION
METHODS zif_abapgit_object~changed_by
REDEFINITION .
+ METHODS constructor
+ IMPORTING
+ is_item TYPE zif_abapgit_definitions=>ty_item
+ iv_language TYPE spras
+ io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
+ io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
+ RAISING
+ zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
-CLASS ZCL_ABAPGIT_OBJECT_UIAD IMPLEMENTATION.
+CLASS zcl_abapgit_object_uiad IMPLEMENTATION.
+
+ METHOD constructor.
+
+ DATA: lo_db_api TYPE REF TO object,
+ lr_data TYPE REF TO data.
+
+ super->constructor(
+ is_item = is_item
+ iv_language = iv_language
+ io_files = io_files
+ io_i18n_params = io_i18n_params ).
+
+ TRY.
+ CALL METHOD ('CL_SUI_UIAD_DB_ACCESS')=>('GET_INSTANCE')
+ RECEIVING
+ ro_instance = lo_db_api.
+ CREATE DATA lr_data TYPE ('CL_BLUE_AFF_WB_ACCESS=>TY_METADATA').
+ CATCH cx_sy_dyn_call_error
+ cx_sy_create_data_error.
+ RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
+ ENDTRY.
+
+ ENDMETHOD.
METHOD zif_abapgit_object~changed_by.
@@ -27,16 +58,11 @@ CLASS ZCL_ABAPGIT_OBJECT_UIAD IMPLEMENTATION.
FIELD-SYMBOLS: TYPE any,
TYPE any.
- TRY.
- CALL METHOD ('CL_SUI_UIAD_DB_ACCESS')=>('GET_INSTANCE')
- RECEIVING
- ro_instance = lo_db_api.
- CREATE DATA lr_data TYPE ('CL_BLUE_AFF_WB_ACCESS=>TY_METADATA').
- ASSIGN lr_data->* TO .
- CATCH cx_sy_create_object_error
- cx_sy_create_data_error.
- zcx_abapgit_exception=>raise( 'Object UIAD not supported' ).
- ENDTRY.
+ CALL METHOD ('CL_SUI_UIAD_DB_ACCESS')=>('GET_INSTANCE')
+ RECEIVING
+ ro_instance = lo_db_api.
+ CREATE DATA lr_data TYPE ('CL_BLUE_AFF_WB_ACCESS=>TY_METADATA').
+ ASSIGN lr_data->* TO .
TRY.
lv_object_key = ms_item-obj_name.
@@ -46,7 +72,7 @@ CLASS ZCL_ABAPGIT_OBJECT_UIAD IMPLEMENTATION.
iv_version = 'A'
iv_language = mv_language
RECEIVING
- rs_metadata = .
+ rs_metadata = .
ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE TO .
rv_user = .
diff --git a/src/objects/aff/zcl_abapgit_object_uipg.clas.abap b/src/objects/aff/zcl_abapgit_object_uipg.clas.abap
index f7611d9c9..d69ceaaea 100644
--- a/src/objects/aff/zcl_abapgit_object_uipg.clas.abap
+++ b/src/objects/aff/zcl_abapgit_object_uipg.clas.abap
@@ -8,13 +8,44 @@ CLASS zcl_abapgit_object_uipg DEFINITION
METHODS zif_abapgit_object~changed_by
REDEFINITION .
+ METHODS constructor
+ IMPORTING
+ is_item TYPE zif_abapgit_definitions=>ty_item
+ iv_language TYPE spras
+ io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
+ io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
+ RAISING
+ zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
-CLASS ZCL_ABAPGIT_OBJECT_UIPG IMPLEMENTATION.
+CLASS zcl_abapgit_object_uipg IMPLEMENTATION.
+
+ METHOD constructor.
+
+ DATA: lo_db_api TYPE REF TO object,
+ lr_data TYPE REF TO data.
+
+ super->constructor(
+ is_item = is_item
+ iv_language = iv_language
+ io_files = io_files
+ io_i18n_params = io_i18n_params ).
+
+ TRY.
+ CALL METHOD ('/UI2/CL_UIPG_DB_ACCESS')=>('GET_INSTANCE')
+ RECEIVING
+ ro_instance = lo_db_api.
+ CREATE DATA lr_data TYPE ('CL_BLUE_AFF_WB_ACCESS=>TY_METADATA').
+ CATCH cx_sy_dyn_call_error
+ cx_sy_create_data_error.
+ RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
+ ENDTRY.
+
+ ENDMETHOD.
METHOD zif_abapgit_object~changed_by.
diff --git a/src/objects/aff/zcl_abapgit_object_uist.clas.abap b/src/objects/aff/zcl_abapgit_object_uist.clas.abap
index dd41d5e2c..dbb1a1e52 100644
--- a/src/objects/aff/zcl_abapgit_object_uist.clas.abap
+++ b/src/objects/aff/zcl_abapgit_object_uist.clas.abap
@@ -8,13 +8,42 @@ CLASS zcl_abapgit_object_uist DEFINITION
METHODS zif_abapgit_object~changed_by
REDEFINITION .
+ METHODS constructor
+ IMPORTING
+ is_item TYPE zif_abapgit_definitions=>ty_item
+ iv_language TYPE spras
+ io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
+ io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
+ RAISING
+ zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
-CLASS ZCL_ABAPGIT_OBJECT_UIST IMPLEMENTATION.
+CLASS zcl_abapgit_object_uist IMPLEMENTATION.
+
+ METHOD constructor.
+
+ DATA: lo_db_api TYPE REF TO object,
+ lr_data TYPE REF TO data.
+
+ super->constructor(
+ is_item = is_item
+ iv_language = iv_language
+ io_files = io_files
+ io_i18n_params = io_i18n_params ).
+
+ TRY.
+ CREATE OBJECT lo_db_api TYPE ('/UI2/CL_UIST_SVAL_SQL').
+ CREATE DATA lr_data TYPE ('CL_BLUE_AFF_WB_ACCESS=>TY_METADATA').
+ CATCH cx_sy_create_object_error
+ cx_sy_create_data_error.
+ RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
+ ENDTRY.
+
+ ENDMETHOD.
METHOD zif_abapgit_object~changed_by.
diff --git a/src/objects/rules/zcl_abapgit_field_rules.clas.abap b/src/objects/rules/zcl_abapgit_field_rules.clas.abap
index 784fb3b48..024b8cdb3 100644
--- a/src/objects/rules/zcl_abapgit_field_rules.clas.abap
+++ b/src/objects/rules/zcl_abapgit_field_rules.clas.abap
@@ -10,8 +10,10 @@ CLASS zcl_abapgit_field_rules DEFINITION
CLASS-METHODS create
RETURNING
VALUE(ro_result) TYPE REF TO zif_abapgit_field_rules.
+
PROTECTED SECTION.
PRIVATE SECTION.
+
TYPES:
BEGIN OF ty_item,
tabname TYPE tabname,
@@ -24,10 +26,12 @@ CLASS zcl_abapgit_field_rules DEFINITION
METHODS fill_value
IMPORTING
- iv_rule TYPE zif_abapgit_field_rules=>ty_fill_rule
- iv_package TYPE devclass
+ iv_rule TYPE zif_abapgit_field_rules=>ty_fill_rule
+ iv_package TYPE devclass
+ iv_abap_language_version TYPE uccheck OPTIONAL
CHANGING
- cv_value TYPE any.
+ cv_value TYPE any.
+
ENDCLASS.
@@ -56,6 +60,8 @@ CLASS zcl_abapgit_field_rules IMPLEMENTATION.
cv_value = sy-mandt.
WHEN zif_abapgit_field_rules=>c_fill_rule-package.
cv_value = iv_package.
+ WHEN zif_abapgit_field_rules=>c_fill_rule-abap_language_version.
+ cv_value = iv_abap_language_version.
ENDCASE.
ENDMETHOD.
@@ -109,10 +115,11 @@ CLASS zcl_abapgit_field_rules IMPLEMENTATION.
IF sy-subrc = 0.
fill_value(
EXPORTING
- iv_rule = ls_item-fill_rule
- iv_package = iv_package
+ iv_rule = ls_item-fill_rule
+ iv_package = iv_package
+ iv_abap_language_version = iv_abap_language_version
CHANGING
- cv_value = ).
+ cv_value = ).
ENDIF.
ENDLOOP.
ENDLOOP.
diff --git a/src/objects/rules/zcl_abapgit_field_rules.clas.testclasses.abap b/src/objects/rules/zcl_abapgit_field_rules.clas.testclasses.abap
index 43a72f230..fa0b6c26e 100644
--- a/src/objects/rules/zcl_abapgit_field_rules.clas.testclasses.abap
+++ b/src/objects/rules/zcl_abapgit_field_rules.clas.testclasses.abap
@@ -4,8 +4,9 @@ CLASS ltcl_field_rules DEFINITION FOR TESTING RISK LEVEL HARMLESS
PRIVATE SECTION.
CONSTANTS:
- c_package TYPE devclass VALUE '$TMP',
- c_table TYPE tabname VALUE 'ZTEST'.
+ c_abap_cloud TYPE uccheck VALUE '5',
+ c_package TYPE devclass VALUE '$TMP',
+ c_table TYPE tabname VALUE 'ZTEST'.
TYPES:
BEGIN OF ty_test,
@@ -15,6 +16,7 @@ CLASS ltcl_field_rules DEFINITION FOR TESTING RISK LEVEL HARMLESS
time TYPE t,
ts TYPE timestamp,
tl TYPE timestampl,
+ alav TYPE uccheck,
END OF ty_test.
DATA mo_cut TYPE REF TO zcl_abapgit_field_rules.
@@ -33,6 +35,7 @@ CLASS ltcl_field_rules DEFINITION FOR TESTING RISK LEVEL HARMLESS
fill5 FOR TESTING,
fill6 FOR TESTING,
fill7 FOR TESTING,
+ fill8 FOR TESTING,
get_rules
RETURNING
VALUE(ri_rules) TYPE REF TO zif_abapgit_field_rules,
@@ -55,10 +58,11 @@ CLASS ltcl_field_rules IMPLEMENTATION.
mo_cut->fill_value(
EXPORTING
- iv_rule = iv_rule
- iv_package = c_package
+ iv_rule = iv_rule
+ iv_package = c_package
+ iv_abap_language_version = c_abap_cloud
CHANGING
- cv_value = lv_act ).
+ cv_value = lv_act ).
IF iv_len IS NOT INITIAL.
lv_act = lv_act(iv_len).
@@ -116,6 +120,12 @@ CLASS ltcl_field_rules IMPLEMENTATION.
iv_exp = '' ).
ENDMETHOD.
+ METHOD fill8.
+ fill_value(
+ iv_rule = zif_abapgit_field_rules=>c_fill_rule-abap_language_version
+ iv_exp = |{ c_abap_cloud }| ).
+ ENDMETHOD.
+
METHOD get_rules.
ri_rules = zcl_abapgit_field_rules=>create( )->add(
@@ -137,7 +147,11 @@ CLASS ltcl_field_rules IMPLEMENTATION.
)->add(
iv_table = c_table
iv_field = 'TL'
- iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-timestamp ).
+ iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-timestamp
+ )->add(
+ iv_table = c_table
+ iv_field = 'ALAV'
+ iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-abap_language_version ).
ENDMETHOD.
@@ -159,6 +173,7 @@ CLASS ltcl_field_rules IMPLEMENTATION.
ls_act-user = 'FRANK'.
ls_act-date = '20230101'.
ls_act-time = '000001'.
+ ls_act-alav = '5'. " ABAP Cloud
INSERT ls_act INTO TABLE lt_act.
li_rules = get_rules( ).
@@ -216,10 +231,11 @@ CLASS ltcl_field_rules IMPLEMENTATION.
li_rules->apply_fill_logic(
EXPORTING
- iv_table = c_table
- iv_package = c_package
+ iv_table = c_table
+ iv_package = c_package
+ iv_abap_language_version = c_abap_cloud
CHANGING
- ct_data = lt_act ).
+ ct_data = lt_act ).
cl_abap_unit_assert=>assert_equals(
act = lines( lt_act )
@@ -265,6 +281,9 @@ CLASS ltcl_field_rules IMPLEMENTATION.
cl_abap_unit_assert=>assert_equals(
act = ls_act-time(4)
exp = sy-uzeit(4) ). " avoid comparing seconds
+ cl_abap_unit_assert=>assert_equals(
+ act = ls_act-alav
+ exp = c_abap_cloud ).
ENDMETHOD.
ENDCLASS.
diff --git a/src/objects/rules/zif_abapgit_field_rules.intf.abap b/src/objects/rules/zif_abapgit_field_rules.intf.abap
index f6403336a..3aee43702 100644
--- a/src/objects/rules/zif_abapgit_field_rules.intf.abap
+++ b/src/objects/rules/zif_abapgit_field_rules.intf.abap
@@ -1,14 +1,16 @@
-INTERFACE zif_abapgit_field_rules
- PUBLIC .
+INTERFACE zif_abapgit_field_rules PUBLIC.
+
TYPES ty_fill_rule TYPE c LENGTH 2.
+
CONSTANTS:
BEGIN OF c_fill_rule,
- date TYPE ty_fill_rule VALUE 'DT',
- time TYPE ty_fill_rule VALUE 'TM',
- timestamp TYPE ty_fill_rule VALUE 'TS',
- user TYPE ty_fill_rule VALUE 'UR',
- client TYPE ty_fill_rule VALUE 'CT',
- package TYPE ty_fill_rule VALUE 'PK',
+ date TYPE ty_fill_rule VALUE 'DT',
+ time TYPE ty_fill_rule VALUE 'TM',
+ timestamp TYPE ty_fill_rule VALUE 'TS',
+ user TYPE ty_fill_rule VALUE 'UR',
+ client TYPE ty_fill_rule VALUE 'CT',
+ package TYPE ty_fill_rule VALUE 'PK',
+ abap_language_version TYPE ty_fill_rule VALUE 'AL',
END OF c_fill_rule.
METHODS add
@@ -18,15 +20,19 @@ INTERFACE zif_abapgit_field_rules
iv_fill_rule TYPE ty_fill_rule
RETURNING
VALUE(ro_self) TYPE REF TO zif_abapgit_field_rules.
+
METHODS apply_clear_logic
IMPORTING
iv_table TYPE tabname
CHANGING
ct_data TYPE STANDARD TABLE.
+
METHODS apply_fill_logic
IMPORTING
- iv_table TYPE tabname
- iv_package TYPE devclass
+ iv_table TYPE tabname
+ iv_package TYPE devclass
+ iv_abap_language_version TYPE uccheck OPTIONAL
CHANGING
- ct_data TYPE STANDARD TABLE.
+ ct_data TYPE STANDARD TABLE.
+
ENDINTERFACE.
diff --git a/src/objects/zcl_abapgit_object_aifc.clas.abap b/src/objects/zcl_abapgit_object_aifc.clas.abap
index 55dc58237..f466b45e0 100644
--- a/src/objects/zcl_abapgit_object_aifc.clas.abap
+++ b/src/objects/zcl_abapgit_object_aifc.clas.abap
@@ -15,7 +15,7 @@ CLASS zcl_abapgit_object_aifc DEFINITION
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
- zcx_abapgit_exception.
+ zcx_abapgit_type_not_supported.
PROTECTED SECTION.
TYPES:
@@ -112,7 +112,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
METHOD authorization_check.
- DATA: lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
DATA: lx_root TYPE REF TO cx_root.
rv_success = abap_false.
@@ -121,9 +120,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
RECEIVING
rv_success = rv_success.
- CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
- zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
- ix_previous = lx_dyn_call_error ).
CATCH cx_root INTO lx_root.
zcx_abapgit_exception=>raise_with_text( lx_root ).
ENDTRY.
@@ -147,7 +143,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
METHOD compress_interface.
- DATA: lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
DATA: lx_root TYPE REF TO cx_root.
TRY.
@@ -157,9 +152,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
RECEIVING
rv_success = rv_success.
- CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
- zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
- ix_previous = lx_dyn_call_error ).
CATCH cx_root INTO lx_root.
zcx_abapgit_exception=>raise_with_text( lx_root ).
ENDTRY.
@@ -183,7 +175,7 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
rr_abapgit_aifc_util = mo_abapgit_util.
CATCH cx_sy_dyn_call_error INTO lx_exc_ref.
- zcx_abapgit_exception=>raise( 'AIFC not supported' ).
+ RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
ENDTRY.
ENDMETHOD.
@@ -198,7 +190,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
FIELD-SYMBOLS TYPE any.
FIELD-SYMBOLS: TYPE any.
- DATA: lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
DATA: lx_root TYPE REF TO cx_root.
lr_structdescr ?= cl_abap_typedescr=>describe_by_name( p_name = '/AIF/T_FINF' ).
@@ -241,9 +232,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
rv_success = rv_success.
ENDIF.
- CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
- zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
- ix_previous = lx_dyn_call_error ).
CATCH cx_root INTO lx_root.
zcx_abapgit_exception=>raise_with_text( lx_root ).
ENDTRY.
@@ -251,7 +239,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
METHOD get_content_compress.
- DATA: lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
DATA: lx_root TYPE REF TO cx_root.
DATA: lo_log TYPE REF TO object.
@@ -267,9 +254,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
iv_package = iv_package
iv_depl_id = ms_icd_data_key-depl_scenario.
- CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
- zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
- ix_previous = lx_dyn_call_error ).
CATCH cx_root INTO lx_root.
zcx_abapgit_exception=>raise_with_text( lx_root ).
ENDTRY.
@@ -277,7 +261,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
METHOD handle_table_data.
- DATA: lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
DATA: lx_root TYPE REF TO cx_root.
TRY.
@@ -286,9 +269,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
iv_tabname = iv_tabname
it_data = it_data.
- CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
- zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
- ix_previous = lx_dyn_call_error ).
CATCH cx_root INTO lx_root.
zcx_abapgit_exception=>raise_with_text( lx_root ).
ENDTRY.
@@ -296,7 +276,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
METHOD validate_interface.
- DATA: lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
DATA: lx_root TYPE REF TO cx_root.
rv_success = abap_false.
@@ -307,9 +286,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
RECEIVING
rv_success = rv_success.
- CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
- zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
- ix_previous = lx_dyn_call_error ).
CATCH cx_root INTO lx_root.
zcx_abapgit_exception=>raise_with_text( lx_root ).
ENDTRY.
@@ -317,25 +293,18 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
METHOD zif_abapgit_object~changed_by.
- DATA lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
-
DATA ls_icd_data_key TYPE ty_icd_data_key.
ls_icd_data_key-depl_scenario = ms_icd_data_key-depl_scenario.
ls_icd_data_key-ns = ms_icd_data_key-ns.
ls_icd_data_key-ifname = ms_icd_data_key-ifname.
ls_icd_data_key-ifver2 = ms_icd_data_key-ifver2.
- TRY.
- CALL METHOD mo_abapgit_util->('/AIF/IF_ABAPGIT_AIFC_UTIL~CHANGED_BY')
- EXPORTING
- is_key = ls_icd_data_key
- RECEIVING
- rv_user = rv_user.
+ CALL METHOD mo_abapgit_util->('/AIF/IF_ABAPGIT_AIFC_UTIL~CHANGED_BY')
+ EXPORTING
+ is_key = ls_icd_data_key
+ RECEIVING
+ rv_user = rv_user.
- CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
- zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
- ix_previous = lx_dyn_call_error ).
- ENDTRY.
ENDMETHOD.
@@ -458,8 +427,6 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
METHOD zif_abapgit_object~exists.
- DATA: lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
-
DATA ls_icd_data_key TYPE ty_icd_data_key.
ls_icd_data_key-depl_scenario = ms_icd_data_key-depl_scenario.
@@ -469,17 +436,12 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
rv_bool = abap_false.
- TRY.
- CALL METHOD mo_abapgit_util->('/AIF/IF_ABAPGIT_AIFC_UTIL~EXISTS')
- EXPORTING
- is_key = ls_icd_data_key
- RECEIVING
- rv_bool = rv_bool.
+ CALL METHOD mo_abapgit_util->('/AIF/IF_ABAPGIT_AIFC_UTIL~EXISTS')
+ EXPORTING
+ is_key = ls_icd_data_key
+ RECEIVING
+ rv_bool = rv_bool.
- CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
- zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
- ix_previous = lx_dyn_call_error ).
- ENDTRY.
ENDMETHOD.
@@ -549,9 +511,7 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
METHOD zif_abapgit_object~serialize.
- DATA: lx_root TYPE REF TO cx_root.
- DATA: lx_dyn_call_error TYPE REF TO cx_sy_dyn_call_error.
-
+ DATA lx_root TYPE REF TO cx_root.
DATA ls_icd_data_key TYPE ty_icd_data_key.
DATA lt_ifdata TYPE ty_table_data_t.
@@ -575,17 +535,11 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
ls_icd_data_key-ifname = ms_icd_data_key-ifname.
ls_icd_data_key-ifver2 = ms_icd_data_key-ifver2.
- TRY.
- CALL METHOD mo_abapgit_util->('/AIF/IF_ABAPGIT_AIFC_UTIL~GET_IF_DATA')
- EXPORTING
- is_key = ls_icd_data_key
- RECEIVING
- rt_ifdata = lt_ifdata.
-
- CATCH cx_sy_dyn_call_error INTO lx_dyn_call_error.
- zcx_abapgit_exception=>raise( iv_text = 'AIFC not supported'
- ix_previous = lx_dyn_call_error ).
- ENDTRY.
+ CALL METHOD mo_abapgit_util->('/AIF/IF_ABAPGIT_AIFC_UTIL~GET_IF_DATA')
+ EXPORTING
+ is_key = ls_icd_data_key
+ RECEIVING
+ rt_ifdata = lt_ifdata.
LOOP AT lt_ifdata REFERENCE INTO lr_ifdata.
@@ -610,7 +564,7 @@ CLASS zcl_abapgit_object_aifc IMPLEMENTATION.
CATCH cx_root INTO lx_root.
zcx_abapgit_exception=>raise( iv_text = 'Serialize not possible'
- ix_previous = lx_dyn_call_error ).
+ ix_previous = lx_root ).
ENDTRY.
ENDMETHOD.
ENDCLASS.
diff --git a/src/objects/zcl_abapgit_object_amsd.clas.abap b/src/objects/zcl_abapgit_object_amsd.clas.abap
index 08b001492..2de35c92e 100644
--- a/src/objects/zcl_abapgit_object_amsd.clas.abap
+++ b/src/objects/zcl_abapgit_object_amsd.clas.abap
@@ -10,7 +10,7 @@ CLASS zcl_abapgit_object_amsd DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
- zcx_abapgit_exception.
+ zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
@@ -106,7 +106,7 @@ CLASS zcl_abapgit_object_amsd IMPLEMENTATION.
CREATE OBJECT mi_persistence TYPE ('CL_AMDP_SCHEMA_OBJECT_PERSIST').
CATCH cx_sy_create_error.
- zcx_abapgit_exception=>raise( |AMSD not supported by your NW release| ).
+ RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
ENDTRY.
ENDMETHOD.
diff --git a/src/objects/zcl_abapgit_object_apis.clas.abap b/src/objects/zcl_abapgit_object_apis.clas.abap
index a367dd248..b754beb19 100644
--- a/src/objects/zcl_abapgit_object_apis.clas.abap
+++ b/src/objects/zcl_abapgit_object_apis.clas.abap
@@ -15,7 +15,7 @@ CLASS zcl_abapgit_object_apis DEFINITION
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
- zcx_abapgit_exception.
+ zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
@@ -42,7 +42,7 @@ CLASS zcl_abapgit_object_apis IMPLEMENTATION.
TRY.
CREATE DATA lr_data TYPE (c_model).
CATCH cx_sy_create_error.
- zcx_abapgit_exception=>raise( |APIS not supported by your NW release| ).
+ RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
ENDTRY.
ENDMETHOD.
diff --git a/src/objects/zcl_abapgit_object_bdef.clas.abap b/src/objects/zcl_abapgit_object_bdef.clas.abap
index 6b5c98f13..7c9cc7acc 100644
--- a/src/objects/zcl_abapgit_object_bdef.clas.abap
+++ b/src/objects/zcl_abapgit_object_bdef.clas.abap
@@ -10,7 +10,7 @@ CLASS zcl_abapgit_object_bdef DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
- zcx_abapgit_exception.
+ zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
@@ -208,7 +208,7 @@ CLASS zcl_abapgit_object_bdef IMPLEMENTATION.
CREATE OBJECT mi_persistence TYPE ('CL_BDEF_OBJECT_PERSIST').
CATCH cx_sy_create_error.
- zcx_abapgit_exception=>raise( |BDEF not supported by your NW release| ).
+ RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
ENDTRY.
ENDMETHOD.
diff --git a/src/objects/zcl_abapgit_object_cmpt.clas.abap b/src/objects/zcl_abapgit_object_cmpt.clas.abap
index a20b5cc56..7fa9bea69 100644
--- a/src/objects/zcl_abapgit_object_cmpt.clas.abap
+++ b/src/objects/zcl_abapgit_object_cmpt.clas.abap
@@ -9,7 +9,7 @@ CLASS zcl_abapgit_object_cmpt DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
- zcx_abapgit_exception.
+ zcx_abapgit_type_not_supported.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
@@ -38,7 +38,7 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
r_ref_db_access = mo_cmp_db.
CATCH cx_root.
- zcx_abapgit_exception=>raise( 'CMPT not supported' ).
+ RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
ENDTRY.
mv_name = ms_item-obj_name.
@@ -50,21 +50,16 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
DATA: lo_cmp_template TYPE REF TO object.
- TRY.
- CALL METHOD ('CL_CMP_TEMPLATE')=>('S_CREATE_FROM_DB')
- EXPORTING
- i_name = mv_name
- i_version = 'A'
- RECEIVING
- r_ref_template = lo_cmp_template.
+ CALL METHOD ('CL_CMP_TEMPLATE')=>('S_CREATE_FROM_DB')
+ EXPORTING
+ i_name = mv_name
+ i_version = 'A'
+ RECEIVING
+ r_ref_template = lo_cmp_template.
- CALL METHOD lo_cmp_template->('IF_CMP_TEMPLATE_EDIT~GET_CHANGE_USER')
- RECEIVING
- r_user = rv_user.
-
- CATCH cx_root.
- zcx_abapgit_exception=>raise( 'CMPT not supported' ).
- ENDTRY.
+ CALL METHOD lo_cmp_template->('IF_CMP_TEMPLATE_EDIT~GET_CHANGE_USER')
+ RECEIVING
+ r_user = rv_user.
ENDMETHOD.
@@ -73,19 +68,14 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
DATA: lv_deleted TYPE abap_bool.
- TRY.
- CALL METHOD mo_cmp_db->('IF_CMP_TEMPLATE_DB~DELETE_TEMPLATE')
- EXPORTING
- i_name = mv_name
- i_version = 'A'
- i_flg_header = abap_true
- i_flg_lines = abap_true
- RECEIVING
- r_flg_deleted = lv_deleted.
-
- CATCH cx_root.
- zcx_abapgit_exception=>raise( 'CMPT not supported' ).
- ENDTRY.
+ CALL METHOD mo_cmp_db->('IF_CMP_TEMPLATE_DB~DELETE_TEMPLATE')
+ EXPORTING
+ i_name = mv_name
+ i_version = 'A'
+ i_flg_header = abap_true
+ i_flg_lines = abap_true
+ RECEIVING
+ r_flg_deleted = lv_deleted.
IF lv_deleted = abap_false.
zcx_abapgit_exception=>raise( |Error deleting CMPT { ms_item-obj_name }| ).
@@ -103,37 +93,32 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
TYPE any,
TYPE any.
- TRY.
- CREATE DATA lr_template TYPE ('IF_CMP_TEMPLATE_DB=>TYP_TEMPLATE').
- ASSIGN lr_template->* TO .
+ CREATE DATA lr_template TYPE ('IF_CMP_TEMPLATE_DB=>TYP_TEMPLATE').
+ ASSIGN lr_template->* TO .
- io_xml->read(
- EXPORTING
- iv_name = 'CMPT'
- CHANGING
- cg_data = ).
+ io_xml->read(
+ EXPORTING
+ iv_name = 'CMPT'
+ CHANGING
+ cg_data = ).
- ASSIGN COMPONENT 'STR_HEADER' OF STRUCTURE TO .
- IF sy-subrc = 0.
- ASSIGN COMPONENT 'NAME' OF STRUCTURE TO .
- IF sy-subrc = 0.
- = ms_item-obj_name.
- ENDIF.
- ASSIGN COMPONENT 'VERSION' OF STRUCTURE TO .
- IF sy-subrc = 0.
- = 'A'.
- ENDIF.
- ENDIF.
+ ASSIGN COMPONENT 'STR_HEADER' OF STRUCTURE TO .
+ IF sy-subrc = 0.
+ ASSIGN COMPONENT 'NAME' OF STRUCTURE TO .
+ IF sy-subrc = 0.
+ = ms_item-obj_name.
+ ENDIF.
+ ASSIGN COMPONENT 'VERSION' OF STRUCTURE TO .
+ IF sy-subrc = 0.
+ = 'A'.
+ ENDIF.
+ ENDIF.
- CALL METHOD mo_cmp_db->('IF_CMP_TEMPLATE_DB~SAVE_TEMPLATE')
- EXPORTING
- i_template_db =
- i_flg_header = abap_true
- i_flg_lines = abap_true.
-
- CATCH cx_root.
- zcx_abapgit_exception=>raise( 'CMPT not supported' ).
- ENDTRY.
+ CALL METHOD mo_cmp_db->('IF_CMP_TEMPLATE_DB~SAVE_TEMPLATE')
+ EXPORTING
+ i_template_db =
+ i_flg_header = abap_true
+ i_flg_lines = abap_true.
corr_insert( iv_package ).
@@ -142,24 +127,20 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
METHOD zif_abapgit_object~exists.
- TRY.
- CALL METHOD ('CL_CMP_TEMPLATE')=>('S_TEMPLATE_EXISTS')
- EXPORTING
- i_name = mv_name
- i_version = 'A'
- RECEIVING
- r_flg_exists = rv_bool.
- IF rv_bool = abap_false.
- CALL METHOD ('CL_CMP_TEMPLATE')=>('S_TEMPLATE_EXISTS')
- EXPORTING
- i_name = mv_name
- i_version = 'I'
- RECEIVING
- r_flg_exists = rv_bool.
- ENDIF.
- CATCH cx_root.
- zcx_abapgit_exception=>raise( 'CMPT not supported' ).
- ENDTRY.
+ CALL METHOD ('CL_CMP_TEMPLATE')=>('S_TEMPLATE_EXISTS')
+ EXPORTING
+ i_name = mv_name
+ i_version = 'A'
+ RECEIVING
+ r_flg_exists = rv_bool.
+ IF rv_bool = abap_false.
+ CALL METHOD ('CL_CMP_TEMPLATE')=>('S_TEMPLATE_EXISTS')
+ EXPORTING
+ i_name = mv_name
+ i_version = 'I'
+ RECEIVING
+ r_flg_exists = rv_bool.
+ ENDIF.
ENDMETHOD.
@@ -218,47 +199,42 @@ CLASS zcl_abapgit_object_cmpt IMPLEMENTATION.
TYPE any,
TYPE any.
- TRY.
- CREATE DATA lr_template TYPE ('IF_CMP_TEMPLATE_DB=>TYP_TEMPLATE').
- ASSIGN lr_template->* TO .
+ CREATE DATA lr_template TYPE ('IF_CMP_TEMPLATE_DB=>TYP_TEMPLATE').
+ ASSIGN lr_template->* TO .
- CALL METHOD mo_cmp_db->('IF_CMP_TEMPLATE_DB~READ_TEMPLATE')
- EXPORTING
- i_name = |{ ms_item-obj_name }|
- i_version = 'A'
- RECEIVING
- r_template = .
+ CALL METHOD mo_cmp_db->('IF_CMP_TEMPLATE_DB~READ_TEMPLATE')
+ EXPORTING
+ i_name = |{ ms_item-obj_name }|
+ i_version = 'A'
+ RECEIVING
+ r_template = .
- ASSIGN COMPONENT 'STR_HEADER' OF STRUCTURE TO .
- IF sy-subrc = 0.
- ASSIGN COMPONENT 'NAME' OF STRUCTURE TO .
- IF sy-subrc = 0.
- CLEAR .
- ENDIF.
- ASSIGN COMPONENT 'VERSION' OF STRUCTURE TO .
- IF sy-subrc = 0.
- CLEAR .
- ENDIF.
- ASSIGN COMPONENT 'CHANGED_ON' OF STRUCTURE TO .
- IF sy-subrc = 0.
- CLEAR .
- ENDIF.
- ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE TO .
- IF sy-subrc = 0.
- CLEAR .
- ENDIF.
- ASSIGN COMPONENT 'CHANGED_TS' OF STRUCTURE TO .
- IF sy-subrc = 0.
- CLEAR .
- ENDIF.
- ENDIF.
+ ASSIGN COMPONENT 'STR_HEADER' OF STRUCTURE TO .
+ IF sy-subrc = 0.
+ ASSIGN COMPONENT 'NAME' OF STRUCTURE TO .
+ IF sy-subrc = 0.
+ CLEAR .
+ ENDIF.
+ ASSIGN COMPONENT 'VERSION' OF STRUCTURE TO .
+ IF sy-subrc = 0.
+ CLEAR .
+ ENDIF.
+ ASSIGN COMPONENT 'CHANGED_ON' OF STRUCTURE TO .
+ IF sy-subrc = 0.
+ CLEAR .
+ ENDIF.
+ ASSIGN COMPONENT 'CHANGED_BY' OF STRUCTURE TO .
+ IF sy-subrc = 0.
+ CLEAR .
+ ENDIF.
+ ASSIGN COMPONENT 'CHANGED_TS' OF STRUCTURE TO .
+ IF sy-subrc = 0.
+ CLEAR .
+ ENDIF.
+ ENDIF.
- io_xml->add( iv_name = 'CMPT'
- ig_data = ).
-
- CATCH cx_root.
- zcx_abapgit_exception=>raise( 'CMPT not supported' ).
- ENDTRY.
+ io_xml->add( iv_name = 'CMPT'
+ ig_data = ).
ENDMETHOD.
ENDCLASS.
diff --git a/src/objects/zcl_abapgit_object_dcls.clas.abap b/src/objects/zcl_abapgit_object_dcls.clas.abap
index ec71a8a97..92ba30494 100644
--- a/src/objects/zcl_abapgit_object_dcls.clas.abap
+++ b/src/objects/zcl_abapgit_object_dcls.clas.abap
@@ -2,18 +2,50 @@ CLASS zcl_abapgit_object_dcls DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
+ METHODS constructor
+ IMPORTING
+ is_item TYPE zif_abapgit_definitions=>ty_item
+ iv_language TYPE spras
+ io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
+ io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
+ RAISING
+ zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
+ DATA: mo_dcl_handler TYPE REF TO object. " CL_ACM_DCL_HANDLER
+ METHODS clear_fields
+ CHANGING
+ !cg_data TYPE any
+ RAISING
+ zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
+ METHOD constructor.
+
+ super->constructor(
+ is_item = is_item
+ iv_language = iv_language
+ io_files = io_files
+ io_i18n_params = io_i18n_params ).
+
+ TRY.
+ CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
+ RECEIVING
+ ro_handler = mo_dcl_handler.
+
+ CATCH cx_root.
+ RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
+ ENDTRY.
+
+ ENDMETHOD.
+
METHOD zif_abapgit_object~changed_by.
DATA: lr_data TYPE REF TO data,
- lo_dcl TYPE REF TO object,
lx_error TYPE REF TO cx_root.
FIELD-SYMBOLS: TYPE any,
@@ -23,39 +55,31 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
ASSIGN lr_data->* TO .
TRY.
- CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
- RECEIVING
- ro_handler = lo_dcl.
-
- CALL METHOD lo_dcl->('READ')
+ CALL METHOD mo_dcl_handler->('READ')
EXPORTING
iv_dclname = ms_item-obj_name
IMPORTING
es_dclsrc = .
-
- ASSIGN COMPONENT 'AS4USER' OF STRUCTURE TO .
- IF sy-subrc = 0.
- rv_user = .
- ELSE.
- rv_user = c_user_unknown.
- ENDIF.
CATCH cx_root INTO lx_error.
zcx_abapgit_exception=>raise_with_text( lx_error ).
ENDTRY.
+
+ ASSIGN COMPONENT 'AS4USER' OF STRUCTURE TO .
+ IF sy-subrc = 0.
+ rv_user = .
+ ELSE.
+ rv_user = c_user_unknown.
+ ENDIF.
+
ENDMETHOD.
METHOD zif_abapgit_object~delete.
- DATA: lo_dcl TYPE REF TO object,
- lx_error TYPE REF TO cx_root.
+ DATA: lx_error TYPE REF TO cx_root.
TRY.
- CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
- RECEIVING
- ro_handler = lo_dcl.
-
- CALL METHOD lo_dcl->('DELETE')
+ CALL METHOD mo_dcl_handler->('DELETE')
EXPORTING
iv_dclname = ms_item-obj_name.
@@ -71,7 +95,6 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
METHOD zif_abapgit_object~deserialize.
DATA: lr_data TYPE REF TO data,
- lo_dcl TYPE REF TO object,
lx_error TYPE REF TO cx_root,
lv_abap_language_version TYPE uccheck.
@@ -98,15 +121,11 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
set_abap_language_version( CHANGING cv_abap_language_version = lv_abap_language_version ).
ENDIF.
+ tadir_insert( iv_package ).
+
TRY.
- tadir_insert( iv_package ).
-
- CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
- RECEIVING
- ro_handler = lo_dcl.
-
TRY.
- CALL METHOD lo_dcl->('SAVE')
+ CALL METHOD mo_dcl_handler->('SAVE')
EXPORTING
iv_dclname = ms_item-obj_name
iv_put_state = 'I'
@@ -115,7 +134,7 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
iv_access_mode = 'INSERT'
iv_abap_language_version = lv_abap_language_version.
CATCH cx_sy_dyn_call_param_not_found.
- CALL METHOD lo_dcl->('SAVE')
+ CALL METHOD mo_dcl_handler->('SAVE')
EXPORTING
iv_dclname = ms_item-obj_name
iv_put_state = 'I'
@@ -135,23 +154,11 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
METHOD zif_abapgit_object~exists.
- DATA: lo_dcl TYPE REF TO object,
- lx_error TYPE REF TO cx_root.
-
- TRY.
- CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
- RECEIVING
- ro_handler = lo_dcl.
-
- CALL METHOD lo_dcl->('CHECK_EXISTENCE')
- EXPORTING
- iv_objectname = ms_item-obj_name
- RECEIVING
- rv_exists = rv_bool.
-
- CATCH cx_root INTO lx_error.
- zcx_abapgit_exception=>raise_with_text( lx_error ).
- ENDTRY.
+ CALL METHOD mo_dcl_handler->('CHECK_EXISTENCE')
+ EXPORTING
+ iv_objectname = ms_item-obj_name
+ RECEIVING
+ rv_exists = rv_bool.
ENDMETHOD.
@@ -207,7 +214,6 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
METHOD zif_abapgit_object~serialize.
DATA: lr_data TYPE REF TO data,
- lo_dcl TYPE REF TO object,
lx_error TYPE REF TO cx_root.
FIELD-SYMBOLS: TYPE any,
@@ -218,60 +224,55 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
ASSIGN lr_data->* TO .
TRY.
- CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE')
- RECEIVING
- ro_handler = lo_dcl.
-
- CALL METHOD lo_dcl->('READ')
+ CALL METHOD mo_dcl_handler->('READ')
EXPORTING
iv_dclname = ms_item-obj_name
IMPORTING
es_dclsrc = .
- ASSIGN COMPONENT 'AS4USER' OF STRUCTURE TO .
- ASSERT sy-subrc = 0.
- CLEAR .
-
- ASSIGN COMPONENT 'AS4DATE' OF STRUCTURE TO .
- ASSERT sy-subrc = 0.
- CLEAR .
-
- ASSIGN COMPONENT 'AS4TIME' OF STRUCTURE TO .
- ASSERT sy-subrc = 0.
- CLEAR .
-
- ASSIGN COMPONENT 'CREATED_BY' OF STRUCTURE TO .
- ASSERT sy-subrc = 0.
- CLEAR .
-
- ASSIGN COMPONENT 'CREATED_DATE' OF STRUCTURE TO .
- ASSERT sy-subrc = 0.
- CLEAR .
-
- ASSIGN COMPONENT 'AS4LOCAL' OF STRUCTURE TO .
- ASSERT sy-subrc = 0.
- CLEAR .
-
- ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE TO .
- IF sy-subrc = 0.
- clear_abap_language_version( CHANGING cv_abap_language_version = ).
- ENDIF.
-
- ASSIGN COMPONENT 'SOURCE' OF STRUCTURE TO .
- ASSERT sy-subrc = 0.
-
- mo_files->add_string(
- iv_ext = 'asdcls'
- iv_string = ).
-
- CLEAR .
-
- io_xml->add( iv_name = 'DCLS'
- ig_data = ).
-
CATCH cx_root INTO lx_error.
zcx_abapgit_exception=>raise_with_text( lx_error ).
ENDTRY.
+ clear_fields( CHANGING cg_data = ).
+
+ ASSIGN COMPONENT 'SOURCE' OF STRUCTURE TO .
+ ASSERT sy-subrc = 0.
+
+ mo_files->add_string(
+ iv_ext = 'asdcls'
+ iv_string = ).
+
+ CLEAR .
+
+ io_xml->add( iv_name = 'DCLS'
+ ig_data = ).
+
ENDMETHOD.
+
+
+ METHOD clear_fields.
+
+ DATA:
+ BEGIN OF ls_fields_to_clear,
+ as4user TYPE c,
+ as4date TYPE d,
+ as4time TYPE t,
+ created_by TYPE c,
+ created_date TYPE d,
+ as4local TYPE c,
+ END OF ls_fields_to_clear.
+
+ FIELD-SYMBOLS:
+ TYPE any.
+
+ MOVE-CORRESPONDING ls_fields_to_clear TO cg_data.
+
+ ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE cg_data TO .
+ IF sy-subrc = 0.
+ clear_abap_language_version( CHANGING cv_abap_language_version = ).
+ ENDIF.
+
+ ENDMETHOD.
+
ENDCLASS.
diff --git a/src/objects/zcl_abapgit_object_ddls.clas.abap b/src/objects/zcl_abapgit_object_ddls.clas.abap
index 58340a3fe..e73d76e81 100644
--- a/src/objects/zcl_abapgit_object_ddls.clas.abap
+++ b/src/objects/zcl_abapgit_object_ddls.clas.abap
@@ -10,7 +10,7 @@ CLASS zcl_abapgit_object_ddls DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
- zcx_abapgit_exception.
+ zcx_abapgit_type_not_supported.
PROTECTED SECTION.
METHODS open_adt_stob
@@ -20,6 +20,7 @@ CLASS zcl_abapgit_object_ddls DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
zcx_abapgit_exception.
PRIVATE SECTION.
+ DATA mo_ddl_handler TYPE REF TO object. " CL_DD_DDL_HANDLER
METHODS is_baseinfo_supported
RETURNING
VALUE(rv_supported) TYPE abap_bool .
@@ -29,6 +30,12 @@ CLASS zcl_abapgit_object_ddls DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
METHODS format_source_before_serialize
CHANGING
cv_string TYPE string.
+ METHODS clear_fields
+ CHANGING
+ !cg_data TYPE any
+ RAISING
+ zcx_abapgit_exception .
+
ENDCLASS.
@@ -38,8 +45,6 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
METHOD constructor.
- DATA lo_ddl TYPE REF TO object.
-
super->constructor(
is_item = is_item
iv_language = iv_language
@@ -49,9 +54,10 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
TRY.
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
RECEIVING
- handler = lo_ddl.
+ handler = mo_ddl_handler.
+
CATCH cx_root.
- zcx_abapgit_exception=>raise( 'Object type DDLS is not supported by this system' ).
+ RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
ENDTRY.
ENDMETHOD.
@@ -93,13 +99,12 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
METHOD is_baseinfo_supported.
DATA:
- lr_data_baseinfo TYPE REF TO data,
- lx_error TYPE REF TO cx_root.
+ lr_data_baseinfo TYPE REF TO data.
TRY.
CREATE DATA lr_data_baseinfo TYPE ('IF_DD_DDL_TYPES=>TY_S_BASEINFO_STRING_SAVE').
rv_supported = abap_true.
- CATCH cx_root INTO lx_error.
+ CATCH cx_root.
rv_supported = abap_false.
ENDTRY.
@@ -108,9 +113,7 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
METHOD open_adt_stob.
- DATA: lr_data TYPE REF TO data,
- lo_ddl TYPE REF TO object,
- lx_error TYPE REF TO cx_root.
+ DATA: lr_data TYPE REF TO data.
FIELD-SYMBOLS: TYPE STANDARD TABLE.
FIELD-SYMBOLS: TYPE STANDARD TABLE.
@@ -120,46 +123,37 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
FIELD-SYMBOLS: TYPE any.
- TRY.
- CREATE DATA lr_data TYPE ('IF_DD_DDL_TYPES=>TY_T_DDOBJ').
- ASSIGN lr_data->* TO .
+ CREATE DATA lr_data TYPE ('IF_DD_DDL_TYPES=>TY_T_DDOBJ').
+ ASSIGN lr_data->* TO .
- CREATE DATA lr_data LIKE LINE OF .
- ASSIGN lr_data->* TO .
+ CREATE DATA lr_data LIKE LINE OF .
+ ASSIGN lr_data->* TO .
- CREATE DATA lr_data TYPE ('IF_DD_DDL_TYPES=>TY_T_ENTITY_OF_VIEW').
- ASSIGN lr_data->* TO .
+ CREATE DATA lr_data TYPE ('IF_DD_DDL_TYPES=>TY_T_ENTITY_OF_VIEW').
+ ASSIGN lr_data->* TO .
- CREATE DATA lr_data LIKE LINE OF .
- ASSIGN lr_data->* TO .
+ CREATE DATA lr_data LIKE LINE OF .
+ ASSIGN lr_data->* TO .
- CLEAR .
- ASSIGN COMPONENT 'NAME' OF STRUCTURE TO .
- = iv_ddls_name.
- INSERT INTO TABLE .
+ CLEAR .
+ ASSIGN COMPONENT 'NAME' OF STRUCTURE TO .
+ = iv_ddls_name.
+ INSERT INTO TABLE .
- CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
- RECEIVING
- handler = lo_ddl.
+ CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~GET_VIEWNAME_FROM_ENTITYNAME')
+ EXPORTING
+ ddnames =
+ IMPORTING
+ view_of_entity = .
- CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~GET_VIEWNAME_FROM_ENTITYNAME')
- EXPORTING
- ddnames =
- IMPORTING
- view_of_entity = .
+ READ TABLE ASSIGNING INDEX 1.
+ IF sy-subrc = 0.
+ ASSIGN COMPONENT 'DDLNAME' OF STRUCTURE TO .
- READ TABLE ASSIGNING INDEX 1.
- IF sy-subrc = 0.
- ASSIGN COMPONENT 'DDLNAME' OF STRUCTURE TO .
+ zcl_abapgit_adt_link=>jump( iv_obj_name =
+ iv_obj_type = 'DDLS' ).
- zcl_abapgit_adt_link=>jump( iv_obj_name =
- iv_obj_type = 'DDLS' ).
-
- ENDIF.
-
- CATCH cx_root INTO lx_error.
- zcx_abapgit_exception=>raise_with_text( lx_error ).
- ENDTRY.
+ ENDIF.
ENDMETHOD.
@@ -180,23 +174,17 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
METHOD zif_abapgit_object~changed_by.
- DATA: lo_ddl TYPE REF TO object,
- lr_data TYPE REF TO data,
+ DATA: lr_data TYPE REF TO data,
lx_error TYPE REF TO cx_root.
FIELD-SYMBOLS: TYPE any,
TYPE any.
+ CREATE DATA lr_data TYPE ('DDDDLSRCV').
+ ASSIGN lr_data->* TO .
TRY.
- CREATE DATA lr_data TYPE ('DDDDLSRCV').
- ASSIGN lr_data->* TO .
-
- CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
- RECEIVING
- handler = lo_ddl.
-
- CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~READ')
+ CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~READ')
EXPORTING
name = ms_item-obj_name
get_state = 'A'
@@ -270,7 +258,6 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
METHOD zif_abapgit_object~deserialize.
DATA:
- lo_ddl TYPE REF TO object,
lr_data TYPE REF TO data,
lr_data_baseinfo TYPE REF TO data,
lx_error TYPE REF TO cx_root.
@@ -283,10 +270,10 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
TYPE any,
TYPE any.
- TRY.
- CREATE DATA lr_data TYPE ('DDDDLSRCV').
- ASSIGN lr_data->* TO .
+ CREATE DATA lr_data TYPE ('DDDDLSRCV').
+ ASSIGN lr_data->* TO .
+ TRY.
io_xml->read( EXPORTING iv_name = 'DDLS'
CHANGING cg_data = ).
@@ -299,10 +286,6 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
set_abap_language_version( CHANGING cv_abap_language_version = ).
ENDIF.
- CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
- RECEIVING
- handler = lo_ddl.
-
IF is_baseinfo_supported( ) = abap_true.
CREATE DATA lr_data_baseinfo TYPE ('IF_DD_DDL_TYPES=>TY_S_BASEINFO_STRING_SAVE').
ASSIGN lr_data_baseinfo->* TO .
@@ -317,7 +300,7 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
= ms_item-obj_name.
TRY.
- CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE')
+ CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~SAVE')
EXPORTING
name = ms_item-obj_name
put_state = 'N'
@@ -325,7 +308,7 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
baseinfo_string =
save_language_version = abap_true.
CATCH cx_sy_dyn_call_param_not_found.
- CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE')
+ CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~SAVE')
EXPORTING
name = ms_item-obj_name
put_state = 'N'
@@ -333,14 +316,14 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
baseinfo_string = .
ENDTRY.
ELSE.
- CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE')
+ CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~SAVE')
EXPORTING
name = ms_item-obj_name
put_state = 'N'
ddddlsrcv_wa = .
ENDIF.
- CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~WRITE_TADIR')
+ CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~WRITE_TADIR')
EXPORTING
objectname = ms_item-obj_name
devclass = iv_package
@@ -349,16 +332,14 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
corr_insert( iv_package ).
CATCH cx_root INTO lx_error.
- IF lo_ddl IS NOT INITIAL.
- " Attempt clean-up but catch error if it doesn't work
- TRY.
- CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~DELETE')
- EXPORTING
- name = ms_item-obj_name
- prid = 0.
- CATCH cx_root ##NO_HANDLER.
- ENDTRY.
- ENDIF.
+ " Attempt clean-up but catch error if it doesn't work
+ TRY.
+ CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~DELETE')
+ EXPORTING
+ name = ms_item-obj_name
+ prid = 0.
+ CATCH cx_root ##NO_HANDLER.
+ ENDTRY.
zcx_abapgit_exception=>raise_with_text( lx_error ).
ENDTRY.
@@ -370,15 +351,10 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
METHOD zif_abapgit_object~exists.
- DATA: lv_state TYPE objstate,
- lo_ddl TYPE REF TO object.
+ DATA: lv_state TYPE objstate.
TRY.
- CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
- RECEIVING
- handler = lo_ddl.
-
- CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~READ')
+ CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~READ')
EXPORTING
name = ms_item-obj_name
IMPORTING
@@ -457,36 +433,28 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
METHOD zif_abapgit_object~serialize.
- DATA: lo_ddl TYPE REF TO object,
- lr_data TYPE REF TO data,
+ DATA: lr_data TYPE REF TO data,
lr_data_baseinfo TYPE REF TO data,
- lt_clr_comps TYPE STANDARD TABLE OF fieldname WITH DEFAULT KEY,
lx_error TYPE REF TO cx_root.
- FIELD-SYMBOLS: TYPE any,
- TYPE any,
- LIKE LINE OF lt_clr_comps,
- TYPE ANY TABLE,
- TYPE any,
- TYPE any,
- TYPE any,
- TYPE any.
+ FIELD-SYMBOLS: TYPE any,
+ TYPE any,
+ TYPE ANY TABLE,
+ TYPE any,
+ TYPE any,
+ TYPE any.
+ CREATE DATA lr_data TYPE ('DDDDLSRCV').
+ ASSIGN lr_data->* TO .
+
TRY.
- CREATE DATA lr_data TYPE ('DDDDLSRCV').
- ASSIGN lr_data->* TO .
-
- CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
- RECEIVING
- handler = lo_ddl.
IF is_baseinfo_supported( ) = abap_true.
CREATE DATA lr_data_baseinfo TYPE ('IF_DD_DDL_TYPES=>TY_T_BASEINFO_STRING').
ASSIGN lr_data_baseinfo->* TO .
- ASSIGN lr_data_baseinfo->* TO .
- CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~READ')
+ CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~READ')
EXPORTING
name = ms_item-obj_name
get_state = 'A'
@@ -511,7 +479,7 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
ENDIF.
ENDLOOP.
ELSE.
- CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~READ')
+ CALL METHOD mo_ddl_handler->('IF_DD_DDL_HANDLER~READ')
EXPORTING
name = ms_item-obj_name
get_state = 'A'
@@ -523,24 +491,7 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
zcx_abapgit_exception=>raise_with_text( lx_error ).
ENDTRY.
- ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE TO .
- IF sy-subrc = 0.
- = get_abap_language_version( ).
- ENDIF.
-
- APPEND 'AS4USER' TO lt_clr_comps.
- APPEND 'AS4DATE' TO lt_clr_comps.
- APPEND 'AS4TIME' TO lt_clr_comps.
- APPEND 'ACTFLAG' TO lt_clr_comps.
- APPEND 'CHGFLAG' TO lt_clr_comps.
- APPEND 'ABAP_LANGU_VERSION' TO lt_clr_comps.
-
- LOOP AT lt_clr_comps ASSIGNING .
- ASSIGN COMPONENT OF STRUCTURE TO .
- IF sy-subrc = 0.
- CLEAR .
- ENDIF.
- ENDLOOP.
+ clear_fields( CHANGING cg_data = ).
ASSIGN COMPONENT 'SOURCE' OF STRUCTURE TO .
ASSERT sy-subrc = 0.
@@ -557,4 +508,30 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
ig_data = ).
ENDMETHOD.
+
+
+ METHOD clear_fields.
+
+ DATA:
+ BEGIN OF ls_fields_to_clear,
+ as4user TYPE c,
+ as4date TYPE d,
+ as4time TYPE t,
+ actflag TYPE c,
+ chgflag TYPE c,
+ abap_langu_version TYPE c,
+ END OF ls_fields_to_clear.
+
+ FIELD-SYMBOLS:
+ TYPE any.
+
+ MOVE-CORRESPONDING ls_fields_to_clear TO cg_data.
+
+ ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE cg_data TO .
+ IF sy-subrc = 0.
+ = get_abap_language_version( ).
+ ENDIF.
+
+ ENDMETHOD.
+
ENDCLASS.
diff --git a/src/objects/zcl_abapgit_object_ddlx.clas.abap b/src/objects/zcl_abapgit_object_ddlx.clas.abap
index e543dcaab..b344b0343 100644
--- a/src/objects/zcl_abapgit_object_ddlx.clas.abap
+++ b/src/objects/zcl_abapgit_object_ddlx.clas.abap
@@ -2,145 +2,80 @@ CLASS zcl_abapgit_object_ddlx DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
+ METHODS constructor
+ IMPORTING
+ is_item TYPE zif_abapgit_definitions=>ty_item
+ iv_language TYPE spras
+ io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
+ io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
+ RAISING
+ zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
- DATA mi_persistence TYPE REF TO if_wb_object_persist .
- METHODS get_persistence
- RETURNING
- VALUE(ri_persistence) TYPE REF TO if_wb_object_persist
- RAISING
- zcx_abapgit_exception .
+ DATA mi_persistence TYPE REF TO if_wb_object_persist.
+ DATA mi_data_model TYPE REF TO if_wb_object_data_model.
+ DATA mv_object_key TYPE seu_objkey.
METHODS clear_fields
CHANGING
- !cg_data TYPE any .
- METHODS clear_field
- IMPORTING
- !iv_fieldname TYPE csequence
- CHANGING
- !cg_metadata TYPE any .
+ !cg_data TYPE any
+ RAISING
+ zcx_abapgit_exception .
+
ENDCLASS.
CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
+ METHOD constructor.
- METHOD clear_field.
+ super->constructor(
+ is_item = is_item
+ iv_language = iv_language
+ io_files = io_files
+ io_i18n_params = io_i18n_params ).
- FIELD-SYMBOLS: TYPE data.
-
- ASSIGN COMPONENT iv_fieldname
- OF STRUCTURE cg_metadata
- TO .
- IF sy-subrc = 0.
- CLEAR: .
- ENDIF.
-
- ENDMETHOD.
-
-
- METHOD clear_fields.
-
- FIELD-SYMBOLS: TYPE any.
-
- ASSIGN COMPONENT 'METADATA'
- OF STRUCTURE cg_data
- TO .
- ASSERT sy-subrc = 0.
-
- clear_field( EXPORTING iv_fieldname = 'CHANGED_AT'
- CHANGING cg_metadata = ).
-
- clear_field( EXPORTING iv_fieldname = 'CHANGED_BY'
- CHANGING cg_metadata = ).
-
- clear_field( EXPORTING iv_fieldname = 'CREATED_AT'
- CHANGING cg_metadata = ).
-
- clear_field( EXPORTING iv_fieldname = 'CREATED_BY'
- CHANGING cg_metadata = ).
-
- clear_field( EXPORTING iv_fieldname = 'RESPONSIBLE'
- CHANGING cg_metadata = ).
-
- clear_field( EXPORTING iv_fieldname = 'PACKAGE_REF-NAME'
- CHANGING cg_metadata = ).
-
- clear_field( EXPORTING iv_fieldname = 'CONTAINER_REF-PACKAGE_NAME'
- CHANGING cg_metadata = ).
-
- clear_field( EXPORTING iv_fieldname = 'VERSION'
- CHANGING cg_metadata = ).
-
- clear_field( EXPORTING iv_fieldname = 'RESPONSIBLE'
- CHANGING cg_metadata = ).
-
- clear_field( EXPORTING iv_fieldname = 'MASTER_SYSTEM'
- CHANGING cg_metadata = ).
-
- clear_field( EXPORTING iv_fieldname = 'ABAP_LANGUAGE_VERSION'
- CHANGING cg_metadata = ).
-
- ENDMETHOD.
-
-
- METHOD get_persistence.
-
- DATA: lx_error TYPE REF TO cx_root.
+ mv_object_key = ms_item-obj_name.
TRY.
- IF mi_persistence IS NOT BOUND.
+ CREATE OBJECT mi_persistence
+ TYPE ('CL_DDLX_ADT_OBJECT_PERSIST').
- CREATE OBJECT mi_persistence
- TYPE ('CL_DDLX_ADT_OBJECT_PERSIST').
+ CREATE OBJECT mi_data_model
+ TYPE ('CL_DDLX_WB_OBJECT_DATA').
- ENDIF.
-
- CATCH cx_root INTO lx_error.
- zcx_abapgit_exception=>raise_with_text( lx_error ).
+ CATCH cx_sy_create_object_error.
+ RAISE EXCEPTION TYPE zcx_abapgit_type_not_supported EXPORTING obj_type = is_item-obj_type.
ENDTRY.
- ri_persistence = mi_persistence.
-
ENDMETHOD.
METHOD zif_abapgit_object~changed_by.
- DATA:
- lv_object_key TYPE seu_objkey,
- li_data_model TYPE REF TO if_wb_object_data_model,
- li_persistence TYPE REF TO if_wb_object_persist,
- lr_data TYPE REF TO data.
+ DATA: lr_data TYPE REF TO data.
FIELD-SYMBOLS:
TYPE any,
TYPE data.
- lv_object_key = ms_item-obj_name.
+ CREATE DATA lr_data
+ TYPE ('CL_DDLX_WB_OBJECT_DATA=>TY_OBJECT_DATA').
+ ASSIGN lr_data->* TO .
TRY.
- CREATE DATA lr_data
- TYPE ('CL_DDLX_WB_OBJECT_DATA=>TY_OBJECT_DATA').
- ASSIGN lr_data->* TO .
-
- CREATE OBJECT li_data_model
- TYPE ('CL_DDLX_WB_OBJECT_DATA').
-
- li_persistence = get_persistence( ).
-
- li_persistence->get(
+ mi_persistence->get(
EXPORTING
- p_object_key = lv_object_key
+ p_object_key = mv_object_key
p_version = swbm_version_active
CHANGING
- p_object_data = li_data_model ).
- CATCH cx_root.
+ p_object_data = mi_data_model ).
+ CATCH cx_swb_exception.
rv_user = c_user_unknown.
RETURN.
ENDTRY.
- li_data_model->get_data( IMPORTING p_data = ).
+ mi_data_model->get_data( IMPORTING p_data = ).
ASSIGN COMPONENT 'METADATA-CHANGED_BY' OF STRUCTURE TO .
ASSERT sy-subrc = 0.
@@ -151,18 +86,13 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
METHOD zif_abapgit_object~delete.
- DATA: lv_object_key TYPE seu_objkey,
- lx_error TYPE REF TO cx_root.
-
-
- lv_object_key = ms_item-obj_name.
+ DATA: lx_error TYPE REF TO cx_swb_exception.
TRY.
+ mi_persistence->delete( p_object_key = mv_object_key
+ p_version = swbm_version_active ).
- get_persistence( )->delete( p_object_key = lv_object_key
- p_version = swbm_version_active ).
-
- CATCH cx_root INTO lx_error.
+ CATCH cx_swb_exception INTO lx_error.
zcx_abapgit_exception=>raise_with_text( lx_error ).
ENDTRY.
@@ -173,9 +103,8 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
METHOD zif_abapgit_object~deserialize.
- DATA: li_data_model TYPE REF TO if_wb_object_data_model,
- lr_data TYPE REF TO data,
- lx_error TYPE REF TO cx_root.
+ DATA: lr_data TYPE REF TO data,
+ lx_error TYPE REF TO cx_swb_exception.
FIELD-SYMBOLS: TYPE any,
TYPE data,
@@ -185,67 +114,63 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
TYPE xsddatetime_z,
TYPE data.
+ CREATE DATA lr_data
+ TYPE ('CL_DDLX_WB_OBJECT_DATA=>TY_OBJECT_DATA').
+ ASSIGN lr_data->* TO .
+
+ io_xml->read(
+ EXPORTING
+ iv_name = 'DDLX'
+ CHANGING
+ cg_data = ).
+
+ ASSIGN COMPONENT 'METADATA-ABAP_LANGU_VERSION' OF STRUCTURE TO .
+ IF sy-subrc = 0.
+ set_abap_language_version( CHANGING cv_abap_language_version =