From c6e502b6ecac275f8cb3e57e597195cb828b9460 Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Wed, 9 Aug 2017 19:59:18 +0000 Subject: [PATCH 01/10] JOBD Serialization --- src/zabapgit_object_jobd.prog.abap | 154 ++++++++++++++++++++++ src/zabapgit_object_jobd.prog.xml | 25 ++++ src/zabapgit_object_serializing.prog.abap | 1 + 3 files changed, 180 insertions(+) create mode 100644 src/zabapgit_object_jobd.prog.abap create mode 100644 src/zabapgit_object_jobd.prog.xml diff --git a/src/zabapgit_object_jobd.prog.abap b/src/zabapgit_object_jobd.prog.abap new file mode 100644 index 000000000..8f0d4dea2 --- /dev/null +++ b/src/zabapgit_object_jobd.prog.abap @@ -0,0 +1,154 @@ +*&---------------------------------------------------------------------* +*& Include zabapgit_object_jobd +*&---------------------------------------------------------------------* + +CLASS lcl_object_jobd DEFINITION INHERITING FROM lcl_objects_super FINAL. + + PUBLIC SECTION. + INTERFACES lif_object. + +ENDCLASS. + +CLASS lcl_object_jobd 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-delete_tadir = abap_true. + + ENDMETHOD. + + METHOD lif_object~exists. + + TRY. + cl_jr_jd_manager=>check_jd_existence( + EXPORTING + im_jd_name = |{ ms_item-obj_name }| + IMPORTING + ex_is_existing = rv_bool ). + + CATCH cx_root. + lcx_exception=>raise( |JOBD not supported| ). + ENDTRY. + + ENDMETHOD. + + METHOD lif_object~serialize. + + DATA: ls_job_definition TYPE cl_jr_job_definition=>ty_job_definition. + + TRY. + cl_jr_jd_manager=>get_instance( + EXPORTING + im_jd_name = |{ ms_item-obj_name }| + IMPORTING + ex_jd_obj = DATA(lo_job_definition) ). + + lo_job_definition->get_jd_attributes( + IMPORTING + ex_jd_attributes = ls_job_definition ). + + CLEAR: ls_job_definition-jdpackage, + ls_job_definition-btcjob_user, + ls_job_definition-owner, + ls_job_definition-created_date, + ls_job_definition-created_time, + ls_job_definition-changed_date, + ls_job_definition-changed_time. + + io_xml->add( iv_name = 'JOBD' + ig_data = ls_job_definition ). + + CATCH cx_root. + lcx_exception=>raise( |Error serializing JOBD| ). + ENDTRY. + + ENDMETHOD. + + METHOD lif_object~deserialize. + + DATA: ls_job_definition TYPE cl_jr_job_definition=>ty_job_definition. + + TRY. + io_xml->read( + EXPORTING + iv_name = 'JOBD' + CHANGING + cg_data = ls_job_definition ). + + cl_jr_jd_manager=>create_instance( + EXPORTING + im_jd_name = |{ ms_item-obj_name }| + IMPORTING + ex_jd_obj = DATA(lo_job_definition) ). + + ls_job_definition-jdpackage = iv_package. + + lo_job_definition->create_jd( ls_job_definition ). + + CATCH cx_root. + lcx_exception=>raise( |Error deserializing JOBD| ). + ENDTRY. + + lcl_objects_activation=>add_item( ms_item ). + + ENDMETHOD. + + METHOD lif_object~delete. + + TRY. + cl_jr_jd_manager=>get_instance( + EXPORTING + im_jd_name = |{ ms_item-obj_name }| + IMPORTING + ex_jd_obj = DATA(lo_job_definition) ). + + lo_job_definition->delete_jd( ). + + CATCH cx_root. + lcx_exception=>raise( |Error deleting JOBD| ). + ENDTRY. + + ENDMETHOD. + + METHOD lif_object~jump. + + DATA: obj_name TYPE e071-obj_name. + + obj_name = ms_item-obj_name. + + CALL FUNCTION 'TR_OBJECT_JUMP_TO_TOOL' + EXPORTING + iv_pgmid = 'R3TR' + iv_object = ms_item-obj_type + iv_obj_name = obj_name + iv_action = 'SHOW' + EXCEPTIONS + jump_not_possible = 1 + OTHERS = 2. + + IF sy-subrc <> 0. + lcx_exception=>raise( |Error from TR_OBJECT_JUMP_TO_TOOL, JOBD| ). + ENDIF. + + ENDMETHOD. + + METHOD lif_object~compare_to_remote_version. + + CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/zabapgit_object_jobd.prog.xml b/src/zabapgit_object_jobd.prog.xml new file mode 100644 index 000000000..e74762cd6 --- /dev/null +++ b/src/zabapgit_object_jobd.prog.xml @@ -0,0 +1,25 @@ + + + + + + ZABAPGIT_OBJECT_JOBD + A + X + S + D$ + I + X + D$S + X + + + + R + ZABAPGIT_OBJECT_JOBD + 20 + + + + + diff --git a/src/zabapgit_object_serializing.prog.abap b/src/zabapgit_object_serializing.prog.abap index faf27989e..4a674a53a 100644 --- a/src/zabapgit_object_serializing.prog.abap +++ b/src/zabapgit_object_serializing.prog.abap @@ -25,6 +25,7 @@ INCLUDE zabapgit_object_fugr. INCLUDE zabapgit_object_iarp. INCLUDE zabapgit_object_iasp. INCLUDE zabapgit_object_iatu. +INCLUDE zabapgit_object_JOBD. INCLUDE zabapgit_object_intf. INCLUDE zabapgit_object_msag. INCLUDE zabapgit_object_nrob. From 1ec1c7ef99e84b4fccae423d7e95a1f6dcbf0b2c Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Wed, 9 Aug 2017 20:27:31 +0000 Subject: [PATCH 02/10] JOBD downport objects --- src/zabapgit_object_jobd.prog.abap | 57 ++++++++++++++++++------------ 1 file changed, 35 insertions(+), 22 deletions(-) diff --git a/src/zabapgit_object_jobd.prog.abap b/src/zabapgit_object_jobd.prog.abap index 8f0d4dea2..74502dac2 100644 --- a/src/zabapgit_object_jobd.prog.abap +++ b/src/zabapgit_object_jobd.prog.abap @@ -32,12 +32,16 @@ CLASS lcl_object_jobd IMPLEMENTATION. METHOD lif_object~exists. + DATA: jd_name TYPE c LENGTH 32. + + jd_name = ms_item-obj_name. + TRY. - cl_jr_jd_manager=>check_jd_existence( + CALL METHOD ('CL_JR_JD_MANAGER')=>('CHECK_JD_EXISTENCE') EXPORTING im_jd_name = |{ ms_item-obj_name }| IMPORTING - ex_is_existing = rv_bool ). + ex_is_existing = rv_bool. CATCH cx_root. lcx_exception=>raise( |JOBD not supported| ). @@ -47,18 +51,20 @@ CLASS lcl_object_jobd IMPLEMENTATION. METHOD lif_object~serialize. - DATA: ls_job_definition TYPE cl_jr_job_definition=>ty_job_definition. + DATA: ls_job_definition TYPE cl_jr_job_definition=>ty_job_definition, + lo_job_definition TYPE REF TO object, + jd_name TYPE c LENGTH 32. + + jd_name = ms_item-obj_name. TRY. - cl_jr_jd_manager=>get_instance( + CREATE OBJECT lo_job_definition TYPE ('CL_JR_JOB_DEFINITION') EXPORTING - im_jd_name = |{ ms_item-obj_name }| - IMPORTING - ex_jd_obj = DATA(lo_job_definition) ). + im_jd_name = jd_name. - lo_job_definition->get_jd_attributes( + CALL METHOD lo_job_definition->('GET_JD_ATTRIBUTES') IMPORTING - ex_jd_attributes = ls_job_definition ). + ex_jd_attributes = ls_job_definition. CLEAR: ls_job_definition-jdpackage, ls_job_definition-btcjob_user, @@ -79,7 +85,11 @@ CLASS lcl_object_jobd IMPLEMENTATION. METHOD lif_object~deserialize. - DATA: ls_job_definition TYPE cl_jr_job_definition=>ty_job_definition. + DATA: ls_job_definition TYPE cl_jr_job_definition=>ty_job_definition, + lo_job_definition TYPE REF TO object, + jd_name TYPE c LENGTH 32. + + jd_name = ms_item-obj_name. TRY. io_xml->read( @@ -88,15 +98,15 @@ CLASS lcl_object_jobd IMPLEMENTATION. CHANGING cg_data = ls_job_definition ). - cl_jr_jd_manager=>create_instance( + CREATE OBJECT lo_job_definition TYPE ('CL_JR_JOB_DEFINITION') EXPORTING - im_jd_name = |{ ms_item-obj_name }| - IMPORTING - ex_jd_obj = DATA(lo_job_definition) ). + im_jd_name = jd_name. ls_job_definition-jdpackage = iv_package. - lo_job_definition->create_jd( ls_job_definition ). + CALL METHOD lo_job_definition->('CREATE_JD') + EXPORTING + im_jd_attributes = ls_job_definition. CATCH cx_root. lcx_exception=>raise( |Error deserializing JOBD| ). @@ -108,14 +118,17 @@ CLASS lcl_object_jobd IMPLEMENTATION. METHOD lif_object~delete. - TRY. - cl_jr_jd_manager=>get_instance( - EXPORTING - im_jd_name = |{ ms_item-obj_name }| - IMPORTING - ex_jd_obj = DATA(lo_job_definition) ). + DATA: lo_job_definition TYPE REF TO object, + jd_name TYPE c LENGTH 32. - lo_job_definition->delete_jd( ). + jd_name = ms_item-obj_name. + + TRY. + CREATE OBJECT lo_job_definition TYPE ('CL_JR_JOB_DEFINITION') + EXPORTING + im_jd_name = jd_name. + + CALL METHOD lo_job_definition->('DELETE_JD'). CATCH cx_root. lcx_exception=>raise( |Error deleting JOBD| ). From 0ce7d9c5d8386598a4ba9dbc0ca9ac3617ef3c75 Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Wed, 9 Aug 2017 20:34:47 +0000 Subject: [PATCH 03/10] JOBD Downport structures --- src/zabapgit_object_jobd.prog.abap | 58 ++++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 14 deletions(-) diff --git a/src/zabapgit_object_jobd.prog.abap b/src/zabapgit_object_jobd.prog.abap index 74502dac2..7109904f4 100644 --- a/src/zabapgit_object_jobd.prog.abap +++ b/src/zabapgit_object_jobd.prog.abap @@ -51,31 +51,51 @@ CLASS lcl_object_jobd IMPLEMENTATION. METHOD lif_object~serialize. - DATA: ls_job_definition TYPE cl_jr_job_definition=>ty_job_definition, + DATA: lr_job_definition TYPE REF TO data, lo_job_definition TYPE REF TO object, jd_name TYPE c LENGTH 32. + FIELD-SYMBOLS: TYPE any, + TYPE any. + jd_name = ms_item-obj_name. TRY. + CREATE DATA lr_job_definition TYPE ('CL_JR_JOB_DEFINITION=>TY_JOB_DEFINITION'). + ASSIGN lr_job_definition->* TO . + ASSERT sy-subrc = 0. + CREATE OBJECT lo_job_definition TYPE ('CL_JR_JOB_DEFINITION') EXPORTING im_jd_name = jd_name. CALL METHOD lo_job_definition->('GET_JD_ATTRIBUTES') IMPORTING - ex_jd_attributes = ls_job_definition. + ex_jd_attributes = . - CLEAR: ls_job_definition-jdpackage, - ls_job_definition-btcjob_user, - ls_job_definition-owner, - ls_job_definition-created_date, - ls_job_definition-created_time, - ls_job_definition-changed_date, - ls_job_definition-changed_time. + ASSIGN COMPONENT 'JDPACKAGE' OF STRUCTURE TO . + CLEAR . + + ASSIGN COMPONENT 'BTCJOB_USER' OF STRUCTURE TO . + CLEAR . + + ASSIGN COMPONENT 'OWNER' OF STRUCTURE TO . + CLEAR . + + ASSIGN COMPONENT 'CREATED_DATE' OF STRUCTURE TO . + CLEAR . + + ASSIGN COMPONENT 'CREATED_TIME' OF STRUCTURE TO . + CLEAR . + + ASSIGN COMPONENT 'CHANGED_DATE' OF STRUCTURE TO . + CLEAR . + + ASSIGN COMPONENT 'CHANGED_TIME' OF STRUCTURE TO . + CLEAR . io_xml->add( iv_name = 'JOBD' - ig_data = ls_job_definition ). + ig_data = ). CATCH cx_root. lcx_exception=>raise( |Error serializing JOBD| ). @@ -85,28 +105,38 @@ CLASS lcl_object_jobd IMPLEMENTATION. METHOD lif_object~deserialize. - DATA: ls_job_definition TYPE cl_jr_job_definition=>ty_job_definition, + DATA: lr_job_definition TYPE REF TO data, lo_job_definition TYPE REF TO object, jd_name TYPE c LENGTH 32. + FIELD-SYMBOLS: TYPE any, + TYPE any. + jd_name = ms_item-obj_name. TRY. + CREATE DATA lr_job_definition TYPE ('CL_JR_JOB_DEFINITION=>TY_JOB_DEFINITION'). + ASSIGN lr_job_definition->* TO . + ASSERT sy-subrc = 0. + io_xml->read( EXPORTING iv_name = 'JOBD' CHANGING - cg_data = ls_job_definition ). + cg_data = ). CREATE OBJECT lo_job_definition TYPE ('CL_JR_JOB_DEFINITION') EXPORTING im_jd_name = jd_name. - ls_job_definition-jdpackage = iv_package. + + ASSIGN COMPONENT 'JDPACKAGE' OF STRUCTURE TO . + + = iv_package. CALL METHOD lo_job_definition->('CREATE_JD') EXPORTING - im_jd_attributes = ls_job_definition. + im_jd_attributes = . CATCH cx_root. lcx_exception=>raise( |Error deserializing JOBD| ). From 82dbd63fee04d0fd777cca2f98154b293b7ae9e8 Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Thu, 10 Aug 2017 18:23:23 +0000 Subject: [PATCH 04/10] cleanup --- src/zabapgit_object_jobd.prog.abap | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/zabapgit_object_jobd.prog.abap b/src/zabapgit_object_jobd.prog.abap index 7109904f4..94feb8df0 100644 --- a/src/zabapgit_object_jobd.prog.abap +++ b/src/zabapgit_object_jobd.prog.abap @@ -7,6 +7,9 @@ CLASS lcl_object_jobd DEFINITION INHERITING FROM lcl_objects_super FINAL. PUBLIC SECTION. INTERFACES lif_object. + PRIVATE SECTION. + TYPES: ty_jd_name TYPE c LENGTH 32. + ENDCLASS. CLASS lcl_object_jobd IMPLEMENTATION. @@ -32,14 +35,14 @@ CLASS lcl_object_jobd IMPLEMENTATION. METHOD lif_object~exists. - DATA: jd_name TYPE c LENGTH 32. + DATA: jd_name TYPE ty_jd_name. jd_name = ms_item-obj_name. TRY. CALL METHOD ('CL_JR_JD_MANAGER')=>('CHECK_JD_EXISTENCE') EXPORTING - im_jd_name = |{ ms_item-obj_name }| + im_jd_name = jd_name IMPORTING ex_is_existing = rv_bool. @@ -53,7 +56,7 @@ CLASS lcl_object_jobd IMPLEMENTATION. DATA: lr_job_definition TYPE REF TO data, lo_job_definition TYPE REF TO object, - jd_name TYPE c LENGTH 32. + jd_name TYPE ty_jd_name. FIELD-SYMBOLS: TYPE any, TYPE any. @@ -107,7 +110,7 @@ CLASS lcl_object_jobd IMPLEMENTATION. DATA: lr_job_definition TYPE REF TO data, lo_job_definition TYPE REF TO object, - jd_name TYPE c LENGTH 32. + jd_name TYPE ty_jd_name. FIELD-SYMBOLS: TYPE any, TYPE any. From b0c25b0d0405970e04dec7f3235a13513958d3d5 Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Thu, 10 Aug 2017 18:27:55 +0000 Subject: [PATCH 05/10] Pretty Print --- src/zabapgit_object_serializing.prog.abap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/zabapgit_object_serializing.prog.abap b/src/zabapgit_object_serializing.prog.abap index 4a674a53a..21d37a603 100644 --- a/src/zabapgit_object_serializing.prog.abap +++ b/src/zabapgit_object_serializing.prog.abap @@ -25,7 +25,7 @@ INCLUDE zabapgit_object_fugr. INCLUDE zabapgit_object_iarp. INCLUDE zabapgit_object_iasp. INCLUDE zabapgit_object_iatu. -INCLUDE zabapgit_object_JOBD. +INCLUDE zabapgit_object_jobd. INCLUDE zabapgit_object_intf. INCLUDE zabapgit_object_msag. INCLUDE zabapgit_object_nrob. From fa46ccb849691fb90b9b7cc178b98e5c2933739a Mon Sep 17 00:00:00 2001 From: larshp Date: Fri, 11 Aug 2017 09:47:38 +0000 Subject: [PATCH 06/10] v1.40.0 --- src/zabapgit_definitions.prog.abap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/zabapgit_definitions.prog.abap b/src/zabapgit_definitions.prog.abap index 03c84cc73..06632644d 100644 --- a/src/zabapgit_definitions.prog.abap +++ b/src/zabapgit_definitions.prog.abap @@ -7,7 +7,7 @@ TYPE-POOLS seop. INTERFACE lif_defs. CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT - gc_abap_version TYPE string VALUE 'v1.39.0'. "#EC NOTEXT + gc_abap_version TYPE string VALUE 'v1.40.0'. "#EC NOTEXT TYPES: ty_type TYPE c LENGTH 6, ty_bitbyte TYPE c LENGTH 8, From f46c2c816c0c6ef19fd209941754039df5a6f0c4 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Fri, 11 Aug 2017 11:49:08 +0200 Subject: [PATCH 07/10] v1.40.0 --- changelog.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/changelog.txt b/changelog.txt index 4e289fc00..744b827cf 100644 --- a/changelog.txt +++ b/changelog.txt @@ -8,6 +8,12 @@ Legend + : added - : removed +2017-08-11 v1.40.0 +------------------ ++ JOBD supported ++ CMPT supported +* downport fix + 2017-08-07 v1.39.0 ------------------ + DIAL supported From 90e87d0a5c9d925f65bf26281c052ed2b62af848 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Fri, 11 Aug 2017 11:50:16 +0200 Subject: [PATCH 08/10] docs: JOBD supported --- docs/ref-supported.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/ref-supported.md b/docs/ref-supported.md index dc401da80..7a25bd83f 100644 --- a/docs/ref-supported.md +++ b/docs/ref-supported.md @@ -35,6 +35,7 @@ IARP | Parameters of IAC Language Resource | Yes IASP | Parameters of an IAC service | Yes IATU | Language-Independent IAC Templates | Yes IWPR | Gateway Business Suite Enablement - Service Builder Project | [#75](https://github.com/larshp/abapGit/issues/75) +JOBD | Technical Job Definition | Yes LPDC | Launchpad short texts | [#107](https://github.com/larshp/abapGit/issues/107) MSAG | Message Class | Yes NROB | Number Range Objects | Yes From 8deda9f140c6bae8e8209a586428622e364193c4 Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Sun, 13 Aug 2017 15:00:20 +0000 Subject: [PATCH 09/10] Add support for ENHO WDYENH --- src/zabapgit_object_enho.prog.abap | 198 ++++++++++++++++++++++++++++- 1 file changed, 196 insertions(+), 2 deletions(-) diff --git a/src/zabapgit_object_enho.prog.abap b/src/zabapgit_object_enho.prog.abap index 176963fd5..5757cf218 100644 --- a/src/zabapgit_object_enho.prog.abap +++ b/src/zabapgit_object_enho.prog.abap @@ -131,6 +131,196 @@ CLASS lcl_object_enho_wdyc IMPLEMENTATION. ENDCLASS. "lcl_object_enho_wdyconf IMPLEMENTATION +*----------------------------------------------------------------------* +* CLASS lcl_object_enho_wdyconf DEFINITION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS lcl_object_enho_wdyn DEFINITION. + + PUBLIC SECTION. + METHODS: constructor + IMPORTING + is_item TYPE lif_defs=>ty_item + io_files TYPE REF TO lcl_objects_files. + INTERFACES: lif_object_enho. + + PRIVATE SECTION. + DATA: ms_item TYPE lif_defs=>ty_item, + mo_files TYPE REF TO lcl_objects_files. + +ENDCLASS. "lcl_object_enho_wdyconf DEFINITION + +*----------------------------------------------------------------------* +* CLASS lcl_object_enho_wdyconf IMPLEMENTATION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS lcl_object_enho_wdyn IMPLEMENTATION. + + METHOD constructor. + ms_item = is_item. + mo_files = io_files. + ENDMETHOD. "constructor + + METHOD lif_object_enho~deserialize. + + DATA: ls_enh_data TYPE enhwdyn, + li_tool TYPE REF TO if_enh_tool, + lo_wdyn TYPE REF TO cl_enh_tool_wdy, + package TYPE devclass. + + io_xml->read( + EXPORTING + iv_name = 'COMPONENT_DATA' + CHANGING + cg_data = ls_enh_data ). + + package = iv_package. + + TRY. + cl_enh_factory=>create_enhancement( + EXPORTING + enhname = |{ ms_item-obj_name }| + enhtype = '' + enhtooltype = 'WDYENH' + IMPORTING + enhancement = li_tool + CHANGING + devclass = package ). + + lo_wdyn ?= li_tool. + + lo_wdyn->initialize( ls_enh_data-component_name ). + + lo_wdyn->set_component_data( ls_enh_data-component_data ). + + LOOP AT ls_enh_data-controller_data ASSIGNING FIELD-SYMBOL(). + + lo_wdyn->set_controller_data( p_controller_name = -controller_name + p_enh_data = ). + + ENDLOOP. + + LOOP AT ls_enh_data-view_data ASSIGNING FIELD-SYMBOL(). + + lo_wdyn->set_view_data( p_view_name = -view_name + p_enh_data = ). + + ENDLOOP. + + lo_wdyn->if_enh_object~save( ). + lo_wdyn->if_enh_object~unlock( ). + + CATCH cx_root. + lcx_exception=>raise( |error deserializing ENHO wdyn { ms_item-obj_name }| ). + ENDTRY. + + +* DATA: lv_enhname TYPE enhname, +* lo_wdyconf TYPE REF TO cl_wdr_cfg_enhancement, +* li_tool TYPE REF TO if_enh_tool, +* ls_obj TYPE wdy_config_key, +* lv_package TYPE devclass. +* +* +* io_xml->read( EXPORTING iv_name = 'ORIGINAL_OBJECT' +* CHANGING cg_data = ls_obj ). +* +* lv_enhname = ms_item-obj_name. +* lv_package = iv_package. +* TRY. +* cl_enh_factory=>create_enhancement( +* EXPORTING +* enhname = lv_enhname +* enhtype = '' +* enhtooltype = cl_wdr_cfg_enhancement=>tooltype +* IMPORTING +* enhancement = li_tool +* CHANGING +* devclass = lv_package ). +* lo_wdyconf ?= li_tool. +* +** todo +** io_xml->read_xml() +** CL_WDR_CFG_PERSISTENCE_UTILS=>COMP_XML_TO_TABLES( ) +** lo_wdyconf->set_enhancement_data( ) +* ASSERT 0 = 1. +* +* lo_wdyconf->if_enh_object~save( ). +* lo_wdyconf->if_enh_object~unlock( ). +* CATCH cx_enh_root. +* lcx_exception=>raise( 'error deserializing ENHO wdyconf' ). +* ENDTRY. + + ENDMETHOD. "lif_object_enho~deserialize + + METHOD lif_object_enho~serialize. + + DATA: lo_wdyn TYPE REF TO cl_enh_tool_wdy, + component_name TYPE wdy_component_name, + ls_enh_data TYPE enhwdyn. + + lo_wdyn ?= ii_enh_tool. + + component_name = lo_wdyn->get_component_name( ). + + TRY. + lo_wdyn->get_all_data_for_comp( + EXPORTING + p_component_name = component_name + IMPORTING + p_enh_data = ls_enh_data ). + + io_xml->add( iv_name = 'TOOL' + ig_data = ii_enh_tool->get_tool( ) ). + + io_xml->add( iv_name = 'COMPONENT_DATA' + ig_data = ls_enh_data ). + + CATCH cx_enh_not_found. + lcx_exception=>raise( |error serializing ENHO wdyn { ms_item-obj_name }| ). + ENDTRY. + +* DATA: lo_wdyconf TYPE REF TO cl_wdr_cfg_enhancement, +* lt_data TYPE wdy_cfg_expl_data_tab, +* ls_outline TYPE wdy_cfg_outline_data, +* ls_obj TYPE wdy_config_key, +* li_document TYPE REF TO if_ixml_document, +* li_element TYPE REF TO if_ixml_element. +* +* +* lo_wdyconf ?= ii_enh_tool. +* +* ls_obj = lo_wdyconf->get_original_object( ). +* io_xml->add( iv_name = 'TOOL' +* ig_data = ii_enh_tool->get_tool( ) ). +* io_xml->add( iv_name = 'ORIGINAL_OBJECT' +* ig_data = ls_obj ). +* +** only works on new ABAP versions, parameters differ between versions +* CALL METHOD lo_wdyconf->('GET_ENHANCEMENT_DATA') +* EXPORTING +* p_scope = 1 +* IMPORTING +* p_enh_data = lt_data. +* +* CALL METHOD cl_wdr_cfg_persistence_utils=>('COMP_TABLES_TO_XML') +* EXPORTING +* outline_data = ls_outline +* expl_data_tab = lt_data +* IMPORTING +* element = li_element +* CHANGING +* document = li_document. +* +* io_xml->add_xml( iv_name = 'ENHANCEMENT_DATA' +* ii_xml = li_element ). + + ENDMETHOD. "lif_object_enho~serialize + +ENDCLASS. "lcl_object_enho_wdyconf IMPLEMENTATION + *----------------------------------------------------------------------* * CLASS lcl_object_enho_clif DEFINITION @@ -891,7 +1081,7 @@ CLASS lcl_object_enho DEFINITION INHERITING FROM lcl_objects_super FINAL. IMPORTING iv_tool TYPE enhtooltype RETURNING - value(ri_enho) TYPE REF TO lif_object_enho + VALUE(ri_enho) TYPE REF TO lif_object_enho RAISING lcx_exception. @@ -988,9 +1178,13 @@ CLASS lcl_object_enho IMPLEMENTATION. EXPORTING is_item = ms_item io_files = mo_files. + WHEN 'WDYENH'. + CREATE OBJECT ri_enho TYPE lcl_object_enho_wdyn + EXPORTING + is_item = ms_item + io_files = mo_files. * ToDo: * WHEN 'ENHFUGRDATA'. "cl_enh_tool_fugr -* WHEN 'ENHWDYN'. "cl_enh_tool_wdy WHEN OTHERS. lcx_exception=>raise( |Unsupported ENHO type { iv_tool }| ). ENDCASE. From e8f146e5b5ff7e06fdf1a35c27152ed0222eaf0a Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Sun, 13 Aug 2017 15:28:49 +0000 Subject: [PATCH 10/10] cleanup --- src/zabapgit_object_enho.prog.abap | 96 ++++++------------------------ 1 file changed, 17 insertions(+), 79 deletions(-) diff --git a/src/zabapgit_object_enho.prog.abap b/src/zabapgit_object_enho.prog.abap index 5757cf218..043bf3647 100644 --- a/src/zabapgit_object_enho.prog.abap +++ b/src/zabapgit_object_enho.prog.abap @@ -168,13 +168,23 @@ CLASS lcl_object_enho_wdyn IMPLEMENTATION. DATA: ls_enh_data TYPE enhwdyn, li_tool TYPE REF TO if_enh_tool, lo_wdyn TYPE REF TO cl_enh_tool_wdy, + tool_type TYPE enhtooltype, package TYPE devclass. + FIELD-SYMBOLS: TYPE enhwdyc, + TYPE enhwdyv. + io_xml->read( EXPORTING - iv_name = 'COMPONENT_DATA' + iv_name = 'TOOL' CHANGING - cg_data = ls_enh_data ). + cg_data = tool_type ). + + io_xml->read( + EXPORTING + iv_name = 'COMPONENT_DATA' + CHANGING + cg_data = ls_enh_data ). package = iv_package. @@ -183,7 +193,7 @@ CLASS lcl_object_enho_wdyn IMPLEMENTATION. EXPORTING enhname = |{ ms_item-obj_name }| enhtype = '' - enhtooltype = 'WDYENH' + enhtooltype = tool_type IMPORTING enhancement = li_tool CHANGING @@ -195,17 +205,17 @@ CLASS lcl_object_enho_wdyn IMPLEMENTATION. lo_wdyn->set_component_data( ls_enh_data-component_data ). - LOOP AT ls_enh_data-controller_data ASSIGNING FIELD-SYMBOL(). + LOOP AT ls_enh_data-controller_data ASSIGNING . lo_wdyn->set_controller_data( p_controller_name = -controller_name - p_enh_data = ). + p_enh_data = ). ENDLOOP. - LOOP AT ls_enh_data-view_data ASSIGNING FIELD-SYMBOL(). + LOOP AT ls_enh_data-view_data ASSIGNING . lo_wdyn->set_view_data( p_view_name = -view_name - p_enh_data = ). + p_enh_data = ). ENDLOOP. @@ -216,43 +226,6 @@ CLASS lcl_object_enho_wdyn IMPLEMENTATION. lcx_exception=>raise( |error deserializing ENHO wdyn { ms_item-obj_name }| ). ENDTRY. - -* DATA: lv_enhname TYPE enhname, -* lo_wdyconf TYPE REF TO cl_wdr_cfg_enhancement, -* li_tool TYPE REF TO if_enh_tool, -* ls_obj TYPE wdy_config_key, -* lv_package TYPE devclass. -* -* -* io_xml->read( EXPORTING iv_name = 'ORIGINAL_OBJECT' -* CHANGING cg_data = ls_obj ). -* -* lv_enhname = ms_item-obj_name. -* lv_package = iv_package. -* TRY. -* cl_enh_factory=>create_enhancement( -* EXPORTING -* enhname = lv_enhname -* enhtype = '' -* enhtooltype = cl_wdr_cfg_enhancement=>tooltype -* IMPORTING -* enhancement = li_tool -* CHANGING -* devclass = lv_package ). -* lo_wdyconf ?= li_tool. -* -** todo -** io_xml->read_xml() -** CL_WDR_CFG_PERSISTENCE_UTILS=>COMP_XML_TO_TABLES( ) -** lo_wdyconf->set_enhancement_data( ) -* ASSERT 0 = 1. -* -* lo_wdyconf->if_enh_object~save( ). -* lo_wdyconf->if_enh_object~unlock( ). -* CATCH cx_enh_root. -* lcx_exception=>raise( 'error deserializing ENHO wdyconf' ). -* ENDTRY. - ENDMETHOD. "lif_object_enho~deserialize METHOD lif_object_enho~serialize. @@ -282,41 +255,6 @@ CLASS lcl_object_enho_wdyn IMPLEMENTATION. lcx_exception=>raise( |error serializing ENHO wdyn { ms_item-obj_name }| ). ENDTRY. -* DATA: lo_wdyconf TYPE REF TO cl_wdr_cfg_enhancement, -* lt_data TYPE wdy_cfg_expl_data_tab, -* ls_outline TYPE wdy_cfg_outline_data, -* ls_obj TYPE wdy_config_key, -* li_document TYPE REF TO if_ixml_document, -* li_element TYPE REF TO if_ixml_element. -* -* -* lo_wdyconf ?= ii_enh_tool. -* -* ls_obj = lo_wdyconf->get_original_object( ). -* io_xml->add( iv_name = 'TOOL' -* ig_data = ii_enh_tool->get_tool( ) ). -* io_xml->add( iv_name = 'ORIGINAL_OBJECT' -* ig_data = ls_obj ). -* -** only works on new ABAP versions, parameters differ between versions -* CALL METHOD lo_wdyconf->('GET_ENHANCEMENT_DATA') -* EXPORTING -* p_scope = 1 -* IMPORTING -* p_enh_data = lt_data. -* -* CALL METHOD cl_wdr_cfg_persistence_utils=>('COMP_TABLES_TO_XML') -* EXPORTING -* outline_data = ls_outline -* expl_data_tab = lt_data -* IMPORTING -* element = li_element -* CHANGING -* document = li_document. -* -* io_xml->add_xml( iv_name = 'ENHANCEMENT_DATA' -* ii_xml = li_element ). - ENDMETHOD. "lif_object_enho~serialize ENDCLASS. "lcl_object_enho_wdyconf IMPLEMENTATION