Professional Documents
Culture Documents
A Comparison
Exploring the possibilities
http://apps2fusion.com
Integration Repository in
Release 11i
• The only way for analysts to browse Integration Repository in Release 11i is by going
to oracle.com
• The contents/artifacts exposed via Integration Repository listed on Oracle’s website
may differ from actual contents hosted on your actual Release 11i instance, as new
patches might add to the Integration Repository contents.
• Developers have another way of browsing the actual integration repository in Release
11i. This is possible by connecting Jdeveloper to Release 11i database when using
Oracle Apps Adapter in BPEL
Anil Passi
http://apps2fusion.com
Limitations of Integration
Repository in Release 11i
• Extremely restricted
• The contents are pretty much static in other words, a customer can not add a new
concurrent program to be exposed as webservice
• For example, you can not e
Anil Passi
http://apps2fusion.com
SOA and Oracle EBusiness
Suite
Integration Repository [iRep]
•What is Integration Repository [ iRep ]
•Integration Repository differences between 11i / R12 / R12.1.1+
http://apps2fusion.com
Integration Repository - iRep
• Integration Repository is a catalogue of annotated interfaces available in Oracle E-Business Suite applications.
• Different interface types are PL/SQL api’s, Open Interface Tables, XML Gateway Map, EDI gateway Map, Java APIetc.
h
on e ac
o s ted wsing ed o
n
ess
h
p is for B data
ro h ost busin
s E
i Re m a i ep i racle
11i , e. co met thin 11 , i R
For .oracl ut the i R12 of O
w
ww ose. B is als
ow For llation l
a l
p
pur matio
n inst e Insta
t
o r
inf ables
. Sui
T
DB
http://apps2fusion.com
How to access Integration
Repository in R12
http://apps2fusion.com
Searching the Integration Repository
http://apps2fusion.com
Preparing your R12.1 Instance for
ISG
Unlock user
ASADMIN and
change its
default
password
http://apps2fusion.com
The changed
ASADMIN
password must be
reflected in file
system. The
password for
ASADMIN will be
automatically
encrypted after
bounce using
script
adoafmctl.sh,
provided it is
preceded by !
http://apps2fusion.com
Profile Options for R12.1.1 ISG
http://apps2fusion.com
ISG Example – Expose a PL/SQL as Web Service in R12.1.1
http://apps2fusion.com
ISG Example – Generate the WSDL for Integration
Repository API
http://apps2fusion.com
ISG Example – After deployment of API, the WSDL can be
used by any SOA client
http://apps2fusion.com
ISG Example – Secure the exposed web service
Hosted Webservices are secured via FND_USER/SSO credentials
http://apps2fusion.com
ISG Example – Testing the exposed R12.1.1 web service
http://apps2fusion.com
ISG Example – Using the SOAP UI tool for testing the FND_PROFILE API
http://apps2fusion.com
ISG Example – Test the web service security
Test Authentication and Authorization errors
http://apps2fusion.com
ISG Example – SOA Monitor to Audit
http://apps2fusion.com
ISG Example – Test after giving grant and the correct user
password
http://apps2fusion.com
ISG Example – Results in SOA Monitor
http://apps2fusion.com
ISG – Exposing custom components as webservice
Apply the patch mentioned in Metalink Note 946192.1.
Anil Passi
Where can you use SOA
• Integration Projects: You can create various interface
bridges for integrating two different heterogeneous
systems IT Systems.
Example- Building Customer Data interface for Integration of Siebel and Oracle E-Business Suite
• You can leverage existing JAVA or PL/SQL functionality
as Webservice
• New custom workflow development can be created
through BPEL. As Oracle Worklow will be replaced by
Oracle BPEL.
• Replacing Database Link API with web services
• If you writing completely new application Module or
building new product, its recommended to use BPEL for
building business flow of module/product.
Anil Passi
Adapters in BPEL
• Oracle BPELPM supports various adapters. Through
adapter, its easy to expose your business functionality
(activity) as Web service by declarative approach
(without writing single line of code) and integrate in
Business flow.
Example -
– Reading/Writing data in File through File Adapter
– Selecting data or doing DML operation in Database using DB
adapter
– Invoking Stored procedure/function/API in Database
– Doing FTP Operation (get/put)
– Pushing/Polling data in JMS Queue/ Oracle AQ
– Exposing any EJB, Java Class as Web service
Anil Passi
SOA- Getting Started
Development Runtime
Deploy
Area Area
Anil Passi
Overview of SOA Integration with eBusiness Suite
BPEL Process
Message placed in receives event
Queue WF_BPEL_Q & instantiates BPEL Process
via Subscription
Anil Passi
EBS to SOA Integration Steps
Lets see the list of components needed to make this all work together
Before we get into the details of each of the above components, we must first
download/install jDeveloper and SOA Server. Also, we need to create a Business
Anil Passi
Event in EBS [ if you aren’t using an existing Business Event ]
Download jDeveloper
• Download the jDeveloper 10g version for
BPEL Development
http://download.oracle.com/otn/java/jdeveloper/10133/jdevstudio10133.zip
To install jDeveloper, simply follow the steps we saw during OA Framework session
Anil Passi
SOA Suite Installation
• SOA Suite can be installed on Linux/Unix
or on windows
• For the purpose of learning, you can install
Windows version of SOA Suite Server on
your PC [Note:- Default installation comes
with Oracle Lite Database]
Anil Passi
Installing SOA Suite on your PC
First download the SOA Suite
http://download.oracle.com/otn/nt/ias/101310/soa_windows_x86_101310_disk1.zip
Unzip the zip files and follow the instructions when you run
the installer [within these zipped files]
After installing SOA Suite, you should then install the Patch too.
Important note:-
If you are doing these to merely learn SOA, then leave password for oc4jadmin to welcome1 itself.
This is because, some of the sample demos come with welcome1 password.
For example, if name of your PC is apassixp01, then default SOA Suite 10g
Application Server URL will be
http://apassixp01:8888 [ Examples in this demo are based on the URL mentioned here ]
In reality, this could be like http://<hostname>.<domainName>:<port>
Anil Passi
Create the Business event in Oracle EBS
Anil Passi
Subscription and Agent Listener for BPEL
Please note that we haven’t yet created a subscription for this business event in Oracle eBusiness Suite.
This means that it will be the first time when a business event from “this EBS Instance” will be
integrated to Oracle’s SOA Suite
Anil Passi
Connect to Application server where SOA Suite is running
Anil Passi
Connect to Application server where SOA Suite is running
Now in jDeveloper, after knowing the RMI Port Number, connect to the application server
Anil Passi
Connect to BPEL server within Application Server
Now in jDeveloper, after connecting to the application server, lets connect to BPEL Server.
This can be using for quick deployment of your deployment to BPEL Server [you can also use ant/obant]
Anil Passi
Connect to EBS instance from jDeveloper
Now in jDeveloper, we can connect to DB of Oracle EBS.
This will facilitate to browse thrrough the list of Business events that our BPEL/ESB process will consume.
Create an application
Create an application
Anil Passi
In jDeveloper, now lets create a BPEL process which gets invoked
when Business event is raised in Oracle EBS
Anil Passi
In jDeveloper, now lets create a BPEL process which gets invoked
when Business event is raised in Oracle EBS
Give name to Oracle Apps Adapter wizard
However, we will
have to register this
DB Connection in SOA Server
too, so that SOA Server can
connect to APPS DB at runtime to
fetch Business Event. Hence, this
Anil Passi name will be used when defining
Connection Factory in SOA Server
In jDeveloper, now lets create a BPEL process which gets invoked
when Business event is raised in Oracle EBS
When using adapter wizard for first time, jDeveloper will create a local file for Integration Repository of EBS.
This file name is with extension .dat, but its contents are XML listing all end points defined in Integration Repository
This is an optional step and it can take few minutes to complete. However, jDeveloper does this step in background mode
Anil Passi
In jDeveloper, now lets create a BPEL process which gets invoked
when Business event is raised in Oracle EBS
After selecting the Business Event, we need to specify the Schema Definition of the message that will be sent by EBS
Anil Passi
In jDeveloper, now lets create a BPEL process which gets invoked
when Business event is raised in Oracle EBS
Drag and Drop the receive activity in the Blank BPEL Process that you have created
Anil Passi
In jDeveloper, now lets create a BPEL process which gets invoked
when Business event is raised in Oracle EBS
Complete the receive activity by selecting the Partner link, creating a Variable into which dequeued message will be
received and also don’t forget to check the checkbox “Create Instance”.
Anil Passi
In jDeveloper, now lets create a BPEL process which gets invoked
when Business event is raised in Oracle EBS
Now your skeleton BPEL process is ready to be compiled/built.
In real life, you will be doing further processing with the Payload that is received from Business Event.
Now that we have built the BPEL Process. We need to deploy this to BPEL Server.
However, the SOA server is not aware of the EBS DB yet [ Only jDeveloper as yet is aware of EBS Database ]
Anil Passi
Register the EBS Database with SOA Suite
Anil Passi
Register the EBS Database with SOA Suite
Register a data-source for EBS Database, using SOA Connection Pool for Database
Navigate to http://<host>.<domain>:portNumber/em
In this example/case http://apassixp01:8888/em/
Anil Passi
In jDeveloper, now lets create a BPEL process which gets invoked
when Business event is raised in Oracle EBS
Anil Passi
In jDeveloper, now lets create a BPEL process which gets invoked
when Business event is raised in Oracle EBS
Create connection factory in SOA Server.
This uses the data source that we created in prior step
Use same URL as before
Anil Passi
In jDeveloper, now lets create a BPEL process which gets invoked
when Business event is raised in Oracle EBS
Back to jDeveloper…..
Anil Passi
For testing, login to Oracle EBS, and from “Workflow Administrator
Web Applications”, and search for business event and click on Test
Note Q_CORRELATION_ID is
same as the event name.
In pl/sql this is equivalent to
l_param_list.add_param
(
p_param_name=> 'Q_CORRELATION_ID',
p_param_value => 'xx.oracle.apps.soa.integration.demo');
Anil Passi
Now login to BPEL Console and after couple of minutes you will see
the Payload that was sent by business event in Oracle EBS
Anil Passi
But how did this integration happen ?? Lets have a look at “behind
the curtains”
That sql file was created on the fly.
What does that sql file do?
dbms_aqadm.create_queue_table
(
queue_table => 'WF_BPEL_QTAB',
multiple_consumers => true,
queue_payload_type => 'WF_EVENT_T‘
);
dbms_aqadm.create_queue
(
queue_name=>'WF_BPEL_Q'
,queue_table => 'WF_BPEL_QTAB'
,retention_time => 86400
);
dbms_aqadm.start_queue('WF_BPEL_Q');
Anil Passi
But how did this integration happen ?? Lets have a look at “behind
the curtains”
Anil Passi
But how did this integration happen ?? Lets have a look at “behind
the curtains”
So, as soon as the event is raised, the message is sent to deferred queue.
Within 2-3 minutes, via subscription, that message is transported to agent WF_BPEL_QAGENT
But, this agent is designed to enqueue messages into a queue named WF_BPEL_Q.
The table for this queue is WF_BPEL_QTAB
The BPEL Server will be polling this queue every few seconds, hence within no time, you will see
that a new BPEL Process gets instantiated.
Anil Passi
But how did this integration happen ?? Lets have a look at
“behind the curtains”
The agent that was created on
the fly, can be queried from
screens in EBS
Anil Passi
How to debug this integration
The apps adapter writes debug messages into opmn log file [See the directory below]
Anil Passi
Further debugging
1. Click on Manage BPEL Domain
2. Click on Logging
3. Enable the Debug
Anil Passi
Best Practices for BPEL Integration
Use proper and certified Middleware:
Choices:
Oracle Fusion Middleware ( 10g AS and its Components like BPEL, ESB, OBI, ODI)
Websphere
BEA Weblogic
NetWeaver
TIBCO
Advantage of Oracle Fusion Middleware for EBS Integration
1. It supports most of old and new EBS version for Integrations
2. Provides inbuilt Apps Adpater
3. Good Architecture of Fusion middleware: As Fusion Middleware has simple Administration and maintenance
Inboud /Outbound End point in EBS should be business Event ( eithercustom or standard Business Event)
Advantage of Business event as end point
1. Easy to enable and disable the integration bridge by enabling/disabling related subscription through UI
2. Supports Adaptive & Flexible customization due BES feature.
Example, adding custom email facility to integration will be adding one more workflow subscription to BES.
No change of existing integration bridgecode.
3. Inbuilt Queuing support.
Use queuing infrastructure ( AQ, or JMS Queue) for possible Exception handling and load balancing.
For EBS , Oracle Advanced Queue is better option as it easy to write code to put and pull message in
Advanced Queue. Also, for Workflow Event payloads, the schema definition is given by the adapter.
JMS queue is another option, but in case of JMS, you will need to define the schemas for the Payload within BPEL.
Anil Passi
Miscellaneous SOA Best Practices
Evaluate the security of Webservice - OWSM
The most critical aspect in SOA is to have security of Webservice.Security involves authentication( username
password validation), Authorization( whether user has access to use service), secure transport(https protocol). Oracle
Webservice Manager ( OWSM) can be used to secure your services.
Anil Passi