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

Using SOA Gateway in EBS 12

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请求报文样例:

  1. <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">
  2. <soap:Header xmlns:ns1="http://xmlns.oracle.com/apps/cux/soaprovider/plsql/cux_0_ws_server_prg/">
  3. <ns1:SOAHeader>
  4. <ns1:Responsibility>INVENTORY</ns1:Responsibility>
  5. <ns1:RespApplication>CUX</ns1:RespApplication>
  6. <ns1:SecurityGroup>STANDARD</ns1:SecurityGroup>
  7. <ns1:NLSLanguage>SIMPLIFIED CHINESE</ns1:NLSLanguage>
  8. <ns1:Org_Id>0</ns1:Org_Id>
  9. </ns1:SOAHeader>
  10. <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">
  11. <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">
  12. <wsse:Username>ESB_TEST</wsse:Username>
  13. <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">1234567890</wsse:Password>
  14. </wsse:UsernameToken>
  15. </wsse:Security>
  16. </soap:Header>
  17. <soap:Body xmlns:ns2="http://xmlns.oracle.com/apps/cux/soaprovider/plsql/cux_0_ws_server_prg/invokews/">
  18. <ns2:InputParameters>
  19. <ns2:P_IFACE_CODE>XXX</ns2:P_IFACE_CODE>
  20. <ns2:P_BATCH_NUMBER>1234567654323</ns2:P_BATCH_NUMBER>
  21. <ns2:P_REQUEST_DATA>32424</ns2:P_REQUEST_DATA>
  22. </ns2:InputParameters>
  23. </soap:Body>
  24. </soap:Envelope>

(请求报文头中的Responsibility,RespApplication,SecurityGroup,NLSLanguage,Org_Id节点都是Oracle EBS系统要求的SOAP头信息,用于账户验证)

SOAP响应报文样例:

  1. <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
  2. <env:Header/>
  3. <env:Body>
  4. <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/">
  5. <X_RETURN_CODE xmlns="http://xmlns.oracle.com/apps/cux/soaprovider/plsql/cux_0_ws_server_prg/invokefmsws/">ERROR001</X_RETURN_CODE>
  6. <X_RETURN_MESG xmlns="http://xmlns.oracle.com/apps/cux/soaprovider/plsql/cux_0_ws_server_prg/invokefmsws/">输入的请求报文格式不正确</X_RETURN_MESG>
  7. <X_RESPONSE_DATA xsi:nil="true" xmlns="http://xmlns.oracle.com/apps/cux/soaprovider/plsql/cux_0_ws_server_prg/invokews/"/>
  8. </OutputParameters>
  9. </env:Body>
  10. </env:Envelope>

除了这个标准的测试方法外,也可以使用SoapUI这样的专业工具来测试Webservice,见这篇文章

SOA Monitor

可以在SOA Monitor中监视客户端调用EBS的Webservice的执行的效果。

路径:Integrated SOA Gateway –> SOA Monitor

如果调用失败,可以从详细信息或者日志里查看具体内容。

Using Integrated SOA Gateway in Oracle EBS的更多相关文章

  1. Using Integrated SOA Gateway in Oracle EBS(websevice)

    http://blog.csdn.net/pan_tian/article/details/10159935 Oracle EBS如何与第三方系统相集成?比如这样的需求,X系统知道物料编码,需要从EB ...

  2. 配置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 ...

  3. 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 ...

  4. Integrated SOA Gateway 不是当前用户的有效责任。请联系您的系统管理员。

    问题:给用户新增职责集成SOA网关,点击路径进入时出现报错:"Integrated SOA Gateway 不是当前用户的有效责任.请联系您的系统管理员." 解决:功能管理员职责, ...

  5. IGS_学习笔记01_Integrated SOA Gateway介绍(案例)

    2014-01-01 Created By BaoXinjian

  6. BPM与 SAP & Oracle EBS集成解决方案分享

    一.需求分析 SAP和Oracle EBS都是作为全球顶级的的ERP产 品,得到了众多客户的青睐.然而由于系统庞大.价格昂贵以及定位不同,客户在实施过程中经常会面临以下困惑: 1.SAP如何实现&qu ...

  7. [转]oracle EBS 基础100问

    from:http://www.cnblogs.com/xiaoL/p/3593691.html  http://f.dataguru.cn/thread-51057-1-1.html 1001 OR ...

  8. Oracle EBS Model Function Technical

    ♡.Oracle EBS(ERP)Oracle 是公司名字,这个我估计大家都知道.EBS是E-Business Suite的缩写,简单的说,就是Oracle做的一个企业级的信息化软件或者系统,里面包含 ...

  9. Oracle EBS - Doc

    Oracle EBS spec.: http://vianet/IT/IT%20Dept/IT%20Project%20Update2/Active%20Projects%20%20Manufactu ...

随机推荐

  1. RAP在线接口管理统计部署

    文档: https://github.com/thx/RAP/wiki/home_cn centos上部署 参考:https://github.com/thx/RAP/wiki/deploy_on_c ...

  2. springMVC源码分析--SimpleControllerHandlerAdapter(三)

    上一篇博客springMVC源码分析--HandlerAdapter(一)中我们主要介绍了一下HandlerAdapter接口相关的内容,实现类及其在DispatcherServlet中执行的顺序,接 ...

  3. 27 自定义View小结

    自定义View 1 为了满足开发需要 就需要自定义View 2 分类: 直接继承View 继承View的子类(现有控件 button,TextView-.) 继承ViewGroup(线性布局 相对布局 ...

  4. CSS简单使用

    CSS简单使用 标签 : 前端技术 CSS(Cascading Style Sheet : 层叠样式表单)用来定义网页显示效果. 可以解决HTML代码对样式定义的重复,提高后期样式代码的可维护性,并增 ...

  5. com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field 异常

    分享牛原创(尊重原创 转载对的时候第一行请注明,转载出处来自分享牛http://blog.csdn.net/qq_30739519) 1.1.1. 前言 近期在使用ObjectMapper对象将jso ...

  6. pandas小记:pandas数据输入输出

    http://blog.csdn.net/pipisorry/article/details/52208727 数据输入输出 数据pickling pandas数据pickling比保存和读取csv文 ...

  7. Android Multimedia框架总结(八)Stagefright框架之AwesomePlayer及数据解析器

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼:http://blog.csdn.net/hejjunlin/article/details/52503057 前言:前面一篇分析了medi ...

  8. Dynamics CRM2013 用户进入系统所必需的那些权限

    本篇以CRM2013为例,在CRM中新建一个安全角色后该安全角色基本是空的,如果新建的安全角色作为一个账号的唯一安全角色时,那这个安全角色除了需要配置业务场景所需的权限外,是要优先具备进入CRM系统的 ...

  9. C语言省略extern的缺陷

    在一个文件中(比如a.c)定义一个全局变量int a = 10; 然后在另一个代码文件(比如main.c)中需要使用变量a,可以写 int a; 单独看main.c文件时就会出现二义性,一个含义是当其 ...

  10. I/O操作之概述与导读

    I/O流可以表示很多不同种类的输入源和输出目的地,包括简单的字节流,基本数据(int.boolean.double等),本地化的字符,以及对象.一些流只是简单地传递数据,还有一些流可以操作和转换数据 ...