Introduction

Fusion Applications are being used in a controlled environment and SOA is sneaking in to E-Business Suite. So you have been talking to the experts and have decided that it is time to get some experience with Service Oriented Architecture – SOA. But you are worried about setting up SOA Suite technology stack – Weblogic, BPEL, BAM, jDeveloper, etc. along with the E-Business Suite technology stack. Here is a quick, safe, and easy way to get started in two hours or less.

All excuses for putting off connecting SOA Suite to E-Business Suite have been removed. This presentation will explain how it can be done in 2 hours, including download time, with no worries about possible conflicting technologies. There will also be a demo of how simple it is to build a useful SOA process that interfaces to E-Business Suite.

There is no longer any reason not to be experimenting with using SOA Suite with E-Business Suite. Each new version of E-Business Suite has made it easier and virtual machines have made installation of a working SOA Suite environment as easy as pushing a few buttons.

Accomplishing the SOA Suite installation is going to be done using Virtual Box which allows you to run an instance of Linux or many other operating systems as a Guest on your E-Business Suite server or a completely separate server. This instance is totally isolated from its Host. The communication between them is through the normal internet channels. There are no worries about the technology stacks interfering with each other. The SOA technology can then be created by using a SOA Suite appliance that is imported to the Virtual Box to create a Guest that has all the SOA Suite technology already installed and running.

The system that I will be using later to show how to build a simple service that interfaces with E-Business suite is using a virtual box Linux guest running on a windows 7 host. The Linux guest has both the SOA Suite and the E-Business Suite running. The more likely configuration in your testing system will be a virtual box guest running on a separate Windows or Linux server host. The latter scenario is what I will be describing hear.

Setup SOA Suite

Step 1

The first step is to install Virtual Box on a Linux server. The steps are simple.

  1. Download the required files from Server Storage section:  (1 minute) http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html VirtualBox-4.1-4.1.8_75467_rhel5-1.x86_64.rpm Oracle_VM_VirtualBox_Extension_Pack-4.1.8-75467.vbox-extpack
  2. Install Virtual Box (10 Minutes) (see Figure 1)
    Install Virtual Box
    Figure 1

Step 2

The next phase is to import the SOA Appliance. Appliances are fully configured guest instances that can include the installation of additional packages. These appliances can be exported from any virtual machine that has been created. Pre-built appliances can be downloaded and imported to a Virtual Box installation. Again, the steps are simple:

  1. Download SOA Suite appliance files: (26 minutes) – run while installing Virtual Box
    http://www.oracle.com/technetwork/community/developer-vm/index.htmlcombine.cmd

    combine.sh
    			vbox-oel5u4-soabpm-11gr1ps2bp1-oracle.vmdk.001
    			vbox-oel5u4-soabpm-11gr1ps2bp1-oracle.vmdk.002
    			vbox-oel5u4-soabpm-11gr1ps2bp1-oracle.vmdk.003
    			vbox-oel5u4-soabpm-11gr1ps2bp1-oracle.vmdk.004
    			vbox-oel5u4-soabpm-11gr1ps2bp1-oracle.vmdk.005
    			vbox-oel5u4-soabpm-11gr1ps2bp1-oracle.vmdk.006
    			vbox-oel5u4-soabpm-11gr1ps2bp1-oracle.vmdk.007
    			vbox-oel5u4-soabpm-11gr1ps2-bp1-otn.mf
    			vbox-oel5u4-soabpm-11gr1ps2-bp1-otn.ovf
    			vbox-oel5u4-soabpm-11gr1ps2bp1-root.vmdk
  2. Import Appliance
    1. Combine VM disk images (32 minutes)
      [root@localhost RMOUGVBOX]# . combine.sh
      				Combining parts into vbox-oel5u4-soabpm-11gr1ps2bp1-oracle.vmdk ...
    2. Start VirtualBox from Applications/System Tools
    3. Choose File/Import Appliance (see Figure 2)
      Choose File/Import Appliance
      Figure 2
    4. Click Choose, select the *.ovf file created in combined step above, and click Open (see Figure 3)
      Click Choose, select the *.ovf file created in combined step above, and click Open
      Figure 3
    5. Click Next to get to Settings. Configuration values can be changed here before the Import. Increasing the number of CPUs and RAM will provide increased performance of the guest. This is totally dependent on the resources available on the Host. (see Figure 4)

      Figure 4
    6. Click Import (33 Minutes)
  3. Add Extensions (2 minutes)
    1. From the VirtualBox Manager select File/Preferences and then Extensions (see Figure 5)
      From the VirtualBox Manager select File/Preferences and then Extensions
      Figure 5
    2. Click the Add Package button on the right and select the *.vbox-extpack file downloaded above and click Open. You will be asked to accept a License agreement. You have to at least scroll to the bottom in order to agree. Click OK when it is completed. (3 minutes) (see Figure 6)
      Click the Add Package button on the right and select the *.vbox-extpack file downloaded above and click Open
      Figure 6

