|
增加传输header,如username等。
"补充header信息
DATA: lr_header TYPE REF TO if_wsprotocol_ws_header.
DATA:ixml TYPE REF TO if_ixml,
xml_document TYPE REF TO if_ixml_document,
xml_root TYPE REF TO if_ixml_element,
xml_element TYPE REF TO if_ixml_element,
xml_node TYPE REF TO if_ixml_node.
DATA l_xstring TYPE xstring.
DATA l_string TYPE string.
DATA: name TYPE string,
namespace TYPE string.
TRY.
CREATE OBJECT l_zmmco_intf_bu_non_pr_***.
"补充header信息
lr_header ?= l_zmmco_intf_bu_non_pr_***->get_protocol( if_wsprotocol=>ws_header ).
CATCH cx_ai_system_fault INTO l_ai_system_fault.
"调用接口是否失败
"添加日志
zgdrfc_log2: 'E' .
ex_type = c_e.
EXIT.
ENDTRY.
CLEAR l_string .
CONCATENATE
'<soapenv:Header>'
'<username>admin</username>'
'<password>123</password>'
'</soapenv:Header>'
INTO l_string.
"convert to xstring
CLEAR l_xstring .
l_xstring = cl_proxy_service=>cstring2xstring( l_string ).
IF l_string IS NOT INITIAL.
"create ixml dom document from xml xstring
CALL FUNCTION 'SDIXML_XML_TO_DOM'
EXPORTING
xml = l_xstring
IMPORTING
document = xml_document
EXCEPTIONS
invalid_input = 1
OTHERS = 2.
IF sy-subrc = 0 AND NOT xml_document IS INITIAL.
xml_root ?= xml_document->get_root_element( ).
xml_element ?= xml_root->get_first_child( ).
"add header element by element to soap header
WHILE xml_element IS NOT INITIAL.
name = xml_element->get_name( ).
namespace = xml_element->get_namespace_uri( ).
lr_header->set_request_header( name = name
namespace = namespace
dom = xml_element ).
xml_element ?= xml_element->get_next( ).
ENDWHILE.
ENDIF.
ENDIF.
CLEAR: ex_msg.
"CALL INTERFACE
TRY.
CALL METHOD l_zmmco_intf_bu_non_pr_***->purchase_**
EXPORTING
purchase_** = l_purchase_**
IMPORTING
purchase_apply_response = l_purchase_apply_response.
CATCH cx_ai_system_fault INTO l_ai_system_fault.
"GET ERROR LOG
ex_msg = l_ai_system_fault->get_text( ).
"调用接口是否失败
ex_type = c_e.
"添加日志
zgdrfc_log2: 'E' .
EXIT.
ENDTRY. |
|