From b0d54f97e3a8fcf015f196d95af8d323e8b80610 Mon Sep 17 00:00:00 2001 From: Rakshith Gore <58498218+goreraks@users.noreply.github.com> Date: Thu, 23 Apr 2020 10:39:51 +0530 Subject: [PATCH] STVI, Transaction variants (#3307) * Screen Variants Support * Update package.devc.xml * Checks Corrected * Package Description Change * Transaction Variant Supported * Delete zcl_abapgit_object_stvi.clas.xml * Delete zcl_abapgit_object_stvi.clas.abap * Transaction Variants Supported * Checks Corrected * Clean Code * Handle User Details * Delete zcl_abapgit_object_scvi.clas.abap Delete Conflicting files * Delete zcl_abapgit_object_scvi.clas.xml Deleting conflicting files * docs, STVI, Transaction variant Co-authored-by: Lars Hvam --- docs/ref-supported.md | 1 + src/zcl_abapgit_object_stvi.clas.abap | 205 ++++++++++++++++++++++++++ src/zcl_abapgit_object_stvi.clas.xml | 17 +++ 3 files changed, 223 insertions(+) create mode 100644 src/zcl_abapgit_object_stvi.clas.abap create mode 100644 src/zcl_abapgit_object_stvi.clas.xml diff --git a/docs/ref-supported.md b/docs/ref-supported.md index 22bc4d738..27644f748 100644 --- a/docs/ref-supported.md +++ b/docs/ref-supported.md @@ -106,6 +106,7 @@ SQSC | Database Procedure Proxy | Yes SRFC | RFC Service | Yes SSFO | SAP Smart Form | Yes SSST | SAP Smart Style | Yes +STVI | Transaction Variants | Yes STYL | SAPscript style | Yes SUCU | Authorization Groups (TBRG_AUTH) | Yes SUSC | Authorization object class | Yes diff --git a/src/zcl_abapgit_object_stvi.clas.abap b/src/zcl_abapgit_object_stvi.clas.abap new file mode 100644 index 000000000..b6e73ae64 --- /dev/null +++ b/src/zcl_abapgit_object_stvi.clas.abap @@ -0,0 +1,205 @@ +CLASS zcl_abapgit_object_stvi DEFINITION + PUBLIC + INHERITING FROM zcl_abapgit_objects_super + FINAL + CREATE PUBLIC . + + PUBLIC SECTION. + + INTERFACES zif_abapgit_object . + PROTECTED SECTION. + PRIVATE SECTION. + + TYPES: + BEGIN OF ty_transaction_variant, + shdtvciu TYPE shdtvciu, + shdttciu TYPE STANDARD TABLE OF shdttciu WITH DEFAULT KEY, + shdfvguicu TYPE STANDARD TABLE OF shdfvguicu WITH DEFAULT KEY, + shdtvsvciu TYPE STANDARD TABLE OF shdtvsvciu WITH DEFAULT KEY, + END OF ty_transaction_variant. +ENDCLASS. + + + +CLASS ZCL_ABAPGIT_OBJECT_STVI IMPLEMENTATION. + + + METHOD zif_abapgit_object~changed_by. + + DATA: lv_transaction_variant TYPE utcvariant. + + lv_transaction_variant = ms_item-obj_name. + + SELECT SINGLE chuser + FROM shdtvciu + INTO rv_user + WHERE tcvariant = lv_transaction_variant. + IF sy-subrc <> 0 + OR rv_user IS INITIAL. + rv_user = c_user_unknown. + ENDIF. + + ENDMETHOD. + + + METHOD zif_abapgit_object~delete. + + DATA: lv_transaction_variant TYPE tcvariant. + + lv_transaction_variant = ms_item-obj_name. + + CALL FUNCTION 'RS_HDSYS_DELETE_VARIANT' + EXPORTING + tcvariant = lv_transaction_variant + i_flag_client_independent = abap_true + EXCEPTIONS + variant_enqueued = 1 + no_correction = 2 + OTHERS = 3. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise_t100( ). + ENDIF. + + ENDMETHOD. + + + METHOD zif_abapgit_object~deserialize. + + DATA: ls_transaction_variant TYPE ty_transaction_variant. + + DATA: lv_text TYPE natxt. + + io_xml->read( + EXPORTING + iv_name = 'STVI' + CHANGING + cg_data = ls_transaction_variant ). + + CALL FUNCTION 'ENQUEUE_ESTCVARCIU' + EXPORTING + tcvariant = ls_transaction_variant-shdtvciu-tcvariant + EXCEPTIONS + OTHERS = 01. + IF sy-subrc <> 0. + MESSAGE e413(ms) WITH ls_transaction_variant-shdtvciu-tcvariant INTO lv_text. + zcx_abapgit_exception=>raise_t100( ). + ENDIF. + + corr_insert( iv_package = iv_package ). + +* Populate user details + ls_transaction_variant-shdtvciu-crdate = sy-datum. + ls_transaction_variant-shdtvciu-cruser = sy-uname. + ls_transaction_variant-shdtvciu-chdate = sy-datum. + ls_transaction_variant-shdtvciu-chuser = sy-uname. + + MODIFY shdtvciu FROM ls_transaction_variant-shdtvciu. + MODIFY shdttciu FROM TABLE ls_transaction_variant-shdttciu[]. + INSERT shdfvguicu FROM TABLE ls_transaction_variant-shdfvguicu[] ACCEPTING DUPLICATE KEYS. + INSERT shdtvsvciu FROM TABLE ls_transaction_variant-shdtvsvciu[] ACCEPTING DUPLICATE KEYS. + + CALL FUNCTION 'DEQUEUE_ESTCVARCIU' + EXPORTING + tcvariant = ls_transaction_variant-shdtvciu-tcvariant. + + ENDMETHOD. + + + METHOD zif_abapgit_object~exists. + + DATA: lv_transaction_variant TYPE tcvariant. + + lv_transaction_variant = ms_item-obj_name. + + CALL FUNCTION 'RS_HDSYS_EXIST_CHECK_VARIANT' + EXPORTING + tcvariant = lv_transaction_variant + i_flag_client_independent = abap_true + EXCEPTIONS + no_variant = 1 + OTHERS = 2. + IF sy-subrc = 0. + rv_bool = abap_true. + ENDIF. + + ENDMETHOD. + + + METHOD zif_abapgit_object~get_comparator. + RETURN. + ENDMETHOD. + + + METHOD zif_abapgit_object~get_deserialize_steps. + + APPEND zif_abapgit_object=>gc_step_id-abap TO rt_steps. + + ENDMETHOD. + + + METHOD zif_abapgit_object~get_metadata. + + rs_metadata = get_metadata( ). + + ENDMETHOD. + + + METHOD zif_abapgit_object~is_active. + + rv_active = is_active( ). + + ENDMETHOD. + + + METHOD zif_abapgit_object~is_locked. + + rv_is_locked = abap_false. + + ENDMETHOD. + + + METHOD zif_abapgit_object~jump. + + zcx_abapgit_exception=>raise( |TODO: Jump| ). + + ENDMETHOD. + + + METHOD zif_abapgit_object~serialize. + + DATA: ls_transaction_variant TYPE ty_transaction_variant. + + ls_transaction_variant-shdtvciu-tcvariant = ms_item-obj_name. + + CALL FUNCTION 'RS_HDSYS_READ_TC_VARIANT_DB' + EXPORTING + tcvariant = ls_transaction_variant-shdtvciu-tcvariant + flag_client_independent = abap_true + IMPORTING + header_tcvariant = ls_transaction_variant-shdtvciu + TABLES + screen_variants = ls_transaction_variant-shdtvsvciu[] + inactive_functions = ls_transaction_variant-shdfvguicu[] + EXCEPTIONS + no_variant = 1 + OTHERS = 2. + IF sy-subrc <> 0. + zcx_abapgit_exception=>raise_t100( ). + ENDIF. + +* Clear all user details + CLEAR: ls_transaction_variant-shdtvciu-crdate, + ls_transaction_variant-shdtvciu-cruser, + ls_transaction_variant-shdtvciu-chdate, + ls_transaction_variant-shdtvciu-chuser. + + SELECT * + FROM shdttciu + INTO TABLE ls_transaction_variant-shdttciu[] + WHERE tcvariant = ls_transaction_variant-shdtvciu-tcvariant. + + io_xml->add( iv_name = 'STVI' + ig_data = ls_transaction_variant ). + + ENDMETHOD. +ENDCLASS. diff --git a/src/zcl_abapgit_object_stvi.clas.xml b/src/zcl_abapgit_object_stvi.clas.xml new file mode 100644 index 000000000..adfc5c14f --- /dev/null +++ b/src/zcl_abapgit_object_stvi.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_OBJECT_STVI + E + Object: Transaction Variants + 1 + X + X + X + K + + + +