TABL refactoring, serializing XML (#6694)

This commit is contained in:
Lars Hvam 2023-12-14 08:55:06 +01:00 committed by GitHub
parent 8ed909428f
commit dd7cb43c63
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 194 additions and 148 deletions

View File

@ -8,36 +8,25 @@ CLASS zcl_abapgit_object_tabl DEFINITION
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
TYPES: BEGIN OF ty_segment_definition,
segmentheader TYPE edisegmhd,
segmentdefinition TYPE edisegmdef,
segmentstructures TYPE STANDARD TABLE OF edisegstru WITH DEFAULT KEY,
END OF ty_segment_definition.
TYPES: ty_segment_definitions TYPE STANDARD TABLE OF ty_segment_definition WITH DEFAULT KEY.
TYPES: BEGIN OF ty_tabl_extras,
tddat TYPE tddat,
END OF ty_tabl_extras.
"! get additional data like table authorization group
"! @parameter iv_tabname | name of the table
METHODS read_extras IMPORTING iv_tabname TYPE ddobjname
RETURNING VALUE(rs_tabl_extras) TYPE ty_tabl_extras.
RETURNING VALUE(rs_tabl_extras) TYPE zif_abapgit_object_tabl=>ty_tabl_extras.
"! Update additional data
"! @parameter iv_tabname | name of the table
"! @parameter is_tabl_extras | additional table data
METHODS update_extras IMPORTING iv_tabname TYPE ddobjname
is_tabl_extras TYPE ty_tabl_extras.
is_tabl_extras TYPE zif_abapgit_object_tabl=>ty_tabl_extras.
"! Delete additional data
"! @parameter iv_tabname | name of the table
METHODS delete_extras IMPORTING iv_tabname TYPE ddobjname.
"! Serialize IDoc Segment type/definition if exits
"! @parameter io_xml | XML writer
"! @raising zcx_abapgit_exception | Exceptions
METHODS serialize_idoc_segment IMPORTING io_xml TYPE REF TO zif_abapgit_xml_output
METHODS serialize_idoc_segment CHANGING cs_internal TYPE zif_abapgit_object_tabl=>ty_internal
RAISING zcx_abapgit_exception.
"! Deserialize IDoc Segment type/definition if exits
@ -56,23 +45,7 @@ CLASS zcl_abapgit_object_tabl DEFINITION
METHODS delete_idoc_segment RETURNING VALUE(rv_deleted) TYPE abap_bool
RAISING zcx_abapgit_exception.
PRIVATE SECTION.
TYPES:
ty_dd03p_tt TYPE STANDARD TABLE OF dd03p .
TYPES:
BEGIN OF ty_dd02_text,
ddlanguage TYPE dd02t-ddlanguage,
ddtext TYPE dd02t-ddtext,
END OF ty_dd02_text .
TYPES:
ty_dd02_texts TYPE STANDARD TABLE OF ty_dd02_text .
CONSTANTS c_longtext_id_tabl TYPE dokil-id VALUE 'TB' ##NO_TEXT.
CONSTANTS:
BEGIN OF c_s_dataname,
segment_definition TYPE string VALUE 'SEGMENT_DEFINITION',
tabl_extras TYPE string VALUE 'TABL_EXTRAS',
END OF c_s_dataname .
METHODS deserialize_indexes
IMPORTING
@ -81,7 +54,7 @@ CLASS zcl_abapgit_object_tabl DEFINITION
zcx_abapgit_exception .
METHODS clear_dd03p_fields
CHANGING
!ct_dd03p TYPE ty_dd03p_tt .
!ct_dd03p TYPE zif_abapgit_object_tabl=>ty_dd03p_tt .
"! Check if structure is an IDoc segment
"! @parameter rv_is_idoc_segment | It's an IDoc segment or not
METHODS is_idoc_segment
@ -94,8 +67,8 @@ CLASS zcl_abapgit_object_tabl DEFINITION
CHANGING
!cs_dd03p TYPE dd03p .
METHODS serialize_texts
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
CHANGING
!cs_internal TYPE zif_abapgit_object_tabl=>ty_internal
RAISING
zcx_abapgit_exception .
METHODS deserialize_texts
@ -113,7 +86,7 @@ ENDCLASS.
CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
METHOD clear_dd03p_fields.
@ -242,19 +215,19 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
METHOD deserialize_idoc_segment.
DATA lv_result LIKE sy-subrc.
DATA lt_segment_definitions TYPE ty_segment_definitions.
DATA lt_segment_definitions TYPE zif_abapgit_object_tabl=>ty_segment_definitions.
DATA lv_package TYPE devclass.
DATA lv_uname TYPE sy-uname.
DATA lv_transport TYPE trkorr.
DATA ls_edisdef TYPE edisdef.
DATA ls_segment_definition TYPE ty_segment_definition.
FIELD-SYMBOLS <ls_segment_definition> TYPE ty_segment_definition.
DATA ls_segment_definition TYPE zif_abapgit_object_tabl=>ty_segment_definition.
FIELD-SYMBOLS <ls_segment_definition> TYPE zif_abapgit_object_tabl=>ty_segment_definition.
rv_deserialized = abap_false.
TRY.
io_xml->read( EXPORTING iv_name = c_s_dataname-segment_definition
io_xml->read( EXPORTING iv_name = zif_abapgit_object_tabl=>c_s_dataname-segment_definition
CHANGING cg_data = lt_segment_definitions ).
CATCH zcx_abapgit_exception.
@ -456,7 +429,7 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
DATA: lv_name TYPE ddobjname,
ls_dd02v_tmp TYPE dd02v,
lt_i18n_langs TYPE TABLE OF langu,
lt_dd02_texts TYPE ty_dd02_texts.
lt_dd02_texts TYPE zif_abapgit_object_tabl=>ty_dd02_texts.
FIELD-SYMBOLS: <lv_lang> LIKE LINE OF lt_i18n_langs,
<ls_dd02_text> LIKE LINE OF lt_dd02_texts.
@ -540,8 +513,8 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
DATA lv_result LIKE sy-subrc.
DATA lv_devclass TYPE devclass.
DATA lt_segmentdefinitions TYPE STANDARD TABLE OF edisegmdef.
DATA ls_segment_definition TYPE ty_segment_definition.
DATA lt_segment_definitions TYPE ty_segment_definitions.
DATA ls_segment_definition TYPE zif_abapgit_object_tabl=>ty_segment_definition.
FIELD-SYMBOLS: <ls_segemtndefinition> TYPE edisegmdef.
IF is_idoc_segment( ) = abap_false.
@ -589,12 +562,9 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
zcl_abapgit_object_idoc=>clear_idoc_segement_fields(
CHANGING cg_structure = ls_segment_definition-segmentheader ).
APPEND ls_segment_definition TO lt_segment_definitions.
APPEND ls_segment_definition TO cs_internal-segment_definitions.
ENDLOOP.
io_xml->add( iv_name = c_s_dataname-segment_definition
ig_data = lt_segment_definitions ).
ENDMETHOD.
@ -603,12 +573,10 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
DATA: lv_name TYPE ddobjname,
lv_index TYPE i,
ls_dd02v TYPE dd02v,
lt_dd02_texts TYPE ty_dd02_texts,
lt_i18n_langs TYPE TABLE OF langu,
lt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter.
FIELD-SYMBOLS: <lv_lang> LIKE LINE OF lt_i18n_langs,
<ls_dd02_text> LIKE LINE OF lt_dd02_texts.
FIELD-SYMBOLS: <lv_lang> LIKE LINE OF cs_internal-i18n_langs,
<ls_dd02_text> LIKE LINE OF cs_internal-dd02_texts.
IF mo_i18n_params->ms_params-main_language_only = abap_true.
RETURN.
@ -619,14 +587,14 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
" Collect additional languages, skip main lang - it was serialized already
lt_language_filter = mo_i18n_params->build_language_filter( ).
SELECT DISTINCT ddlanguage AS langu INTO TABLE lt_i18n_langs
SELECT DISTINCT ddlanguage AS langu INTO TABLE cs_internal-i18n_langs
FROM dd02v
WHERE tabname = lv_name
AND ddlanguage IN lt_language_filter
AND ddlanguage <> mv_language
ORDER BY langu. "#EC CI_SUBRC
LOOP AT lt_i18n_langs ASSIGNING <lv_lang>.
LOOP AT cs_internal-i18n_langs ASSIGNING <lv_lang>.
lv_index = sy-tabix.
CALL FUNCTION 'DDIF_TABL_GET'
EXPORTING
@ -638,25 +606,16 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
illegal_input = 1
OTHERS = 2.
IF sy-subrc <> 0 OR ls_dd02v-ddlanguage IS INITIAL.
DELETE lt_i18n_langs INDEX lv_index. " Don't save this lang
DELETE cs_internal-i18n_langs INDEX lv_index. " Don't save this lang
CONTINUE.
ENDIF.
APPEND INITIAL LINE TO lt_dd02_texts ASSIGNING <ls_dd02_text>.
APPEND INITIAL LINE TO cs_internal-dd02_texts ASSIGNING <ls_dd02_text>.
MOVE-CORRESPONDING ls_dd02v TO <ls_dd02_text>.
ENDLOOP.
SORT lt_i18n_langs ASCENDING.
SORT lt_dd02_texts BY ddlanguage ASCENDING.
IF lines( lt_i18n_langs ) > 0.
ii_xml->add( iv_name = 'I18N_LANGS'
ig_data = lt_i18n_langs ).
ii_xml->add( iv_name = 'DD02_TEXTS'
ig_data = lt_dd02_texts ).
ENDIF.
SORT cs_internal-i18n_langs ASCENDING.
SORT cs_internal-dd02_texts BY ddlanguage ASCENDING.
ENDMETHOD.
@ -789,7 +748,7 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
lt_dd08v TYPE TABLE OF dd08v,
lt_dd35v TYPE TABLE OF dd35v,
lt_dd36m TYPE dd36mttyp,
ls_extras TYPE ty_tabl_extras.
ls_extras TYPE zif_abapgit_object_tabl=>ty_tabl_extras.
FIELD-SYMBOLS: <ls_dd03p> TYPE dd03p,
<ls_dd05m> TYPE dd05m,
@ -899,7 +858,7 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
deserialize_longtexts( ii_xml = io_xml
iv_longtext_id = c_longtext_id_tabl ).
io_xml->read( EXPORTING iv_name = c_s_dataname-tabl_extras
io_xml->read( EXPORTING iv_name = zif_abapgit_object_tabl=>c_s_dataname-tabl_extras
CHANGING cg_data = ls_extras ).
update_extras( iv_tabname = lv_name
is_tabl_extras = ls_extras ).
@ -999,25 +958,16 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
METHOD zif_abapgit_object~serialize.
DATA: lv_name TYPE ddobjname,
lv_state TYPE ddgotstate,
ls_dd02v TYPE dd02v,
ls_dd09l TYPE dd09l,
lt_dd03p TYPE ty_dd03p_tt,
lt_dd05m TYPE TABLE OF dd05m,
lt_dd08v TYPE TABLE OF dd08v,
lt_dd12v TYPE dd12vtab,
lt_dd17v TYPE dd17vtab,
lt_dd35v TYPE TABLE OF dd35v,
lv_index LIKE sy-index,
lt_dd36m TYPE dd36mttyp,
ls_extras TYPE ty_tabl_extras.
DATA: lv_name TYPE ddobjname,
lv_state TYPE ddgotstate,
ls_internal TYPE zif_abapgit_object_tabl=>ty_internal,
lv_index LIKE sy-index.
FIELD-SYMBOLS: <ls_dd12v> LIKE LINE OF lt_dd12v,
<ls_dd05m> LIKE LINE OF lt_dd05m,
<ls_dd08v> LIKE LINE OF lt_dd08v,
<ls_dd35v> LIKE LINE OF lt_dd35v,
<ls_dd36m> LIKE LINE OF lt_dd36m,
FIELD-SYMBOLS: <ls_dd12v> LIKE LINE OF ls_internal-dd12v,
<ls_dd05m> LIKE LINE OF ls_internal-dd05m,
<ls_dd08v> LIKE LINE OF ls_internal-dd08v,
<ls_dd35v> LIKE LINE OF ls_internal-dd35v,
<ls_dd36m> LIKE LINE OF ls_internal-dd36m,
<lg_roworcolst> TYPE any.
lv_name = ms_item-obj_name.
@ -1028,16 +978,16 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
langu = mv_language
IMPORTING
gotstate = lv_state
dd02v_wa = ls_dd02v
dd09l_wa = ls_dd09l
dd02v_wa = ls_internal-dd02v
dd09l_wa = ls_internal-dd09l
TABLES
dd03p_tab = lt_dd03p
dd05m_tab = lt_dd05m
dd08v_tab = lt_dd08v
dd12v_tab = lt_dd12v
dd17v_tab = lt_dd17v
dd35v_tab = lt_dd35v
dd36m_tab = lt_dd36m
dd03p_tab = ls_internal-dd03p
dd05m_tab = ls_internal-dd05m
dd08v_tab = ls_internal-dd08v
dd12v_tab = ls_internal-dd12v
dd17v_tab = ls_internal-dd17v
dd35v_tab = ls_internal-dd35v
dd36m_tab = ls_internal-dd36m
EXCEPTIONS
illegal_input = 1
OTHERS = 2.
@ -1050,106 +1000,90 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
RETURN.
ENDIF.
CLEAR: ls_dd02v-as4user,
ls_dd02v-as4date,
ls_dd02v-as4time.
CLEAR: ls_internal-dd02v-as4user,
ls_internal-dd02v-as4date,
ls_internal-dd02v-as4time.
* reset numeric field, so XML does not crash
IF ls_dd02v-prozpuff = ''.
CLEAR ls_dd02v-prozpuff.
IF ls_internal-dd02v-prozpuff = ''.
CLEAR ls_internal-dd02v-prozpuff.
ENDIF.
IF ls_dd02v-datmin = ''.
CLEAR ls_dd02v-datmin.
IF ls_internal-dd02v-datmin = ''.
CLEAR ls_internal-dd02v-datmin.
ENDIF.
IF ls_dd02v-datmax = ''.
CLEAR ls_dd02v-datmax.
IF ls_internal-dd02v-datmax = ''.
CLEAR ls_internal-dd02v-datmax.
ENDIF.
IF ls_dd02v-datavg = ''.
CLEAR ls_dd02v-datavg.
IF ls_internal-dd02v-datavg = ''.
CLEAR ls_internal-dd02v-datavg.
ENDIF.
CLEAR: ls_dd09l-as4user,
ls_dd09l-as4date,
ls_dd09l-as4time.
CLEAR: ls_internal-dd09l-as4user,
ls_internal-dd09l-as4date,
ls_internal-dd09l-as4time.
ASSIGN COMPONENT 'ROWORCOLST' OF STRUCTURE ls_dd09l TO <lg_roworcolst>.
ASSIGN COMPONENT 'ROWORCOLST' OF STRUCTURE ls_internal-dd09l TO <lg_roworcolst>.
IF sy-subrc = 0 AND <lg_roworcolst> = 'C'.
CLEAR <lg_roworcolst>. "To avoid diff errors. This field doesn't exists in all releases
ENDIF.
LOOP AT lt_dd12v ASSIGNING <ls_dd12v>.
LOOP AT ls_internal-dd12v ASSIGNING <ls_dd12v>.
CLEAR: <ls_dd12v>-as4user,
<ls_dd12v>-as4date,
<ls_dd12v>-as4time,
<ls_dd12v>-dbindex.
ENDLOOP.
clear_dd03p_fields( CHANGING ct_dd03p = lt_dd03p ).
clear_dd03p_fields( CHANGING ct_dd03p = ls_internal-dd03p ).
* remove foreign keys inherited from .INCLUDEs
DELETE lt_dd08v WHERE noinherit = 'N'.
LOOP AT lt_dd05m ASSIGNING <ls_dd05m>.
DELETE ls_internal-dd08v WHERE noinherit = 'N'.
LOOP AT ls_internal-dd05m ASSIGNING <ls_dd05m>.
CLEAR <ls_dd05m>-tabname.
CLEAR <ls_dd05m>-leng.
lv_index = sy-tabix.
READ TABLE lt_dd08v WITH KEY fieldname = <ls_dd05m>-fieldname TRANSPORTING NO FIELDS.
READ TABLE ls_internal-dd08v WITH KEY fieldname = <ls_dd05m>-fieldname TRANSPORTING NO FIELDS.
IF sy-subrc <> 0.
DELETE lt_dd05m INDEX lv_index.
DELETE ls_internal-dd05m INDEX lv_index.
ENDIF.
ENDLOOP.
LOOP AT lt_dd08v ASSIGNING <ls_dd08v>.
LOOP AT ls_internal-dd08v ASSIGNING <ls_dd08v>.
CLEAR: <ls_dd08v>-tabname, <ls_dd08v>-ddlanguage.
ENDLOOP.
LOOP AT lt_dd35v ASSIGNING <ls_dd35v>.
LOOP AT ls_internal-dd35v ASSIGNING <ls_dd35v>.
CLEAR <ls_dd35v>-tabname.
ENDLOOP.
* remove inherited search helps
DELETE lt_dd35v WHERE shlpinher = abap_true.
LOOP AT lt_dd36m ASSIGNING <ls_dd36m>.
DELETE ls_internal-dd35v WHERE shlpinher = abap_true.
LOOP AT ls_internal-dd36m ASSIGNING <ls_dd36m>.
CLEAR <ls_dd36m>-tabname.
lv_index = sy-tabix.
READ TABLE lt_dd35v WITH KEY fieldname = <ls_dd36m>-fieldname TRANSPORTING NO FIELDS.
READ TABLE ls_internal-dd35v WITH KEY fieldname = <ls_dd36m>-fieldname TRANSPORTING NO FIELDS.
IF sy-subrc <> 0.
DELETE lt_dd36m INDEX lv_index.
DELETE ls_internal-dd36m INDEX lv_index.
ENDIF.
ENDLOOP.
io_xml->add( iv_name = 'DD02V'
ig_data = ls_dd02v ).
IF NOT ls_dd09l IS INITIAL.
io_xml->add( iv_name = 'DD09L'
ig_data = ls_dd09l ).
ENDIF.
io_xml->add( iv_name = 'DD03P_TABLE'
ig_data = lt_dd03p ).
io_xml->add( iv_name = 'DD05M_TABLE'
ig_data = lt_dd05m ).
io_xml->add( iv_name = 'DD08V_TABLE'
ig_data = lt_dd08v ).
io_xml->add( iv_name = 'DD12V'
ig_data = lt_dd12v ).
io_xml->add( iv_name = 'DD17V'
ig_data = lt_dd17v ).
io_xml->add( iv_name = 'DD35V_TALE'
ig_data = lt_dd35v ).
io_xml->add( iv_name = 'DD36M'
ig_data = lt_dd36m ).
IF mo_i18n_params->is_lxe_applicable( ) = abap_false.
serialize_texts( io_xml ).
serialize_texts( CHANGING cs_internal = ls_internal ).
ENDIF.
serialize_longtexts( ii_xml = io_xml
iv_longtext_id = c_longtext_id_tabl ).
ls_internal-longtexts = zcl_abapgit_factory=>get_longtexts( )->serialize(
iv_object_name = ms_item-obj_name
iv_longtext_id = c_longtext_id_tabl
io_i18n_params = mo_i18n_params
ii_xml = io_xml ).
serialize_idoc_segment( io_xml ).
serialize_idoc_segment( CHANGING cs_internal = ls_internal ).
ls_extras = read_extras( lv_name ).
io_xml->add( iv_name = c_s_dataname-tabl_extras
ig_data = ls_extras ).
ls_internal-extras = read_extras( lv_name ).
lcl_tabl_xml=>add(
io_xml = io_xml
is_internal = ls_internal ).
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,52 @@
CLASS lcl_tabl_xml DEFINITION FINAL.
PUBLIC SECTION.
CLASS-METHODS add
IMPORTING
io_xml TYPE REF TO zif_abapgit_xml_output
is_internal TYPE zif_abapgit_object_tabl=>ty_internal
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS lcl_tabl_xml IMPLEMENTATION.
METHOD add.
io_xml->add( iv_name = 'DD02V'
ig_data = is_internal-dd02v ).
IF NOT is_internal-dd09l IS INITIAL.
io_xml->add( iv_name = 'DD09L'
ig_data = is_internal-dd09l ).
ENDIF.
io_xml->add( iv_name = 'DD03P_TABLE'
ig_data = is_internal-dd03p ).
io_xml->add( iv_name = 'DD05M_TABLE'
ig_data = is_internal-dd05m ).
io_xml->add( iv_name = 'DD08V_TABLE'
ig_data = is_internal-dd08v ).
io_xml->add( iv_name = 'DD12V'
ig_data = is_internal-dd12v ).
io_xml->add( iv_name = 'DD17V'
ig_data = is_internal-dd17v ).
io_xml->add( iv_name = 'DD35V_TALE'
ig_data = is_internal-dd35v ).
io_xml->add( iv_name = 'DD36M'
ig_data = is_internal-dd36m ).
IF lines( is_internal-i18n_langs ) > 0.
io_xml->add( iv_name = 'I18N_LANGS'
ig_data = is_internal-i18n_langs ).
io_xml->add( iv_name = 'DD02_TEXTS'
ig_data = is_internal-dd02_texts ).
ENDIF.
io_xml->add( iv_name = 'LONGTEXTS'
ig_data = is_internal-longtexts ).
io_xml->add( iv_name = zif_abapgit_object_tabl=>c_s_dataname-segment_definition
ig_data = is_internal-segment_definitions ).
io_xml->add( iv_name = zif_abapgit_object_tabl=>c_s_dataname-tabl_extras
ig_data = is_internal-extras ).
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,45 @@
INTERFACE zif_abapgit_object_tabl PUBLIC.
CONSTANTS: BEGIN OF c_s_dataname,
segment_definition TYPE string VALUE 'SEGMENT_DEFINITION',
tabl_extras TYPE string VALUE 'TABL_EXTRAS',
END OF c_s_dataname.
TYPES: BEGIN OF ty_dd02_text,
ddlanguage TYPE dd02t-ddlanguage,
ddtext TYPE dd02t-ddtext,
END OF ty_dd02_text.
TYPES ty_dd02_texts TYPE STANDARD TABLE OF ty_dd02_text WITH DEFAULT KEY.
TYPES ty_dd03p_tt TYPE STANDARD TABLE OF dd03p WITH DEFAULT KEY.
TYPES: BEGIN OF ty_segment_definition,
segmentheader TYPE edisegmhd,
segmentdefinition TYPE edisegmdef,
segmentstructures TYPE STANDARD TABLE OF edisegstru WITH DEFAULT KEY,
END OF ty_segment_definition.
TYPES: ty_segment_definitions TYPE STANDARD TABLE OF ty_segment_definition WITH DEFAULT KEY.
TYPES: BEGIN OF ty_tabl_extras,
tddat TYPE tddat,
END OF ty_tabl_extras.
TYPES: BEGIN OF ty_internal,
dd02v TYPE dd02v,
dd09l TYPE dd09l,
dd03p TYPE ty_dd03p_tt,
dd05m TYPE STANDARD TABLE OF dd05m WITH DEFAULT KEY,
dd08v TYPE STANDARD TABLE OF dd08v WITH DEFAULT KEY,
dd12v TYPE dd12vtab,
dd17v TYPE dd17vtab,
dd35v TYPE STANDARD TABLE OF dd35v WITH DEFAULT KEY,
dd36m TYPE dd36mttyp,
dd02_texts TYPE ty_dd02_texts,
i18n_langs TYPE STANDARD TABLE OF langu WITH DEFAULT KEY,
longtexts TYPE zif_abapgit_longtexts=>ty_longtexts,
segment_definitions TYPE ty_segment_definitions,
extras TYPE ty_tabl_extras,
END OF ty_internal.
ENDINTERFACE.

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOINTERF>
<CLSNAME>ZIF_ABAPGIT_OBJECT_TABL</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abapGit - TABL</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<UNICODE>X</UNICODE>
</VSEOINTERF>
</asx:values>
</asx:abap>
</abapGit>