当前位置:首页 > Oracle实践之EBS PLSQL 解析Webservice
Doc Ref: 错误!未找到引用源。
(一)调用Integrated SOA Gateway发布的Web Service
ISG开发的WS,第三方系统调用WS时遇到最多的问题是身份验证相关的问题。本章节主要介绍在项目实施过程中,常见的第三方程序调用EBS的WS示例。 1.1 PL/SQL调用Web Service
Oracle数据库提供了utl_http和utl_dbws两个程序包,都可以实现Web Service的调用。关于utl_dbws 曾经整理过一篇文
档《Oracle实践之DBWS部署及应用&WebService开发及部署》,因为utl_dbws需要安装,相对麻烦,本章节使用utl_http调用Web Service。 实例对象:vs159环境,
http://vs159.hand-china.com:8005/webservices/SOAProvider/plsql/cux_ws_information_pkg/?wsdl ?
获取Web Service请求和响应XML
可以通过soapUI工具或EBS的WS测试页面获取,本例WS的请求XML如下:
File Ref: Oracle实践之EBS PL/SQL解析Web Service
Company Confidential - For internal use only
(一)调用Integrated SOA Gateway发布的Web Service 2 of 11
Doc Ref: 错误!未找到引用源。
WS的响应XML如下:
File Ref: Oracle实践之EBS PL/SQL解析Web Service
Company Confidential - For internal use only
(一)调用Integrated SOA Gateway发布的Web Service 3 of 11
Doc Ref: 错误!未找到引用源。
参考WS的请求和响应XML编写PL/SQL代码调用WS,代码如下:
DECLARE l_wsdl VARCHAR2(100) := 'http://vs159.hand-china.com:8005/webservices/SOAProvider/plsql/cux_ws_get_employee_info_pkg/?wsdl'; 错误!未找到引用源。
File Ref: Oracle实践之EBS PL/SQL解析Web Service
Company Confidential - For internal use only
(一)调用Integrated SOA Gateway发布的Web Service 4 of 11
Doc Ref: 错误!未找到引用源。
l_soap_content VARCHAR2(30000); l_soap_request VARCHAR2(30000); l_xmlns VARCHAR2(200) := 'xmlns.oracle.com/apps/cux/soaprovider/plsql/cux_ws_information_pkg/get_employee_inf/\ l_xmlns2 VARCHAR2(200) := 'xmlns=' || chr(13) || '\f/\ --节点X_TABLE_MANUFACTURER l_xml VARCHAR2(20000); l_count NUMBER; l_xmlns_format VARCHAR2(200) := '\f/\ l_xml1 VARCHAR2(20000); l_xml2 VARCHAR2(20000); v_xml xmltype; l_http_req utl_http.req; l_http_resp utl_http.resp; l_soap_respond VARCHAR2(32767); l_resp_xml xmltype; CURSOR c_return(v_xml xmltype) IS SELECT TRIM(extractvalue(VALUE(a) ,'X_RETURN_STATUS')) x_return_status ,TRIM(extractvalue(VALUE(b) ,'X_RETURN_COUNT')) x_return_count FROM TABLE(xmlsequence(extract(v_xml ,'OutputParameters/X_RETURN_STATUS'))) a ,TABLE(xmlsequence(extract(v_xml ,'OutputParameters/X_RETURN_COUNT'))) b; CURSOR c_header(v_xml xmltype) IS SELECT TRIM(extractvalue(VALUE(a) ,'X_RESPONSE_DATA_ITEM/HLY_COMPANY')) hly_company ,TRIM(extractvalue(VALUE(a) ,'X_RESPONSE_DATA_ITEM/EMPLOYEE_NUM')) employee_num ,TRIM(extractvalue(VALUE(a) ,'X_RESPONSE_DATA_ITEM/VENDOR_NUMBER')) vendor_number ,TRIM(extractvalue(VALUE(a) ,'X_RESPONSE_DATA_ITEM/VENDOR_NAME')) vendor_name ,TRIM(extractvalue(VALUE(a) ,'X_RESPONSE_DATA_ITEM/TELE_NUMBER')) tele_number ,TRIM(extractvalue(VALUE(a) ,'X_RESPONSE_DATA_ITEM/DEPART_CODE')) depart_code ,TRIM(extractvalue(VALUE(a) ,'X_RESPONSE_DATA_ITEM/COMPANY_NAME')) company_name FROM TABLE(xmlsequence(extract(v_xml ,'OutputParameters/X_RESPONSE_DATA/X_RESPONSE_DATA_(一)调用Integrated SOA Gateway发布的Web Service 5 of 11
Company Confidential - For internal use only
错误!未找到引用源。
File Ref: Oracle实践之EBS PL/SQL解析Web Service
共分享92篇相关文档