mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
TABL refactoring, serializing XML (#6694)
This commit is contained in:
parent
8ed909428f
commit
dd7cb43c63
|
@ -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.
|
||||
|
|
52
src/objects/zcl_abapgit_object_tabl.clas.locals_imp.abap
Normal file
52
src/objects/zcl_abapgit_object_tabl.clas.locals_imp.abap
Normal 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.
|
45
src/objects/zif_abapgit_object_tabl.intf.abap
Normal file
45
src/objects/zif_abapgit_object_tabl.intf.abap
Normal 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.
|
15
src/objects/zif_abapgit_object_tabl.intf.xml
Normal file
15
src/objects/zif_abapgit_object_tabl.intf.xml
Normal 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>
|
Loading…
Reference in New Issue
Block a user