Oracle® Application Server Adapter for SAP R/3 User's Guide
10g Release 2 (10.1.2) B14061-02 |
|
Previous |
Next |
This chapter contains the following examples:
The event and service scenarios demonstrated in this chapter require the following prerequisites and configuration steps:
Prerequisites
OracleAS Adapter for SAP deployed to Oracle Application Server.
OracleAS Database adapter deployed and configured.
Oracle BPEL PM Server properly configured and running.
Oracle JDeveloper properly installed.
Configuration Steps
The examples present all the configuration steps necessary for demonstrating service and event integration with SAP. See the following for more information:
Configure SAP for outbound processing. See Appendix A, "Configuring SAP for Inbound and Outbound Processing" for more information.
Create a J2CA configuration, as BPEL PM is only compatible with the J2CA Connector. See "Creating a Configuration for J2CA" for more information.
Configure OracleAS Adapter for SAP for services and events. See Chapter 2, "Configuring OracleAS Adapter for SAP" for more information.
This topic illustrates how OracleAS Adapter for SAP integrates with SAP to receive event data. The procedures describe design time and runtime. The example demonstrates how OracleAS Adapter for SAP integrates with SAP to receive event data. In this example, an SAP event occurs when a customer record is added to an SAP system.
The design time and runtime procedures are outlined in the following sections.
Creating a Channel
You must create a separate channel for every inbound J2CA service and select that channel when you generate WSDL for inbound interaction using Application Explorer.
Note: If more than one inbound service share the same channel, event messages will not be delivered to the right BPEL process. |
To create a channel:
Start Application Explorer and connect to a J2CA configuration.
In the left pane, expand the Events node.
Expand the SAP node.
The Ports and Channels nodes appear in the left pane.
Right-click Channels and select Add Channel.
The Add Channel dialog box is displayed.
Perform the following steps:
Enter a name for the channel, for example, SAP_Channel
.
Enter a brief description (optional).
From the Protocol list, select SAP Channel--App Server.
Click Next.
The Application Server dialog box is displayed.
In the System tab, enter the appropriate information for your SAP channel, based on the information in the following table.
Table 5-1 System Tab Parameters
Target Parameter | Description |
---|---|
Gateway host |
A host name for the SAP Gateway. |
Gateway service |
A service for the SAP Gateway. |
Program ID of the server |
An SAP program ID you want to use for this channel. |
Application Server |
A host name for the application server. |
System number |
A system number for SAP. |
Click the User tab.
For the User tab, enter the appropriate information for your SAP channel, based on the information in the following table.
Table 5-2 User Tab Parameters
Target Parameter | Description |
---|---|
Client |
The client number defined for the SAP application for client communications. |
User |
A valid user ID for the SAP application. |
Password |
A valid password for the SAP application. |
Language |
A language key. EN (English) is the default. |
Code page |
A character code page value. |
For the Advanced tab (optional), enter the appropriate information for your SAP channel, based on the information in the following table.
Table 5-3 Advanced Tab Parameters
Target Parameter | Description |
---|---|
IDoc Format |
Select an IDoc enter from the list. |
User Defined Function Modules |
Enter the path to the user-defined function module you created. |
SAP trace |
Select this check box if you want to enable SAP traces for troubleshooting purposes. |
Unicode |
Select this check box if you are expecting your response in Unicode format. |
Synchronous Processing |
Select the type of synchronous processing from the list. |
Click OK.
The channel appears under the channels node in the left pane. An X over the icon indicates that the channel is currently disconnected.
Creating an Event
After you create a channel and verify that it is not started, you must create an event using Application Explorer.
To establish a connection to the SAP system and locate DEBMAS05:
Start Application Explorer.
A list of all adapters is displayed.
Perform the following steps:
Expand the SAP node.
A list of your available targets is displayed.
Click a target name under the SAP node, for example, SAPTarget..
Verify your connection parameters.
Provide the required password.
Right-click the target name and select Connect.
The x icon disappears, indicating that the node is connected.
Expand the ALE(IDOCS) node and select DEBMAS.
The DEBMAS list is displayed.
Right-click DEBMAS05 from the DEBMAS list.
Select Create Inbound JCA Service (Event).
The Export WSDL dialog box is displayed.
Perform the following steps:
In the WSDL File Name field, specify a name and location of the WSDL file.
In the Channel field, select the channel you created for this inbound service.
Note: You must create a separate channel for every inbound service. Verify that the channel is stopped before runtime. |
Creating a BPEL PM Server Connection
Before you design an inbound BPEL process, you must create a connection to your BPEL Server using JDeveloper. To create a server connection:
Open JDeveloper.
To display the connections, click the Connections tab at the bottom of the upper left pane in JDeveloper.
The following menu is displayed.
Right-click BPEL Process Manager Server and select New BPEL Process Manager Connection.
The Create BPEL Process Manager Connection - Welcome dialog box is displayed.
Click Next.
The Create BPEL Process Manager Connection dialog box is displayed.
Specify a unique name for your BPEL Server connection and click Next.
Specify a valid host name and port number for the BPEL PM Server you wish to connect to.
Click Finish.
Your newly created server connection is displayed in the Connections tab under the BPEL Process Manager Server node.
Designing the BPEL Process for the SAP_DEBMAS05 Inbound Service
To design a BPEL process for inbound interaction:
Click the Applications tab and select a workspace for your project.
Right-click the workspace and select New Project.
The New Gallery window is displayed.
From the Items list, select BPEL Process Project and click OK.
The BPEL Process Project dialog box is displayed.
Perform the following steps:
Specify a name for the process.
The Namespace field is updated automatically.
From the Template drop-down list, select Empty BPEL Process.
Click OK.
From the Process Activities pane on the right, drag and drop a PartnerLink to the visual editor.
The Create Partner Link dialog box is displayed.
Click the WSIL browser icon (second icon from the left the WSDL File field).
The WSDL Chooser dialog box is displayed.
Expand your BPEL Server connection, then expand adapters, and then applications.
The WSDL Chooser dialog box is displayed.
Select DEBMAS05_receive.wsdl and click OK.
The Create Partner Link dialog box is displayed.
The WSDL File field displays the name and location of the selected WSDL file. The Partner Link Type field specifies the PartnerLink defined in the WSDL file.
Perform the following steps:
From the My Role drop-down list, select the default value DEBMAS05Role.
Leave the Partner Role field unspecified.
Click Apply, and then OK.
The new SAP PartnerLink appears in the visual editor.
From the Process Activities pane on the right, drag a Receive activity to the visual editor and place it in the designated placeholder labeled Drop Activity Here.
Connect the Receive activity to the SAP PartnerLink.
The Edit Receive dialog box is displayed.
Perform the following steps:
Specify a name for the Receive Activity, for example, Receive_DEBMSAS05.
Click the first icon to the right of the Variable field, then click OK in the Create Variable dialog box that is displayed.
Verify that the Create Instance check box is selected.
Click Apply.
The Receive dialog box should no longer display any warnings or errors.
Click OK.
Select Save from the File menu.
Deploying the BPEL Process for the SAP_DEBMAS05 Inbound Service
Triggering an Event in SAP
The following topic describes how to trigger an event in SAP to verify event integration using OracleAS Adapter for SAP.
To trigger an event in SAP:
Start the SAP Workbench and log in to the SAP system.
Enter the following information in the Send Customers window:
In the Customer field, enter a customer number with a range from 1 to 3.
In the Output type field, enter DEBMAS.
In the Logical system field, specify the logical system you are using with SAP.
Click the check mark icon in the upper left-hand corner.
Ensure DEBMAS appears in the Message type column.
Click the Execute button.
Customer master data is sent to the logical system specified. If a channel in Application Explorer defined the Program ID with the same value, the channel receives this customer master data from SAP.
Verifying the Results
To verify your results:
Log in to Oracle BPEL Console at
http://host:port/BPELConsole
Enter the password for your BPEL domain.
The default password is bpel
.
Click the Instances tab.
Recently received runtime events are displayed in the Instances tab.
Click the SAP_DEBMAS05 instance, then click Audit to see the received SAP_DEBMAS05 event message.
This topic illustrates SAP service integration. The procedures describe design time and runtime.
Creating a Request-Response J2CA Service in Application Explorer
Before you design a process for SAP service integration, you must generate its respective WSDL file using Application Explorer.
To generate WSDL in Application Explorer:
Start Application Explorer and connect to a defined SAP target or create a new target.
See Connecting to SAP for more information.
Expand the SAP target to which you are connected.
Expand Remote Function Modules > Financial Accounting > 0002 -- Company Code Business Object > BAPI_COMPANYCODE_GETDETAIL.
The following image shows a connected and expanded target.
Right-click the BAPI_COMPANYCODE_GETDETAIL node.
The following menu is displayed:
Click Create Outbound JCA Service (Request/Response).
The Export WSDL dialog box is displayed.
Click OK.
You are ready to design a BPEL process in JDeveloper.
Creating a BPEL PM Server Connection
Before you design an outbound BPEL process, you must create a connection to your BPEL Server using JDeveloper. See Creating a BPEL PM Server Connection for details on how to create the connection.
Creating a BPEL Project for a Synchronous BPEL Process
To create a BPEL Project for a synchronous BPEL process:
At the bottom of the upper left pane, click the Applications tab and select a workspace for your project.
Right-click the workspace and select New Project.
The New Gallery window is displayed.
From the Items list, select BPEL Process Project and click OK.
The BPEL Process Project dialog box is displayed.
Perform the following steps:
Specify a name for the BPEL process, for example, SAP_GetCCDetail.
The Namespace field is updated automatically.
From the Template drop-down list, select Synchronous BPEL Process.
Click OK.
Designing the BPEL Process for the BAPI_COMPANYCODE_GETDETAIL Outbound Service
From the Process Activities pane on the right, drag and drop a PartnerLink to the visual editor.
The Create Partner Link dialog box is displayed.
Click the WSIL browser icon (second icon from the left the WSDL File field).
The WSDL Chooser dialog box is displayed.
Expand your new server connection, then expand adapters, and then applications.
The WSDL Chooser dialog box is displayed.
Select BAPI_COMPANYCODE_GETDETAIL_invoke.wsdl and click OK.
The WSDL File field in the Create Partner Link dialog box displays the name and location of the selected WSDL file. The Partner Link Type field specifies the PartnerLink defined in the WSDL file.
Perform the following steps:
Leave the My Role field unspecified. The role of the PartnerLink is null, as it will be synchronously invoked from the BPEL process.
From the Partner Role drop-down list, select the default value BAPI_COMPANYCODE_GETDETAILRole. This is the role of the BPEL process.
Click OK.
Select Save from the File menu.
From the Process Activities pane on the right, drag an Invoke activity to the visual editor and place it between the Receive activity (receiveInput
) and the Reply activity (replyOutput
).
The Invoke process activity is shown in the diagram view.
Drag the blue arrow from Invoke_1 and connect it to the SAP PartnerLink.
The Edit Invoke dialog box is displayed.
Perform the following steps:
In the Name field, enter Get_CCDetail.
Click the first icon to the right of the Input Variable field, then click OK in the Create Variable window that is displayed.
Repeat the previous step to create a default variable for Output Variable.
Click OK.
Drag an Assign process activity and drop it between receiveInput
and Get_CCDetail
.
The following image shows the new Assign activity in JDeveloper visual editor.
Double-click the Assign activity icon.
The Assign dialog box is displayed.
In the Copy Rules tab, click Create.
The Create Copy Rule dialog box is displayed.
In the From pane, expand Variables, then inputVariable, and then highlight payload.
In the To pane, expand Variables, then GetCompanyDetail_BAPI_COMPANYCODE_GETDETAIL_InputVariable, and then highlight input_BAPI_COMPANYCODE_GETDETAIL.
Your Create Copy Rule dialog box should look as follows:
To close the Create Copy Rule dialog box and the Assign dialog box, click OK.
From the Process Activities pane on the right, drag another Assign activity to the visual editor and place it between the Invoke activity (SAP_GetCCDetail
) and the Reply activity (replyOutput
).
Double-click the Assign activity icon and click Create.
Map Get_CCDetail_BAPI_COMPANYCODE_GETDETAIL_OutputVariable > output_BAPI_COPMANYCODE_GETDETAIL to outputVariable > payload.
Verify that you have mapped all variables as follows:
Click OK, then click OK again.
Select Save from the File menu.
You have completed the design of your BPEL process.
Deploying the BPEL Process for the BAPI_COMPANYCODE_GETDETAIL Outbound Service
JDeveloper deploys the outbound BPEL process for BAPI_COMPANYCODE_GETDETAIL directly to Oracle BPEL Console.
To deploy your BPEL process in JDeveloper:
Right-click your process flow in the Applications - Navigator pane.
Select Deploy > Your BPEL PM Server connection > Deploy to default domain.
The Password Prompt dialog box is displayed.
Enter your BPEL Process Manager password in the Password Prompt dialog box.
The deployment process starts automatically after you enter the correct password.
Observe the Messages log on the bottom of the window.
The Messages log displays the deployment status. In this example, it shows a successful deployment message for the process.
If deployment was not successful, click the Compiler tab to view all error and warning messages generated during the deployment process.
To invoke the BAPI_COMPANYCODE_GETDETAIL process from Oracle BPEL Console:
Start the Oracle BPEL Console by entering the following URL in a browser:
http://host:port/BPELConsole
Select a domain and provide a valid password.
The Oracle BPEL Console main page is displayed.
The Initiate tab enables you to test your BPEL process.
Perform the following steps:
From the Initiating a test instance drop-down menu, select XML Source.
Enter the following code in the text area provided for XML input:
<?xml version="1.0" encoding="UTF-8"?> <CompanyCode.GetDetail SERVICENAME="CompanyCodeGetDetail" METHODNAME="BAPI_COMPANYCODE_GETDETAIL" LICENSE="test" CompanyCodeId="1000"/>
Click Post XML Message.
The response received from the SAP system is displayed in the Initiate window.