Oracle EBS如何与第三方系统相集成?比如这样的需求,X系统知道物料编码,需要从EBS系统里读取具体物料信息,或者X系统想把自己的人员信息同步到EBS,这类集成问题你就可能需要用到Oracle EBS Integrated SOA Gateway。
Integrated SOA Gateway是EBS里的一个职责,分配给用户后就能看到 ,进入职责(如下图)后,就能看到所有Oracle EBS可以(只是可以,真正放开需要发布和部署的动作)对外开发的接口。
(当然如果这些系统自带接口还不能满足你的集成需求的话,那么你就需要自定义客户化接口了)
首先分享一些收集到的文档,后续有需要可以再详细阅读:
Oracle® Integration Repository User's Guide
Oracle E-Business Suite Integrated SOA Gateway User's Guide
Oracle E-Business Suite Integrated SOA Gateway Implementation Guide R12.1
Oracle E-Business Suite Integrated SOA Gateway Developer's Guide
20 Minute Guide to Oracle Integration Repository
Enable Oracle E-Business Suite Integrated SOA Gateway
Oracle Integration Repository
Oracle Application Server Adapters for Files, FTP, Databases, and Enterprise Messaging User's Guide
Securing E-Business Suite Web Services with Integrated SOA Gateway
Enable Oracle E-Business Suite Integrated SOA Gateway
要使用Integrated SOA Gateway,首先要打一些补丁,具体方法可以参见Note 556540.1 或者 我的另一篇文章。
普通的用户只能查看EBS的接口信息,但并不能发布接口,以及部署,只有sysadmin账户有这个权限。(注:默认情况下,绝大多数的接口是没有发布及部署的,只有需要sysadmin发布后,第三方系统才能调用。)
如果不想使用sysadmin这个账户来管理接口,那么就要给目标用户分配三个角色,才能做sysadmin同样的事情,这三个角色是:
* Irep Administrator(中文:Irep 管理员)
* System Integration Developer(中文:系统集成开发员)
* System Integration Analyst(中文:系统集成分析专家)
每一个角色都有着对接口库不同的权限,如下图
sysadmin默认是具有上述三个角色的,所以不需要特别设置。其他用户就需要设置了,如何给用户分配角色可以参见Note:861982.1
Interfaces
接下来会以系统默认提供的一个接口为例,演示一下,如何放开接口,允许外部程序调用的一个过程。
以sysadmin账户登录,然后路径:Integrated SOA Gateway > Supply Chain Management > Inventory > Inventory Organization Setup,可以看到两个接口,其中的一个叫Locator Maintenance API,这个接口允许用户创建,修改,删除Locator。
(如果接口的Internal Name为User_XXX_XXX的话,比如USER_PKG_LOT,USER_PKG_SERIAL,表示这个接口是需要用户自定义接口,需要自己实现后台的业务处理逻辑)
再点进去就能看到接口的详细信息。你能看到这个接口是一个PL/SQL接口,后台对应的Package叫INV_LOC_WMS_PUB,这个接口包含四个Locator处理的方法。如果你有兴趣,你可以打开INV_LOC_WMS_PUB这个Package,就能看到具体的实现逻辑。
每一个方法能点进去,就是这个接口方法的描述以及接口参数。
生成WSDL
这里需要把PL/SQL的Package以Webservice方式发布,就需要把这个接口生成WSDL。(如何你自己的客户化PL/SQL注册到Integrated SOA Gateway,见这篇文章)
WSDL: Web服务定义语言(Web Service Definition Language),用来定义服务接口。实际上,它能描述服务的两个不同方面:服务的签名(名字和参数),以及服务的绑定和部署细节(协议和位置)。
WSDL生成后,Web Service Status就变成了'Generated'。并且你可以查看WSDL
‘View WSDL‘就能看到WSDL信息
Deploy Webservice
生成了WSDL后,外部系统还不能调用它,你需要把生成的WSDL部署到应用服务器上,这一步还会安装一些必要的Webservice文件到应用服务器上。这里需要对Webservice的安全类型做一个勾选:Username Token、SAML Token。
关于这两个安全类型,可以详细阅读下Securing E-Business Suite Web Services with Integrated SOA Gateway ,里边有详细的解释。
Create Grant
部署完后,Webservice状态变为了Deployed。这之后还有一步- 授权,你是希望所有用户都能访问接口,还是只是特定用户。
Test Web service
WSDL的地址是http://[host]:[port]/webservices/SOAProvider/plsql/inv_loc_wms_pub/?wsdl
那么Oracle自带测试web service的地址是上边WSDL的地址,但是去掉'?wsdl' (主要不要去掉斜杠/,否则会报No WebService Provider is registered at this URL)
http://[host]:[port]/webservices/SOAProvider/plsql/inv_loc_wms_pub/
Invoke后,就把HTML表单上的信息组成Soap报文,发送到应用服务器,服务器会把返回信息也以Soap报文的形式返回给客户端。
下为SOAP请求报文样例:
- <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
- <soap:Header xmlns:ns1="http://xmlns.oracle.com/apps/cux/soaprovider/plsql/cux_0_ws_server_prg/">
- <ns1:SOAHeader>
- <ns1:Responsibility>INVENTORY</ns1:Responsibility>
- <ns1:RespApplication>CUX</ns1:RespApplication>
- <ns1:SecurityGroup>STANDARD</ns1:SecurityGroup>
- <ns1:NLSLanguage>SIMPLIFIED CHINESE</ns1:NLSLanguage>
- <ns1:Org_Id>0</ns1:Org_Id>
- </ns1:SOAHeader>
- <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" soap:mustUnderstand="1">
- <wsse:UsernameToken xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
- <wsse:Username>ESB_TEST</wsse:Username>
- <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">1234567890</wsse:Password>
- </wsse:UsernameToken>
- </wsse:Security>
- </soap:Header>
- <soap:Body xmlns:ns2="http://xmlns.oracle.com/apps/cux/soaprovider/plsql/cux_0_ws_server_prg/invokews/">
- <ns2:InputParameters>
- <ns2:P_IFACE_CODE>XXX</ns2:P_IFACE_CODE>
- <ns2:P_BATCH_NUMBER>1234567654323</ns2:P_BATCH_NUMBER>
- <ns2:P_REQUEST_DATA>32424</ns2:P_REQUEST_DATA>
- </ns2:InputParameters>
- </soap:Body>
- </soap:Envelope>
(请求报文头中的Responsibility,RespApplication,SecurityGroup,NLSLanguage,Org_Id节点都是Oracle EBS系统要求的SOAP头信息,用于账户验证)
SOAP响应报文样例:
- <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
- <env:Header/>
- <env:Body>
- <OutputParameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/apps/cux/soaprovider/plsql/cux_0_ws_server_prg/invokews/">
- <X_RETURN_CODE xmlns="http://xmlns.oracle.com/apps/cux/soaprovider/plsql/cux_0_ws_server_prg/invokefmsws/">ERROR001</X_RETURN_CODE>
- <X_RETURN_MESG xmlns="http://xmlns.oracle.com/apps/cux/soaprovider/plsql/cux_0_ws_server_prg/invokefmsws/">输入的请求报文格式不正确</X_RETURN_MESG>
- <X_RESPONSE_DATA xsi:nil="true" xmlns="http://xmlns.oracle.com/apps/cux/soaprovider/plsql/cux_0_ws_server_prg/invokews/"/>
- </OutputParameters>
- </env:Body>
- </env:Envelope>
除了这个标准的测试方法外,也可以使用SoapUI这样的专业工具来测试Webservice,见这篇文章。
SOA Monitor
可以在SOA Monitor中监视客户端调用EBS的Webservice的执行的效果。
路径:Integrated SOA Gateway –> SOA Monitor
如果调用失败,可以从详细信息或者日志里查看具体内容。
转载请注明出处:http://blog.csdn.net/pan_tian/article/details/10159935
相关推荐
Oracle EBS 操作手册
几年前就经帯在网上看到戒者在一些讲座中听到,但自己真正比较“近距离”接触“SOA”,还是在去年的“中国IT精英年会”上,当时IBM大中华区的老总大谈IBM 的SOA,BEA公司(当时还没被Oracle 收购)也讲了很多SOA的案例,SAP...
Oracle探究_R12_SOA_Gateway模块实施指引,很不错的入门资料,值得参考
oracle ebs webservcie 官方用户手册,可以借鉴的。英文的。
Oracle EBS中文数据字典.pdf
此针对于oracle ebs的值集进行详细的讲解
win7 ORACLE ebs 需要的文件和具体设置步骤 详细
Integrating_EBS_with_Oracle_Internet_Directory_and_Oracle_Single_Sign-On Oracle EBS 单点登录 方案
ORACLE EBS R12 安装步骤详解,讲述ORACLE EBS R12的详细安装步骤,感觉不错,和大家一块分享
Oracle EBS 各模块详解 01采购培训 02库存培训 03销售培训 04应付培训 05总帐培训 06应收培训
这是一份完整的Oracle ebs 项目制造模块培训文档,可以了解Oracle ebs 项目制造模块(PJM)的所有功能及流程。
ORACLE ebs 各个模块的表之间的关联关系,方便大家熟悉ebs系统的表结构
ORACLEEBS财务全模块操作手册中文版收集.pdf
Oracle EBS开发文档(form, report), 写得很不错
Oracle EBS R12中的配置文件及中文说明
Oracle EBS 采购请购单接口示例,亲测可用 个人网站 http://a66.site 公众号:LXFIMJ
oracle ebs之http通用接口开发
主要内容是oracle EBS财务模块,就学习ERP挺好的材料,分为五个部分 Oracle EBS财务模块(一)基本功能 Oracle EBS财务模块(二)基本组成模块 Oracle EBS财务模块(三)总账功能 Oracle EBS财务模块(四)账套 ...
oracleebs库存模块中文版手册.pdf
从百度、CSDN等各大平台,花大量积分收集并整理的ORACLE资料,在此低分贡献出来。