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 <larshp@hotmail.com>
This commit is contained in:
Rakshith Gore 2020-04-23 10:39:51 +05:30 committed by GitHub
parent f0641a7292
commit b0d54f97e3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 223 additions and 0 deletions

View File

@ -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

View File

@ -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.

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_STVI</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>Object: Transaction Variants</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
<RSTAT>K</RSTAT>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>