This post is part of a series on building a modern web-based interface for E-Business Suite using Oracle ADF with Oracle Service Bus providing services between EBS and the front end.
Our (imaginary) client wants a new, modern, web-based Sales Order Entry application. It needs to integrate with Oracle E-Business Suite R12. It also needs to have good performance. It will be used in many branches, spread right across the country. Some of these branches have fast dedicated connections, but some are using slower connection speeds.
The majority of customers who come to branches are account customers, who place an order against their account and will be invoiced after the time of sale.
The application will allow the creation and entry of Sales Orders. All lookup fields, e.g. Customer Name, Address, Product Details, etc., are fetched from Oracle E-Business Suite and presented to the user in a “auto-suggest” drop down when they start typing in the fields.
When a user connects to the Sales Order Entry system, they will be presented with the main screen (see below).
From this screen, the user can select to:
- Create a new Sales Order,
- Search for (and modify) an existing Sales Order, or
- Lookup Product Details.
If the user selects Create a new Sales Order, they are sent to the Sales Order Entry screen (see below). This screen is the heart of the application. It is where the user will enter details of the Sales Order.
The top half of the screen is to do with the Sales Order Header. It includes details about the customer, ship to and bill to addresses, the sales person, freight charges, delivery dates and so on.
The lower half of the screen contains the Lines that make up the Sales Order. Users can add additional lines, or remove lines if they wish to. Each line contains details about the product, quantity, pricing, requested and promised shipping details and so on.
Many of the fields on this screen will have “auto suggest” behaviour. This means that suitable values will be suggested to the user in a drop down box as they type data into the field, as shown below. As more data is typed into the field, the list of suggestions is dynamically adjusted. This kind of behaviour is commonly seen on web sites today, for example Google use it on their main search page.
The user should complete the top half of the page, then select Save from the Order menu. At this point, a Sales Order Header should be created in Oracle E-Business Suite. The user will then add lines to the Sales Order. When they are done, they will select Book from the Order menu. At this point, the Sales Order Lines should be created in Oracle E-Business Suite and the Sales Order should be booked.
Integration with Oracle E-Business Suite
There are several points of integration with Oracle E-Business Suite required for this application. These are listed below. As part of the example, you will be figuring out how to go about doing this integration.
E-Business Suite Integration Requirements
|Reference||E-Business Suite object||How used|
|Customer Account||The customer field in the Sales Order Header is populated from the Customer Accounts.|
|Site||The Ship To and Bill To fields in the Sales Order Header are populated from the Sites.|
|Sales Person||The Sales Person field in the Sales Order Header is populated from the Sales People.|
|Item||The Part Number, Unit of Measure and other fields are populated from the Item Master.|
|Price||The Price is obtained from E-Business Suite to ensure all of the pricing rules, discounts, agreements, etc. are applied. Note that the Price for an Item depends on the Customer and the Order Date.|
|Sales Order Header||The details entered in the User Interface are used to create the Sales Order Header in E-Business Suite. The order will be created and booked based on various actions in the User Interface.|
|Sales Order Line||The details entered in the User Interface are used to create Sales Order Lines in E-Business Suite.|
|Organisation||The Branch is populated from the Organisations.|
Oracle Service Bus Requirements
There are two key requirements to be addressed by the Oracle Service Bus in this project:
- Hide the complexity of the E-Business Suite interfaces.
Many of the interfaces that you will need to use are complex, have many input and output parameters, several layers of structure, and in some cases you may need to call more than one interface to get the data you need. You should use the Oracle Service Bus to hide all of this complexity from the User Interface developer, and present nice, clean services to them for use in building the User Interface.
- Improve performance by caching frequently used data.
Oracle Service Bus 11g introduced a feature called Service Result Caching which allows you to easily cache the results of a service call for later use. You should use this feature to improve the performance of your services and therefore the User Interface as well.
What you will need to build the example
To build the example, you will need the following:
- Oracle E-Business Suite R12.1 with the 12.1.3 patch installed and Integrated SOA Gateway enabled, plus some data. We used and recommend the ‘Vision’ database that comes with the Rapid Install Wizard.
- Oracle Service Bus 126.96.36.199 or later – we used 188.8.131.52. This installation will include Oracle WebLogic Server and ADF.
- Oracle JDeveloper 184.108.40.206 or later – we used 220.127.116.11 – for building the ADF application.
We ran all of this in a VM running Oracle Linux 5.5. Everything is 64-bit.
The next post in this series (coming soon) will discuss how we find and expose the necessary functionality in E-Business Suite.
This example builds on work done by many people over a period of time. I woudl like to acknowledge the contribution of the following people (in alphabetical order): Jasper Chu, John Graves, Victor Luo, Pieter Malan, Tanya Williams, Devon Winkworth, Joey Wong, Brenda Yin, Raymond Zhang and Rade Zheng.