abapGit/src/zabapgit_object_splo.prog.abap

130 lines
4.1 KiB
ABAP

*&---------------------------------------------------------------------*
*& Include ZABAPGIT_OBJECT_SPLO
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_object_splo DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_splo DEFINITION INHERITING FROM lcl_objects_super FINAL.
PUBLIC SECTION.
INTERFACES lif_object.
ALIASES mo_files FOR lif_object~mo_files.
ENDCLASS. "lcl_object_splo DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_object_splo IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_splo IMPLEMENTATION.
METHOD lif_object~has_changed_since.
rv_changed = abap_true.
ENDMETHOD. "lif_object~has_changed_since
METHOD lif_object~changed_by.
SELECT SINGLE chgname1 FROM tsp1d INTO rv_user
WHERE papart = ms_item-obj_name.
IF sy-subrc <> 0.
rv_user = c_user_unknown.
ENDIF.
ENDMETHOD.
METHOD lif_object~get_metadata.
rs_metadata = get_metadata( ).
rs_metadata-delete_tadir = abap_true.
ENDMETHOD. "lif_object~get_metadata
METHOD lif_object~serialize.
DATA: ls_tsp1t TYPE tsp1t,
ls_tsp1d TYPE tsp1d,
ls_tsp0p TYPE tsp0p.
IF lif_object~exists( ) = abap_false.
RETURN.
ENDIF.
SELECT SINGLE * FROM tsp1t INTO ls_tsp1t
WHERE papart = ms_item-obj_name
AND spras = mv_language. "#EC CI_GENBUFF "#EC CI_SUBRC
SELECT SINGLE * FROM tsp1d INTO ls_tsp1d
WHERE papart = ms_item-obj_name. "#EC CI_SUBRC
SELECT SINGLE * FROM tsp0p INTO ls_tsp0p
WHERE pdpaper = ms_item-obj_name. "#EC CI_SUBRC
CLEAR: ls_tsp1d-chgname1,
ls_tsp1d-chgtstmp1,
ls_tsp1d-chgsaprel1,
ls_tsp1d-chgsapsys1.
io_xml->add( iv_name = 'TSPLT'
ig_data = ls_tsp1t ).
io_xml->add( iv_name = 'TSPLD'
ig_data = ls_tsp1d ).
io_xml->add( iv_name = 'TSP0P'
ig_data = ls_tsp0p ).
ENDMETHOD. "lif_object~serialize
METHOD lif_object~deserialize.
DATA: lv_obj_name TYPE e071-obj_name,
ls_tsp1t TYPE tsp1t,
ls_tsp1d TYPE tsp1d,
ls_tsp0p TYPE tsp0p.
io_xml->read( EXPORTING iv_name = 'TSPLT'
CHANGING cg_data = ls_tsp1t ).
io_xml->read( EXPORTING iv_name = 'TSPLD'
CHANGING cg_data = ls_tsp1d ).
io_xml->read( EXPORTING iv_name = 'TSP0P'
CHANGING cg_data = ls_tsp0p ).
MODIFY tsp1t FROM ls_tsp1t. "#EC CI_SUBRC
MODIFY tsp1d FROM ls_tsp1d. "#EC CI_SUBRC
MODIFY tsp0p FROM ls_tsp0p. "#EC CI_SUBRC
lv_obj_name = ms_item-obj_name.
CALL FUNCTION 'TR_TADIR_POPUP_ENTRY_E071'
EXPORTING
wi_e071_pgmid = 'R3TR'
wi_e071_object = ms_item-obj_type
wi_e071_obj_name = lv_obj_name
wi_tadir_devclass = iv_package.
ENDMETHOD. "lif_object~deserialize
METHOD lif_object~delete.
DELETE FROM tsp1t WHERE papart = ms_item-obj_name. "#EC CI_NOFIRST "#EC CI_SUBRC
DELETE FROM tsp1d WHERE papart = ms_item-obj_name. "#EC CI_SUBRC
DELETE FROM tsp0p WHERE pdpaper = ms_item-obj_name. "#EC CI_SUBRC
ENDMETHOD. "lif_object~delete
METHOD lif_object~exists.
DATA: lv_papart TYPE tsp1d-papart.
SELECT SINGLE papart INTO lv_papart FROM tsp1d
WHERE papart = ms_item-obj_name.
rv_bool = boolc( sy-subrc = 0 ).
ENDMETHOD. "lif_object~exists
METHOD lif_object~jump.
lcx_exception=>raise( 'todo, jump, SPLO' ).
ENDMETHOD. "lif_object~jump
ENDCLASS. "lcl_object_splo IMPLEMENTATION