mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
TABL TTYP VIEW SHLP ENQU support
This commit is contained in:
parent
e84f3142ab
commit
f697231246
585
zabapgit.abap
585
zabapgit.abap
|
@ -686,6 +686,7 @@ CLASS lcl_xml IMPLEMENTATION.
|
||||||
li_renderer TYPE REF TO if_ixml_renderer,
|
li_renderer TYPE REF TO if_ixml_renderer,
|
||||||
li_streamfactory TYPE REF TO if_ixml_stream_factory.
|
li_streamfactory TYPE REF TO if_ixml_stream_factory.
|
||||||
|
|
||||||
|
* todo, the xml file says "encoding=utf-16" but its wrong
|
||||||
|
|
||||||
li_streamfactory = mi_ixml->create_stream_factory( ).
|
li_streamfactory = mi_ixml->create_stream_factory( ).
|
||||||
li_ostream = li_streamfactory->create_ostream_cstring( rv_string ).
|
li_ostream = li_streamfactory->create_ostream_cstring( rv_string ).
|
||||||
|
@ -1154,6 +1155,7 @@ CLASS lcl_serialize_common IMPLEMENTATION.
|
||||||
|
|
||||||
lv_obj_name = iv_name.
|
lv_obj_name = iv_name.
|
||||||
|
|
||||||
|
* todo, refactoring
|
||||||
CASE iv_type.
|
CASE iv_type.
|
||||||
WHEN 'CLAS'.
|
WHEN 'CLAS'.
|
||||||
CALL FUNCTION 'RS_INACTIVE_OBJECTS_IN_OBJECT'
|
CALL FUNCTION 'RS_INACTIVE_OBJECTS_IN_OBJECT'
|
||||||
|
@ -1163,7 +1165,7 @@ CLASS lcl_serialize_common IMPLEMENTATION.
|
||||||
TABLES
|
TABLES
|
||||||
inactive_objects = lt_objects.
|
inactive_objects = lt_objects.
|
||||||
APPEND LINES OF lt_objects TO lcl_serialize_common=>gt_programs.
|
APPEND LINES OF lt_objects TO lcl_serialize_common=>gt_programs.
|
||||||
WHEN 'DOMA' OR 'DTEL' OR 'TABL'.
|
WHEN 'DOMA' OR 'DTEL' OR 'TABL' OR 'INDX' OR 'TTYP' OR 'VIEW' OR 'SHLP' OR 'ENQU'.
|
||||||
* todo also insert_into_working_area?
|
* todo also insert_into_working_area?
|
||||||
APPEND INITIAL LINE TO lcl_serialize_common=>gt_ddic ASSIGNING <ls_object>.
|
APPEND INITIAL LINE TO lcl_serialize_common=>gt_ddic ASSIGNING <ls_object>.
|
||||||
<ls_object>-object = iv_type.
|
<ls_object>-object = iv_type.
|
||||||
|
@ -2031,6 +2033,7 @@ CLASS lcl_serialize_tabl IMPLEMENTATION.
|
||||||
CALL FUNCTION 'DDIF_TABL_GET'
|
CALL FUNCTION 'DDIF_TABL_GET'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
name = lv_name
|
name = lv_name
|
||||||
|
langu = sy-langu
|
||||||
IMPORTING
|
IMPORTING
|
||||||
dd02v_wa = ls_dd02v
|
dd02v_wa = ls_dd02v
|
||||||
dd09l_wa = ls_dd09l
|
dd09l_wa = ls_dd09l
|
||||||
|
@ -2048,6 +2051,9 @@ CLASS lcl_serialize_tabl IMPLEMENTATION.
|
||||||
IF sy-subrc <> 0.
|
IF sy-subrc <> 0.
|
||||||
_raise 'error from DDIF_TABL_GET'.
|
_raise 'error from DDIF_TABL_GET'.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
IF ls_dd02v IS INITIAL.
|
||||||
|
RETURN. " object does not exits
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
CLEAR: ls_dd02v-as4user,
|
CLEAR: ls_dd02v-as4user,
|
||||||
ls_dd02v-as4date,
|
ls_dd02v-as4date,
|
||||||
|
@ -2078,13 +2084,12 @@ CLASS lcl_serialize_tabl IMPLEMENTATION.
|
||||||
io_xml = lo_xml ).
|
io_xml = lo_xml ).
|
||||||
APPEND ls_file TO rt_files.
|
APPEND ls_file TO rt_files.
|
||||||
|
|
||||||
_raise 'todo'.
|
|
||||||
|
|
||||||
ENDMETHOD. "serialize
|
ENDMETHOD. "serialize
|
||||||
|
|
||||||
METHOD deserialize.
|
METHOD deserialize.
|
||||||
|
|
||||||
DATA: lv_name TYPE ddobjname,
|
DATA: lv_name TYPE ddobjname,
|
||||||
|
lv_tname TYPE trobj_name,
|
||||||
lo_xml TYPE REF TO lcl_xml,
|
lo_xml TYPE REF TO lcl_xml,
|
||||||
ls_dd02v TYPE dd02v,
|
ls_dd02v TYPE dd02v,
|
||||||
ls_dd09l TYPE dd09l,
|
ls_dd09l TYPE dd09l,
|
||||||
|
@ -2093,8 +2098,11 @@ CLASS lcl_serialize_tabl IMPLEMENTATION.
|
||||||
lt_dd08v TYPE ddtt_dd08v,
|
lt_dd08v TYPE ddtt_dd08v,
|
||||||
lt_dd12v TYPE dd12vtab,
|
lt_dd12v TYPE dd12vtab,
|
||||||
lt_dd17v TYPE dd17vtab,
|
lt_dd17v TYPE dd17vtab,
|
||||||
|
ls_dd17v LIKE LINE OF lt_dd17v,
|
||||||
|
lt_secondary LIKE lt_dd17v,
|
||||||
lt_dd35v TYPE ddtt_dd35v,
|
lt_dd35v TYPE ddtt_dd35v,
|
||||||
lt_dd36m TYPE dd36mttyp.
|
lt_dd36m TYPE dd36mttyp,
|
||||||
|
ls_dd12v LIKE LINE OF lt_dd12v.
|
||||||
|
|
||||||
|
|
||||||
lo_xml = read_xml( is_item = is_item
|
lo_xml = read_xml( is_item = is_item
|
||||||
|
@ -2137,12 +2145,44 @@ CLASS lcl_serialize_tabl IMPLEMENTATION.
|
||||||
_raise 'error from DDIF_TABL_PUT'.
|
_raise 'error from DDIF_TABL_PUT'.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
* todo dd012v and dd17v?
|
|
||||||
|
|
||||||
activation_add( iv_type = is_item-obj_type
|
activation_add( iv_type = is_item-obj_type
|
||||||
iv_name = is_item-obj_name ).
|
iv_name = is_item-obj_name ).
|
||||||
|
|
||||||
_raise 'todo'.
|
* handle indexes
|
||||||
|
LOOP AT lt_dd12v INTO ls_dd12v.
|
||||||
|
|
||||||
|
* todo, call corr_insert?
|
||||||
|
|
||||||
|
REFRESH lt_secondary.
|
||||||
|
LOOP AT lt_dd17v INTO ls_dd17v
|
||||||
|
WHERE sqltab = ls_dd12v-sqltab AND indexname = ls_dd12v-indexname.
|
||||||
|
APPEND ls_dd17v TO lt_secondary.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
CALL FUNCTION 'DDIF_INDX_PUT'
|
||||||
|
EXPORTING
|
||||||
|
name = ls_dd12v-sqltab
|
||||||
|
id = ls_dd12v-indexname
|
||||||
|
dd12v_wa = ls_dd12v
|
||||||
|
TABLES
|
||||||
|
dd17v_tab = lt_secondary
|
||||||
|
EXCEPTIONS
|
||||||
|
indx_not_found = 1
|
||||||
|
name_inconsistent = 2
|
||||||
|
indx_inconsistent = 3
|
||||||
|
put_failure = 4
|
||||||
|
put_refused = 5
|
||||||
|
OTHERS = 6.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'error from DDIF_INDX_PUT'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
lv_tname = ls_dd12v-sqltab.
|
||||||
|
lv_tname+10 = ls_dd12v-indexname.
|
||||||
|
activation_add( iv_type = 'INDX'
|
||||||
|
iv_name = lv_tname ).
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
ENDMETHOD. "deserialize
|
ENDMETHOD. "deserialize
|
||||||
|
|
||||||
|
@ -2218,6 +2258,504 @@ CLASS lcl_serialize_tran IMPLEMENTATION.
|
||||||
|
|
||||||
ENDCLASS. "lcl_serialize_TRAN IMPLEMENTATION
|
ENDCLASS. "lcl_serialize_TRAN IMPLEMENTATION
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* CLASS lcl_serialize_enqu DEFINITION
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
CLASS lcl_serialize_enqu DEFINITION INHERITING FROM lcl_serialize_common FINAL.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
CLASS-METHODS: serialize IMPORTING is_item TYPE st_item
|
||||||
|
RETURNING value(rt_files) TYPE tt_files
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
CLASS-METHODS: deserialize IMPORTING is_item TYPE st_item
|
||||||
|
it_files TYPE tt_files
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
ENDCLASS. "lcl_serialize_dtel DEFINITION
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* CLASS lcl_serialize_dtel IMPLEMENTATION
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
CLASS lcl_serialize_enqu IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD serialize.
|
||||||
|
|
||||||
|
DATA: lv_name TYPE ddobjname,
|
||||||
|
ls_file TYPE st_file,
|
||||||
|
lo_xml TYPE REF TO lcl_xml,
|
||||||
|
ls_dd25v TYPE dd25v,
|
||||||
|
lt_dd26e TYPE tmgn_dd26e,
|
||||||
|
lt_dd27p TYPE tmgn_dd27p.
|
||||||
|
|
||||||
|
|
||||||
|
lv_name = is_item-obj_name.
|
||||||
|
|
||||||
|
CALL FUNCTION 'DDIF_ENQU_GET'
|
||||||
|
EXPORTING
|
||||||
|
name = lv_name
|
||||||
|
state = 'A'
|
||||||
|
langu = sy-langu
|
||||||
|
IMPORTING
|
||||||
|
dd25v_wa = ls_dd25v
|
||||||
|
TABLES
|
||||||
|
dd26e_tab = lt_dd26e
|
||||||
|
dd27p_tab = lt_dd27p
|
||||||
|
EXCEPTIONS
|
||||||
|
illegal_input = 1
|
||||||
|
OTHERS = 2.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'error from DDIF_ENQU_GET'.
|
||||||
|
ENDIF.
|
||||||
|
IF ls_dd25v IS INITIAL.
|
||||||
|
RETURN. " does not exist in system
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
CLEAR: ls_dd25v-as4user,
|
||||||
|
ls_dd25v-as4date,
|
||||||
|
ls_dd25v-as4time.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_xml.
|
||||||
|
lo_xml->structure_add( ls_dd25v ).
|
||||||
|
lo_xml->table_add( lt_dd26e ).
|
||||||
|
lo_xml->table_add( lt_dd27p ).
|
||||||
|
|
||||||
|
ls_file = xml_to_file( is_item = is_item
|
||||||
|
io_xml = lo_xml ).
|
||||||
|
APPEND ls_file TO rt_files.
|
||||||
|
|
||||||
|
ENDMETHOD. "serialize
|
||||||
|
|
||||||
|
METHOD deserialize.
|
||||||
|
|
||||||
|
DATA: lo_xml TYPE REF TO lcl_xml,
|
||||||
|
lv_name TYPE ddobjname,
|
||||||
|
ls_dd25v TYPE dd25v,
|
||||||
|
lt_dd26e TYPE tmgn_dd26e,
|
||||||
|
lt_dd27p TYPE tmgn_dd27p.
|
||||||
|
|
||||||
|
|
||||||
|
lo_xml = read_xml( is_item = is_item
|
||||||
|
it_files = it_files ).
|
||||||
|
|
||||||
|
lo_xml->structure_read( CHANGING cg_structure = ls_dd25v ).
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd26e ).
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd27p ).
|
||||||
|
|
||||||
|
corr_insert( is_item ).
|
||||||
|
|
||||||
|
lv_name = is_item-obj_name.
|
||||||
|
|
||||||
|
CALL FUNCTION 'DDIF_ENQU_PUT'
|
||||||
|
EXPORTING
|
||||||
|
name = lv_name
|
||||||
|
dd25v_wa = ls_dd25v
|
||||||
|
TABLES
|
||||||
|
dd26e_tab = lt_dd26e
|
||||||
|
dd27p_tab = lt_dd27p
|
||||||
|
EXCEPTIONS
|
||||||
|
enqu_not_found = 1
|
||||||
|
name_inconsistent = 2
|
||||||
|
enqu_inconsistent = 3
|
||||||
|
put_failure = 4
|
||||||
|
put_refused = 5
|
||||||
|
OTHERS = 6.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'error from DDIF_ENQU_PUT'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
activation_add( iv_type = is_item-obj_type
|
||||||
|
iv_name = is_item-obj_name ).
|
||||||
|
|
||||||
|
ENDMETHOD. "deserialize
|
||||||
|
|
||||||
|
ENDCLASS. "lcl_serialize_enqu IMPLEMENTATION
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* CLASS lcl_serialize_shlp DEFINITION
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
CLASS lcl_serialize_shlp DEFINITION INHERITING FROM lcl_serialize_common FINAL.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
CLASS-METHODS: serialize IMPORTING is_item TYPE st_item
|
||||||
|
RETURNING value(rt_files) TYPE tt_files
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
CLASS-METHODS: deserialize IMPORTING is_item TYPE st_item
|
||||||
|
it_files TYPE tt_files
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
ENDCLASS. "lcl_serialize_dtel DEFINITION
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* CLASS lcl_serialize_dtel IMPLEMENTATION
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
CLASS lcl_serialize_shlp IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD serialize.
|
||||||
|
|
||||||
|
DATA: lv_name TYPE ddobjname,
|
||||||
|
ls_file TYPE st_file,
|
||||||
|
lo_xml TYPE REF TO lcl_xml,
|
||||||
|
ls_dd30v TYPE dd30v,
|
||||||
|
lt_dd31v TYPE ddtt_dd31v,
|
||||||
|
lt_dd32p TYPE ddtt_dd32p,
|
||||||
|
lt_dd33v TYPE ddtt_dd33v.
|
||||||
|
|
||||||
|
|
||||||
|
lv_name = is_item-obj_name.
|
||||||
|
|
||||||
|
CALL FUNCTION 'DDIF_SHLP_GET'
|
||||||
|
EXPORTING
|
||||||
|
name = lv_name
|
||||||
|
state = 'A'
|
||||||
|
langu = sy-langu
|
||||||
|
IMPORTING
|
||||||
|
dd30v_wa = ls_dd30v
|
||||||
|
TABLES
|
||||||
|
dd31v_tab = lt_dd31v
|
||||||
|
dd32p_tab = lt_dd32p
|
||||||
|
dd33v_tab = lt_dd33v
|
||||||
|
EXCEPTIONS
|
||||||
|
illegal_input = 1
|
||||||
|
OTHERS = 2.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'error from DDIF_SHLP_GET'.
|
||||||
|
ENDIF.
|
||||||
|
IF ls_dd30v IS INITIAL.
|
||||||
|
RETURN. " does not exist in system
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
CLEAR: ls_dd30v-as4user,
|
||||||
|
ls_dd30v-as4date,
|
||||||
|
ls_dd30v-as4time.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_xml.
|
||||||
|
lo_xml->structure_add( ls_dd30v ).
|
||||||
|
lo_xml->table_add( lt_dd31v ).
|
||||||
|
lo_xml->table_add( lt_dd32p ).
|
||||||
|
lo_xml->table_add( lt_dd33v ).
|
||||||
|
|
||||||
|
ls_file = xml_to_file( is_item = is_item
|
||||||
|
io_xml = lo_xml ).
|
||||||
|
APPEND ls_file TO rt_files.
|
||||||
|
|
||||||
|
ENDMETHOD. "serialize
|
||||||
|
|
||||||
|
METHOD deserialize.
|
||||||
|
|
||||||
|
DATA: lo_xml TYPE REF TO lcl_xml,
|
||||||
|
lv_name TYPE ddobjname,
|
||||||
|
ls_dd30v TYPE dd30v,
|
||||||
|
lt_dd31v TYPE ddtt_dd31v,
|
||||||
|
lt_dd32p TYPE ddtt_dd32p,
|
||||||
|
lt_dd33v TYPE ddtt_dd33v.
|
||||||
|
|
||||||
|
|
||||||
|
lo_xml = read_xml( is_item = is_item
|
||||||
|
it_files = it_files ).
|
||||||
|
|
||||||
|
lo_xml->structure_read( CHANGING cg_structure = ls_dd30v ).
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd31v ).
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd32p ).
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd33v ).
|
||||||
|
|
||||||
|
corr_insert( is_item ).
|
||||||
|
|
||||||
|
lv_name = is_item-obj_name.
|
||||||
|
|
||||||
|
CALL FUNCTION 'DDIF_SHLP_PUT'
|
||||||
|
EXPORTING
|
||||||
|
name = lv_name
|
||||||
|
dd30v_wa = ls_dd30v
|
||||||
|
TABLES
|
||||||
|
dd31v_tab = lt_dd31v
|
||||||
|
dd32p_tab = lt_dd32p
|
||||||
|
dd33v_tab = lt_dd33v
|
||||||
|
EXCEPTIONS
|
||||||
|
shlp_not_found = 1
|
||||||
|
name_inconsistent = 2
|
||||||
|
shlp_inconsistent = 3
|
||||||
|
put_failure = 4
|
||||||
|
put_refused = 5
|
||||||
|
OTHERS = 6.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'error from DDIF_SHLP_PUT'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
activation_add( iv_type = is_item-obj_type
|
||||||
|
iv_name = is_item-obj_name ).
|
||||||
|
|
||||||
|
ENDMETHOD. "deserialize
|
||||||
|
|
||||||
|
ENDCLASS. "lcl_serialize_shlp IMPLEMENTATION
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* CLASS lcl_serialize_dtel DEFINITION
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
CLASS lcl_serialize_view DEFINITION INHERITING FROM lcl_serialize_common FINAL.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
CLASS-METHODS: serialize IMPORTING is_item TYPE st_item
|
||||||
|
RETURNING value(rt_files) TYPE tt_files
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
CLASS-METHODS: deserialize IMPORTING is_item TYPE st_item
|
||||||
|
it_files TYPE tt_files
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
ENDCLASS. "lcl_serialize_dtel DEFINITION
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* CLASS lcl_serialize_dtel IMPLEMENTATION
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
CLASS lcl_serialize_view IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD serialize.
|
||||||
|
|
||||||
|
DATA: lo_xml TYPE REF TO lcl_xml,
|
||||||
|
ls_file TYPE st_file,
|
||||||
|
lv_name TYPE ddobjname,
|
||||||
|
ls_dd25v TYPE dd25v,
|
||||||
|
ls_dd09l TYPE dd09l,
|
||||||
|
lt_dd26v TYPE dd26v_t,
|
||||||
|
lt_dd27p TYPE dd27p_t,
|
||||||
|
lt_dd28j TYPE dd28j_t,
|
||||||
|
lt_dd28v TYPE ddtt_dd28v.
|
||||||
|
|
||||||
|
|
||||||
|
lv_name = is_item-obj_name.
|
||||||
|
|
||||||
|
CALL FUNCTION 'DDIF_VIEW_GET'
|
||||||
|
EXPORTING
|
||||||
|
name = lv_name
|
||||||
|
state = 'A'
|
||||||
|
langu = sy-langu
|
||||||
|
IMPORTING
|
||||||
|
dd25v_wa = ls_dd25v
|
||||||
|
dd09l_wa = ls_dd09l
|
||||||
|
TABLES
|
||||||
|
dd26v_tab = lt_dd26v
|
||||||
|
dd27p_tab = lt_dd27p
|
||||||
|
dd28j_tab = lt_dd28j
|
||||||
|
dd28v_tab = lt_dd28v
|
||||||
|
EXCEPTIONS
|
||||||
|
illegal_input = 1
|
||||||
|
OTHERS = 2.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'error from DDIF_VIEW_GET'.
|
||||||
|
ENDIF.
|
||||||
|
IF ls_dd25v IS INITIAL.
|
||||||
|
RETURN. " does not exist in system
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
CLEAR: ls_dd25v-as4user,
|
||||||
|
ls_dd25v-as4date,
|
||||||
|
ls_dd25v-as4time.
|
||||||
|
|
||||||
|
CLEAR: ls_dd09l-as4user,
|
||||||
|
ls_dd09l-as4date,
|
||||||
|
ls_dd09l-as4time.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_xml.
|
||||||
|
lo_xml->structure_add( ls_dd25v ).
|
||||||
|
lo_xml->structure_add( ls_dd09l ).
|
||||||
|
|
||||||
|
lo_xml->table_add( lt_dd26v ).
|
||||||
|
lo_xml->table_add( lt_dd27p ).
|
||||||
|
lo_xml->table_add( lt_dd28j ).
|
||||||
|
lo_xml->table_add( lt_dd28v ).
|
||||||
|
|
||||||
|
ls_file = xml_to_file( is_item = is_item
|
||||||
|
io_xml = lo_xml ).
|
||||||
|
APPEND ls_file TO rt_files.
|
||||||
|
|
||||||
|
ENDMETHOD. "serialize
|
||||||
|
|
||||||
|
METHOD deserialize.
|
||||||
|
|
||||||
|
DATA: lo_xml TYPE REF TO lcl_xml,
|
||||||
|
lv_name TYPE ddobjname,
|
||||||
|
ls_dd25v TYPE dd25v,
|
||||||
|
ls_dd09l TYPE dd09l,
|
||||||
|
lt_dd26v TYPE dd26v_t,
|
||||||
|
lt_dd27p TYPE dd27p_t,
|
||||||
|
lt_dd28j TYPE dd28j_t,
|
||||||
|
lt_dd28v TYPE ddtt_dd28v.
|
||||||
|
|
||||||
|
|
||||||
|
lo_xml = read_xml( is_item = is_item
|
||||||
|
it_files = it_files ).
|
||||||
|
|
||||||
|
lo_xml->structure_read( CHANGING cg_structure = ls_dd25v ).
|
||||||
|
lo_xml->structure_read( CHANGING cg_structure = ls_dd09l ).
|
||||||
|
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd26v ).
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd27p ).
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd28j ).
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd28v ).
|
||||||
|
|
||||||
|
corr_insert( is_item ).
|
||||||
|
|
||||||
|
lv_name = is_item-obj_name. " type conversion
|
||||||
|
|
||||||
|
CALL FUNCTION 'DDIF_VIEW_PUT'
|
||||||
|
EXPORTING
|
||||||
|
name = lv_name
|
||||||
|
dd25v_wa = ls_dd25v
|
||||||
|
dd09l_wa = ls_dd09l
|
||||||
|
TABLES
|
||||||
|
dd26v_tab = lt_dd26v
|
||||||
|
dd27p_tab = lt_dd27p
|
||||||
|
dd28j_tab = lt_dd28j
|
||||||
|
dd28v_tab = lt_dd28v
|
||||||
|
EXCEPTIONS
|
||||||
|
view_not_found = 1
|
||||||
|
name_inconsistent = 2
|
||||||
|
view_inconsistent = 3
|
||||||
|
put_failure = 4
|
||||||
|
put_refused = 5
|
||||||
|
OTHERS = 6.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'error from DDIF_VIEW_PUT'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
activation_add( iv_type = is_item-obj_type
|
||||||
|
iv_name = is_item-obj_name ).
|
||||||
|
|
||||||
|
ENDMETHOD. "deserialize
|
||||||
|
|
||||||
|
ENDCLASS. "lcl_serialize_view IMPLEMENTATION
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* CLASS lcl_serialize_ttyp DEFINITION
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
CLASS lcl_serialize_ttyp DEFINITION INHERITING FROM lcl_serialize_common FINAL.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
CLASS-METHODS: serialize IMPORTING is_item TYPE st_item
|
||||||
|
RETURNING value(rt_files) TYPE tt_files
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
CLASS-METHODS: deserialize IMPORTING is_item TYPE st_item
|
||||||
|
it_files TYPE tt_files
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
ENDCLASS. "lcl_serialize_dtel DEFINITION
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* CLASS lcl_serialize_dtel IMPLEMENTATION
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
CLASS lcl_serialize_ttyp IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD serialize.
|
||||||
|
|
||||||
|
DATA: lo_xml TYPE REF TO lcl_xml,
|
||||||
|
ls_file TYPE st_file,
|
||||||
|
lv_name TYPE ddobjname,
|
||||||
|
lt_dd42v TYPE dd42v_tab,
|
||||||
|
lt_dd43v TYPE dd43v_tab,
|
||||||
|
ls_dd40v TYPE dd40v.
|
||||||
|
|
||||||
|
|
||||||
|
lv_name = is_item-obj_name.
|
||||||
|
|
||||||
|
CALL FUNCTION 'DDIF_TTYP_GET'
|
||||||
|
EXPORTING
|
||||||
|
name = lv_name
|
||||||
|
state = 'A'
|
||||||
|
langu = sy-langu
|
||||||
|
IMPORTING
|
||||||
|
dd40v_wa = ls_dd40v
|
||||||
|
TABLES
|
||||||
|
dd42v_tab = lt_dd42v
|
||||||
|
dd43v_tab = lt_dd43v
|
||||||
|
EXCEPTIONS
|
||||||
|
illegal_input = 1
|
||||||
|
OTHERS = 2.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'error from DDIF_TTYP_GET'.
|
||||||
|
ENDIF.
|
||||||
|
IF ls_dd40v IS INITIAL.
|
||||||
|
RETURN. " does not exist in system
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
CLEAR: ls_dd40v-as4user,
|
||||||
|
ls_dd40v-as4date,
|
||||||
|
ls_dd40v-as4time.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_xml.
|
||||||
|
lo_xml->structure_add( ls_dd40v ).
|
||||||
|
lo_xml->table_add( lt_dd42v ).
|
||||||
|
lo_xml->table_add( lt_dd43v ).
|
||||||
|
|
||||||
|
ls_file = xml_to_file( is_item = is_item
|
||||||
|
io_xml = lo_xml ).
|
||||||
|
APPEND ls_file TO rt_files.
|
||||||
|
|
||||||
|
ENDMETHOD. "serialize
|
||||||
|
|
||||||
|
METHOD deserialize.
|
||||||
|
|
||||||
|
DATA: lo_xml TYPE REF TO lcl_xml,
|
||||||
|
lv_name TYPE ddobjname,
|
||||||
|
lt_dd42v TYPE dd42v_tab,
|
||||||
|
lt_dd43v TYPE dd43v_tab,
|
||||||
|
ls_dd40v TYPE dd40v.
|
||||||
|
|
||||||
|
|
||||||
|
lo_xml = read_xml( is_item = is_item
|
||||||
|
it_files = it_files ).
|
||||||
|
|
||||||
|
lo_xml->structure_read( CHANGING cg_structure = ls_dd40v ).
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd42v ).
|
||||||
|
lo_xml->table_read( CHANGING ct_table = lt_dd43v ).
|
||||||
|
|
||||||
|
corr_insert( is_item ).
|
||||||
|
|
||||||
|
lv_name = is_item-obj_name. " type conversion
|
||||||
|
|
||||||
|
CALL FUNCTION 'DDIF_TTYP_PUT'
|
||||||
|
EXPORTING
|
||||||
|
name = lv_name
|
||||||
|
dd40v_wa = ls_dd40v
|
||||||
|
TABLES
|
||||||
|
dd42v_tab = lt_dd42v
|
||||||
|
dd43v_tab = lt_dd43v
|
||||||
|
EXCEPTIONS
|
||||||
|
ttyp_not_found = 1
|
||||||
|
name_inconsistent = 2
|
||||||
|
ttyp_inconsistent = 3
|
||||||
|
put_failure = 4
|
||||||
|
put_refused = 5
|
||||||
|
OTHERS = 6.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'error from DDIF_TTYP_PUT'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
activation_add( iv_type = is_item-obj_type
|
||||||
|
iv_name = is_item-obj_name ).
|
||||||
|
|
||||||
|
ENDMETHOD. "deserialize
|
||||||
|
|
||||||
|
ENDCLASS. "lcl_serialize_ttyp IMPLEMENTATION
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
* CLASS lcl_serialize_prog DEFINITION
|
* CLASS lcl_serialize_prog DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
@ -2854,7 +3392,7 @@ CLASS lcl_serialize IMPLEMENTATION.
|
||||||
|
|
||||||
DATA: lt_files TYPE tt_files.
|
DATA: lt_files TYPE tt_files.
|
||||||
|
|
||||||
|
* todo, refactoring
|
||||||
CASE is_item-obj_type.
|
CASE is_item-obj_type.
|
||||||
WHEN 'PROG'.
|
WHEN 'PROG'.
|
||||||
rt_files = lcl_serialize_prog=>serialize( is_item ).
|
rt_files = lcl_serialize_prog=>serialize( is_item ).
|
||||||
|
@ -2872,6 +3410,14 @@ CLASS lcl_serialize IMPLEMENTATION.
|
||||||
rt_files = lcl_serialize_tran=>serialize( is_item ).
|
rt_files = lcl_serialize_tran=>serialize( is_item ).
|
||||||
WHEN 'MSAG'.
|
WHEN 'MSAG'.
|
||||||
rt_files = lcl_serialize_msag=>serialize( is_item ).
|
rt_files = lcl_serialize_msag=>serialize( is_item ).
|
||||||
|
WHEN 'TTYP'.
|
||||||
|
rt_files = lcl_serialize_ttyp=>serialize( is_item ).
|
||||||
|
WHEN 'VIEW'.
|
||||||
|
rt_files = lcl_serialize_view=>serialize( is_item ).
|
||||||
|
WHEN 'SHLP'.
|
||||||
|
rt_files = lcl_serialize_shlp=>serialize( is_item ).
|
||||||
|
WHEN 'ENQU'.
|
||||||
|
rt_files = lcl_serialize_enqu=>serialize( is_item ).
|
||||||
WHEN OTHERS.
|
WHEN OTHERS.
|
||||||
_raise 'Serialize, unknown type'.
|
_raise 'Serialize, unknown type'.
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
@ -2964,6 +3510,7 @@ CLASS lcl_serialize IMPLEMENTATION.
|
||||||
ls_item-obj_type = <ls_result>-obj_type.
|
ls_item-obj_type = <ls_result>-obj_type.
|
||||||
ls_item-obj_name = <ls_result>-obj_name.
|
ls_item-obj_name = <ls_result>-obj_name.
|
||||||
|
|
||||||
|
* todo, refactoring
|
||||||
CASE ls_item-obj_type.
|
CASE ls_item-obj_type.
|
||||||
WHEN 'PROG'.
|
WHEN 'PROG'.
|
||||||
lcl_serialize_prog=>deserialize( is_item = ls_item
|
lcl_serialize_prog=>deserialize( is_item = ls_item
|
||||||
|
@ -2989,6 +3536,18 @@ CLASS lcl_serialize IMPLEMENTATION.
|
||||||
WHEN 'MSAG'.
|
WHEN 'MSAG'.
|
||||||
lcl_serialize_msag=>deserialize( is_item = ls_item
|
lcl_serialize_msag=>deserialize( is_item = ls_item
|
||||||
it_files = it_files ).
|
it_files = it_files ).
|
||||||
|
WHEN 'TTYP'.
|
||||||
|
lcl_serialize_ttyp=>deserialize( is_item = ls_item
|
||||||
|
it_files = it_files ).
|
||||||
|
WHEN 'VIEW'.
|
||||||
|
lcl_serialize_view=>deserialize( is_item = ls_item
|
||||||
|
it_files = it_files ).
|
||||||
|
WHEN 'SHLP'.
|
||||||
|
lcl_serialize_shlp=>deserialize( is_item = ls_item
|
||||||
|
it_files = it_files ).
|
||||||
|
WHEN 'ENQU'.
|
||||||
|
lcl_serialize_enqu=>deserialize( is_item = ls_item
|
||||||
|
it_files = it_files ).
|
||||||
WHEN OTHERS.
|
WHEN OTHERS.
|
||||||
_raise 'deserialize, unknown type'.
|
_raise 'deserialize, unknown type'.
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
@ -5128,14 +5687,16 @@ CLASS lcl_gui IMPLEMENTATION.
|
||||||
_add 'DTEL Data Element'.
|
_add 'DTEL Data Element'.
|
||||||
_add 'DOMA Domain'.
|
_add 'DOMA Domain'.
|
||||||
_add 'CLAS Class'.
|
_add 'CLAS Class'.
|
||||||
|
_add 'TABL Table/Structure'.
|
||||||
|
_add 'TTYP Table Type'.
|
||||||
|
_add 'VIEW View'.
|
||||||
|
_add 'SHLP Search Help'.
|
||||||
|
_add 'ENQU Lock Object'.
|
||||||
_add 'FUGR Function Group (todo)'.
|
_add 'FUGR Function Group (todo)'.
|
||||||
_add 'MSAG Message Class (todo)'.
|
_add 'MSAG Message Class (todo)'.
|
||||||
_add 'TABL Table/Structure (todo)'.
|
|
||||||
_add 'TRAN Transaction (todo)'.
|
_add 'TRAN Transaction (todo)'.
|
||||||
_add 'SSFO Smart Form (todo)'.
|
_add 'SSFO Smart Form (todo)'.
|
||||||
_add 'FORM SAP Script (todo)'.
|
_add 'FORM SAP Script (todo)'..
|
||||||
_add 'SHLP Search Help (todo)'.
|
|
||||||
_add 'VIEW View (todo)'.
|
|
||||||
*table contents
|
*table contents
|
||||||
*lock object
|
*lock object
|
||||||
*web dynpro
|
*web dynpro
|
||||||
|
|
Loading…
Reference in New Issue
Block a user