diff --git a/src/zabapgit_object_ddls.prog.abap b/src/zabapgit_object_ddls.prog.abap new file mode 100644 index 000000000..4c5299ab0 --- /dev/null +++ b/src/zabapgit_object_ddls.prog.abap @@ -0,0 +1,138 @@ +*&---------------------------------------------------------------------* +*& Include ZABAPGIT_OBJECT_VIEW +*&---------------------------------------------------------------------* + +* todo: +* - downport + +*----------------------------------------------------------------------* +* CLASS lcl_object_view DEFINITION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS lcl_object_ddls DEFINITION INHERITING FROM lcl_objects_super FINAL. + + PUBLIC SECTION. + INTERFACES lif_object. + ALIASES mo_files FOR lif_object~mo_files. + +ENDCLASS. "lcl_object_dtel DEFINITION + +*----------------------------------------------------------------------* +* CLASS lcl_object_view IMPLEMENTATION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS lcl_object_ddls IMPLEMENTATION. + + METHOD lif_object~has_changed_since. + rv_changed = abap_true. + ENDMETHOD. "lif_object~has_changed_since + + METHOD lif_object~changed_by. +* todo + rv_user = c_user_unknown. + ENDMETHOD. + + METHOD lif_object~get_metadata. + rs_metadata = get_metadata( ). + + rs_metadata-ddic = abap_true. + rs_metadata-delete_tadir = abap_true. + ENDMETHOD. "lif_object~get_metadata + + METHOD lif_object~exists. +* todo + rv_bool = abap_true. + ENDMETHOD. "lif_object~exists + + METHOD lif_object~jump. + lcx_exception=>raise( 'todo, DDLS jump' ). + ENDMETHOD. "jump + + METHOD lif_object~delete. + + DATA: li_ddl TYPE REF TO if_dd_ddl_handler. + + + li_ddl = cl_dd_ddl_handler_factory=>create( ). + TRY. + li_ddl->delete( ms_item-obj_name ). + CATCH cx_dd_ddl_delete. +* todo + ENDTRY. + + ENDMETHOD. "delete + + METHOD lif_object~serialize. + + DATA: li_ddl TYPE REF TO if_dd_ddl_handler, + ls_ddddlsrcv TYPE ddddlsrcv. + + + li_ddl = cl_dd_ddl_handler_factory=>create( ). + + TRY. + li_ddl->read( + EXPORTING + name = ms_item-obj_name + get_state = 'A' + IMPORTING + ddddlsrcv_wa = ls_ddddlsrcv ). + CATCH cx_dd_ddl_read. +* todo + BREAK-POINT. + ENDTRY. + + CLEAR ls_ddddlsrcv-as4user. + CLEAR ls_ddddlsrcv-as4date. + CLEAR ls_ddddlsrcv-as4time. + + mo_files->add_string( iv_ext = 'asddls' + iv_string = ls_ddddlsrcv-source ) ##NO_TEXT. + + CLEAR ls_ddddlsrcv-source. + + io_xml->add( iv_name = 'DDLS' + ig_data = ls_ddddlsrcv ). + + ENDMETHOD. "serialize + + METHOD lif_object~deserialize. + + DATA: li_ddl TYPE REF TO if_dd_ddl_handler, + ls_ddddlsrcv TYPE ddddlsrcv. + + + io_xml->read( EXPORTING iv_name = 'DDLS' + CHANGING cg_data = ls_ddddlsrcv ). + + ls_ddddlsrcv-source = mo_files->read_string( 'asddls' ) ##NO_TEXT. + + li_ddl = cl_dd_ddl_handler_factory=>create( ). + + TRY. + li_ddl->save( + EXPORTING + name = ms_item-obj_name + put_state = 'N' + ddddlsrcv_wa = ls_ddddlsrcv ). + + li_ddl->write_tadir( + objectname = ms_item-obj_name + devclass = iv_package + prid = 0 ). + CATCH cx_dd_ddl_save. +* todo + BREAK-POINT. + ENDTRY. + + lcl_objects_activation=>add_item( ms_item ). + + ENDMETHOD. "deserialize + + METHOD lif_object~compare_to_remote_version. + CREATE OBJECT ro_comparison_result TYPE lcl_null_comparison_result. + ENDMETHOD. + +ENDCLASS. "lcl_object_view IMPLEMENTATION diff --git a/src/zabapgit_object_ddls.prog.xml b/src/zabapgit_object_ddls.prog.xml new file mode 100644 index 000000000..b9c4d376d --- /dev/null +++ b/src/zabapgit_object_ddls.prog.xml @@ -0,0 +1,22 @@ + + + + + + ZABAPGIT_OBJECT_DDLS + A + X + I + E + X + + + + R + Include ZABAPGIT_OBJECT_VIEW + 28 + + + + + diff --git a/src/zabapgit_object_serializing.prog.abap b/src/zabapgit_object_serializing.prog.abap index a15b14df5..4e34ba17e 100644 --- a/src/zabapgit_object_serializing.prog.abap +++ b/src/zabapgit_object_serializing.prog.abap @@ -8,6 +8,7 @@ INCLUDE zabapgit_object_acid. INCLUDE zabapgit_object_auth. INCLUDE zabapgit_object_oo_functions. INCLUDE zabapgit_object_clas. +INCLUDE zabapgit_object_ddls. INCLUDE zabapgit_object_doct. INCLUDE zabapgit_object_docv. INCLUDE zabapgit_object_doma. diff --git a/src/zabapgit_object_view.prog.abap b/src/zabapgit_object_view.prog.abap index 49632e13f..ab5d12e93 100644 --- a/src/zabapgit_object_view.prog.abap +++ b/src/zabapgit_object_view.prog.abap @@ -65,7 +65,8 @@ CLASS lcl_object_view IMPLEMENTATION. METHOD lif_object~exists. - DATA: lv_viewname TYPE dd25l-viewname. + DATA: lv_viewname TYPE dd25l-viewname, + lv_ddl_view TYPE abap_bool. SELECT SINGLE viewname FROM dd25l INTO lv_viewname @@ -74,6 +75,21 @@ CLASS lcl_object_view IMPLEMENTATION. AND as4vers = '0000'. rv_bool = boolc( sy-subrc = 0 ). + IF rv_bool = abap_true. +* todo, downport + TRY. + CALL METHOD cl_dd_ddl_utilities=>check_for_ddl_view + EXPORTING + objname = lv_viewname + RECEIVING + is_ddl_view = lv_ddl_view. + CATCH cx_dd_ddl_exception. + ENDTRY. + IF lv_ddl_view = abap_true. + rv_bool = abap_false. + ENDIF. + ENDIF. + ENDMETHOD. "lif_object~exists METHOD lif_object~jump. diff --git a/src/zabapgit_tadir.prog.abap b/src/zabapgit_tadir.prog.abap index 660c64914..10dd69ff8 100644 --- a/src/zabapgit_tadir.prog.abap +++ b/src/zabapgit_tadir.prog.abap @@ -141,6 +141,7 @@ CLASS lcl_tadir IMPLEMENTATION. AND object <> 'SOTR' AND object <> 'SFB1' AND object <> 'SFB2' + AND object <> 'STOB' " auto generated by core data services AND delflag = abap_false ORDER BY PRIMARY KEY. "#EC CI_GENBUFF "#EC CI_SUBRC