Step 3

Start up and configure Virtual  Guest

  1. Start – The SOA Suite VirtualBox guest is now ready to start up. Just click Start. You may get a few warnings about capturing the mouse pointer. Read the warnings to understand how the capture works if it is not automatic but don’t worry about them. Sometimes by the time the system comes up, everything is resolved. If not, you may have to look into options to allow the automatic Mouse Integration so you can move in and out of the guest environment by just clicking. Otherwise you have to use the Host Key to switch in and out of the guest. The guest system will now look something like this. (3 minutes) (see Figure 7)
    The guest system will now look something like this.
    Figure 7
  2. There is a ReadMe file that you can double click to see the versions of the various software that are installed and any username/password combinations needed to access them. This version of a VirtualBox Linux machine is set up specifically for SOA development. It contains a 10.2 XE database that comes up automatically as part of the system startup to support Weblogic. It has convenient icons on the desktop to start and stop weblogic, start jDeveloper preloaded with a connection to the weblogic database and a sample application. Firefox is setup with tabs for Enterprise Manager, Weblogic Server Console, BPM Workspace, BPM Composer, and Oracle B2B Login.
  3. In order to deliver and execute SOA Suite applications weblogic server  must be up and running (8 minutes)
    1. Double-click Start/Stop WebLogic
    2. Click Start and OK
    3. Check BPM if that is desired and click OK
  4. Bring up JDeveloper ( 2 minutes)
    1. Double-click Oracle JDeveloper
    2. Choose Role
  5. Add connection to E-Business Suite (2 minutes)
    1. View/database/Database navigator
    2. Click New Connection (+)
    3. Fill in appropriate information for the E-Business Suite database. (see Figure 8 )
      Fill in appropriate information for the E-Business Suite database
      Figure 8

The default network setup should work fine for many network configurations, but there will be some that require changes to the VirtualBox networking setup. There is a lot of information on how to set up the VirtualBox networking to deal with these configurations on the web.

An additional option that can be very handy, but is not covered in detail here, is shared folder. This allows the passing of files from the virtual machine to the host by having a directory on the guest that is shared with a directory or folder on the host.

Demonstration

Now that the SOA Suite is up and running, it is time to see what can be done. The following is a demo to illustrate some of the parts of a process that might be implemented to connect to an E-Business Suite system. This is based on an actual customization I built to interface some output from manufacturing machines that needed to be loaded into E-Business Suite as move transactions. The actual implementation was done using concurrent processes that were run periodically to load data to the machines on new and updated jobs and another to load the returning data as move transactions. This demo example is implementing the same functionality but removes the need for reasonable timing of jobs on either end in order to get the information in a timely fashion. The SOA version actually polls the directory where the incoming files land for new files. When it finds one it archives and deletes them as they are processed. It parses the files to extract the information and uses an open interface web service to enter the move transactions. I won’t be building the entire thing but just the two key interfaces – file polling and open interface.

I have not shown the creation of the project here. Creating a SOA project with a Mediator process is very straight forward and you end up in the composite view with the mediator process in the middle. The first thing is to drag and drop the File Adaptor from the Component Palette onto the left side. Skip the Welcome page if it appears and enter a Service Name and click Next. (see Figure 9).

Creating a SOA project with a Mediator process is very straight forward and you end up in the composite view with the mediator process in the middle
Figure 9

Define from schema.

Just click Next to define later. (see Figure 10).

Click next to difine later
Figure 10

