This OBE tutorial describes and shows how to use Oracle BPEL PM with Oracle E-Business suite. It shows how to:
This OBE leverages AppsAdapter Tutorial shipped with SOA suite
Approximately 1½ hour
This OBE tutorial covers the following topics:
Place
the cursor over this icon to load and view all the screenshots for this tutorial.
(Caution: Because this action loads all screenshots simultaneously, response
time may be slow depending on your Internet connection.)
Note: Alternatively, you can place the cursor
over each individual icon in the following steps to load and view only the screenshot
associated with that step.
Oracle Adapters for Oracle Applications provides comprehensive bi-directional integration with Oracle Applications and supports all recommended interfaces. , i.e., (i) interface tables; (ii) Concurrent programs; (iii) Business events; (iv) XML gateways; (v) EDI gateway; (vi) PLS/SQL APIs; (vii) Web servies.The Adapter supports for all modules of Oracle Applications in Release 12 and Release 11.5.1 to 11.5.10, as well as supports for custom integration interfaces with reference to various versions of Oracle E-Business Suite including Release 12, Release 11i10, and pre-Release 11i10. It also simplifies design-time experience and promotes rapid development.
This Sample shows how to propagate Sales Order using BPEL PM and e-Business Suite interface tables, and Concurrent program. It then deletes the Sales Order placed from the base table using PL/SQL APIs.
Before you perform this tutorial, you should:
|
1. |
Set up the wrapper package on target Database (The database on which you intend to run this sample) by executing the following script. For the purpose of the lab, this step can be skipped as the wrapper package has already been created. Open a command prompt window, navigate to the directory where you have installed the Oracle E-Business Suite files, and execute the following command: [ORACLE_HOME]/samples/tutorials/150.AppsAdapter/OrderImportConcurrentProgram/bpel/XX_BPEL_FND_REQUEST_SUBMIT_REQUEST.sql as APPS/APPS. [ORACLE_HOME] - The directory where you installed Oracle E-Business Suite |
|
2. |
Start the SOA Suite instance and log into Enterprise
manager. http://localhost:8888/em Note: In this case, the HTTP port used is 8888 (default). Log in to the Enterprise Manager by providing the user name as oc4jadmin and the password as welcome1 (or the one you provided at the time of the Oracle Application Server installation) . |
|
3. |
Create a connection pool and a data source to be able to connect to the database. |
|
a. |
In Oracle Enterprise Manager Application Server Control, click the Home link . |
||||||||||||||||
|
b. |
In the home OC4J instance page, select the Administration link.
|
||||||||||||||||
|
c. |
From the list of available administration tasks, click the Go To Task icon for the Services > JDBC Resources task.
|
||||||||||||||||
|
d. |
In the Connection Pools section, click the Create button.
|
||||||||||||||||
| e. |
In the Create Connection Pool - Application, accept default values and click Continue. You create a new connection pool for this tutorial.
|
||||||||||||||||
| f. |
Enter the following information in the Create Connection Pool form (leave defaults for the the fields not specified here): Replace the DB hostname, SID/Service name, username and password as appropriate to the Database you are trying to access to perform tasks in this tutorial.
After entering the above details, click the Test Connection button.
In the Test Connection window, click Test button to test the connection with the sample SQL statement.
Activate the Create Connection Pool window and observe the successful connection message. . If you get an error message, check the URL and credentials to ensure you've entered the right information. Click Finish.
Observe the message that the ebiz_pool connection has been created. Also, observe the ebiz_pool entry in the Connection Pools section.
|
||||||||||||||||
| g. |
Now, create a Data Source. In the JDBC Resources page, click Create button under the Data Sources section.
|
||||||||||||||||
| h. |
In the Create Data Source - Application & Type page, accept default values and click Continue. You are going to create a Managed Data Source. This data sources uses OC4J connection pooling capability and hence the connection pool created in the step above can be used in this case.
|
||||||||||||||||
| i. |
In the Create Data Source - Managed Data Source page, enter details for
the data source as shown in the following table. After entering the above
details, click Finish.
Observe the confirmation that the data source ebizDataSource has been created. Also observe the entry in the Data Sources section.
|
||||||||||||||||
|
4. |
Create an Oracle Applications adapter connection. This connection is needed to propagate sales order information to E-Business suite. |
||||||||||||||||
|
a. |
In the Oracle Application Server Control page, select the Cluster Topology breadcrumb link at the top of the page. .
|
||||||||||||||||
|
b. |
Under the Members section > View By drop down list, select Applications to view all the applications in the OC4J home instance. . In the expanded tree of applications, click the link of the default application.
|
||||||||||||||||
| c. |
Under the Modules section, click the link corresponding to the AppsAdapter resource adapter module.
|
||||||||||||||||
| d. |
On the Resource Adapter: Oracle Applications Adapter page, select the Connection Factories link.
|
||||||||||||||||
| e. |
Under Connection Factories, click Create. (You want to use the create button near the top of the screen, not the one in the Shared Connection Pools section.)
|
||||||||||||||||
| f. |
In the Create Connection Factory: Select Interface page, accept default value for the Connection Factory Interface and click Continue.
|
||||||||||||||||
| g. |
In the Create Connection Factory page, enter eis/Apps/appsSample as the JNDI Location. In the Configuration Properties, enter jdbc/ebizDataSource as value for xADataSourceName. Accept default values for all other fields. Click Finish.
Observe the confirmation message that the connection factory has been created.
|
||||||||||||||||
| h. |
Restart SOA Suite: First go to Start > All Programs > [Oracle_Home] > Stop SOA Suite.
After viewing the message, now select Start > All Programs > [Oracle_Home] > Start SOA Suite. |
| 5. |
In this step, you deploy a pre-packaged BPEL process. This process reads a sales order from a pre-configured XML file through an adapter and propagates that oder through AppsAdapter to E-Business Suite |
| a. |
Restart SOA Suite: Go to Start > All Programs > [Oracle_Home] > Stop SOA Suite.
After viewing the message, now select Start > All Programs > [Oracle_Home] > Start SOA Suite.
|
| b. |
Access the AppsAdapter sample tutorial under [ORACLE_HOME] directory structure where you installed the SOA Suite. To achieve this task, navigate to [ORACLE_HOME]\bpel\samples\tutorials\150.AppsAdapter\OrderImportConcurrentProgram\bpel folder. Right click on the bpel.xml file and select Edit to edit this xml file. |
| c. |
Edit bpel.xml to specify the physical directory for the File Adapter - synchronous read operation. Ensure that the code segment related tot he getOrderDetails entry has the LogicalDirectory entry set to the folder path where your AppsAdapter samples are installed, as shown below. (this path may be different for you depending on the directory where you installed your SOA suite. For example, replace c:\SOASuite10131 with the folder where you installed your SOA suite.)
|
| d. |
After making changes to the bpel.xml file as necessary, you need to compile and deploy the BPEL process. To perform this task, go to start > All Programs > Oracle_SOA > Oracle BPEL Process Manager > Developer Prompt.
This opens up a command prompt window. In the command prompt window. |
| e. |
In the command prompt window, change directory to the folder where the build.xml of the OrderImportDemo project is present. The following screenshot shows a possible path to the directory.
Then run the obant command to compile and deploy the BPEL process. Observe the message that the Build is successful. (Note that the following screenshot shows only partial message that you see during the compile/deploy process)
|
| f. |
Edit the order_data.xml file. Open this file from the directory structure [BPEL_samples]\150.AppsAdapter\OrderImportConcurrentProgram\inputDir folder. Right click on the order_data.xml file and select Edit.
Find and replace all the three occurrences of "order_id_01" with a non-default value. For example: 123456. (Note: You need to do this because there might already be an order with that particular orderid within E-Business Suite.) Save the file
|
| g. |
Go to BPEL Console and initiate the process by supplying a dummy string
as input. In a browser window, provide the URL of the format http://<host>:<port>/BPELConsole
(The default port is 8888) The default login userid=bpeladmin passwd=welcome1 Select the OrderImportDemo link from the Deployed BPEL Processes list under the Dashboard or the BPEL Processes tab.
|
| h. |
In the Initiate section, provide dummy as the value to initiate a test instance and click the Post XML Message button.
Observe the message that the Test instance is initiated and that the instance is being processed asynchronously. Click to view the Visual Flow diagram.
|
| i. |
The resulting visual flow diagram shows the successful invocation of the Open Interface and Concurrent Program services.
You can go to Audit tab and click View Raw XML link to view the XML file that is generated for the specific instance.
A snippet of the resulting XML file is shown below. Observe the order ID value 123456 that you provided in a previous step.
|
|
6. |
Navigate to Oracle Applications Forms to check the status of the Concurrent Program execution. |
|
7. |
You can verify whether the purchase order has successfully been created, by using Oracle Applications Forms. To perform this task, follow the instructions given below: |
| a. |
Open any Internet browser and enter the URL where your Oracle Applications is installed. The URL will be in the form of http://<hostname where Oracle Applications is installed>:<port>. Default port number to be used is 8000. Click the Apps Logon Links link to login to Oracle E-Business Suite. Provide appropriate username and password to login to the page.
Click the E-Business Home Page link.
Login using username and password as appropriate to your E-Business suite installation. |
| b. |
Scroll down the list of responsibilities available in the Navigator section, and click the responsibility Order Management Super User, Vision Operations (USA). Then select Sales Order from the resulting pane (as shown in the highlighted selection of the second frame of the screenshot). Note: Your screen may show more values than shown in the following screenshot where some portions of the screen are stripped out.
|
| c. |
The above step opens up one Oracle Applications 11i browser window that shows a message asking you not to close the window and a Oracle Applications - Vision window that contains the Order Management Super User, Vision Operations (USA) Navigator form and the Sales Orders - [New] form. Observe that the Order Returns-->Sales Order form is active now.
|
| d. |
In the Sales Order form press F11 to enable search for any Order. In the Customer PO field enter value order_id_01 (order id present in the orders xml file) and press CTRL+F11 keys. Details of newly created order with Order id = 'order_id_01' could be
seen.
|
| e. |
Press on the Line items tab. Verify the quantity and item type of the order is same as that present in the raw xml data that was generated while the BPEL process was tested with an initiator in step 5i above.
|
In this section, you query and delete a sales order through the DeleteOrder BPEL process. You use JDeveloper to connect to Oracle E-Business Suite and perform this task. This BPEL process has the following activities:
|
1. |
If you haven't already done so, start the BPEL server process. Restart SOA Suite: Go to Start > All Programs > [Oracle_Home] > Stop SOA Suite. After viewing the message, now select Start > All Programs > [Oracle_Home] > Start SOA Suite. |
|
2. |
Launch Jdeveloper and create a connection to E-Business Suite using the apps schema.
|
| a. |
In JDeveloper select the Connections tab (choose View > Connection Navigator if it's not displayed). Right click on Database and select New Database Connection to open the database wizard.
|
| b. |
Enter appropriate values to connect to your database. This tutorial uses Connection name as ebiz and username and password as apps. The following screenshots show the Database connection creation process. .
If you received an error when you test the connection, verify your database hostname, port, and SID to make sure they are accurate. When the connection is successfully created, you view an entry for ebiz in the Database connection navigator as shown in the following screenshot.
|
The first configuration task is to create a new BPEL project. To perform this task, execute the following steps:
|
1. |
Open Oracle JDeveloper BPEL Designer. Activate the Applications Navigator tab. Right click on the Applications node and select New Applications. .
Provide name of the application as BPEL_eBuz. Click OK.
Do not create the Project file yet. Click Cancel.
|
| 2. |
Now, create a BPEL Process project. To achieve this task, perform the following steps: Right click on BPEL_eBuz node in the Application Navigator and select New.
In the New Gallery dialog box select Projects from the General Categories section and select BPEL Process Project from the Items section. Click OK.
|
| 3. |
The BPEL Process Project dialog box is displayed.
|
| a. | Select Asynchronous BPEL Process as
the template and click Finish. |
| b. |
Observe that a BPEL Process project by name OrderImportDemo has been created in the Applications section and view the OrderImportDemo.bpel visual process flow diagram.
|
This "Delete Order" AppsAdapter service will be used to delete a sales order from E-Business Suite.
|
1. |
From Component Palette, select Services from the drop down list.
Click and drag a PartnerLink onto the Services area in the OrderImportDemo.bpel visual process flow diagram.
|
|
2. |
In the Create Partner LInk window click the Define adapter services icon in the WSDL Settings section.
|
| 3. |
In the Adapter Configuration Wizard, click Next for the Welcome screen. Select Oracle Applications as the Adapter you would like to configure. Click Next.
|
| 4. |
In step 2, name the service as DeleteOrder and provide description as Deletes an existing order from E-Business suite and click Next.
|
| 5. |
In Step 3, select the database connection for your applications that you created earlier in this tutorial and click Next.
|
| 6. |
In the Oracle Applications Module Browser window, navigate to the Delete
Order entry through this path: Click OK.
|
| 7. |
In the Adapter Configuration Wizard step 4, select DELETE ORDER API and click Next.
With this step, you finished defining Oracle Application Adapter Service called DeleteOrder. Click Finish to complete the process. |
| 8. |
You are now returned to the Create Partner Link window, populated with WSDL Settings information based on the adapter you created in the previous steps. Click OK.
Now return to the BPEL Designer and observe that DeleteOrder is now available as a service.
Save all your work by . |
| 9. |
From the Component Palette, select Process Activities from the drop down list and then select the Invoke activity.
Drag the Invoke activity to the OrderImportDemo.bpel visual process flow diagram beneath the receiveInput activity.
|
| 10. |
Drag the Invoke activity's connector to the Oracle E-Business Suite DeleteOrder partnerlink. (Hold the right arrow button and drag it to the DeleteOrder icon)
In the Edit Invoke dialogue box, enter CallDeleteOrder as the name of the activity. Click the Automatically Create Input Variables button to select the input variable and similarly for the output variable.
Observe that the Input Variable and Output Variable fields are populated. Click OK. |
|
11. |
Drag and drop an Assign Activity from the Component Palette and drop in the flow before the CallDeleteOrder activity.
|
| 12. |
Double click on the Assign_1 activity to set the values as follows for setting the input value for the CallDeleteOrder invoke activity. On the General tab, provide name as AssignDeleteOrder. On the Copy Operation tab, select the Copy operation from the Create option drop down list.
|
| 13. |
In the Create Copy Operation window: in the From section expand the Variables node - Variables > Process > Variables > inputVariable > payload > client:OrderImportDemoProcessRequest > client:input In the To sections expand the Variables node - Variables > Process > Variables > CallDeleteOrder_DeleteOrder_InputVariable > InputParameters > ns2:InputParameters >ns2:P_HEADER_ID Click OK.
Click OK. |
Now compile the BPEL Process and deploy it in your local server. To complete this task, perform the following steps:
|
1. |
In the Application Navigator, expand the BPEL_eBuz application and right click on the OrderImportDemo node. Select Make to compile the application.
Right click on the OrderImportDemo node and select Deploy > BPEL Process Deployer... from the menu to deploy the application.
|
|
2. |
In the BPEL Process Deployer window > Integration Server Connection, click New to create a new Integration Server connection.
In Step 1, provide Connection Name as SOA. Click Next.
In step 2, click the Configure a new application server icon to create a new application server connection.
In the Create Application Server Connection wizard window, provide Connection Name as ApplicationServerConnection and select Oracle Application Server 10g 10.1.3. as Connection Type. Click Next.
Provide username and password that is appropriate for your SOA Suite installation. Click Next.
Ensure that the hostname and port are accurate and click Next.
Test the Connection and click Finish. Ensure that the status is Success. Otherwise, verify your connection details and test the connection again.
With this step, you completed creating an application server instance connection. Now, control returns to Step 2 of the Create Integration Server Connection window. Click Next. In Step 3, Click Test Connection to ensure that the connection is successful. Click Finish.
Now the control returns to the BPEL Process Deployer window. Click Ok.
In the Deployment Properties window, click OK. The version will be different if you tried deployment of this application for more than one time.
View the Apache Ant - Log window to make sure that the deployment is successful. Save all your files in Oracle JDeveloper.
|
| 3. |
Open a browser window and view the BPEL Console (http://<hostname>:8888/BPELConsole or Start > All Programs > Oracle SOA Suite > Oracle BPEL Process Manager > BPEL Control) to verify that the process OrderImportDemo is available as one of the deployed BPEL Processes on the BPEL server. Click OK.
|
Lets look for an existing Sales Order in Oracle E-Business suite.
|
1. |
Login to your Oracle Applications instance > Oracle
E-Business Suite, using login name as operations/welcome.
|
|
2. |
We query for existing Orders. Click on Cust Name and click F11. When the fields turn blue in color, enter Business World in the Cust Name field and press CTRL - F11. The form is now populated with information corresponding to customer Business World. Also observe there is a line item corresponding to this customer entry. If you do not see a line item, us the up and down arrow keys on your key board to select an Order that contains at least one line item.
The above screenshot shows an order with Order ID 57686 in the system.
You may find a different order. |
| 3. |
Now find out the corresponding header_id for the Order selected in the step above. We require header_id because Order Management works on internal values. Typically Order number is provided by the external systems and there is a possibility that there can be two Sales Order with the same Order Number(coming from two different companies). In JDeveloper, go to Tools > SQL Worksheet. Select ebiz as the database connection from the Select Connection window. This is the database connection you created in an earlier step in this tutorial.
In the ebiz window, enter the following SQL statement and click the Execute SQL Statement button to execute the command. SELECT * FROM oe_order_headers_all
Observe that the header_id value for order number 57686 is 104550. |
Test a BPEL process from the BPEL Console by invoking an instance of the BPEL process and using the built in test client.
|
1. |
Open a new Internet browser and enter the following URL in the address bar to log into the Oracle BPEL Console: http://localhost:8888/BPELConsole If not already logged in, log in to the BPEL Control by providing the user name as oc4jadmin and the password as welcome1 (or the one you provided at the time of the Oracle SOA Suite installation). |
|
2. |
Click on OrderImportDemo link and in the Initiate tab, provide the Order ID you identified in a previous step, in the input parameter field. click Post XML Message.
View the message that the instance has been successfully processed asynchronously. Click the Visual Flow diagram to view the visual flow of the BPEL process diagram.
|
| 3. |
Now, lets verify what the result from the API that actually performs action on the sales orders will be. Click the CallDeleteOrder activity to delete the order with the order ID supplied in the test instance.
|
| 4. |
In the Activity Audit Trail window, observe the highlighted message that shows status of the delete action. In this tutorial example, observe the message data OE_PC_DELETE_VIOLATION with message reason as Order has been booked. This message indicates that there is a delete violation constraint defined on the order table and hence this order cannot be deleted. Since the specified order has already been booked, it cannot be deleted and hence the above constraint is raised. <X_RETURN_STATUS> E <X_RETURN_STATUS> <X_MSG_COUNT>1<X_MSG_COUNT> <X_MSG_DATA> ONT$#0; OE_PC_DELETE_VIOLATION ....
Conclusion: The above is a valid error message from the Order management system. If an Order has been booked then you can't delete it. Try to delete another order. However, if your order with the specified order ID is not yet booked, it can be deleted from the sales order related tables and hence you will see a message that it has been deleted. A successful deletion message would appear as shown in the following screenshot: <X_RETURN_STATUS> S <X_RETURN_STATUS> <X_MSG_COUNT> 0 <X_MSG_COUNT> <X_MSG_DATA xsi:nil= TRUE ...
If you got the above message that the deletion is successful, go back to Oracle Applications and search your order number for the line item that you deleted. This process proves the capability of the E-Business adapter to invoke
a PL/SQL API as a Service inside the BPEL flow. |
In this lesson, you learned how to:
| Deploy and run a BPEL Process to create a Sales Order into E-Business suite. | ||
| Query and Delete a Sales Order using E-Business adapter feature of a BPEL Process | ||
Place the cursor over this icon
to hide all screenshots.