![Page 1: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/1.jpg)
1 | 28
Report from the trenches: Using SOA integrated gateway at the city of Rotterdam
Lonneke Dikmans
October 15th 2013 | UKOUG Apps
![Page 2: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/2.jpg)
2 | 28
Introduction
Agenda ● Integrating with Oracle EBS ● Case ● Conclusion ● Future developments
Who am I ● Consultant and managing partner at Vennster ● Specializing in SOA and integration ● Oracle Ace Director
![Page 3: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/3.jpg)
3 | 28
Integrating your packaged App | Use Cases
Use data ● For example from HR system to determine approval chain
Use functionality (fine grained)
● For example using Oracle Time control in your custom application
Expose services (coarse grained)
● For example to change an address or to fill out an expense report
![Page 4: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/4.jpg)
4 | 28
Integrating with Oracle EBS | options
API ● Call directly ● Use EBS Adapter SOA Suite ● Generate PL/SQL Web
Service
Web Service ● Generate your own ● Use Integrated SOA
Gateway
![Page 5: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/5.jpg)
5 | 28
Intermezzo | What is a Web Service
“A software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically using HTTP with an XML serialization in conjunction with other Web-related standards.” (W3C)
![Page 6: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/6.jpg)
6 | 28
Integrating with Oracle EBS | Web Services
Components Integrated SOA Gateway ● Integration Repository (IREP) ● Service Provider ● Service Invocation Framework (SIF) ● Service Monitor
![Page 7: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/7.jpg)
7 | 28
Integrating with Oracle EBS | Documentation
Title Audience
Oracle E-‐Business Suite Integrated SOA Gateway User’s Guide
Architect, Developer, Administrator
Oracle E-‐Business Suite Integrated SOA Gateway ImplementaAon Guide
Administrator
Installing Oracle E-‐Business Suite Integrated SOA Gateway, Release 12
Administrator
Oracle E-‐Business Suite Integrated SOA Gateway Developer’s Guide
Developer
![Page 8: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/8.jpg)
8 | 28
Integrated SOA Gateway | Overview
![Page 9: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/9.jpg)
9 | 28
Integrated SOA Gateway | Design time
![Page 10: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/10.jpg)
10 | 28
Integrated SOA Gateway | Runtime
![Page 11: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/11.jpg)
11 | 28
Case | ESS & MSS @ City Of Rotterdam
Proof of concept ● Use EBS module ● Custom development ● Buy self service module
Process ● Expense reports
Criteria ● Data quality & control ● Cost ● Usability ● Process support (workflow) ● ICT ● Other
![Page 12: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/12.jpg)
12 | 28
Case | Overview
● Preparation • Installation and configuration • Roles and permissions
● Creating the web service ● Deploying the web service ● Granting access to the web service ● Using the web service
![Page 13: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/13.jpg)
13 | 28
Case | Preparation
Installation and configuration ● Installation -> lots of patches ● Setup roles and permissions -> see next slide, not obvious
Analysis ● Functionality needed in Application ● Functionality needed in EBS (pay elements) ● Determine APIs to be (created and) exposed
![Page 14: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/14.jpg)
14 | 28
Case | Roles and permissions
Privilege Analyst Developer Administrator
View public interfaces Yes Yes Yes
View private/internal interfaces No Yes Yes
(Re)Generate Web Services (WSDL) No No Yes
(Re)Deploy Web Services No No Yes
Undeploy Web Services No No Yes
Subscribe to business events No No Yes
Create grants No No Yes
Download composite services No* Yes Yes
![Page 15: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/15.jpg)
15 | 28
Analysis | Preparation
![Page 16: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/16.jpg)
16 | 28
Case | Create Web Service
![Page 17: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/17.jpg)
17 | 28
Case | Deploying the Web Service
![Page 18: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/18.jpg)
18 | 28
Case | Granting access
Authentication & authorization ● Use create Grant option ● Create one user, for example ‘selfsvc’ that has access (system
account)
=> Note that this is on top of the information that is sent in the message!
![Page 19: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/19.jpg)
19 | 28
Case | Using the service
![Page 20: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/20.jpg)
20 | 28
Case | Using the Web Service
<?xml version = '1.0' encoding = 'UTF-8'?><definitions name="PAY_ELEMENT_ENTRY_API" targetNamespace="http://xmlns.oracle.com/apps/per/soaprovider/plsql/pay_element_entry_api/" xmlns:tns="http://xmlns.oracle.com/apps/per/soaprovider/plsql/pay_element_entry_api/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns1="http://xmlns.oracle.com/apps/per/soaprovider/plsql/pay_element_entry_api/create_element_entry/" xmlns:tns2="http://xmlns.oracle.com/apps/per/soaprovider/plsql/pay_element_entry_api/delete_element_entry/" xmlns:tns3="http://xmlns.oracle.com/apps/per/soaprovider/plsql/pay_element_entry_api/update_element_entry/"> <types> <schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/apps/per/soaprovider/plsql/pay_element_entry_api/create_element_entry/"> <include schemaLocation="http://sdra01.sdr.rotterdam.nl:8001/webservices/SOAProvider/plsql/pay_element_entry_api/APPS_ISG_CREATE_ELEMENT_ENTRY_PAY_ELEMENT_ENTRY_API-24CREATE_.xsd"/> </schema> <schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/apps/per/soaprovider/plsql/pay_element_entry_api/delete_element_entry/"> <include schemaLocation="http://sdra01.sdr.rotterdam.nl:8001/webservices/SOAProvider/plsql/pay_element_entry_api/APPS_ISG_DELETE_ELEMENT_ENTRY_PAY_ELEMENT_ENTRY_API-24DELETE_.xsd"/> </schema> <schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/apps/per/soaprovider/plsql/pay_element_entry_api/update_element_entry/"> <include schemaLocation="http://sdra01.sdr.rotterdam.nl:8001/webservices/SOAProvider/plsql/pay_element_entry_api/APPS_ISG_UPDATE_ELEMENT_ENTRY_PAY_ELEMENT_ENTRY_API-24UPDATE_.xsd"/> </schema> <schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/apps/per/soaprovider/plsql/pay_element_entry_api/"> <element name="SOAHeader"> <complexType> <sequence> <element name="Responsibility" minOccurs="0" type="string"/> <element name="RespApplication" minOccurs="0" type="string"/> <element name="SecurityGroup" minOccurs="0" type="string"/> <element name="NLSLanguage" minOccurs="0" type="string"/> <element name="Org_Id" minOccurs="0" type="string"/> </sequence> </complexType> </element> </schema> </types> <message name="CREATE_ELEMENT_ENTRY_Input_Msg"> <part name="header" element="tns:SOAHeader"/> <part name="body" element="tns1:InputParameters"/> </message> <message name="CREATE_ELEMENT_ENTRY_Output_Msg"> <part name="body" element="tns1:OutputParameters"/> </message> <message name="DELETE_ELEMENT_ENTRY_Input_Msg"> <part name="header" element="tns:SOAHeader"/> <part name="body" element="tns2:InputParameters"/> </message> <message name="DELETE_ELEMENT_ENTRY_Output_Msg"> <part name="body" element="tns2:OutputParameters"/> </message> <message name="UPDATE_ELEMENT_ENTRY_Input_Msg"> <part name="header" element="tns:SOAHeader"/> <part name="body" element="tns3:InputParameters"/> </message> <message name="UPDATE_ELEMENT_ENTRY_Output_Msg"> <part name="body" element="tns3:OutputParameters"/> </message> <portType name="PAY_ELEMENT_ENTRY_API_PortType"> <operation name="CREATE_ELEMENT_ENTRY"> <input message="tns:CREATE_ELEMENT_ENTRY_Input_Msg"/> <output message="tns:CREATE_ELEMENT_ENTRY_Output_Msg"/> </operation> <operation name="DELETE_ELEMENT_ENTRY"> <input message="tns:DELETE_ELEMENT_ENTRY_Input_Msg"/> <output message="tns:DELETE_ELEMENT_ENTRY_Output_Msg"/> </operation> <operation name="UPDATE_ELEMENT_ENTRY"> <input message="tns:UPDATE_ELEMENT_ENTRY_Input_Msg"/> <output message="tns:UPDATE_ELEMENT_ENTRY_Output_Msg"/> </operation> </portType> <binding name="PAY_ELEMENT_ENTRY_API_Binding" type="tns:PAY_ELEMENT_ENTRY_API_PortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="CREATE_ELEMENT_ENTRY"> <soap:operation soapAction="http://sdra01.sdr.rotterdam.nl:8001/webservices/SOAProvider/plsql/pay_element_entry_api/"/> <input> <soap:header message="tns:CREATE_ELEMENT_ENTRY_Input_Msg" part="header" use="literal"/> <soap:body parts="body" use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> <operation name="DELETE_ELEMENT_ENTRY"> <soap:operation soapAction="http://sdra01.sdr.rotterdam.nl:8001/webservices/SOAProvider/plsql/pay_element_entry_api/"/> <input> <soap:header message="tns:DELETE_ELEMENT_ENTRY_Input_Msg" part="header" use="literal"/> <soap:body parts="body" use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> <operation name="UPDATE_ELEMENT_ENTRY"> <soap:operation soapAction="http://sdra01.sdr.rotterdam.nl:8001/webservices/SOAProvider/plsql/pay_element_entry_api/"/> <input> <soap:header message="tns:UPDATE_ELEMENT_ENTRY_Input_Msg" part="header" use="literal"/> <soap:body parts="body" use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="PAY_ELEMENT_ENTRY_API_Service"> <port name="PAY_ELEMENT_ENTRY_API_Port" binding="tns:PAY_ELEMENT_ENTRY_API_Binding"> <soap:address location="http://sdra01.sdr.rotterdam.nl:8001/webservices/SOAProvider/plsql/pay_element_entry_api/"/> </port> </service></definitions>
![Page 21: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/21.jpg)
21 | 28
Case | Use the Web Service
SQLJUTL ● Boolean (PL/SQL) is translated to an int (1 = true), see Oracle Application Server
Adapters for Files, FTP, Databases and Enterprise Messaging User’s Guide ● Long list of flex fields, not clear which are used <element name="P_VALIDATE" type="int" db:index="1" db:type="INTEGER" minOccurs="0" nillable="true" />
… <element name="P_ATTRIBUTE1" type="string" db:index="19" db:type="VARCHAR2" minOccurs="0" nillable="true" /> <element name="P_ATTRIBUTE2" type="string" db:index="20" db:type="VARCHAR2" minOccurs="0" nillable="true" /> <element name="P_ATTRIBUTE3" type="string" db:index="21" db:type="VARCHAR2" minOccurs="0" nillable="true" /> <element name="P_ATTRIBUTE4" type="string" db:index="22" db:type="VARCHAR2" minOccurs="0" nillable="true" />
![Page 22: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/22.jpg)
22 | 28
Case | Using the Web Service
HRM features (API xsd) ● Assignment id ● Elelement_link_id ● Date tracking
EBS features (header) ● Responsibility ● RespApplication ● SecurityGroup
![Page 23: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/23.jpg)
23 | 28
Conclusion | design decisions
1. Using integrated SOA Gateway 2. WS-Security 3. Importing HR data 4. Using seeded API versus creating custom API
![Page 24: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/24.jpg)
24 | 28
Conclusion | Knowledge needed
HR ● Knowledge of the current configuration ● Installation and configuration (Integrated SOA Gateway)
EBS ● Knowledge of PL/SQL specifics (Generated WSDL) ● EBS Header
Web Service ● OC4J ● WSDL/SOAP/ etc
![Page 25: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/25.jpg)
25 | 28
Conclusion | Advantages of Approach
Integration repository ● List of APIs that are exposed as Web Service ● No knowledge of Web Services needed to generate them • But you need that knowledge to troubleshoot! • But you need that knowledge to test them! • But you need that knowledge to use them!
● Control access (with grants) ● WS – Security is built in
![Page 26: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/26.jpg)
26 | 28
Developments | EBS 12.2
WebLogic Server ● Part of Fusion Middleware 11g
SOA Suite 11g instead of SOA Suite 10g
● All web services are run with Oracle SOA Suite 11g ● Support for asynchronous PL/SQL Web Services
![Page 27: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/27.jpg)
27 | 28
Future Developments | EBS 12.2
![Page 28: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/28.jpg)
28 | 28
Future Developments | Fusion Apps
● No SOA Integrated gateway
● SOA Suite part of Apps
![Page 29: Report from the trenches: Using SOA Integrated Gateway](https://reader031.vdocuments.mx/reader031/viewer/2022020306/546ea33faf795967298b5804/html5/thumbnails/29.jpg)
29 | 28
Report from the trenches: Using SOA integrated gateway at the city of Rotterdam
Lonneke Dikmans
October 15th 2013 | UKOUG Apps