Choose Read File and leave the rest. (see Figure 11).

Choose read file
Figure 11

Choose Physical paths for Directories (Figure 12).

Choose Physical paths for Directories
Figure 12

Or specify logical Names (better option for flexibility). Beware of the Delete files check box. The file will be deleted as soon as it is read and before it is archived. If anything goes wrong the file is gone. (Figure 13).

Beware of the Delete files check box
Figure 13

Enter filtering information (Figure 14).

Enter filtering information
Figure 14

Poll every hour and file has been there for 10 minutes. The Minimum Age is to be sure that a file is not read before it has been completely copied into the folder (Figure 15).

Poll every hour and file has been there for 10 minutes
Figure 15

Just click Next to go on to Native Format Builder to define file record layout.

Choose the format.

Can edit an existing scheme file (Figure 16).

Click Next to go on to Native Format Builder to define file record layout
Figure 16

Easiest way is to look at an existing file (Figure 17).

Easiest way is to look at an existing file
Figure 17

Simple multiple records with single type (Figure 18).

Simple multiple records with single type
Figure 18

Provide names for the collection and the individual records (Figure 19).

Provide names for the collection and the individual records
Figure 19

Specify record and field delimiters (Figure 20).

Specify record and field delimiters
Figure 20

Enter names for each of the fields or extract from header row if it exists. I created a file with column names in the first row to speed up the demo. The actual files to be processed do not have this row (Figure 21).

Enter names for each of the fields or extract from header row if it exists
Figure 21

Test it by automatically converting to XML. Visually inspect the result to see that it is properly formed. (Figure 22).

Test it by automatically converting to XML Visually inspect the result to see that it is properly formed
Figure 22

Connect to input of Mediator activity.

Import into E-Business Suite

Drag and drop Oracle Applications BPEL Service (Figure 23)

Drag and drop Oracle Applications BPEL Service
Figure 23

Choose table from the open interface for Material Transactions. You will be asked if you want to build a local irep file that will contain the contents of the Integration Repository. Doing this will speed up subsequent usage of these integrations. Be sure to rebuild it if any changes are made to the repository (Figure 24).

Choose table from the open interface for Material Transactions
Figure 24

Choose primary key and then pic the columns that need to be inserted. There are many versions of what is required to make the interface work (Figure 25).

Choose primary key and then pic the columns that need to be inserted
Figure 25

Choose attributes to be included (Figure 26).

Choose attributes to be included
Figure 26

Set advanced  options. Notice the drop down for the sequence to use to populate the primary key (Figure 27)

Set advanced  options
Figure 27

Connect to output of mediator activity.

Open mediator activity to fill in details. Open up details by clicking + icon next to Filter Expression (Figure 28).

Open mediator activity to fill in details
Figure 28

To create mappings from the job file to the MTL Transaction record click the icon to the right of Transform Using section. Select Create New and click OK.  Drag the input values to the corresponding output value. For the transaction reference value I have used the concatenation tool from the palette (Figure 29).

For the transaction reference value I have used the concatenation tool from the palette
Figure 29

There are many other tools in the palette including one to perform queries on the database. This tool would actually need to be used to perform some of the transformations. Close the transformation tab when finished.

There are also occasions when an output value requires a constant value or an internal variable. To accomplish this click the icon to the right of Assign Values. Then click the + icon to add an assignment (Figure 30).

There are also occasions when an output value requires a constant value or an internal variable
Figure 30

Choose Constant as the From Type and enter the value. Choose expression for the To Type and click theExpression Builder Icon (Figure 31).

Choose Constant as the From Type and enter the value
Figure 31

Expand the output structure and choose the target value and click Insert into Expression. Try to imagine typing all of this correctly (Figure 32).

Expand the output structure and choose the target value and click Insert into Expression
Figure 32

Close everything up and be sure everything is saved. This process is ready to deploy and start pumping data into the interface. This is a very bare bones process that takes care of things just fine as long as everything goes without a hitch. So in a very short period of time a basic process has been created and deployed. To be fair, the easy part is done. It takes more planning and the establishment of an approach for dealing with errors to be sure that no data gets lost or double posted and the proper people are notified. So just DO IT, but be sure that these first processes are not mission critical until the exception handling and logging is well thought out.