From 9ba5db8497d04d2ca45f4c360c202ae4af8dd142 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Wed, 4 May 2022 09:03:02 +0200 Subject: [PATCH] WDYN: Add documentation and fix diffs (#5490) - Add documentation for Web Dynpro component and controllers - Fix diffs of view components due to missing sort - Updated https://github.com/abapGit-tests/WDYN Co-authored-by: Lars Hvam --- src/objects/zcl_abapgit_object_wdyn.clas.abap | 74 ++++++++++++++++++- .../zcl_abapgit_objects_super.clas.abap | 20 +++-- 2 files changed, 82 insertions(+), 12 deletions(-) diff --git a/src/objects/zcl_abapgit_object_wdyn.clas.abap b/src/objects/zcl_abapgit_object_wdyn.clas.abap index 8be49f603..707737929 100644 --- a/src/objects/zcl_abapgit_object_wdyn.clas.abap +++ b/src/objects/zcl_abapgit_object_wdyn.clas.abap @@ -13,6 +13,10 @@ CLASS zcl_abapgit_object_wdyn DEFINITION PROTECTED SECTION. PRIVATE SECTION. + CONSTANTS c_longtext_id_wc TYPE dokil-id VALUE 'WC' ##NO_TEXT. + CONSTANTS c_longtext_id_wd TYPE dokil-id VALUE 'WD' ##NO_TEXT. + CONSTANTS c_longtext_name_wc TYPE string VALUE 'LONGTEXTS_WC' ##NO_TEXT. + DATA: mt_components TYPE TABLE OF wdy_ctlr_compo_vrs, mt_sources TYPE TABLE OF wdy_ctlr_compo_source_vrs. @@ -72,7 +76,7 @@ CLASS zcl_abapgit_object_wdyn DEFINITION CHANGING ct_exception TYPE abap_func_excpbind_tab, add_with_inactive_parts RAISING - zcx_abapgit_exception . + zcx_abapgit_exception. ENDCLASS. @@ -457,8 +461,28 @@ CLASS zcl_abapgit_object_wdyn IMPLEMENTATION. ENDIF. ENDLOOP. + SORT rs_component-view_metadata BY + definition-component_name ASCENDING + definition-view_name ASCENDING. + LOOP AT rs_component-view_metadata ASSIGNING . + SORT -descriptions. + SORT -view_containers. + SORT -view_container_texts. + SORT -iobound_plugs. + SORT -iobound_plug_texts. + SORT -plug_parameters. + SORT -plug_parameter_texts. SORT -ui_elements. + SORT -ui_context_bindings. + SORT -ui_event_bindings. + SORT -ui_ddic_bindings. + SORT -ui_properties. + SORT -navigation_links. + SORT -navigation_target_refs. + SORT -vsh_nodes. + SORT -vsh_placeholders. + SORT -viewset_properties. ENDLOOP. SORT mt_components BY @@ -715,7 +739,7 @@ CLASS zcl_abapgit_object_wdyn IMPLEMENTATION. DATA: ls_key TYPE wdy_md_component_key, lv_corrnr TYPE trkorr, - lx_error TYPE REF TO cx_wdy_md_exception, + lx_error TYPE REF TO cx_wdy_md_exception, ls_delta TYPE svrs2_xversionable_object. @@ -743,7 +767,7 @@ CLASS zcl_abapgit_object_wdyn IMPLEMENTATION. DATA: ls_key TYPE wdy_md_view_key, lv_corrnr TYPE trkorr, - lx_error TYPE REF TO cx_wdy_md_exception, + lx_error TYPE REF TO cx_wdy_md_exception, ls_delta TYPE svrs2_xversionable_object. @@ -766,7 +790,11 @@ CLASS zcl_abapgit_object_wdyn IMPLEMENTATION. METHOD zif_abapgit_object~changed_by. - rv_user = c_user_unknown. " todo + SELECT SINGLE changedby FROM wdy_component INTO rv_user + WHERE component_name = ms_item-obj_name AND version = 'A'. + IF sy-subrc <> 0. + rv_user = c_user_unknown. + ENDIF. ENDMETHOD. @@ -834,6 +862,12 @@ CLASS zcl_abapgit_object_wdyn IMPLEMENTATION. add_with_inactive_parts( ). + deserialize_longtexts( io_xml ). + + deserialize_longtexts( + ii_xml = io_xml + iv_longtext_name = c_longtext_name_wc ). + ENDMETHOD. @@ -883,6 +917,10 @@ CLASS zcl_abapgit_object_wdyn IMPLEMENTATION. METHOD zif_abapgit_object~serialize. DATA: ls_component TYPE wdy_component_metadata, + ls_comp TYPE wdy_ctlr_compo_vrs, + lv_object TYPE dokil-object, + lt_object TYPE STANDARD TABLE OF dokil-object WITH DEFAULT KEY, + lt_dokil TYPE STANDARD TABLE OF dokil WITH DEFAULT KEY, ls_description TYPE wdy_ext_ctx_map. ls_component = read( ). @@ -903,5 +941,33 @@ CLASS zcl_abapgit_object_wdyn IMPLEMENTATION. io_xml = io_xml ). ENDIF. + serialize_longtexts( + ii_xml = io_xml + iv_longtext_id = c_longtext_id_wd ). + + LOOP AT mt_components INTO ls_comp. + lv_object = ls_comp-component_name. + lv_object+30 = ls_comp-controller_name. + COLLECT lv_object INTO lt_object. + ENDLOOP. + + IF io_xml->i18n_params( )-main_language_only = abap_true. + SELECT * FROM dokil INTO TABLE lt_dokil + FOR ALL ENTRIES IN lt_object + WHERE id = c_longtext_id_wc AND object = lt_object-table_line AND masterlang = abap_true + ORDER BY PRIMARY KEY. + ELSE. + SELECT * FROM dokil INTO TABLE lt_dokil + FOR ALL ENTRIES IN lt_object + WHERE id = c_longtext_id_wc AND object = lt_object-table_line + ORDER BY PRIMARY KEY. + ENDIF. + + serialize_longtexts( + ii_xml = io_xml + it_dokil = lt_dokil + iv_longtext_id = c_longtext_id_wc + iv_longtext_name = c_longtext_name_wc ). + ENDMETHOD. ENDCLASS. diff --git a/src/objects/zcl_abapgit_objects_super.clas.abap b/src/objects/zcl_abapgit_objects_super.clas.abap index d9550ac38..d1e83b08d 100644 --- a/src/objects/zcl_abapgit_objects_super.clas.abap +++ b/src/objects/zcl_abapgit_objects_super.clas.abap @@ -43,14 +43,16 @@ CLASS zcl_abapgit_objects_super DEFINITION !iv_package TYPE devclass . METHODS serialize_longtexts IMPORTING - !ii_xml TYPE REF TO zif_abapgit_xml_output - !iv_longtext_id TYPE dokil-id OPTIONAL - !it_dokil TYPE zif_abapgit_definitions=>ty_dokil_tt OPTIONAL + !ii_xml TYPE REF TO zif_abapgit_xml_output + !iv_longtext_id TYPE dokil-id OPTIONAL + !it_dokil TYPE zif_abapgit_definitions=>ty_dokil_tt OPTIONAL + !iv_longtext_name TYPE string DEFAULT 'LONGTEXTS' RAISING zcx_abapgit_exception . METHODS deserialize_longtexts IMPORTING - !ii_xml TYPE REF TO zif_abapgit_xml_input + !ii_xml TYPE REF TO zif_abapgit_xml_input + !iv_longtext_name TYPE string DEFAULT 'LONGTEXTS' RAISING zcx_abapgit_exception . METHODS delete_longtexts @@ -217,6 +219,7 @@ CLASS zcl_abapgit_objects_super IMPLEMENTATION. zcl_abapgit_factory=>get_longtexts( )->deserialize( ii_xml = ii_xml + iv_longtext_name = iv_longtext_name iv_main_language = mv_language ). ENDMETHOD. @@ -337,10 +340,11 @@ CLASS zcl_abapgit_objects_super IMPLEMENTATION. METHOD serialize_longtexts. zcl_abapgit_factory=>get_longtexts( )->serialize( - iv_object_name = ms_item-obj_name - iv_longtext_id = iv_longtext_id - it_dokil = it_dokil - ii_xml = ii_xml ). + iv_object_name = ms_item-obj_name + iv_longtext_name = iv_longtext_name + iv_longtext_id = iv_longtext_id + it_dokil = it_dokil + ii_xml = ii_xml ). ENDMETHOD.