From 483982a134039f96bc538ab11466762a1cd97b57 Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Sat, 22 Apr 2017 20:35:31 +0000 Subject: [PATCH 1/8] DCLS added https://github.com/larshp/abapGit/issues/726 --- src/zabapgit_object_dcls.prog.abap | 188 ++++++++++++++++++++++ src/zabapgit_object_dcls.prog.xml | 22 +++ src/zabapgit_object_serializing.prog.abap | 1 + 3 files changed, 211 insertions(+) create mode 100644 src/zabapgit_object_dcls.prog.abap create mode 100644 src/zabapgit_object_dcls.prog.xml diff --git a/src/zabapgit_object_dcls.prog.abap b/src/zabapgit_object_dcls.prog.abap new file mode 100644 index 000000000..82dba491b --- /dev/null +++ b/src/zabapgit_object_dcls.prog.abap @@ -0,0 +1,188 @@ +*&---------------------------------------------------------------------* +*& Include zabapgit_object_dcls +*&---------------------------------------------------------------------* + +CLASS lcl_object_dcls DEFINITION INHERITING FROM lcl_objects_super FINAL. + + PUBLIC SECTION. + INTERFACES lif_object. + ALIASES mo_files FOR lif_object~mo_files. + +ENDCLASS. + +CLASS lcl_object_dcls IMPLEMENTATION. + + METHOD lif_object~has_changed_since. + rv_changed = abap_true. + ENDMETHOD. + + METHOD lif_object~changed_by. + 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. + + METHOD lif_object~exists. + + DATA: li_dcl TYPE REF TO object. + + TRY. + CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE') + RECEIVING + ro_handler = li_dcl. + + CALL METHOD li_dcl->('CHECK_EXISTENCE') + EXPORTING + iv_objectname = ms_item-obj_name + RECEIVING + rv_exists = rv_bool. + + CATCH cx_root. + rv_bool = abap_false. + ENDTRY. + + ENDMETHOD. + + METHOD lif_object~jump. + + CALL FUNCTION 'RS_TOOL_ACCESS' + EXPORTING + operation = 'SHOW' + object_name = ms_item-obj_name + object_type = ms_item-obj_type. + + ENDMETHOD. + + METHOD lif_object~delete. + + DATA: li_dcl TYPE REF TO object. + + TRY. + CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE') + RECEIVING + ro_handler = li_dcl. + + CALL METHOD li_dcl->('DELETE') + EXPORTING + iv_dclname = ms_item-obj_name. + + CATCH cx_root. + lcx_exception=>raise( 'DCLS error' ). + ENDTRY. + + ENDMETHOD. + + METHOD lif_object~serialize. + + DATA: lr_data TYPE REF TO data, + li_dcl TYPE REF TO object. + + FIELD-SYMBOLS: TYPE any, + TYPE any. + + CREATE DATA lr_data TYPE ('ACM_S_DCLSRC'). + ASSIGN lr_data->* TO . + + TRY. + CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE') + RECEIVING + ro_handler = li_dcl. + + CALL METHOD li_dcl->('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 '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. + lcx_exception=>raise( 'DCLS error' ). + ENDTRY. + + ENDMETHOD. + + METHOD lif_object~deserialize. + + DATA: lr_data TYPE REF TO data, + li_dcl TYPE REF TO object. + + FIELD-SYMBOLS: TYPE any, + TYPE any. + + CREATE DATA lr_data TYPE ('ACM_S_DCLSRC'). + ASSIGN lr_data->* TO . + + io_xml->read( + EXPORTING + iv_name = 'DCLS' + CHANGING + cg_data = ). + + ASSIGN COMPONENT 'SOURCE' OF STRUCTURE TO . + ASSERT sy-subrc = 0. + = mo_files->read_string( 'asdcls' ). + + TRY. + CALL METHOD ('CL_ACM_DCL_HANDLER_FACTORY')=>('CREATE') + RECEIVING + ro_handler = li_dcl. + + CALL METHOD li_dcl->('SAVE') + EXPORTING + iv_dclname = ms_item-obj_name + iv_put_state = 'A' + is_dclsrc = + iv_devclass = iv_package + iv_access_mode = 'INSERT'. + + tadir_insert( iv_package ). + + CATCH cx_root. + lcx_exception=>raise( 'DCLS error' ). + ENDTRY. + + lcl_objects_activation=>add_item( ms_item ). + + ENDMETHOD. + + METHOD lif_object~compare_to_remote_version. + CREATE OBJECT ro_comparison_result TYPE lcl_null_comparison_result. + ENDMETHOD. + +ENDCLASS. diff --git a/src/zabapgit_object_dcls.prog.xml b/src/zabapgit_object_dcls.prog.xml new file mode 100644 index 000000000..b362e25f5 --- /dev/null +++ b/src/zabapgit_object_dcls.prog.xml @@ -0,0 +1,22 @@ + + + + + + ZABAPGIT_OBJECT_DCLS + A + X + I + E + X + + + + R + Include ZABAPGIT_OBJECT_DCLS + 28 + + + + + diff --git a/src/zabapgit_object_serializing.prog.abap b/src/zabapgit_object_serializing.prog.abap index 7c8aa5f11..7fe44f18d 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_dcls. INCLUDE zabapgit_object_ddls. INCLUDE zabapgit_object_doct. INCLUDE zabapgit_object_docv. From e37ef377fd1b0251020df75a78eafd15b9be6cdc Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Sat, 22 Apr 2017 20:40:09 +0000 Subject: [PATCH 2/8] Beautify --- src/zabapgit_object_dcls.prog.abap | 1 - 1 file changed, 1 deletion(-) diff --git a/src/zabapgit_object_dcls.prog.abap b/src/zabapgit_object_dcls.prog.abap index 82dba491b..f911a5d2c 100644 --- a/src/zabapgit_object_dcls.prog.abap +++ b/src/zabapgit_object_dcls.prog.abap @@ -99,7 +99,6 @@ CLASS lcl_object_dcls IMPLEMENTATION. IMPORTING es_dclsrc = . - ASSIGN COMPONENT 'AS4USER' OF STRUCTURE TO . ASSERT sy-subrc = 0. CLEAR . From 843d122c20a756922b76c94aa928cbab4175fda8 Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Sun, 23 Apr 2017 09:35:26 +0000 Subject: [PATCH 3/8] Jump to ADT added --- src/zabapgit_object_dcls.prog.abap | 45 ++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/src/zabapgit_object_dcls.prog.abap b/src/zabapgit_object_dcls.prog.abap index f911a5d2c..04e66e43c 100644 --- a/src/zabapgit_object_dcls.prog.abap +++ b/src/zabapgit_object_dcls.prog.abap @@ -50,11 +50,46 @@ CLASS lcl_object_dcls IMPLEMENTATION. METHOD lif_object~jump. - CALL FUNCTION 'RS_TOOL_ACCESS' - EXPORTING - operation = 'SHOW' - object_name = ms_item-obj_name - object_type = ms_item-obj_type. + DATA: adt_link TYPE string, + obj_name TYPE e071-obj_name, + li_object TYPE REF TO cl_wb_object, + li_adt TYPE REF TO object, + li_adt_uri_mapper TYPE REF TO object, + li_adt_objref TYPE REF TO object. + + FIELD-SYMBOLS: TYPE string. + + TRY. + + obj_name = ms_item-obj_name. + + li_object = cl_wb_object=>create_from_transport_key( p_object = ms_item-obj_type + p_obj_name = obj_name ). + + CALL METHOD ('CL_ADT_TOOLS_CORE_FACTORY')=>('GET_INSTANCE') + RECEIVING + result = li_adt. + + CALL METHOD li_adt->('IF_ADT_TOOLS_CORE_FACTORY~GET_URI_MAPPER') + RECEIVING + result = li_adt_uri_mapper. + + CALL METHOD li_adt_uri_mapper->('IF_ADT_URI_MAPPER~MAP_WB_OBJECT_TO_OBJREF') + EXPORTING + wb_object = li_object + RECEIVING + result = li_adt_objref. + + ASSIGN ('li_adt_objref->ref_data-uri') TO . + + CONCATENATE 'adt://' sy-sysid INTO adt_link. + + cl_gui_frontend_services=>execute( EXPORTING document = adt_link + EXCEPTIONS OTHERS = 1 ). + + CATCH cx_root. + lcx_exception=>raise( 'DCLS Jump Error' ). + ENDTRY. ENDMETHOD. From 0cd56e51e9dbff82c870aca1498db2405a35db61 Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Sun, 23 Apr 2017 09:44:41 +0000 Subject: [PATCH 4/8] fixed linter errors --- src/zabapgit_object_dcls.prog.abap | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/zabapgit_object_dcls.prog.abap b/src/zabapgit_object_dcls.prog.abap index 04e66e43c..69b44c646 100644 --- a/src/zabapgit_object_dcls.prog.abap +++ b/src/zabapgit_object_dcls.prog.abap @@ -63,8 +63,7 @@ CLASS lcl_object_dcls IMPLEMENTATION. obj_name = ms_item-obj_name. - li_object = cl_wb_object=>create_from_transport_key( p_object = ms_item-obj_type - p_obj_name = obj_name ). + li_object = cl_wb_object=>create_from_transport_key( p_object = ms_item-obj_type p_obj_name = obj_name ). CALL METHOD ('CL_ADT_TOOLS_CORE_FACTORY')=>('GET_INSTANCE') RECEIVING @@ -146,6 +145,7 @@ CLASS lcl_object_dcls IMPLEMENTATION. ASSERT sy-subrc = 0. CLEAR . + ASSIGN COMPONENT 'CREATED_BY' OF STRUCTURE TO . ASSERT sy-subrc = 0. CLEAR . @@ -157,8 +157,7 @@ CLASS lcl_object_dcls IMPLEMENTATION. ASSIGN COMPONENT 'SOURCE' OF STRUCTURE TO . ASSERT sy-subrc = 0. - mo_files->add_string( iv_ext = 'asdcls' - iv_string = ). + mo_files->add_string( iv_ext = 'asdcls' iv_string = ). CLEAR . From e15f9e23747fe1da536cf59359c9cd2222751362 Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Sun, 23 Apr 2017 09:48:22 +0000 Subject: [PATCH 5/8] fixed linter errors 2 --- src/zabapgit_object_dcls.prog.abap | 1 - 1 file changed, 1 deletion(-) diff --git a/src/zabapgit_object_dcls.prog.abap b/src/zabapgit_object_dcls.prog.abap index 69b44c646..cf1c7f61c 100644 --- a/src/zabapgit_object_dcls.prog.abap +++ b/src/zabapgit_object_dcls.prog.abap @@ -145,7 +145,6 @@ CLASS lcl_object_dcls IMPLEMENTATION. ASSERT sy-subrc = 0. CLEAR . - ASSIGN COMPONENT 'CREATED_BY' OF STRUCTURE TO . ASSERT sy-subrc = 0. CLEAR . From 92261d91b1782d04d99e81c38ffd3adf0a860311 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Sun, 23 Apr 2017 11:53:31 +0200 Subject: [PATCH 6/8] Update zabapgit_object_dcls.prog.abap fixed linter errors 3 --- src/zabapgit_object_dcls.prog.abap | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/zabapgit_object_dcls.prog.abap b/src/zabapgit_object_dcls.prog.abap index cf1c7f61c..52f21a21d 100644 --- a/src/zabapgit_object_dcls.prog.abap +++ b/src/zabapgit_object_dcls.prog.abap @@ -145,7 +145,9 @@ CLASS lcl_object_dcls IMPLEMENTATION. ASSERT sy-subrc = 0. CLEAR . - ASSIGN COMPONENT 'CREATED_BY' OF STRUCTURE TO . + ASSIGN COMPONENT 'CREATED_BY' + OF STRUCTURE + TO . ASSERT sy-subrc = 0. CLEAR . From b6672c4e4c9608e8ee2a1a04977a7deecc02618c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Sun, 23 Apr 2017 11:55:43 +0200 Subject: [PATCH 7/8] Update zabapgit_object_dcls.prog.abap --- src/zabapgit_object_dcls.prog.abap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/zabapgit_object_dcls.prog.abap b/src/zabapgit_object_dcls.prog.abap index 52f21a21d..ad32341ec 100644 --- a/src/zabapgit_object_dcls.prog.abap +++ b/src/zabapgit_object_dcls.prog.abap @@ -146,7 +146,7 @@ CLASS lcl_object_dcls IMPLEMENTATION. CLEAR . ASSIGN COMPONENT 'CREATED_BY' - OF STRUCTURE + OF STRUCTURE TO . ASSERT sy-subrc = 0. CLEAR . From 94ad3ed7aab8c4128f47cb404f817850170d41c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Sun, 23 Apr 2017 11:57:45 +0200 Subject: [PATCH 8/8] Update zabapgit_object_dcls.prog.abap --- src/zabapgit_object_dcls.prog.abap | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/zabapgit_object_dcls.prog.abap b/src/zabapgit_object_dcls.prog.abap index ad32341ec..6269d3a52 100644 --- a/src/zabapgit_object_dcls.prog.abap +++ b/src/zabapgit_object_dcls.prog.abap @@ -145,9 +145,7 @@ CLASS lcl_object_dcls IMPLEMENTATION. ASSERT sy-subrc = 0. CLEAR . - ASSIGN COMPONENT 'CREATED_BY' - OF STRUCTURE - TO . + ASSIGN COMPONENT 'CREATED_BY' OF STRUCTURE TO . ASSERT sy-subrc = 0. CLEAR .