Advanced Integration Techniques for Oracle JD Edwards EnterpriseOne
“In theory, theory and practice are the same. In practice, they are not.” – Albert Einstein
Having worked in the IT industry designing and delivering solutions for many clients, I have come across all kinds of theories and guiding principles. One of these theories revolves around standardization of systems/applications onto a common platform for ease of maintenance and support. This “theory” sounds great in theory but is tough to put it into practice.
Every organization is unique in its own way because of their history, maturity, and the products/services they provide. As a result the systems that support the organization continue to change, and evolve. Usually organizations end up with having multiple applications and systems on different platforms over a period of time with each system catering to the needs of a specific business process or department.
In theory it is not good to have multiple disparate platforms, systems and applications, but in practice you end up having them.
In order to streamline business processes and improve efficiently, organizations realize there is a need for these systems/applications to exchange information between them to “Integrate & Interoperate”.
For Oracle JD Edwards EnterpriseOne (JDE) customers at least, you have choices on how you can integrate these systems including both batch and transactional interoperability options. Here I will discuss the usage and features of the more commonly used advanced transactional integration techniques offered by JD Edwards EnterpriseOne.
Oracle JD Edwards Integration Overview
REAL-TIME EVENTS
RTE (Real-Time Events) leverage standards based JMS (Java Message Server) technology to provided guaranteed delivery of events to subscribing applications. This integration technique allows JD Edwards EnterpriseOne to publish critical business events in real time to the external world.
Diagram courtesy of Oracle
Use Case Example
Consider that your organization is in the business of taking orders from customers, packing and shipping them. Let’s assume that your organization uses JD Edwards to take an order from the customer and manage it until the order is fulfilled. Let’s also assume that you use a different system to manage logistics involved with packaging and shipping of the products. These are two different systems, however they support the business process of Order to Deliver. Real-Time events can be used to let the logistics management system know in real time as soon as the order is fulfilled. This integration will help in cutting down system time delays involved in getting the product to the customer as soon as possible.
BUSINESS SERVICES
This integration technique allows bi-directional integration of JD Edwards EnterpriseOne with the outside world both as a producer and consumer of information. SOA (Service Oriented Architecture) in JD Edwards is delivered via Business Services. SOA provides a standard based platform that allows business services to be developed, published, discovered and consumed by each other in a loosely coupled manner, in order to facilitate the creation of orchestrated business processes.
Use Case Example
Let’s extend the earlier example of order to deliver. Consider that your organization allows customers to order through a website. Once the order is placed on the website it needs to be available in JD Edwards so that it can be managed and fulfilled. This integration can be achieved by using pre-built business services that JD Edwards provides. Business services can be used to check for the availability of an item before the customer is allowed to place an order and then to create the order in JD Edwards once it has been placed.
ORACLE JD EDWARDS ENTERPRISEONE ORCHESTRATOR
Oracle JDE EnterpriseOne Orchestrator empowers users to automate and optimize their workflows seamlessly. Orchestrator helps to automate diverse business processes, enhancing efficiency, and driving innovation. JD Edwards Orchestrator scales effortlessly to accommodate growing automation needs. The modular architecture allows organizations to start with a basic workflow and expand to more complex workflows, ensuring that the Orchestrator aligns with the dynamic requirements of the business. With an intuitive and visual workflow design interface, Orchestrator simplifies the creation of complex business processes. Users can drag and drop elements, set conditions, and define triggers, making it accessible for both technical and non-technical users to design and modify workflows without extensive coding expertise
Use Case Example
Extending the earlier example of order to deliver, organizations can covert the manual processes of entering an order into JD Edwards, sending the information to logistics systems for packaging and shipping into multiple API’s using Orchestrator and publish them for consumption. When an order is placed on the website, the Orchestrator API can be called from the website to automatically enter the order in JD Edwards. After the internal JD Edwards order processing is complete, the pre-built Orchestrator processes can be called to send the Orders information to the logistics systems for fulfilling the order.
In this article, I am discussing in detail about Real Time Events and Business Services. Please refer to our other content for a deep dive on Orchestrator.
Setting Up RTE for Integration with Oracle JD Edwards EnterpriseOne
Guaranteed Real Time Events makes it easier to see how your data changes in Oracle JD Edwards (JDE) EnterpriseOne (E1). In this section I will focus on providing some more details on how the Real Time Events (RTE) interoperability model works. This model allows external systems to receive messages in Real Time as and when changes to data occur due to business transactions.
JD Edwards over the years has supported Real Time Events. Prior to 8.9.1 it was called Classic Real Time Events, post 8.9.1 it is called Guaranteed Real Time Events.
How Guaranteed Real-Time Events work
The JD Edwards EnterpriseOne event system implements a publish and subscribe model via JMS (Java Message Service). Events are delivered to subscribers in XML documents that contain detailed information about the event.
In order for an event to be delivered to the outside world, here is the general sequence to steps that occur inside JD Edwards EnterpriseOne.
- An HTML client user executes a business function request that is sent to the JD Edwards EnterpriseOne Web server.
- The request is forwarded to a CallObject kernel on the JD Edwards EnterpriseOne server.
- The CallObject kernel executes the business function, which calls the Event API to send the event data to the F90710 table.
- A trigger message is sent to the JD Edwards EnterpriseOne Transaction server that indicates that a new event has been added to the F90710 table.
- The transaction server retrieves the event data from the F90710 table and, for real-time events, converts the event data to an XML document in the appropriate format.
- The transaction server routes the event to the subscriber queues and subscriber topics for each subscriber that has established an active subscription for that event.
- When a subscriber connects to the transaction server, the subscriber receives all the events that exist in its subscription queue and subscription topic at that time.
The diagram below provides a brief overview of JD Edwards EnterpriseOne events architecture and also the sequence of steps.
How to configure RTE to deliver messages to the external world
For the purpose of this article I am making the assumption that the JDE transaction server has already been installed in your JD Edwards EnterpriseOne environment. I will only focus on configuring the transaction server and WebLogic server to deliver guaranteed real time events. There are primarily three areas of the system that need to be configured:
Configure Transaction Server in Server Manager
This is probably the easiest part of the configuration. The transaction server sits in between the core EnterpriseOne system (where events occur) and WebLogic Server (where events are exposed to the external world). The configuration steps detailed below define how the transaction server connects to EnterpriseOne to get information about events that occur and also how to connect to the WebLogic server so that the events that occur in EnterpriseOne can be delivered to the outside world.
In order to perform these steps you will have to login to Server Manager as a user that has permission to change settings and select the Transaction Server instance that needs to be configured.
- How Transaction Server will connect to EnterpriseOne
The Outgoing JDENET Port is the E1 Port to which the RTE will be communicating with the E1 server (E1 Port). The Incoming JDENET Port is the port the Transaction Server will be listening from for incoming messages (outgoing RTE from E1). Verify that the ‘incoming’ port is not already in use by another application running on the same server (Business Services Server for example).
- How Transaction Server will connect to WebLogic
In Configuration > Real Time Events, make sure you enter the loginpassword for your WLS Console.
Event Definition and Subscription in JD Edwards
This part of the configuration involves setting up the core Oracle JD Edwards EnterpriseOne system for real-time events. Here is an outline of the steps that need to be performed to complete the configuration.
- Configure OCM – As part of this config the transaction server and the port settings are setup in JDE. This will enable the transaction server to find the event system. The OCM config is done as part of the Transaction server install. Use P90701A to ensure that OCM entry exists for the RTE server that is being configured.
- Verify UDC & Tables – This is only a verification step. The UDC’s and Tables needed for the Transaction server to deliver messages are populated during the installation of the transaction server.
- Running Conversions – The step converts existing event data to be compatible with the new tables.
- R90705 – Run Populate Event Activation Status Table (R90705) to create an activation record for every environment for every event defined in the F90701 table.
- R90706 – Run the Convert Event Subscriptions (R90706) UBE to convert the subscription records in the F90702 table to records in the F90707, F907071, and F907072 tables
- Creating Triggers – This step creates a trigger on the table F90710. The trigger is needed for events to fire when changes occur to data. Run dbtemplates.exe to create the trigger.
- Creating Subscriptions, Events and activating them – This is a series of steps that involves using P90702A to create subscriptions, attaching events and environments to these subscriptions and finally activating them
JMS Queues and Connection Factory in WebLogic
This part of the configuration setup enables Weblogic to receive messages generated by events configured in JDE to publish messages using the JMSQUEUE subscriber. It involves creating a connection factory and a queue that will hold the messages that get generated.
The configuration processes that I have outlined above are at a high level and not a step-by-step. In my upcoming webinar I will provide a more detailed walk-through of the configuration process. Hopefully you can see the process is fairly straight-forward, and can take advantage of RTE in your environment to better integrate external systems.
JD Edwards Business Services
Business Service (BSSV) is a collection of web services that execute simple work or tasks when triggered by an external event. In this section, I explain how to configure Business Service and explain its benefits for the average Oracle JD Edwards (JDE) user.
As we continue to explore and understand the Advanced Integration options available with Oracle JD Edwards EnterpriseOne, the next integration technique that I would like to introduce you to is Business Services (or “BSSV” = BuSiness SerVice).
Business Service is the JD Edwards implementation of web services that conform to a Service Oriented Architecture (SOA). The purpose of Business Services is to provide the ability to execute self-contained stateless business functions such as Get Item List Price, Look-up Address Book as a web service following a standard based interface.
Oracle EnterpriseOne has a complete set of pre-built Business Services that can be found here.
What is the difference between a Business Service and a Real-Time Event?
Real Time Events are used to notify an external system that an event has occurred in EnterpriseOne, such as a Sale Order that has been created, or Invoice that has been paid. These events are pushed to subscribers as a message – the communication with the external world is unidirectional (messages are delivered to the external world).
BSSV is used to execute a discrete unit of work or tasks, and is invoked by the external world, for example a third-party marketing system may execute a Business Service to create an address book record for a new customer. Unlike RTE, in the case of BSSV the communication is bidirectional both inward and outward – EnterpriseOne can both be a provider and consumer of data.
How is Business Services set-up?
The Business Services server is built on top of a Java platform. The enterprise edition of one of the following J2EE servers is supported Weblogic (WLS), Oracle Application Server (OAS) or WebSphere (WAS).
The diagram below illustrates the architecture of JD Edwards EnterpriseOne business services:
What is needed to install and configure BSSV?
In this section I will provide a listing of the major activities that need to be performed to install and configure Business Services server and will also provide reference to Oracle docs that will provide a detailed step-by-step. I am making the assumption that you already have WebLogic server installed.
BSSV JDE Components
Development Studio
E1 Client
Business Services Server
Use server manager to perform these configuration steps, these are the steps that will create a new BSSV instance in your EnterpriseOne environment.
Package Build
Once the BSSV managed instance has been configured the next step is to perform a package build and deploy.
Test Install & Config
Now you are ready to use BSSV in your environment. You can test if the BSSV server is working in your environment by invoking the GetAddressBookInfo method using P954001.
For more details and step-by-step details for installing and configuring BSSV server Refer to Doc Id: 1302209.1
I hope this blog post helps in providing you a basic understanding of how Business Services can be used and set-up.
Keep Reading: JD Edwards Development and You
Looking for more on JD Edwards?
There’s more to explore at Smartbridge.com!
Sign up to be notified when we publish articles, news, videos and more!
Other ways to
follow us: