mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
147 lines
4.8 KiB
ABAP
147 lines
4.8 KiB
ABAP
CLASS lcl_rso_tlogo_xml_bridge DEFINITION
|
|
CREATE PUBLIC .
|
|
|
|
**************************************************************************
|
|
* This is slightly modified-copy of CL_RSO_TLOGO_XML_BRIDGE which provides
|
|
* features to serialize a logical transport object based on its definition
|
|
* in SOBJ. Sadly, the original class hides some information needed in
|
|
* private tables. The modification done is to move all this content into
|
|
* the protected one.
|
|
|
|
*"* public components of class CL_RSO_TLOGO_XML_BRIDGE
|
|
*"* do not include other source files here!!!
|
|
PUBLIC SECTION.
|
|
TYPE-POOLS rs .
|
|
INTERFACE if_rso_object_xmic LOAD .
|
|
INTERFACE if_rso_repository_xml_const LOAD .
|
|
|
|
CONSTANTS p_c_xml_tag_transport TYPE char40
|
|
VALUE 'transport'. "#EC NOTEXT .
|
|
|
|
CLASS-METHODS class_constructor .
|
|
METHODS activate .
|
|
METHODS compose_xml
|
|
IMPORTING
|
|
!i_objnm TYPE sobj_name
|
|
!i_objvers TYPE rsobjvers DEFAULT rs_c_objvers-active
|
|
EXPORTING
|
|
!e_string_xml TYPE string .
|
|
METHODS constructor
|
|
IMPORTING
|
|
!i_tlogo TYPE rstlogo
|
|
EXCEPTIONS
|
|
tlogo_doesnt_exist .
|
|
METHODS parse_xml
|
|
IMPORTING
|
|
!i_objnm TYPE sobj_name
|
|
!i_string_xml TYPE string
|
|
!i_detlevel TYPE bal_s_msg-detlevel DEFAULT '1'
|
|
EXPORTING
|
|
!e_subrc TYPE sysubrc .
|
|
METHODS save
|
|
IMPORTING
|
|
!i_detlevel TYPE bal_s_msg-detlevel DEFAULT '1'
|
|
EXPORTING
|
|
!e_subrc TYPE sysubrc .
|
|
METHODS get_timestmp_of_data
|
|
RETURNING
|
|
VALUE(r_timestmp) TYPE rstimestmp .
|
|
PROTECTED SECTION.
|
|
*"* protected components of class CL_RSO_TLOGO_XML_BRIDGE
|
|
*"* do not include other source files here!!!
|
|
|
|
METHODS before_export .
|
|
" private section.
|
|
*"* private components of class CL_RSO_TLOGO_XML_BRIDGE
|
|
*"* do not include other source files here!!!
|
|
|
|
TYPES:
|
|
pt_t_objsl TYPE STANDARD TABLE OF objsl .
|
|
TYPES:
|
|
pt_ts_objsl TYPE SORTED TABLE OF objsl
|
|
WITH UNIQUE KEY objectname objecttype trwcount .
|
|
TYPES:
|
|
BEGIN OF pt_s_tlogo_tables,
|
|
tabname TYPE ddobjname,
|
|
where_clause TYPE string,
|
|
data TYPE REF TO data,
|
|
END OF pt_s_tlogo_tables. .
|
|
TYPES:
|
|
pt_t_tlogo_tables TYPE STANDARD TABLE OF pt_s_tlogo_tables .
|
|
TYPES:
|
|
pt_ts_tlogo_tables TYPE SORTED TABLE OF pt_s_tlogo_tables
|
|
WITH UNIQUE KEY tabname .
|
|
TYPES:
|
|
pt_t_objm TYPE STANDARD TABLE OF objm .
|
|
TYPES:
|
|
pt_ts_objm TYPE SORTED TABLE OF objm
|
|
WITH UNIQUE KEY objectname objecttype method .
|
|
|
|
CONSTANTS p_c_xml_tag_field TYPE char40 VALUE 'field' .
|
|
CONSTANTS p_c_xml_tag_key TYPE char40 VALUE 'key' .
|
|
CONSTANTS p_c_xml_tag_row TYPE char40 VALUE 'row' .
|
|
CONSTANTS p_c_xml_tag_table TYPE char40 VALUE 'table' .
|
|
CLASS-DATA p_r_ixml TYPE REF TO if_ixml .
|
|
CLASS-DATA p_r_repository TYPE REF TO cl_rso_repository .
|
|
CLASS-DATA p_r_stream_factory TYPE REF TO if_ixml_stream_factory .
|
|
DATA p_objnm TYPE sobj_name .
|
|
DATA p_s_objh TYPE objh .
|
|
DATA p_s_tlogoprop TYPE rstlogoprop .
|
|
DATA p_tlogo TYPE rstlogo .
|
|
DATA p_ts_objm TYPE pt_ts_objm .
|
|
DATA p_ts_objsl TYPE pt_ts_objsl .
|
|
DATA p_ts_tlogo_tables TYPE pt_ts_tlogo_tables .
|
|
DATA p_timestmp TYPE rstimestmp .
|
|
|
|
METHODS read_tlogo_prop .
|
|
ENDCLASS.
|
|
|
|
CLASS lcl_tlogo_xml_bridge DEFINITION INHERITING FROM lcl_rso_tlogo_xml_bridge
|
|
CREATE PUBLIC.
|
|
PUBLIC SECTION.
|
|
TYPES: BEGIN OF ty_obj_metadata,
|
|
db_table TYPE tabname,
|
|
count TYPE i,
|
|
fields_definition TYPE dfies_table,
|
|
END OF ty_obj_metadata,
|
|
tt_obj_metadata TYPE SORTED TABLE OF ty_obj_metadata WITH UNIQUE KEY db_table.
|
|
|
|
METHODS
|
|
exists
|
|
IMPORTING
|
|
iv_objname TYPE objname
|
|
RETURNING VALUE(rv_object_exists) TYPE abap_bool.
|
|
|
|
METHODS delete_object
|
|
IMPORTING
|
|
iv_objname TYPE objname
|
|
RETURNING VALUE(rv_deleted) TYPE abap_bool.
|
|
|
|
METHODS get_table_metadata
|
|
IMPORTING
|
|
iv_objname TYPE objname
|
|
RETURNING
|
|
VALUE(rt_metadata) TYPE lcl_tlogo_xml_bridge=>tt_obj_metadata.
|
|
|
|
PROTECTED SECTION.
|
|
METHODS
|
|
get_where_clause
|
|
IMPORTING
|
|
iv_tobj_name TYPE sobj_name
|
|
iv_objname TYPE objname
|
|
RETURNING VALUE(rv_where_on_keys) TYPE string.
|
|
|
|
METHODS validate_count_prim_table
|
|
IMPORTING
|
|
iv_objname TYPE objname
|
|
iv_dbcount LIKE sy-dbcnt.
|
|
PRIVATE SECTION.
|
|
|
|
METHODS timestamp_to_xml
|
|
IMPORTING iv_timestamp TYPE timestamp
|
|
RETURNING VALUE(rv_string) TYPE string.
|
|
|
|
METHODS get_prim_table_objsl
|
|
RETURNING
|
|
VALUE(rs_objsl) LIKE line of p_ts_objsl.
|
|
ENDCLASS. |