mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
Merge pull request #751 from bigld/master
Add Object FORM SAPScript form #39
This commit is contained in:
commit
e0472a8f49
419
src/zabapgit_object_form.prog.abap
Normal file
419
src/zabapgit_object_form.prog.abap
Normal file
|
@ -0,0 +1,419 @@
|
||||||
|
*&---------------------------------------------------------------------*
|
||||||
|
*& Include ZABAPGIT_OBJECT_FORM
|
||||||
|
*&---------------------------------------------------------------------*
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* CLASS lcl_object_form DEFINITION
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
CLASS lcl_object_form DEFINITION INHERITING FROM lcl_objects_super FINAL.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
INTERFACES lif_object.
|
||||||
|
ALIASES mo_files FOR lif_object~mo_files.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
CONSTANTS: c_objectname_form TYPE thead-tdobject VALUE 'FORM' ##NO_TEXT.
|
||||||
|
CONSTANTS: c_objectname_tdlines TYPE thead-tdobject VALUE 'TDLINES' ##NO_TEXT.
|
||||||
|
CONSTANTS: c_extension_xml TYPE string VALUE 'xml' ##NO_TEXT.
|
||||||
|
|
||||||
|
TYPES: BEGIN OF tys_form_data,
|
||||||
|
form_header TYPE itcta,
|
||||||
|
text_header TYPE thead,
|
||||||
|
orig_language TYPE sy-langu,
|
||||||
|
pages TYPE STANDARD TABLE OF itctg WITH DEFAULT KEY,
|
||||||
|
page_windows TYPE STANDARD TABLE OF itcth WITH DEFAULT KEY,
|
||||||
|
paragraphs TYPE STANDARD TABLE OF itcdp WITH DEFAULT KEY,
|
||||||
|
strings TYPE STANDARD TABLE OF itcds WITH DEFAULT KEY,
|
||||||
|
tabs TYPE STANDARD TABLE OF itcdq WITH DEFAULT KEY,
|
||||||
|
windows TYPE STANDARD TABLE OF itctw WITH DEFAULT KEY,
|
||||||
|
END OF tys_form_data,
|
||||||
|
tyt_form_data TYPE STANDARD TABLE OF tys_form_data WITH DEFAULT KEY,
|
||||||
|
tyt_form_header TYPE STANDARD TABLE OF itcta WITH DEFAULT KEY,
|
||||||
|
tys_form_header TYPE LINE OF tyt_form_header,
|
||||||
|
tyt_text_header TYPE STANDARD TABLE OF thead WITH DEFAULT KEY,
|
||||||
|
tys_text_header TYPE LINE OF tyt_text_header,
|
||||||
|
tyt_lines TYPE tline_tab.
|
||||||
|
|
||||||
|
METHODS _get_last_changes
|
||||||
|
IMPORTING
|
||||||
|
iv_form_name TYPE ty_item-obj_name
|
||||||
|
RETURNING
|
||||||
|
VALUE(es_last_changed) TYPE tys_form_header.
|
||||||
|
|
||||||
|
METHODS _build_extra_from_header
|
||||||
|
IMPORTING
|
||||||
|
ls_header TYPE tys_form_header
|
||||||
|
RETURNING
|
||||||
|
VALUE(r_result) TYPE string.
|
||||||
|
|
||||||
|
METHODS _save_form
|
||||||
|
IMPORTING
|
||||||
|
it_lines TYPE lcl_object_form=>tyt_lines
|
||||||
|
CHANGING
|
||||||
|
cs_form_data TYPE lcl_object_form=>tys_form_data.
|
||||||
|
|
||||||
|
METHODS _extract_tdlines
|
||||||
|
IMPORTING
|
||||||
|
is_form_data TYPE lcl_object_form=>tys_form_data
|
||||||
|
RETURNING
|
||||||
|
VALUE(et_lines) TYPE lcl_object_form=>tyt_lines
|
||||||
|
RAISING
|
||||||
|
lcx_exception.
|
||||||
|
|
||||||
|
METHODS _clear_changed_fields
|
||||||
|
CHANGING
|
||||||
|
cs_form_data TYPE lcl_object_form=>tys_form_data.
|
||||||
|
|
||||||
|
METHODS _compress_lines
|
||||||
|
IMPORTING
|
||||||
|
is_form_data TYPE lcl_object_form=>tys_form_data
|
||||||
|
it_lines TYPE lcl_object_form=>tyt_lines
|
||||||
|
RAISING
|
||||||
|
lcx_exception.
|
||||||
|
|
||||||
|
METHODS _find_form
|
||||||
|
IMPORTING
|
||||||
|
iv_object_name TYPE ty_item-obj_name
|
||||||
|
RETURNING
|
||||||
|
VALUE(et_text_header) TYPE lcl_object_form=>tyt_text_header.
|
||||||
|
|
||||||
|
METHODS _read_form
|
||||||
|
IMPORTING
|
||||||
|
is_text_header TYPE lcl_object_form=>tys_text_header
|
||||||
|
EXPORTING
|
||||||
|
ev_form_found TYPE flag
|
||||||
|
es_form_data TYPE lcl_object_form=>tys_form_data
|
||||||
|
et_lines TYPE lcl_object_form=>tyt_lines.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* CLASS lcl_object_form IMPLEMENTATION
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
CLASS lcl_object_form IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
|
||||||
|
DATA: ls_last_changed TYPE tys_form_header.
|
||||||
|
DATA: lv_last_changed_ts TYPE timestamp.
|
||||||
|
|
||||||
|
ls_last_changed = _get_last_changes( ms_item-obj_name ).
|
||||||
|
|
||||||
|
CONVERT DATE ls_last_changed-tdldate TIME ls_last_changed-tdltime
|
||||||
|
INTO TIME STAMP lv_last_changed_ts TIME ZONE sy-zonlo.
|
||||||
|
|
||||||
|
rv_changed = boolc( sy-subrc <> 0 OR lv_last_changed_ts > iv_timestamp ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
|
DATA: ls_last_changed TYPE tys_form_header.
|
||||||
|
|
||||||
|
ls_last_changed = _get_last_changes( ms_item-obj_name ).
|
||||||
|
|
||||||
|
IF ls_last_changed-tdluser IS NOT INITIAL.
|
||||||
|
rv_user = ls_last_changed-tdluser.
|
||||||
|
ELSE.
|
||||||
|
rv_user = c_user_unknown.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_object~get_metadata.
|
||||||
|
|
||||||
|
rs_metadata = get_metadata( ).
|
||||||
|
rs_metadata-delete_tadir = abap_true.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_object~exists.
|
||||||
|
|
||||||
|
DATA: lv_form_name TYPE thead-tdform.
|
||||||
|
|
||||||
|
lv_form_name = ms_item-obj_name.
|
||||||
|
|
||||||
|
CALL FUNCTION 'READ_FORM'
|
||||||
|
EXPORTING
|
||||||
|
form = lv_form_name
|
||||||
|
read_only_header = abap_true
|
||||||
|
IMPORTING
|
||||||
|
found = rv_bool.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_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 = 'SAPMSSCF' ##NO_TEXT.
|
||||||
|
<ls_bdcdata>-dynpro = '1102' ##NO_TEXT.
|
||||||
|
<ls_bdcdata>-dynbegin = abap_true.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lt_bdcdata ASSIGNING <ls_bdcdata>.
|
||||||
|
<ls_bdcdata>-fnam = 'BDC_OKCODE' ##NO_TEXT.
|
||||||
|
<ls_bdcdata>-fval = '=SHOW' ##NO_TEXT.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lt_bdcdata ASSIGNING <ls_bdcdata>.
|
||||||
|
<ls_bdcdata>-fnam = 'RSSCF-TDFORM' ##NO_TEXT.
|
||||||
|
<ls_bdcdata>-fval = ms_item-obj_name.
|
||||||
|
|
||||||
|
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
|
||||||
|
STARTING NEW TASK 'GIT'
|
||||||
|
EXPORTING
|
||||||
|
tcode = 'SE71'
|
||||||
|
mode_val = 'E'
|
||||||
|
TABLES
|
||||||
|
using_tab = lt_bdcdata
|
||||||
|
EXCEPTIONS
|
||||||
|
OTHERS = 1
|
||||||
|
##fm_subrc_ok. "#EC CI_SUBRC
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_object~delete.
|
||||||
|
|
||||||
|
DATA: lv_name TYPE itcta-tdform.
|
||||||
|
|
||||||
|
lv_name = ms_item-obj_name.
|
||||||
|
|
||||||
|
CALL FUNCTION 'DELETE_FORM'
|
||||||
|
EXPORTING
|
||||||
|
form = lv_name
|
||||||
|
language = '*'.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_object~serialize.
|
||||||
|
|
||||||
|
DATA: lt_form_data TYPE tyt_form_data.
|
||||||
|
DATA: ls_form_data TYPE tys_form_data.
|
||||||
|
DATA: lt_text_header TYPE tyt_text_header.
|
||||||
|
DATA: lt_lines TYPE tyt_lines.
|
||||||
|
DATA: lo_xml TYPE REF TO lcl_xml_output.
|
||||||
|
DATA: lv_form_found TYPE flag.
|
||||||
|
FIELD-SYMBOLS: <ls_text_header> LIKE LINE OF lt_text_header.
|
||||||
|
|
||||||
|
lt_text_header = _find_form( ms_item-obj_name ).
|
||||||
|
|
||||||
|
LOOP AT lt_text_header ASSIGNING <ls_text_header>.
|
||||||
|
CLEAR lt_lines.
|
||||||
|
CLEAR ls_form_data.
|
||||||
|
FREE lo_xml.
|
||||||
|
|
||||||
|
_read_form( EXPORTING is_text_header = <ls_text_header>
|
||||||
|
IMPORTING ev_form_found = lv_form_found
|
||||||
|
es_form_data = ls_form_data
|
||||||
|
et_lines = lt_lines ).
|
||||||
|
|
||||||
|
IF lv_form_found = abap_true.
|
||||||
|
|
||||||
|
_clear_changed_fields( CHANGING cs_form_data = ls_form_data ).
|
||||||
|
|
||||||
|
_compress_lines( is_form_data = ls_form_data
|
||||||
|
it_lines = lt_lines ).
|
||||||
|
|
||||||
|
INSERT ls_form_data INTO TABLE lt_form_data.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
IF lt_form_data IS NOT INITIAL.
|
||||||
|
|
||||||
|
io_xml->add( iv_name = c_objectname_form
|
||||||
|
ig_data = lt_form_data ).
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_object~deserialize.
|
||||||
|
|
||||||
|
DATA: lt_form_data TYPE tyt_form_data.
|
||||||
|
DATA: lt_lines TYPE tyt_lines.
|
||||||
|
FIELD-SYMBOLS: <ls_form_data> TYPE LINE OF tyt_form_data.
|
||||||
|
|
||||||
|
io_xml->read( EXPORTING iv_name = c_objectname_form
|
||||||
|
CHANGING cg_data = lt_form_data ).
|
||||||
|
|
||||||
|
LOOP AT lt_form_data ASSIGNING <ls_form_data>.
|
||||||
|
|
||||||
|
lt_lines = _extract_tdlines( <ls_form_data> ).
|
||||||
|
|
||||||
|
|
||||||
|
_save_form( EXPORTING it_lines = lt_lines
|
||||||
|
CHANGING cs_form_data = <ls_form_data> ).
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
CALL FUNCTION 'SAPSCRIPT_DELETE_LOAD'
|
||||||
|
EXPORTING
|
||||||
|
delete = abap_true
|
||||||
|
form = '*'
|
||||||
|
write = space.
|
||||||
|
|
||||||
|
tadir_insert( iv_package ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD lif_object~compare_to_remote_version.
|
||||||
|
CREATE OBJECT ro_comparison_result TYPE lcl_null_comparison_result.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD _build_extra_from_header.
|
||||||
|
r_result = c_objectname_tdlines && '_' && ls_header-tdspras.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD _get_last_changes.
|
||||||
|
|
||||||
|
DATA: lv_form_name TYPE thead-tdform.
|
||||||
|
|
||||||
|
CLEAR es_last_changed.
|
||||||
|
|
||||||
|
lv_form_name = iv_form_name.
|
||||||
|
|
||||||
|
CALL FUNCTION 'READ_FORM'
|
||||||
|
EXPORTING
|
||||||
|
form = lv_form_name
|
||||||
|
read_only_header = abap_true
|
||||||
|
IMPORTING
|
||||||
|
form_header = es_last_changed.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD _save_form.
|
||||||
|
|
||||||
|
CALL FUNCTION 'SAVE_FORM'
|
||||||
|
EXPORTING
|
||||||
|
form_header = cs_form_data-form_header
|
||||||
|
TABLES
|
||||||
|
form_lines = it_lines
|
||||||
|
pages = cs_form_data-pages
|
||||||
|
page_windows = cs_form_data-page_windows
|
||||||
|
paragraphs = cs_form_data-paragraphs
|
||||||
|
strings = cs_form_data-strings
|
||||||
|
tabs = cs_form_data-tabs
|
||||||
|
windows = cs_form_data-windows.
|
||||||
|
|
||||||
|
CALL FUNCTION 'SAPSCRIPT_CHANGE_OLANGUAGE'
|
||||||
|
EXPORTING
|
||||||
|
forced = abap_true
|
||||||
|
name = cs_form_data-text_header-tdname
|
||||||
|
object = cs_form_data-text_header-tdobject
|
||||||
|
olanguage = cs_form_data-orig_language
|
||||||
|
EXCEPTIONS
|
||||||
|
OTHERS = 1
|
||||||
|
##fm_subrc_ok. "#EC CI_SUBRC
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD _extract_tdlines.
|
||||||
|
|
||||||
|
DATA lv_string TYPE string.
|
||||||
|
DATA lo_xml TYPE REF TO lcl_xml_input.
|
||||||
|
|
||||||
|
lv_string = mo_files->read_string( iv_extra =
|
||||||
|
_build_extra_from_header( is_form_data-form_header )
|
||||||
|
iv_ext = c_extension_xml ).
|
||||||
|
|
||||||
|
CREATE OBJECT lo_xml EXPORTING iv_xml = lv_string.
|
||||||
|
lo_xml->read( EXPORTING iv_name = c_objectname_tdlines
|
||||||
|
CHANGING cg_data = et_lines ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD _clear_changed_fields.
|
||||||
|
|
||||||
|
CLEAR: cs_form_data-form_header-tdfuser,
|
||||||
|
cs_form_data-form_header-tdfdate,
|
||||||
|
cs_form_data-form_header-tdftime,
|
||||||
|
cs_form_data-form_header-tdfreles,
|
||||||
|
cs_form_data-form_header-tdluser,
|
||||||
|
cs_form_data-form_header-tdldate,
|
||||||
|
cs_form_data-form_header-tdltime,
|
||||||
|
cs_form_data-form_header-tdlreles.
|
||||||
|
CLEAR: cs_form_data-text_header-tdfuser,
|
||||||
|
cs_form_data-text_header-tdfdate,
|
||||||
|
cs_form_data-text_header-tdftime,
|
||||||
|
cs_form_data-text_header-tdfreles,
|
||||||
|
cs_form_data-text_header-tdluser,
|
||||||
|
cs_form_data-text_header-tdldate,
|
||||||
|
cs_form_data-text_header-tdltime,
|
||||||
|
cs_form_data-text_header-tdlreles.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD _compress_lines.
|
||||||
|
|
||||||
|
DATA lv_string TYPE string.
|
||||||
|
DATA lo_xml TYPE REF TO lcl_xml_output.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_xml.
|
||||||
|
lo_xml->add( iv_name = c_objectname_tdlines
|
||||||
|
ig_data = it_lines ).
|
||||||
|
lv_string = lo_xml->render( ).
|
||||||
|
IF lv_string IS NOT INITIAL.
|
||||||
|
mo_files->add_string( iv_extra =
|
||||||
|
_build_extra_from_header( is_form_data-form_header )
|
||||||
|
iv_ext = c_extension_xml
|
||||||
|
iv_string = lv_string ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD _find_form.
|
||||||
|
|
||||||
|
DATA: lv_text_name TYPE thead-tdname.
|
||||||
|
|
||||||
|
lv_text_name = iv_object_name.
|
||||||
|
|
||||||
|
CALL FUNCTION 'SELECT_TEXT'
|
||||||
|
EXPORTING
|
||||||
|
database_only = abap_true
|
||||||
|
id = 'TXT'
|
||||||
|
language = '*'
|
||||||
|
name = lv_text_name
|
||||||
|
object = c_objectname_form
|
||||||
|
TABLES
|
||||||
|
selections = et_text_header
|
||||||
|
EXCEPTIONS
|
||||||
|
OTHERS = 1
|
||||||
|
##fm_subrc_ok ##NO_TEXT. "#EC CI_SUBRC
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD _read_form.
|
||||||
|
|
||||||
|
CLEAR es_form_data.
|
||||||
|
|
||||||
|
CALL FUNCTION 'READ_FORM'
|
||||||
|
EXPORTING
|
||||||
|
form = is_text_header-tdform
|
||||||
|
language = is_text_header-tdspras
|
||||||
|
status = ' '
|
||||||
|
IMPORTING
|
||||||
|
form_header = es_form_data-form_header
|
||||||
|
found = ev_form_found
|
||||||
|
header = es_form_data-text_header
|
||||||
|
olanguage = es_form_data-orig_language
|
||||||
|
TABLES
|
||||||
|
form_lines = et_lines
|
||||||
|
pages = es_form_data-pages
|
||||||
|
page_windows = es_form_data-page_windows
|
||||||
|
paragraphs = es_form_data-paragraphs
|
||||||
|
strings = es_form_data-strings
|
||||||
|
tabs = es_form_data-tabs
|
||||||
|
windows = es_form_data-windows.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS. "lcl_object_FORM IMPLEMENTATION
|
25
src/zabapgit_object_form.prog.xml
Normal file
25
src/zabapgit_object_form.prog.xml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<PROGDIR>
|
||||||
|
<NAME>ZABAPGIT_OBJECT_FORM</NAME>
|
||||||
|
<STATE>A</STATE>
|
||||||
|
<VARCL>X</VARCL>
|
||||||
|
<DBAPL>S</DBAPL>
|
||||||
|
<DBNA>D$</DBNA>
|
||||||
|
<SUBC>I</SUBC>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<LDBNAME>D$S</LDBNAME>
|
||||||
|
<UCCHECK>X</UCCHECK>
|
||||||
|
</PROGDIR>
|
||||||
|
<TPOOL>
|
||||||
|
<item>
|
||||||
|
<ID>R</ID>
|
||||||
|
<ENTRY>ZABAPGIT_OBJECT_FORM</ENTRY>
|
||||||
|
<LENGTH>20</LENGTH>
|
||||||
|
</item>
|
||||||
|
</TPOOL>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -18,6 +18,7 @@ INCLUDE zabapgit_object_enho.
|
||||||
INCLUDE zabapgit_object_enhs.
|
INCLUDE zabapgit_object_enhs.
|
||||||
INCLUDE zabapgit_object_enqu.
|
INCLUDE zabapgit_object_enqu.
|
||||||
INCLUDE zabapgit_object_ensc.
|
INCLUDE zabapgit_object_ensc.
|
||||||
|
INCLUDE zabapgit_object_form.
|
||||||
INCLUDE zabapgit_object_fugr.
|
INCLUDE zabapgit_object_fugr.
|
||||||
INCLUDE zabapgit_object_iarp.
|
INCLUDE zabapgit_object_iarp.
|
||||||
INCLUDE zabapgit_object_iasp.
|
INCLUDE zabapgit_object_iasp.
|
||||||
|
|
|
@ -1645,7 +1645,12 @@ CLASS lcl_objects_super IMPLEMENTATION.
|
||||||
obj_type = i_obj_type.
|
obj_type = i_obj_type.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
li_object = cl_wb_object=>create_from_transport_key( p_object = obj_type p_obj_name = obj_name ).
|
cl_wb_object=>create_from_transport_key( EXPORTING p_object = obj_type p_obj_name = obj_name
|
||||||
|
RECEIVING p_wb_object = li_object
|
||||||
|
EXCEPTIONS OTHERS = 1 ).
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
lcx_exception=>raise( 'ADT Jump Error' ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
CALL METHOD ('CL_ADT_TOOLS_CORE_FACTORY')=>('GET_INSTANCE')
|
CALL METHOD ('CL_ADT_TOOLS_CORE_FACTORY')=>('GET_INSTANCE')
|
||||||
RECEIVING
|
RECEIVING
|
||||||
|
|
Loading…
Reference in New Issue
Block a user