CLASS zcl_abapgit_object_iext DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL. PUBLIC SECTION. INTERFACES zif_abapgit_object. METHODS constructor IMPORTING !is_item TYPE zif_abapgit_definitions=>ty_item !iv_language TYPE spras !io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL !io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL RAISING zcx_abapgit_exception. PROTECTED SECTION. PRIVATE SECTION. TYPES: BEGIN OF ty_extention, attributes TYPE edi_iapi01, t_syntax TYPE STANDARD TABLE OF edi_iapi03 WITH NON-UNIQUE DEFAULT KEY, END OF ty_extention. CONSTANTS c_dataname_iext TYPE string VALUE 'IEXT' ##NO_TEXT. DATA: mv_extension TYPE edi_cimtyp. ENDCLASS. CLASS zcl_abapgit_object_iext IMPLEMENTATION. METHOD constructor. super->constructor( is_item = is_item iv_language = iv_language io_files = io_files io_i18n_params = io_i18n_params ). mv_extension = ms_item-obj_name. ENDMETHOD. METHOD zif_abapgit_object~changed_by. DATA: ls_attributes TYPE edi_iapi01. CALL FUNCTION 'EXTTYPE_READ' EXPORTING pi_cimtyp = mv_extension IMPORTING pe_attributes = ls_attributes EXCEPTIONS OTHERS = 1. IF sy-subrc = 0. rv_user = ls_attributes-plast. ENDIF. ENDMETHOD. METHOD zif_abapgit_object~delete. CALL FUNCTION 'EXTTYPE_DELETE' EXPORTING pi_cimtyp = mv_extension EXCEPTIONS OTHERS = 1. IF sy-subrc <> 0. zcx_abapgit_exception=>raise_t100( ). ENDIF. ENDMETHOD. METHOD zif_abapgit_object~deserialize. DATA: ls_extension TYPE ty_extention, ls_attributes TYPE edi_iapi05. io_xml->read( EXPORTING iv_name = c_dataname_iext CHANGING cg_data = ls_extension ). MOVE-CORRESPONDING ls_extension-attributes TO ls_attributes. ls_attributes-presp = sy-uname. ls_attributes-pwork = ls_attributes-presp. IF zif_abapgit_object~exists( ) = abap_true. CALL FUNCTION 'EXTTYPE_UPDATE' EXPORTING pi_cimtyp = mv_extension pi_attributes = ls_attributes TABLES pt_syntax = ls_extension-t_syntax EXCEPTIONS OTHERS = 1. ELSE. " Avoid popup asking for package tadir_insert( iv_package ). CALL FUNCTION 'EXTTYPE_CREATE' EXPORTING pi_cimtyp = mv_extension pi_devclass = iv_package pi_attributes = ls_attributes TABLES pt_syntax = ls_extension-t_syntax EXCEPTIONS OTHERS = 1. ENDIF. IF sy-subrc <> 0. zcx_abapgit_exception=>raise_t100( ). ENDIF. ENDMETHOD. METHOD zif_abapgit_object~exists. CALL FUNCTION 'EXTTYPE_READ' EXPORTING pi_cimtyp = mv_extension EXCEPTIONS OTHERS = 1. rv_bool = boolc( sy-subrc = 0 ). 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. DATA: lt_bdcdata TYPE TABLE OF bdcdata. FIELD-SYMBOLS: LIKE LINE OF lt_bdcdata. APPEND INITIAL LINE TO lt_bdcdata ASSIGNING . -program = 'SAPMSED5'. -dynpro = '0010'. -dynbegin = abap_true. APPEND INITIAL LINE TO lt_bdcdata ASSIGNING . -fnam = 'SED5STRUC-OBJECT'. -fval = ms_item-obj_name. APPEND INITIAL LINE TO lt_bdcdata ASSIGNING . -fnam = 'SED5STRUC-SELECT_EXT'. -fval = abap_true. APPEND INITIAL LINE TO lt_bdcdata ASSIGNING . -fnam = 'BDC_OKCODE'. -fval = '=DISP'. zcl_abapgit_objects_factory=>get_gui_jumper( )->jump_batch_input( iv_tcode = 'WE30' it_bdcdata = lt_bdcdata ). rv_exit = abap_true. 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_extension TYPE ty_extention. CALL FUNCTION 'EXTTYPE_READ' EXPORTING pi_cimtyp = mv_extension IMPORTING pe_attributes = ls_extension-attributes TABLES pt_syntax = ls_extension-t_syntax EXCEPTIONS OTHERS = 1. IF sy-subrc <> 0. zcx_abapgit_exception=>raise_t100( ). ENDIF. zcl_abapgit_object_idoc=>clear_idoc_segement_fields( CHANGING cg_structure = ls_extension-attributes ). io_xml->add( iv_name = c_dataname_iext ig_data = ls_extension ). ENDMETHOD. ENDCLASS.