WEBI, fix pull after initial pull

This commit is contained in:
larshp 2016-07-06 06:20:36 +00:00
parent 638306fc2d
commit 58a3457d1e

View File

@ -176,6 +176,11 @@ CLASS lcl_object_webi IMPLEMENTATION.
LOOP AT is_webi-pvepfunction ASSIGNING <ls_function>. LOOP AT is_webi-pvepfunction ASSIGNING <ls_function>.
IF mi_vi->has_function( funcname = <ls_function>-function
version = sews_c_vif_version-active ) = abap_true.
CONTINUE.
ENDIF.
li_function = mi_vi->create_function( li_function = mi_vi->create_function(
funcname = <ls_function>-function funcname = <ls_function>-function
mapped_name = <ls_function>-mappedname ). mapped_name = <ls_function>-mappedname ).
@ -246,18 +251,27 @@ CLASS lcl_object_webi IMPLEMENTATION.
li_elem->set_signed( <ls_elem>-signed ). li_elem->set_signed( <ls_elem>-signed ).
li_elem->set_abaptype( <ls_elem>-abaptype ). li_elem->set_abaptype( <ls_elem>-abaptype ).
IF li_elem->if_ws_md_vif_type~has_soap_extension_type(
sews_c_vif_version-all ) = abap_false.
READ TABLE is_webi-pveptypesoapext ASSIGNING <ls_soap> READ TABLE is_webi-pveptypesoapext ASSIGNING <ls_soap>
WITH KEY typename = <ls_elem>-typename. WITH KEY typename = <ls_elem>-typename.
IF sy-subrc = 0. IF sy-subrc = 0.
li_soap = li_elem->if_ws_md_vif_type~create_soap_extension_type( ). li_soap = li_elem->if_ws_md_vif_type~create_soap_extension_type( ).
li_soap->set_namespace( <ls_soap>-namespace ). li_soap->set_namespace( <ls_soap>-namespace ).
ENDIF. ENDIF.
ENDIF.
ENDLOOP. ENDLOOP.
LOOP AT is_webi-pvepstrutype ASSIGNING <ls_struc>. LOOP AT is_webi-pvepstrutype ASSIGNING <ls_struc>.
lv_index = sy-tabix. lv_index = sy-tabix.
li_struc = mi_vi->create_type_as_structure( <ls_struc>-typename ). li_struc = mi_vi->create_type_as_structure( <ls_struc>-typename ).
IF li_struc->has_field( field_pos = <ls_struc>-fieldpos
version = sews_c_vif_version-active ) = abap_true.
CONTINUE.
ENDIF.
li_field = li_struc->create_field( li_field = li_struc->create_field(
field_name = <ls_struc>-fieldname field_name = <ls_struc>-fieldname
fieldpos = <ls_struc>-fieldpos ). fieldpos = <ls_struc>-fieldpos ).
@ -265,6 +279,8 @@ CLASS lcl_object_webi IMPLEMENTATION.
version = sews_c_vif_version-inactive ) ). version = sews_c_vif_version-inactive ) ).
IF lv_index = 1. IF lv_index = 1.
IF li_struc->if_ws_md_vif_type~has_soap_extension_type(
sews_c_vif_version-all ) = abap_false.
READ TABLE is_webi-pveptypesoapext ASSIGNING <ls_soap> READ TABLE is_webi-pveptypesoapext ASSIGNING <ls_soap>
WITH KEY typename = <ls_struc>-typename. WITH KEY typename = <ls_struc>-typename.
IF sy-subrc = 0. IF sy-subrc = 0.
@ -272,6 +288,7 @@ CLASS lcl_object_webi IMPLEMENTATION.
li_soap->set_namespace( <ls_soap>-namespace ). li_soap->set_namespace( <ls_soap>-namespace ).
ENDIF. ENDIF.
ENDIF. ENDIF.
ENDIF.
ENDLOOP. ENDLOOP.
LOOP AT is_webi-pveptabletype ASSIGNING <ls_table>. LOOP AT is_webi-pveptabletype ASSIGNING <ls_table>.
@ -279,12 +296,15 @@ CLASS lcl_object_webi IMPLEMENTATION.
li_table->set_line_type( mi_vi->get_type( typename = <ls_table>-typeref li_table->set_line_type( mi_vi->get_type( typename = <ls_table>-typeref
version = sews_c_vif_version-inactive ) ). version = sews_c_vif_version-inactive ) ).
IF li_table->if_ws_md_vif_type~has_soap_extension_type(
sews_c_vif_version-all ) = abap_false.
READ TABLE is_webi-pveptypesoapext ASSIGNING <ls_soap> READ TABLE is_webi-pveptypesoapext ASSIGNING <ls_soap>
WITH KEY typename = <ls_table>-typename. WITH KEY typename = <ls_table>-typename.
IF sy-subrc = 0. IF sy-subrc = 0.
li_soap = li_table->if_ws_md_vif_type~create_soap_extension_type( ). li_soap = li_table->if_ws_md_vif_type~create_soap_extension_type( ).
li_soap->set_namespace( <ls_soap>-namespace ). li_soap->set_namespace( <ls_soap>-namespace ).
ENDIF. ENDIF.
ENDIF.
ENDLOOP. ENDLOOP.
ENDMETHOD. ENDMETHOD.
@ -298,6 +318,10 @@ CLASS lcl_object_webi IMPLEMENTATION.
READ TABLE is_webi-pvepvisoapext INDEX 1 INTO ls_soap. READ TABLE is_webi-pvepvisoapext INDEX 1 INTO ls_soap.
ASSERT sy-subrc = 0. ASSERT sy-subrc = 0.
IF mi_vi->has_soap_extension_virtinfc( sews_c_vif_version-active ).
RETURN.
ENDIF.
li_soap = mi_vi->create_soap_extension_virtinfc( ls_soap-soap_appl_uri ). li_soap = mi_vi->create_soap_extension_virtinfc( ls_soap-soap_appl_uri ).
li_soap->set_namespace( ls_soap-namespace ). li_soap->set_namespace( ls_soap-namespace ).
@ -347,6 +371,10 @@ CLASS lcl_object_webi IMPLEMENTATION.
mi_vi->if_ws_md_lockable_object~save( ). mi_vi->if_ws_md_lockable_object~save( ).
mi_vi->if_ws_md_lockable_object~unlock( ). mi_vi->if_ws_md_lockable_object~unlock( ).
CATCH cx_ws_md_exception INTO lx_root. CATCH cx_ws_md_exception INTO lx_root.
TRY.
mi_vi->if_ws_md_lockable_object~unlock( ).
CATCH cx_ws_md_exception.
ENDTRY.
lv_text = lx_root->if_message~get_text( ). lv_text = lx_root->if_message~get_text( ).
_raise 'error deserializing WEBI'. _raise 'error deserializing WEBI'.
ENDTRY. ENDTRY.