diff --git a/src/objects/aff/zcl_abapgit_aff_registry.clas.abap b/src/objects/aff/zcl_abapgit_aff_registry.clas.abap index 589441013..ed87d94f0 100644 --- a/src/objects/aff/zcl_abapgit_aff_registry.clas.abap +++ b/src/objects/aff/zcl_abapgit_aff_registry.clas.abap @@ -52,6 +52,7 @@ CLASS ZCL_ABAPGIT_AFF_REGISTRY IMPLEMENTATION. register( 'CHKC' ). register( 'CHKO' ). register( 'CHKV' ). + register( 'COTA' ). register( 'DRTY' ). register( 'DTEB' ). register( 'DSFI' ). diff --git a/src/objects/aff/zcl_abapgit_object_cota.clas.abap b/src/objects/aff/zcl_abapgit_object_cota.clas.abap new file mode 100644 index 000000000..35ecc5516 --- /dev/null +++ b/src/objects/aff/zcl_abapgit_object_cota.clas.abap @@ -0,0 +1,46 @@ +CLASS zcl_abapgit_object_cota DEFINITION + PUBLIC + INHERITING FROM zcl_abapgit_object_common_aff + FINAL + CREATE PUBLIC . + + PUBLIC SECTION. + METHODS zif_abapgit_object~changed_by REDEFINITION. + METHODS zif_abapgit_object~delete REDEFINITION. + PROTECTED SECTION. + PRIVATE SECTION. +ENDCLASS. + + + +CLASS zcl_abapgit_object_cota IMPLEMENTATION. + + METHOD zif_abapgit_object~changed_by. + DATA lx_error TYPE REF TO cx_root. + TRY. + SELECT SINGLE changedby FROM ('sapcontargethead') INTO rv_user + WHERE id = ms_item-obj_name AND version = 'I'. + + IF rv_user IS INITIAL. + SELECT SINGLE changedby FROM ('sapcontargethead') INTO rv_user + WHERE id = ms_item-obj_name AND version = 'A'. + ENDIF. + CATCH cx_root INTO lx_error. + zcx_abapgit_exception=>raise_with_text( lx_error ). + ENDTRY. + ENDMETHOD. + + METHOD zif_abapgit_object~delete. + DATA lx_error TYPE REF TO cx_root. + DATA lv_cota_name TYPE c LENGTH 30. + TRY. + lv_cota_name = ms_item-obj_name. + CALL METHOD ('CL_COTA_FACTORY')=>('DELETE_COTA') + EXPORTING + cota_name = lv_cota_name + korrnum = iv_transport. + CATCH cx_root INTO lx_error. + zcx_abapgit_exception=>raise_with_text( lx_error ). + ENDTRY. + ENDMETHOD. +ENDCLASS. diff --git a/src/objects/aff/zcl_abapgit_object_cota.clas.xml b/src/objects/aff/zcl_abapgit_object_cota.clas.xml new file mode 100644 index 000000000..3e4f0b0a3 --- /dev/null +++ b/src/objects/aff/zcl_abapgit_object_cota.clas.xml @@ -0,0 +1,16 @@ + + + + + + ZCL_ABAPGIT_OBJECT_COTA + E + abapGit - COTA - Communication Target + 1 + X + X + X + + + + diff --git a/src/objects/sap/zif_abapgit_sap_package.intf.abap b/src/objects/sap/zif_abapgit_sap_package.intf.abap index 0cb7fc4df..52c2c33fa 100644 --- a/src/objects/sap/zif_abapgit_sap_package.intf.abap +++ b/src/objects/sap/zif_abapgit_sap_package.intf.abap @@ -41,14 +41,10 @@ INTERFACE zif_abapgit_sap_package zcx_abapgit_exception . METHODS read_description RETURNING - VALUE(rv_description) TYPE string - RAISING - zcx_abapgit_exception . + VALUE(rv_description) TYPE string. METHODS read_responsible RETURNING - VALUE(rv_responsible) TYPE usnam - RAISING - zcx_abapgit_exception . + VALUE(rv_responsible) TYPE usnam. METHODS create_child IMPORTING !iv_child TYPE devclass diff --git a/src/objects/zcl_abapgit_object_dcls.clas.abap b/src/objects/zcl_abapgit_object_dcls.clas.abap index 74addfb1c..ec71a8a97 100644 --- a/src/objects/zcl_abapgit_object_dcls.clas.abap +++ b/src/objects/zcl_abapgit_object_dcls.clas.abap @@ -70,9 +70,10 @@ 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. + 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. FIELD-SYMBOLS: TYPE any, TYPE any. @@ -91,6 +92,12 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION. ASSERT sy-subrc = 0. = mo_files->read_string( 'asdcls' ). + ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE TO . + IF sy-subrc = 0. + lv_abap_language_version = . + set_abap_language_version( CHANGING cv_abap_language_version = lv_abap_language_version ). + ENDIF. + TRY. tadir_insert( iv_package ). @@ -98,13 +105,24 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION. RECEIVING ro_handler = lo_dcl. - CALL METHOD lo_dcl->('SAVE') - EXPORTING - iv_dclname = ms_item-obj_name - iv_put_state = 'I' - is_dclsrc = - iv_devclass = iv_package - iv_access_mode = 'INSERT'. + TRY. + CALL METHOD lo_dcl->('SAVE') + EXPORTING + iv_dclname = ms_item-obj_name + iv_put_state = 'I' + is_dclsrc = + iv_devclass = iv_package + 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') + EXPORTING + iv_dclname = ms_item-obj_name + iv_put_state = 'I' + is_dclsrc = + iv_devclass = iv_package + iv_access_mode = 'INSERT'. + ENDTRY. CATCH cx_root INTO lx_error. zcx_abapgit_exception=>raise_with_text( lx_error ). @@ -236,7 +254,7 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION. ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE TO . IF sy-subrc = 0. - CLEAR . + clear_abap_language_version( CHANGING cv_abap_language_version = ). ENDIF. ASSIGN COMPONENT 'SOURCE' OF STRUCTURE TO . diff --git a/src/objects/zcl_abapgit_object_ddls.clas.abap b/src/objects/zcl_abapgit_object_ddls.clas.abap index e91b09de8..063a003a4 100644 --- a/src/objects/zcl_abapgit_object_ddls.clas.abap +++ b/src/objects/zcl_abapgit_object_ddls.clas.abap @@ -276,11 +276,12 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION. lx_error TYPE REF TO cx_root. FIELD-SYMBOLS: - TYPE any, - TYPE any, - TYPE any, - TYPE any, - TYPE any. + TYPE any, + TYPE any, + TYPE any, + TYPE any, + TYPE any, + TYPE any. TRY. CREATE DATA lr_data TYPE ('DDDDLSRCV'). @@ -293,6 +294,11 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION. ASSERT sy-subrc = 0. = mo_files->read_string( 'asddls' ). + ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE TO . + IF sy-subrc = 0. + set_abap_language_version( CHANGING cv_abap_language_version = ). + ENDIF. + CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE') RECEIVING handler = lo_ddl. @@ -310,12 +316,22 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION. ASSERT sy-subrc = 0. = ms_item-obj_name. - CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE') - EXPORTING - name = ms_item-obj_name - put_state = 'N' - ddddlsrcv_wa = - baseinfo_string = . + TRY. + CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE') + EXPORTING + name = ms_item-obj_name + put_state = 'N' + ddddlsrcv_wa = + baseinfo_string = + save_language_version = abap_true. + CATCH cx_sy_dyn_call_param_not_found. + CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE') + EXPORTING + name = ms_item-obj_name + put_state = 'N' + ddddlsrcv_wa = + baseinfo_string = . + ENDTRY. ELSE. CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE') EXPORTING @@ -447,13 +463,14 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION. 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. + FIELD-SYMBOLS: TYPE any, + TYPE any, + LIKE LINE OF lt_clr_comps, + TYPE ANY TABLE, + TYPE any, + TYPE any, + TYPE any, + TYPE any. TRY. @@ -506,12 +523,16 @@ 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. + clear_abap_language_version( CHANGING cv_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_LANGUAGE_VERSION' TO lt_clr_comps. APPEND 'ABAP_LANGU_VERSION' TO lt_clr_comps. LOOP AT lt_clr_comps ASSIGNING . diff --git a/src/objects/zcl_abapgit_object_ddlx.clas.abap b/src/objects/zcl_abapgit_object_ddlx.clas.abap index d48fb6668..e543dcaab 100644 --- a/src/objects/zcl_abapgit_object_ddlx.clas.abap +++ b/src/objects/zcl_abapgit_object_ddlx.clas.abap @@ -80,8 +80,6 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION. clear_field( EXPORTING iv_fieldname = 'ABAP_LANGUAGE_VERSION' CHANGING cg_metadata = ). - clear_field( EXPORTING iv_fieldname = 'ABAP_LANGU_VERSION' - CHANGING cg_metadata = ). ENDMETHOD. @@ -179,12 +177,13 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION. lr_data TYPE REF TO data, lx_error TYPE REF TO cx_root. - FIELD-SYMBOLS: TYPE any, - TYPE data, - TYPE data, - TYPE data, - TYPE syuname, - TYPE xsddatetime_z. + FIELD-SYMBOLS: TYPE any, + TYPE data, + TYPE data, + TYPE data, + TYPE syuname, + TYPE xsddatetime_z, + TYPE data. TRY. CREATE DATA lr_data @@ -197,6 +196,11 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION. 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 = ). + ENDIF. + ASSIGN COMPONENT 'CONTENT-SOURCE' OF STRUCTURE TO . ASSERT sy-subrc = 0. @@ -367,6 +371,11 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION. li_data_model->get_data( IMPORTING p_data = ). + ASSIGN COMPONENT 'METADATA-ABAP_LANGU_VERSION' OF STRUCTURE TO . + IF sy-subrc = 0. + clear_abap_language_version( CHANGING cv_abap_language_version = ). + ENDIF. + clear_fields( CHANGING cg_data = ). ASSIGN COMPONENT 'CONTENT-SOURCE' OF STRUCTURE TO . diff --git a/src/objects/zcl_abapgit_object_wdcc.clas.abap b/src/objects/zcl_abapgit_object_wdcc.clas.abap index 7ce5617de..cfd73b8da 100644 --- a/src/objects/zcl_abapgit_object_wdcc.clas.abap +++ b/src/objects/zcl_abapgit_object_wdcc.clas.abap @@ -8,6 +8,9 @@ CLASS zcl_abapgit_object_wdcc DEFINITION INTERFACES zif_abapgit_object . PROTECTED SECTION. + METHODS after_import + RAISING + zcx_abapgit_exception . PRIVATE SECTION. ENDCLASS. @@ -230,10 +233,33 @@ CLASS zcl_abapgit_object_wdcc IMPLEMENTATION. tadir_insert( iv_package ). + after_import( ). + corr_insert( iv_package ). ENDMETHOD. + METHOD after_import. + + DATA: lt_cts_object_entry TYPE STANDARD TABLE OF e071 WITH DEFAULT KEY, + ls_cts_object_entry LIKE LINE OF lt_cts_object_entry, + lt_cts_key TYPE STANDARD TABLE OF e071k WITH DEFAULT KEY. + + ls_cts_object_entry-pgmid = 'R3TR'. + ls_cts_object_entry-object = ms_item-obj_type. + ls_cts_object_entry-obj_name = ms_item-obj_name. + INSERT ls_cts_object_entry INTO TABLE lt_cts_object_entry. + + CALL FUNCTION 'WDR_CFG_AFTER_IMPORT' + EXPORTING + iv_tarclient = sy-mandt + iv_is_upgrade = abap_false + TABLES + tt_e071 = lt_cts_object_entry + tt_e071k = lt_cts_key. + + ENDMETHOD. + METHOD zif_abapgit_object~exists.