mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
Merge pull request #1401 from christianguenter2/IEXT
IEXT serialization
This commit is contained in:
commit
b4e90be755
225
src/objects/zcl_abapgit_object_iext.clas.abap
Normal file
225
src/objects/zcl_abapgit_object_iext.clas.abap
Normal file
|
@ -0,0 +1,225 @@
|
||||||
|
CLASS zcl_abapgit_object_iext DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
INTERFACES zif_abapgit_object.
|
||||||
|
ALIASES mo_files FOR zif_abapgit_object~mo_files.
|
||||||
|
METHODS:
|
||||||
|
constructor
|
||||||
|
IMPORTING
|
||||||
|
is_item TYPE zif_abapgit_definitions=>ty_item
|
||||||
|
iv_language TYPE spras.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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 ).
|
||||||
|
|
||||||
|
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
|
||||||
|
object_not_found = 1
|
||||||
|
db_error = 2
|
||||||
|
no_authority = 3
|
||||||
|
OTHERS = 4.
|
||||||
|
|
||||||
|
rv_user = ls_attributes-plast.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_object~compare_to_remote_version.
|
||||||
|
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_object~delete.
|
||||||
|
|
||||||
|
CALL FUNCTION 'EXTTYPE_DELETE'
|
||||||
|
EXPORTING
|
||||||
|
pi_cimtyp = mv_extension
|
||||||
|
EXCEPTIONS
|
||||||
|
object_not_found = 1
|
||||||
|
lock_error = 2
|
||||||
|
action_not_possible = 3
|
||||||
|
transport_error = 4
|
||||||
|
db_error = 5
|
||||||
|
no_authority = 6
|
||||||
|
OTHERS = 7.
|
||||||
|
|
||||||
|
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 = 'IEXT'
|
||||||
|
CHANGING
|
||||||
|
cg_data = ls_extension ).
|
||||||
|
|
||||||
|
MOVE-CORRESPONDING ls_extension-attributes TO ls_attributes.
|
||||||
|
|
||||||
|
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
|
||||||
|
object_not_found = 1
|
||||||
|
object_exists = 2
|
||||||
|
action_not_possible = 3
|
||||||
|
syntax_error = 4
|
||||||
|
segment_error = 5
|
||||||
|
transport_error = 6
|
||||||
|
db_error = 7
|
||||||
|
no_authority = 8
|
||||||
|
OTHERS = 9.
|
||||||
|
|
||||||
|
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
|
||||||
|
object_not_found = 1
|
||||||
|
db_error = 2
|
||||||
|
no_authority = 3
|
||||||
|
OTHERS = 4.
|
||||||
|
|
||||||
|
rv_bool = boolc( sy-subrc = 0 ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_object~get_metadata.
|
||||||
|
rs_metadata = get_metadata( ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_object~jump.
|
||||||
|
|
||||||
|
DATA: lt_bdcdata TYPE TABLE OF bdcdata.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_bdcdata> LIKE LINE OF lt_bdcdata.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lt_bdcdata ASSIGNING <ls_bdcdata>.
|
||||||
|
<ls_bdcdata>-program = 'SAPMSED5'.
|
||||||
|
<ls_bdcdata>-dynpro = '0010'.
|
||||||
|
<ls_bdcdata>-dynbegin = abap_true.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lt_bdcdata ASSIGNING <ls_bdcdata>.
|
||||||
|
<ls_bdcdata>-fnam = 'SED5STRUC-OBJECT'.
|
||||||
|
<ls_bdcdata>-fval = ms_item-obj_name.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lt_bdcdata ASSIGNING <ls_bdcdata>.
|
||||||
|
<ls_bdcdata>-fnam = 'SED5STRUC-SELECT_EXT'.
|
||||||
|
<ls_bdcdata>-fval = abap_true.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lt_bdcdata ASSIGNING <ls_bdcdata>.
|
||||||
|
<ls_bdcdata>-fnam = 'BDC_OKCODE'.
|
||||||
|
<ls_bdcdata>-fval = '=DISP'.
|
||||||
|
|
||||||
|
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
|
||||||
|
STARTING NEW TASK 'GIT'
|
||||||
|
EXPORTING
|
||||||
|
tcode = 'WE30'
|
||||||
|
mode_val = 'E'
|
||||||
|
TABLES
|
||||||
|
using_tab = lt_bdcdata
|
||||||
|
EXCEPTIONS
|
||||||
|
system_failure = 1
|
||||||
|
communication_failure = 2
|
||||||
|
resource_failure = 3
|
||||||
|
OTHERS = 4.
|
||||||
|
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
zcx_abapgit_exception=>raise_t100( ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
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
|
||||||
|
object_not_found = 1
|
||||||
|
db_error = 2
|
||||||
|
no_authority = 3
|
||||||
|
OTHERS = 4.
|
||||||
|
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
zcx_abapgit_exception=>raise_t100( ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
CLEAR: ls_extension-attributes-devc,
|
||||||
|
ls_extension-attributes-plast,
|
||||||
|
ls_extension-attributes-credate,
|
||||||
|
ls_extension-attributes-cretime,
|
||||||
|
ls_extension-attributes-ldate,
|
||||||
|
ls_extension-attributes-ltime.
|
||||||
|
|
||||||
|
io_xml->add( iv_name = 'IEXT'
|
||||||
|
ig_data = ls_extension ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
18
src/objects/zcl_abapgit_object_iext.clas.xml
Normal file
18
src/objects/zcl_abapgit_object_iext.clas.xml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
<?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_IEXT</CLSNAME>
|
||||||
|
<VERSION>1</VERSION>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<EXPOSURE>2</EXPOSURE>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSFINAL>X</CLSFINAL>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -127,6 +127,10 @@ CLASS ZCL_ABAPGIT_DEPENDENCIES IMPLEMENTATION.
|
||||||
ELSE.
|
ELSE.
|
||||||
<ls_tadir>-korrnum = '1000'.
|
<ls_tadir>-korrnum = '1000'.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
WHEN 'IDOC'.
|
||||||
|
<ls_tadir>-korrnum = '2000'.
|
||||||
|
WHEN 'IEXT'.
|
||||||
|
<ls_tadir>-korrnum = '1500'.
|
||||||
WHEN OTHERS.
|
WHEN OTHERS.
|
||||||
<ls_tadir>-korrnum = '1000'.
|
<ls_tadir>-korrnum = '1000'.
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user