Using Integrated SOA Gateway in Oracle EBS
FROM:http://blog.csdn.net/pan_tian/article/details/10159935
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
如果调用失败,可以从详细信息或者日志里查看具体内容。
Using Integrated SOA Gateway in Oracle EBS的更多相关文章
- Using Integrated SOA Gateway in Oracle EBS(websevice)
http://blog.csdn.net/pan_tian/article/details/10159935 Oracle EBS如何与第三方系统相集成?比如这样的需求,X系统知道物料编码,需要从EB ...
- 配置Oracle E-Business Suite Integrated SOA Gateway Release 12.1.2/12.1.3
3.3 配置Oracle E-Business Suite Integrated SOA Gateway Release 12.1.2 注意: 在多节点环境上配置Oracle E-Business S ...
- Configuring Oracle E-Business Suite Integrated SOA Gateway Release 12.1.2 and Release 12.1.3 in a Multinode Environment (Doc ID 1081100.1)
Configuring Oracle E-Business Suite Integrated SOA Gateway Release 12.1.2 and Release 12.1.3 in a Mu ...
- Integrated SOA Gateway 不是当前用户的有效责任。请联系您的系统管理员。
问题:给用户新增职责集成SOA网关,点击路径进入时出现报错:"Integrated SOA Gateway 不是当前用户的有效责任.请联系您的系统管理员." 解决:功能管理员职责, ...
- IGS_学习笔记01_Integrated SOA Gateway介绍(案例)
2014-01-01 Created By BaoXinjian
- BPM与 SAP & Oracle EBS集成解决方案分享
一.需求分析 SAP和Oracle EBS都是作为全球顶级的的ERP产 品,得到了众多客户的青睐.然而由于系统庞大.价格昂贵以及定位不同,客户在实施过程中经常会面临以下困惑: 1.SAP如何实现&qu ...
- [转]oracle EBS 基础100问
from:http://www.cnblogs.com/xiaoL/p/3593691.html http://f.dataguru.cn/thread-51057-1-1.html 1001 OR ...
- Oracle EBS Model Function Technical
♡.Oracle EBS(ERP)Oracle 是公司名字,这个我估计大家都知道.EBS是E-Business Suite的缩写,简单的说,就是Oracle做的一个企业级的信息化软件或者系统,里面包含 ...
- Oracle EBS - Doc
Oracle EBS spec.: http://vianet/IT/IT%20Dept/IT%20Project%20Update2/Active%20Projects%20%20Manufactu ...
随机推荐
- 【mybatis深度历险系列】mybatis中的高级映射一对一、一对多、多对多
学习hibernate的时候,小编已经接触多各种映射,mybatis中映射有到底是如何运转的,今天这篇博文,小编主要来简单的介绍一下mybatis中的高级映射,包括一对一.一对多.多对多,希望多有需要 ...
- ROSCon 2016视频和幻灯片发布 ROS机器人操作系统重要参考资料
ROSCon 2016视频和幻灯片发布 By Tully Foote on 十月19,2016 7:28 AM 全部PPT下载地址:http://pan.baidu.com/s/1gf2sn2F RO ...
- SQLite Where 子句(http://www.w3cschool.cc/sqlite/sqlite-where-clause.html)
SQLite Where 子句 SQLite的 WHERE 子句用于指定从一个表或多个表中获取数据的条件. 如果满足给定的条件,即为真(true)时,则从表中返回特定的值.您可以使用 WHERE 子句 ...
- java虚拟机 jvm 方法区实战
和java堆一样,方法区是一块所有线程共享的内存区域,用于保存系统的类信息,类的信息有哪些呢.字段.方法.常量池.方法区也有一块内存区域所以方法区的内存大小,决定了系统可以包含多少个类,如果系统类太多 ...
- 熟悉java语言的基本使用:简单存款取款机制java实现
最近一直没有项目做,于是我也不能这样闲着,我得开始学习新的技术,并且巩固以前自学的技术.以下就是我写的一个简单的java存取款代码,很简单,可能还有更简单的方法,目的是为了熟悉java的基本使用. p ...
- MTK8127源码编译出现的错误及相关解决办法
/** * date:2016/8/17 * author: Y.X .YANG */ 按照开发文档提示: 1.MTK提供的开发包目录下有若干个.aa .ab .ac ...的分压缩包.此时应当将这些 ...
- 简单搭建iOS开发项目框架
今天我们来谈谈如何搭建框架,框架需要做一些什么. 第一步:找到我们的目标我们的目标是让其他开发人员拿到手后即可写页面,不再需要考虑其他的问题. 第二步:我们需要做哪些东西各位跟着我一步一步来进行. 假 ...
- 4.1、Android Stuido配置你的Build Variant
每个版本的build variant代表了你可以构建的每一个版本.虽然你未直接配置build variants,你可以通过配置build type和product flavor. 比如,一个demo的 ...
- Fragment的事务操作&Actvity的状态丢失
Fragment Transactions & Activity State Loss 本文翻译自Fragment Transactions & Activity State Loss ...
- oracle对大对象类型操作:blob,clob,nclob
1.基本介绍 Oracle和plsql都支持lob(large object) 类型,用来存储大数量数据,如图像文件,声音文件等.Oracle 9i realse2支持存储最大为4g的数据,or ...