Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

SOA with JD Edwards Real Time Events

This article provides basic steps to configure a Real time event in JDE and
consume in Oracle SOA server.
Product versions
- JD Edwards 9.1
- Transaction Server over Weblogic AS 10.3.X
- Oracle SOA Suite over Weblogic AS 10.3.X
Assumption
JDE and Transaction server are already in place. Transaction server is
setup as per Oracle's standard guidelines.
RTE
JD Edwards EnterpriseOne provides feature of generating events when a
business transaction occurs in the system. These events can be consumed
by 3rd party systems to capture detail of business transaction.
There are many events available out of the box like : Sales Order,
Addresbook, Customer, Item master, Equipments.. to name a few. In this
article I will take a Sales order event as an example.
Scenario
Whenever a new sales order is created in JDE a 3rd party system needs
Order detail in real time. This integration can be achieved with following
steps :
Step
Step
Step
Step

1: Configure Sales Order RTE


2: Configure Queue on Transaction Server
3 : Configure Oracle SOA server to communicate with RTE Queue
4 : Consuming Events using SOA Composite

Step 1: Configure Sales Order RTE


In JDE fast path execute the program P90701A. It will open up a Event
Definition Workbench.
Search for Sales Order event RTSOOUT2.
(Note: RTSOOUT2 is a container event which is made up of 2 single event
RTSOHDR2 and RTSODTL2, used for Sales order header and Sales Order
detail respectively).

Select RTSOOUT2. It will open up Event entry form. Verify following


configuration :
Event category - RTE, Event Aggregate - Container, Product Code H42.
Similarly for RTSOHDR2 and RTSODTL2 Event category should be SINGLE.
RTSOHD2R follows data structure D4202410A and RTSODTL2 follows
D4202410BD.

INTERNAL USE ONLY

Once RTSOOUT2 configuration has been completed and\or verified, from


P90701A, take the Event Activation Form Exit. Add a recordRTSOOUT2 for
RTSOOUT2 for the appropriate environment like DV / PY etc. Ensure the
RTABOUT records are at status AV(Active).

Step 2: Configure Queue on Transaction Server


Now, above event needs to be mapped with a JMS queue in transaction
server. lets name the queue as 'SalesOrderQueue'. (Verify that the H90\AS
UDC Table has an entry for WebLogic AS).
Run P90702A and add a subscriber as follows.

Activate Subscriber: Run P90702A, find the Subscriber created in the


above step. Select the Row\Change Status option. Make sure the
Subscriber status is AV (Active).
Event Subscription: Run P90702A. Find the Subscriber you created in
the above step. Take the Event Subscriptions Option. Add to create a
Subscription. Provide any value to Subscriber name and description. Don't
forget to change status from NA to AV.
Add event to Subscription: Find the subscription created above. Select
the Subscribed Events Row Exit. Add RTSOOUT2 event as shown below.

Add environment as required.


Now, create a JMS queue JMS/Sales Order Queue and connection factory
JMS/Sales Order Connection in transaction server using WebLogic console.
Steps are standard for creating queue in WebLogic. Provide target as RTE
server (RTE Server I assume already in place).
Step 3 : Configure Oracle SOA server to communicate with RTE
Queue.
Since SOA server would be deployed on separate weblogic AS we need to
create a foreign server on SOA local weblogic that will point to Transaction
server queue.
Login to WebLogic admin console. Create a new JMS Module (Or use
existing SOA module just for testing. Though not recommended in QA or
Production environment) .

INTERNAL USE ONLY

Select the module and create a Foreign Server with any name. I named it
JDE91PY_ForeignServer. Provide Transaction server detail as shown in
screenshot below.

Create new destination for the queue. Provide Transaction server queue
name as Remote JNDI name. and any name as Local JNDI Name. Local JNDI
name will be used to search Queue in local SOA Domain.

Similarly create a connection factory with remote and local connection


factory information.

We also need to create connection pool to retrieve JMS connection from


local connection factory. For that go to deployments-> JMS Adapter ->
Configuration -> Outbound connection pool -> New Outbound connection
with properties as shown below.

With this SOA weblogic configuration is complete.


(Please note these are the basic steps for initial setup to get going. there
might be many other parameters need to be setup in production
environment.)
Step 4 : Consuming Events using SOA Composite
Now we just need to create a SOA composite in JDeveloper with a JMS
adapter to consume queue. provide local JNDI and local Connection
factory name while creating adapter.
To consume JMS message we need a schema of Sales order event. The
easy approach I followed is as follow:
- Undeploy the SOA composite that has JMS adapter for sales order.
- Create a new sales order in JDE. it will generate a event in JMS Sales
order queue we created above.
- Go to queue monitoring and copy the XML content of the queue in text
file.
- Generate schema from XML content. and use this schema in SOA
composite and input structure of JMS message.
- Now create composite and deploy on enterprise manager.
- It should start receiving RTE as soon as Sales order is created / modified
in JDE.
When desired data not available in RTE :
There might be scenario when all data required to 3rd party system may
not be available in RTE. in this case either a JDE business service can be

INTERNAL USE ONLY

created to fetch data or a custom RTE, data structure will require to be


built. Most of the time customer may not like to customize standard JDE
setup. So Business Services should help in this case.
Once we have all data in SOA composite we can parse the way 3rd party
system needs and send it across.

INTERNAL USE ONLY

You might also like