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.

>>> Skip to the RTE section

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.

>>> Skip to the Business Services section

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.

  1. An HTML client user executes a business function request that is sent to the JD Edwards EnterpriseOne Web server.
  2. The request is forwarded to a CallObject kernel on the JD Edwards EnterpriseOne server.
  3. The CallObject kernel executes the business function, which calls the Event API to send the event data to the F90710 table.
  4. 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.
  5. 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.
  6. 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.
  7. 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.

real time events for integration with JDE

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:

  • Transaction Server in Server Manager
  • Event definition and Subscription in JD Edwards
  • JMS Queues and Connection Factory in WebLogic

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.

  1. 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).

real time events for integration with JDE
  1. How Transaction Server will connect to WebLogic

In Configuration > Real Time Events, make sure you enter the loginpassword for your WLS Console.

real time events for integration with JDE

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:

Business Service setup for JDE

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

  • If you are on E1 Release 9.1 or later you need not apply any additional ESU’s to install BSSV components. They are part of the E1 Release. However if you are on older version of E1 release you will need to install ESU’s and also run through special instructions to get all the BSSV components installed

Development Studio

  • JDeveloper studio 11g in conjunction with E1 Client is needed to develop and build Business Services Packages.

E1 Client

  • Ensure WebDev is installed on your E1 client where BSSV objects will be developed. WebDev should be configured and working for E1 Client to be used in conjunction with BSSV.

  • OMW – Configure OMW to make sure E1 client knows the install path for jDeveloper
  • In addition changes are needed to JDE.ini and JDBJ.ini to ensure E1 Client is aware of BBSV components. These changes are needed for to perform a package build of BSSV objects.

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.

  • On the Server manager console select the Weblogic Server that will host the BSSV server.
  • Create a new J2EE container if it does not already exist.
  • Once the J2EE container has been created go ahead and create a new Managed Instance. From the options available select “Enterprise Business Services Server”. On the next set of screens you will need to enter information (Instance Name, HTTP Port, E1 Server Port, System Data Source etc.) that is needed to finish configuring the BSSV Managed Instance.

Package Build

Once the BSSV managed instance has been configured the next step is to perform a package build and deploy.

  • Use P9601 “Work With Packages” application to enable BSSV Build in processing options.
  • Use P9603 “Assemble Business Services” application to define package assembly. Select all BSSV objects that need to be built. Once this has been completed use the standard package build procedures to build and deploy the package.

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.

Share This:

Looking for more on JD Edwards?

Explore more insights and expertise at smartbridge.com/jdedwards

There’s more to explore at Smartbridge.com!

Sign up to be notified when we publish articles, news, videos and more!