mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
220 lines
5.3 KiB
ABAP
220 lines
5.3 KiB
ABAP
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.
|
|
|
|
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 = 1.
|
|
IF sy-subrc <> 0.
|
|
MESSAGE e413(ms) WITH ls_transaction_variant-shdtvciu-tcvariant INTO zcx_abapgit_exception=>null.
|
|
zcx_abapgit_exception=>raise_t100( ).
|
|
ENDIF.
|
|
|
|
corr_insert( 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_order.
|
|
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.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~map_filename_to_object.
|
|
RETURN.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~map_object_to_filename.
|
|
RETURN.
|
|
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.
|
|
|
|
SORT ls_transaction_variant-shdtvsvciu ASCENDING.
|
|
SORT ls_transaction_variant-shdfvguicu ASCENDING.
|
|
|
|
* 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
|
|
ORDER BY PRIMARY KEY.
|
|
|
|
io_xml->add( iv_name = 'STVI'
|
|
ig_data = ls_transaction_variant ).
|
|
|
|
ENDMETHOD.
|
|
ENDCLASS.
|