Merge pull request #1498 from christianguenter2/issue_1494

SSFO deserialization: catch cx_ssf_fb
This commit is contained in:
Lars Hvam 2018-06-14 06:29:05 +02:00 committed by GitHub
commit 602bdf6d96
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -225,7 +225,9 @@ CLASS zcl_abapgit_object_ssfo IMPLEMENTATION.
lv_name TYPE string,
li_iterator TYPE REF TO if_ixml_node_iterator,
lo_sf TYPE REF TO cl_ssf_fb_smart_form,
lo_res TYPE REF TO cl_ssf_fb_smart_form.
lo_res TYPE REF TO cl_ssf_fb_smart_form,
lx_error TYPE REF TO cx_ssf_fb,
lv_text TYPE string.
CREATE OBJECT lo_sf.
@ -252,21 +254,28 @@ CLASS zcl_abapgit_object_ssfo IMPLEMENTATION.
tadir_insert( iv_package ).
lv_formname = ms_item-obj_name.
lo_sf->enqueue( suppress_corr_check = space
master_language = mv_language
mode = 'INSERT'
formname = lv_formname ).
lo_sf->xml_upload( EXPORTING dom = io_xml->get_raw( )->get_root_element( )
formname = lv_formname
language = mv_language
CHANGING sform = lo_res ).
TRY.
lo_sf->enqueue( suppress_corr_check = space
master_language = mv_language
mode = 'INSERT'
formname = lv_formname ).
lo_res->store( im_formname = lo_res->header-formname
im_language = mv_language
im_active = abap_true ).
lo_sf->xml_upload( EXPORTING dom = io_xml->get_raw( )->get_root_element( )
formname = lv_formname
language = mv_language
CHANGING sform = lo_res ).
lo_sf->dequeue( lv_formname ).
lo_res->store( im_formname = lo_res->header-formname
im_language = mv_language
im_active = abap_true ).
lo_sf->dequeue( lv_formname ).
CATCH cx_ssf_fb INTO lx_error.
lv_text = lx_error->get_text( ).
zcx_abapgit_exception=>raise( |{ ms_item-obj_type } { ms_item-obj_name }: { lv_text } | ).
ENDTRY.
ENDMETHOD. "deserialize