设为首页 收藏本站
查看: 1300|回复: 0

[经验分享] Using Integrated SOA Gateway in Oracle EBS(websevice)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-23 07:00:16 | 显示全部楼层 |阅读模式
  http://blog.iyunv.com/pan_tian/article/details/10159935
  Oracle EBS如何与第三方系统相集成?比如这样的需求,X系统知道物料编码,需要从EBS系统里读取具体物料信息,或者X系统想把自己的人员信息同步到EBS,这类集成问题你就可能需要用到Oracle EBS Integrated SOA Gateway。
  Integrated SOA Gateway是EBS里的一个职责,分配给用户后就能看到 ,进入职责(如下图)后,就能看到所有Oracle EBS可以(只是可以,真正放开需要发布和部署的动作)对外开发的接口。
  (当然如果这些系统自带接口还不能满足你的集成需求的话,那么你就需要自定义客户化接口了)
DSC0000.jpg
  首先分享一些收集到的文档,后续有需要可以再详细阅读:
  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(中文:系统集成分析专家)
每一个角色都有着对接口库不同的权限,如下图
DSC0001.jpg
  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,表示这个接口是需要用户自定义接口,需要自己实现后台的业务处理逻辑)
DSC0002.jpg
  再点进去就能看到接口的详细信息。你能看到这个接口是一个PL/SQL接口,后台对应的Package叫INV_LOC_WMS_PUB,这个接口包含四个Locator处理的方法。如果你有兴趣,你可以打开INV_LOC_WMS_PUB这个Package,就能看到具体的实现逻辑。
DSC0003.jpg
  每一个方法能点进去,就是这个接口方法的描述以及接口参数。
DSC0004.jpg
  
生成WSDL
  这里需要把PL/SQL的Package以Webservice方式发布,就需要把这个接口生成WSDL。(如何你自己的客户化PL/SQL注册到Integrated SOA Gateway,见这篇文章)
  WSDL: Web服务定义语言(Web Service Definition Language),用来定义服务接口。实际上,它能描述服务的两个不同方面:服务的签名(名字和参数),以及服务的绑定和部署细节(协议和位置)。
DSC0005.jpg
  WSDL生成后,Web Service Status就变成了'Generated'。并且你可以查看WSDL
DSC0006.jpg
  ‘View WSDL‘就能看到WSDL信息
DSC0007.jpg
  
Deploy Webservice
  生成了WSDL后,外部系统还不能调用它,你需要把生成的WSDL部署到应用服务器上,这一步还会安装一些必要的Webservice文件到应用服务器上。这里需要对Webservice的安全类型做一个勾选:Username Token、SAML Token。
  关于这两个安全类型,可以详细阅读下Securing E-Business Suite Web Services with Integrated SOA Gateway ,里边有详细的解释。
DSC0008.jpg
  
Create Grant
  部署完后,Webservice状态变为了Deployed。这之后还有一步- 授权,你是希望所有用户都能访问接口,还是只是特定用户。
DSC0009.jpg
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/
DSC00010.jpg
DSC00011.jpg
  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
DSC00012.jpg
  如果调用失败,可以从详细信息或者日志里查看具体内容。
  
  
  ------
  怎样为一个用户赋予User Management职责
  参考Note:734280.1 UMX Error: 'There are no functions available for this responsibility' And/Or 'There are no valid navigations for this responsibility' when Accessing 'User Management' Responsibility.
  To implement the solution, please execute the following steps:
1. Log into the applications as SYSADMIN User.
2. Choose User Management responsibility.
3. Navigate to Users web page.
4. Search and find the user you want to inherit the Security Administrator and Customer Administrator Roles.
5. Click on Update Icon.
6. Click on Assign Roles button.
7. Find and choose 'Security Administrator' Role.
8. Apply.
9. Repeat the Steps (6-8) for 'Customer Administrator' Role.
10. Log as the user who was assigned User Management Responsibility and facing the issue.
11. Retest the issue.
12. Migrate the solution as appropriate to other environments.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-117357-1-1.html 上篇帖子: Oracle EBS 快捷键 下篇帖子: Oracle EBS R12 XML数据表格的Excel脚本报表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表