mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
SICF: Add missing error pages (#6145)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
5057386e2b
commit
7b5ff0d7c4
|
@ -77,6 +77,11 @@ CLASS zcl_abapgit_tadir DEFINITION
|
|||
!ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
|
||||
RAISING
|
||||
zcx_abapgit_exception ##NEEDED.
|
||||
METHODS is_sots_excluded
|
||||
IMPORTING
|
||||
!it_packages TYPE zif_abapgit_sap_package=>ty_devclass_tt
|
||||
RETURNING
|
||||
VALUE(rv_exclude) TYPE abap_bool.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -299,6 +304,39 @@ CLASS zcl_abapgit_tadir IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD is_sots_excluded.
|
||||
|
||||
" Todo: once all OTR longtexts are handled by object-specific class,
|
||||
" we can exclude SOTS completely (just like SOTR)
|
||||
" Until then, we need an object-type specific check here
|
||||
|
||||
DATA:
|
||||
lt_concepts TYPE STANDARD TABLE OF sotr_headu-concept,
|
||||
lv_count TYPE i.
|
||||
|
||||
ASSERT it_packages IS NOT INITIAL.
|
||||
|
||||
rv_exclude = abap_false.
|
||||
|
||||
" Get all OTR longtexts
|
||||
SELECT concept FROM sotr_headu INTO TABLE lt_concepts
|
||||
FOR ALL ENTRIES IN it_packages WHERE paket = it_packages-table_line.
|
||||
IF lines( lt_concepts ) > 0.
|
||||
" Check if there are any texts related to objects that do not serialize these texts (yet)
|
||||
" If yes, we need to keep processing SOTS
|
||||
SELECT COUNT(*) FROM sotr_useu INTO lv_count
|
||||
FOR ALL ENTRIES IN lt_concepts WHERE concept = lt_concepts-table_line AND object <> 'SICF'.
|
||||
IF lv_count > 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
" If no, SOTS can be excluded from the TADIR selection
|
||||
rv_exclude = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD select_objects.
|
||||
|
||||
DATA:
|
||||
|
@ -316,7 +354,7 @@ CLASS zcl_abapgit_tadir IMPLEMENTATION.
|
|||
" Exclude object types with tadir entries that are included elsewhere
|
||||
ls_exclude-sign = 'I'.
|
||||
ls_exclude-option = 'EQ'.
|
||||
ls_exclude-low = 'SOTR'. " automatically create for sap packages (DEVC)
|
||||
ls_exclude-low = 'SOTR'. " automatically created for SAP packages (DEVC)
|
||||
APPEND ls_exclude TO lt_excludes.
|
||||
ls_exclude-low = 'SFB1'. " covered by business function sets (SFBS)
|
||||
APPEND ls_exclude TO lt_excludes.
|
||||
|
@ -325,6 +363,11 @@ CLASS zcl_abapgit_tadir IMPLEMENTATION.
|
|||
ls_exclude-low = 'STOB'. " auto generated by core data services (DDLS)
|
||||
APPEND ls_exclude TO lt_excludes.
|
||||
|
||||
IF is_sots_excluded( et_packages ) = abap_true.
|
||||
ls_exclude-low = 'SOTS'.
|
||||
APPEND ls_exclude TO lt_excludes.
|
||||
ENDIF.
|
||||
|
||||
" Limit to objects belonging to this system
|
||||
IF iv_only_local_objects = abap_true.
|
||||
ls_srcsystem-sign = 'I'.
|
||||
|
|
|
@ -358,9 +358,9 @@ CLASS zcl_abapgit_sotr_handler IMPLEMENTATION.
|
|||
DATA: lv_sotr TYPE ty_sotr,
|
||||
lt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter.
|
||||
|
||||
" SOTR usage (see LSOTR_SYSTEM_SETTINGSF01, FORM GET_OBJECT_TABLE)
|
||||
" OTR short text usage: see TABLE BTFR_OBJ_IDS
|
||||
" LIMU: CPUB, WAPP, WDYC, WDYD, WDYV
|
||||
" R3TR: ENHC, ENHD, ENHO, ENHS, ENSC, SCGR, SICF, WDCA, WDCC, WDYA, WEBI, WEBS, XSLT
|
||||
" R3TR: ENHC, ENHO, ENHS, ENSC, SCGR, SMIF, WDCA, WDCC, WEBI, WEBS
|
||||
|
||||
et_sotr_use = get_sotr_usage( iv_pgmid = iv_pgmid
|
||||
iv_object = iv_object
|
||||
|
|
331
src/objects/texts/zcl_abapgit_sots_handler.clas.abap
Normal file
331
src/objects/texts/zcl_abapgit_sots_handler.clas.abap
Normal file
|
@ -0,0 +1,331 @@
|
|||
CLASS zcl_abapgit_sots_handler DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_sots,
|
||||
header TYPE sotr_headu,
|
||||
entries TYPE sotr_textl_tt,
|
||||
END OF ty_sots.
|
||||
TYPES:
|
||||
ty_sots_tt TYPE STANDARD TABLE OF ty_sots WITH DEFAULT KEY.
|
||||
TYPES:
|
||||
ty_sots_use_tt TYPE STANDARD TABLE OF sotr_useu WITH DEFAULT KEY.
|
||||
|
||||
CLASS-METHODS read_sots
|
||||
IMPORTING
|
||||
!iv_pgmid TYPE pgmid DEFAULT 'R3TR'
|
||||
!iv_object TYPE trobjtype
|
||||
!iv_obj_name TYPE csequence
|
||||
!io_xml TYPE REF TO zif_abapgit_xml_output OPTIONAL
|
||||
!iv_language TYPE spras OPTIONAL
|
||||
EXPORTING
|
||||
!et_sots TYPE ty_sots_tt
|
||||
!et_sots_use TYPE ty_sots_use_tt
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
CLASS-METHODS create_sots
|
||||
IMPORTING
|
||||
!iv_package TYPE devclass
|
||||
!io_xml TYPE REF TO zif_abapgit_xml_input OPTIONAL
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
CLASS-METHODS create_sots_from_data
|
||||
IMPORTING
|
||||
!iv_package TYPE devclass
|
||||
!it_sots TYPE ty_sots_tt OPTIONAL
|
||||
!it_sots_use TYPE ty_sots_use_tt OPTIONAL
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
CLASS-METHODS delete_sots
|
||||
IMPORTING
|
||||
!iv_pgmid TYPE pgmid DEFAULT 'R3TR'
|
||||
!iv_object TYPE trobjtype
|
||||
!iv_obj_name TYPE csequence
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
CLASS-METHODS get_sots_usage
|
||||
IMPORTING
|
||||
!iv_pgmid TYPE pgmid
|
||||
!iv_object TYPE trobjtype
|
||||
!iv_obj_name TYPE csequence
|
||||
RETURNING
|
||||
VALUE(rt_sots_use) TYPE ty_sots_use_tt.
|
||||
|
||||
CLASS-METHODS get_sots_4_concept
|
||||
IMPORTING
|
||||
!iv_concept TYPE sotr_conc
|
||||
RETURNING
|
||||
VALUE(rs_sots) TYPE ty_sots.
|
||||
|
||||
PRIVATE SECTION.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_sots_handler IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD create_sots.
|
||||
|
||||
DATA:
|
||||
lt_sots TYPE ty_sots_tt,
|
||||
lt_sots_use TYPE ty_sots_use_tt.
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'SOTS'
|
||||
CHANGING cg_data = lt_sots ).
|
||||
io_xml->read( EXPORTING iv_name = 'SOTS_USE'
|
||||
CHANGING cg_data = lt_sots_use ).
|
||||
|
||||
create_sots_from_data(
|
||||
iv_package = iv_package
|
||||
it_sots = lt_sots
|
||||
it_sots_use = lt_sots_use ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD create_sots_from_data.
|
||||
|
||||
DATA:
|
||||
lt_objects TYPE sotr_objects,
|
||||
lv_object LIKE LINE OF lt_objects,
|
||||
lv_subrc TYPE sy-subrc,
|
||||
ls_header TYPE btfr_head,
|
||||
lt_text_tab TYPE sotr_text_tt,
|
||||
lt_string_tab TYPE sotr_textl_tt,
|
||||
ls_entry LIKE LINE OF lt_string_tab,
|
||||
lv_concept TYPE sotr_conc,
|
||||
lv_concept_default TYPE sotr_conc.
|
||||
|
||||
FIELD-SYMBOLS <ls_sots> LIKE LINE OF it_sots.
|
||||
|
||||
LOOP AT it_sots ASSIGNING <ls_sots>.
|
||||
|
||||
CALL FUNCTION 'SOTR_OBJECT_GET_OBJECTS'
|
||||
EXPORTING
|
||||
object_vector = <ls_sots>-header-objid_vec
|
||||
IMPORTING
|
||||
objects = lt_objects
|
||||
EXCEPTIONS
|
||||
object_not_found = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
READ TABLE lt_objects INDEX 1 INTO lv_object.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
" Reimplementation of SOTR_STRING_CREATE_CONCEPT because we can't supply
|
||||
" concept and it would then be generated.
|
||||
|
||||
LOOP AT <ls_sots>-entries INTO ls_entry.
|
||||
ls_entry-langu = <ls_sots>-header-crea_lan.
|
||||
ls_entry-concept = <ls_sots>-header-concept.
|
||||
INSERT ls_entry INTO TABLE lt_string_tab.
|
||||
ENDLOOP.
|
||||
|
||||
MOVE-CORRESPONDING <ls_sots>-header TO ls_header.
|
||||
ls_header-paket = iv_package.
|
||||
|
||||
lv_concept = <ls_sots>-header-concept.
|
||||
|
||||
PERFORM btfr_create IN PROGRAM saplsotr_db_string
|
||||
USING lv_object
|
||||
sy-langu
|
||||
abap_false
|
||||
abap_true
|
||||
CHANGING lt_text_tab
|
||||
lt_string_tab
|
||||
ls_header
|
||||
lv_concept
|
||||
lv_concept_default
|
||||
lv_subrc.
|
||||
|
||||
CASE lv_subrc.
|
||||
WHEN 1.
|
||||
MESSAGE e100(sotr_mess) INTO zcx_abapgit_exception=>null.
|
||||
WHEN 2.
|
||||
MESSAGE e101(sotr_mess) INTO zcx_abapgit_exception=>null.
|
||||
WHEN 3.
|
||||
MESSAGE i305(sotr_mess) INTO zcx_abapgit_exception=>null.
|
||||
WHEN 4.
|
||||
" The concept will be created in the non-original system (not an error)
|
||||
WHEN 5.
|
||||
MESSAGE e504(sotr_mess) INTO zcx_abapgit_exception=>null.
|
||||
WHEN 6.
|
||||
MESSAGE e035(sotr_mess) INTO zcx_abapgit_exception=>null.
|
||||
WHEN 7.
|
||||
MESSAGE e170(sotr_mess) INTO zcx_abapgit_exception=>null.
|
||||
WHEN 9.
|
||||
MESSAGE e102(sotr_mess) INTO zcx_abapgit_exception=>null.
|
||||
ENDCASE.
|
||||
|
||||
IF lv_subrc <> 0 AND lv_subrc <> 4.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
CALL FUNCTION 'SOTR_USAGE_STRING_MODIFY'
|
||||
EXPORTING
|
||||
sotr_usage = it_sots_use.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD delete_sots.
|
||||
|
||||
DATA:
|
||||
ls_sots TYPE ty_sots,
|
||||
lt_sots_use TYPE ty_sots_use_tt.
|
||||
|
||||
FIELD-SYMBOLS <ls_sots_use> LIKE LINE OF lt_sots_use.
|
||||
|
||||
lt_sots_use = get_sots_usage( iv_pgmid = iv_pgmid
|
||||
iv_object = iv_object
|
||||
iv_obj_name = iv_obj_name ).
|
||||
|
||||
" Remove any usage to ensure deletion, see function module BTFR_CHECK
|
||||
DELETE sotr_useu FROM TABLE lt_sots_use ##SUBRC_OK.
|
||||
|
||||
LOOP AT lt_sots_use ASSIGNING <ls_sots_use> WHERE concept IS NOT INITIAL.
|
||||
|
||||
CALL FUNCTION 'BTFR_DELETE_SINGLE_TEXT'
|
||||
EXPORTING
|
||||
concept = <ls_sots_use>-concept
|
||||
flag_string = abap_true
|
||||
EXCEPTIONS
|
||||
text_not_found = 1 "ok
|
||||
invalid_package = 3
|
||||
text_not_changeable = 4
|
||||
text_enqueued = 5
|
||||
no_correction = 6
|
||||
parameter_error = 7
|
||||
OTHERS = 8.
|
||||
IF sy-subrc > 2.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_sots_4_concept.
|
||||
|
||||
DATA: ls_header TYPE ty_sots-header,
|
||||
lt_entries TYPE ty_sots-entries.
|
||||
|
||||
FIELD-SYMBOLS <ls_entry> LIKE LINE OF lt_entries.
|
||||
|
||||
CALL FUNCTION 'SOTR_STRING_GET_CONCEPT'
|
||||
EXPORTING
|
||||
concept = iv_concept
|
||||
IMPORTING
|
||||
header = ls_header
|
||||
entries = lt_entries
|
||||
EXCEPTIONS
|
||||
no_entry_found = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc <> 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
CLEAR: ls_header-paket,
|
||||
ls_header-crea_name,
|
||||
ls_header-crea_tstut,
|
||||
ls_header-chan_name,
|
||||
ls_header-chan_tstut,
|
||||
ls_header-system_id.
|
||||
|
||||
LOOP AT lt_entries ASSIGNING <ls_entry>.
|
||||
CLEAR: <ls_entry>-version,
|
||||
<ls_entry>-crea_name,
|
||||
<ls_entry>-crea_tstut,
|
||||
<ls_entry>-chan_name,
|
||||
<ls_entry>-chan_tstut.
|
||||
ENDLOOP.
|
||||
|
||||
rs_sots-header = ls_header.
|
||||
rs_sots-entries = lt_entries.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_sots_usage.
|
||||
|
||||
DATA: lv_obj_name TYPE trobj_name.
|
||||
|
||||
lv_obj_name = iv_obj_name.
|
||||
|
||||
" Objects with multiple components
|
||||
IF iv_pgmid = 'LIMU' AND ( iv_object CP 'WDY*' OR iv_object = 'WAPP' ).
|
||||
lv_obj_name+30 = '%'.
|
||||
ENDIF.
|
||||
|
||||
CALL FUNCTION 'SOTR_USAGE_STRING_READ'
|
||||
EXPORTING
|
||||
pgmid = iv_pgmid
|
||||
object = iv_object
|
||||
obj_name = lv_obj_name
|
||||
IMPORTING
|
||||
sotr_usage = rt_sots_use
|
||||
EXCEPTIONS
|
||||
no_entry_found = 1
|
||||
error_in_pgmid = 2
|
||||
OTHERS = 3.
|
||||
IF sy-subrc = 0.
|
||||
SORT rt_sots_use.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD read_sots.
|
||||
|
||||
FIELD-SYMBOLS <ls_sots_use> LIKE LINE OF et_sots_use.
|
||||
|
||||
DATA ls_sots TYPE ty_sots.
|
||||
|
||||
" OTR long text (string) usage: see TABLE BTFR_OBJ_IDS
|
||||
" LIMU: CPUB, WAPP
|
||||
" R3TR: SICF, SMIF, XSLT
|
||||
|
||||
et_sots_use = get_sots_usage( iv_pgmid = iv_pgmid
|
||||
iv_object = iv_object
|
||||
iv_obj_name = iv_obj_name ).
|
||||
|
||||
LOOP AT et_sots_use ASSIGNING <ls_sots_use> WHERE concept IS NOT INITIAL.
|
||||
ls_sots = get_sots_4_concept( <ls_sots_use>-concept ).
|
||||
|
||||
IF io_xml IS BOUND AND
|
||||
io_xml->i18n_params( )-main_language_only = abap_true AND
|
||||
iv_language IS SUPPLIED.
|
||||
DELETE ls_sots-entries WHERE langu <> iv_language.
|
||||
CHECK ls_sots-entries IS NOT INITIAL.
|
||||
ENDIF.
|
||||
|
||||
INSERT ls_sots INTO TABLE et_sots.
|
||||
ENDLOOP.
|
||||
|
||||
IF io_xml IS BOUND.
|
||||
io_xml->add( iv_name = 'SOTS'
|
||||
ig_data = et_sots ).
|
||||
io_xml->add( iv_name = 'SOTS_USE'
|
||||
ig_data = et_sots_use ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
16
src/objects/texts/zcl_abapgit_sots_handler.clas.xml
Normal file
16
src/objects/texts/zcl_abapgit_sots_handler.clas.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>ZCL_ABAPGIT_SOTS_HANDLER</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>abapGit - SOTS Serializer</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -36,6 +36,17 @@ CLASS zcl_abapgit_object_sicf DEFINITION
|
|||
icfparguid TYPE icfservice-icfparguid,
|
||||
END OF ty_sicf_key .
|
||||
|
||||
METHODS serialize_otr
|
||||
IMPORTING
|
||||
!io_xml TYPE REF TO zif_abapgit_xml_output
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS deserialize_otr
|
||||
IMPORTING
|
||||
!iv_package TYPE devclass
|
||||
!io_xml TYPE REF TO zif_abapgit_xml_input
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS read
|
||||
IMPORTING
|
||||
!iv_clear TYPE abap_bool DEFAULT abap_true
|
||||
|
@ -44,6 +55,7 @@ CLASS zcl_abapgit_object_sicf DEFINITION
|
|||
!es_icfdocu TYPE icfdocu
|
||||
!et_icfhandler TYPE ty_icfhandler_tt
|
||||
!ev_url TYPE string
|
||||
!ev_obj_name TYPE sobj_name
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS insert_sicf
|
||||
|
@ -150,6 +162,35 @@ CLASS zcl_abapgit_object_sicf IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD deserialize_otr.
|
||||
|
||||
DATA:
|
||||
lv_obj_name TYPE sobj_name,
|
||||
lt_sots TYPE zcl_abapgit_sots_handler=>ty_sots_tt,
|
||||
lt_sots_use TYPE zcl_abapgit_sots_handler=>ty_sots_use_tt.
|
||||
|
||||
FIELD-SYMBOLS:
|
||||
<ls_sots_use> LIKE LINE OF lt_sots_use.
|
||||
|
||||
read( IMPORTING ev_obj_name = lv_obj_name ).
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'SOTS'
|
||||
CHANGING cg_data = lt_sots ).
|
||||
io_xml->read( EXPORTING iv_name = 'SOTS_USE'
|
||||
CHANGING cg_data = lt_sots_use ).
|
||||
|
||||
LOOP AT lt_sots_use ASSIGNING <ls_sots_use>.
|
||||
<ls_sots_use>-obj_name = lv_obj_name.
|
||||
ENDLOOP.
|
||||
|
||||
zcl_abapgit_sots_handler=>create_sots_from_data(
|
||||
iv_package = iv_package
|
||||
it_sots = lt_sots
|
||||
it_sots_use = lt_sots_use ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD find_parent.
|
||||
|
||||
cl_icf_tree=>if_icf_tree~service_from_url(
|
||||
|
@ -250,6 +291,7 @@ CLASS zcl_abapgit_object_sicf IMPLEMENTATION.
|
|||
CLEAR ev_url.
|
||||
|
||||
ls_key = read_tadir_sicf( ms_item-obj_name )-obj_name.
|
||||
ev_obj_name = ls_key.
|
||||
|
||||
cl_icf_tree=>if_icf_tree~get_info_from_serv(
|
||||
EXPORTING
|
||||
|
@ -357,6 +399,38 @@ CLASS zcl_abapgit_object_sicf IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD serialize_otr.
|
||||
|
||||
DATA:
|
||||
lv_obj_name TYPE sobj_name,
|
||||
lt_sots TYPE zcl_abapgit_sots_handler=>ty_sots_tt,
|
||||
lt_sots_use TYPE zcl_abapgit_sots_handler=>ty_sots_use_tt.
|
||||
|
||||
FIELD-SYMBOLS:
|
||||
<ls_sots_use> LIKE LINE OF lt_sots_use.
|
||||
|
||||
read( IMPORTING ev_obj_name = lv_obj_name ).
|
||||
|
||||
zcl_abapgit_sots_handler=>read_sots(
|
||||
EXPORTING
|
||||
iv_object = ms_item-obj_type
|
||||
iv_obj_name = lv_obj_name
|
||||
IMPORTING
|
||||
et_sots = lt_sots
|
||||
et_sots_use = lt_sots_use ).
|
||||
|
||||
LOOP AT lt_sots_use ASSIGNING <ls_sots_use>.
|
||||
CLEAR <ls_sots_use>-obj_name.
|
||||
ENDLOOP.
|
||||
|
||||
io_xml->add( iv_name = 'SOTS'
|
||||
ig_data = lt_sots ).
|
||||
io_xml->add( iv_name = 'SOTS_USE'
|
||||
ig_data = lt_sots_use ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD to_icfhndlist.
|
||||
|
||||
FIELD-SYMBOLS: <ls_list> LIKE LINE OF it_list.
|
||||
|
@ -389,9 +463,12 @@ CLASS zcl_abapgit_object_sicf IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA ls_icfservice TYPE icfservice.
|
||||
DATA:
|
||||
ls_icfservice TYPE icfservice,
|
||||
lv_obj_name TYPE sobj_name.
|
||||
|
||||
read( IMPORTING es_icfservice = ls_icfservice ).
|
||||
read( IMPORTING es_icfservice = ls_icfservice
|
||||
ev_obj_name = lv_obj_name ).
|
||||
|
||||
IF ls_icfservice IS INITIAL.
|
||||
" It seems that the ICF service doesn't exist anymore.
|
||||
|
@ -406,12 +483,17 @@ CLASS zcl_abapgit_object_sicf IMPLEMENTATION.
|
|||
zcx_abapgit_exception=>raise( 'SICF - cannot delete root node, delete node manually' ).
|
||||
ENDIF.
|
||||
|
||||
" OTR long texts
|
||||
zcl_abapgit_sots_handler=>delete_sots(
|
||||
iv_object = ms_item-obj_type
|
||||
iv_obj_name = lv_obj_name ).
|
||||
|
||||
" Delete Application Customizing Data the hard way, as it isn't done by the API.
|
||||
" If we wouldn't we would get errors from the API if entrys exist.
|
||||
" Transaction SICF does the same.
|
||||
DELETE FROM icfapplcust
|
||||
WHERE icf_name = ls_icfservice-icf_name
|
||||
AND icfparguid = ls_icfservice-icfparguid.
|
||||
WHERE icf_name = ls_icfservice-icf_name
|
||||
AND icfparguid = ls_icfservice-icfparguid.
|
||||
|
||||
cl_icf_tree=>if_icf_tree~delete_node(
|
||||
EXPORTING
|
||||
|
@ -447,7 +529,6 @@ CLASS zcl_abapgit_object_sicf IMPLEMENTATION.
|
|||
lv_exists TYPE abap_bool,
|
||||
lt_icfhandler TYPE TABLE OF icfhandler.
|
||||
|
||||
|
||||
io_xml->read( EXPORTING iv_name = 'URL'
|
||||
CHANGING cg_data = lv_url ).
|
||||
io_xml->read( EXPORTING iv_name = 'ICFSERVICE'
|
||||
|
@ -457,7 +538,6 @@ CLASS zcl_abapgit_object_sicf IMPLEMENTATION.
|
|||
io_xml->read( EXPORTING iv_name = 'ICFHANDLER_TABLE'
|
||||
CHANGING cg_data = lt_icfhandler ).
|
||||
|
||||
|
||||
lv_exists = zif_abapgit_object~exists( ).
|
||||
IF lv_exists = abap_false.
|
||||
insert_sicf( is_icfservice = ls_icfservice
|
||||
|
@ -474,6 +554,11 @@ CLASS zcl_abapgit_object_sicf IMPLEMENTATION.
|
|||
iv_parent = ls_read-icfparguid ).
|
||||
ENDIF.
|
||||
|
||||
" OTR long texts
|
||||
deserialize_otr(
|
||||
iv_package = iv_package
|
||||
io_xml = io_xml ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -562,11 +647,11 @@ CLASS zcl_abapgit_object_sicf IMPLEMENTATION.
|
|||
lv_url TYPE string,
|
||||
lt_icfhandler TYPE TABLE OF icfhandler.
|
||||
|
||||
|
||||
read( IMPORTING es_icfservice = ls_icfservice
|
||||
es_icfdocu = ls_icfdocu
|
||||
et_icfhandler = lt_icfhandler
|
||||
ev_url = lv_url ).
|
||||
|
||||
IF ls_icfservice IS INITIAL.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
@ -591,5 +676,8 @@ CLASS zcl_abapgit_object_sicf IMPLEMENTATION.
|
|||
io_xml->add( iv_name = 'ICFHANDLER_TABLE'
|
||||
ig_data = lt_icfhandler ).
|
||||
|
||||
" OTR long texts
|
||||
serialize_otr( io_xml ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -121,6 +121,8 @@ CLASS zcl_abapgit_object_sots IMPLEMENTATION.
|
|||
METHOD read_sots.
|
||||
|
||||
DATA: lt_sotr_head TYPE STANDARD TABLE OF sotr_headu,
|
||||
lt_objects TYPE sotr_objects,
|
||||
lv_object LIKE LINE OF lt_objects,
|
||||
ls_sots LIKE LINE OF rt_sots.
|
||||
|
||||
FIELD-SYMBOLS: <ls_sotr_head> TYPE sotr_head,
|
||||
|
@ -134,6 +136,24 @@ CLASS zcl_abapgit_object_sots IMPLEMENTATION.
|
|||
|
||||
LOOP AT lt_sotr_head ASSIGNING <ls_sotr_head>.
|
||||
|
||||
CALL FUNCTION 'SOTR_OBJECT_GET_OBJECTS'
|
||||
EXPORTING
|
||||
object_vector = <ls_sotr_head>-objid_vec
|
||||
IMPORTING
|
||||
objects = lt_objects
|
||||
EXCEPTIONS
|
||||
object_not_found = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc <> 0.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
READ TABLE lt_objects INDEX 1 INTO lv_object.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
" Handled by object serializer
|
||||
CHECK lv_object <> 'SICF'.
|
||||
|
||||
CLEAR: ls_sots.
|
||||
|
||||
CALL FUNCTION 'SOTR_STRING_GET_CONCEPT'
|
||||
|
|
Loading…
Reference in New Issue
Block a user