| Oracle® Application Server Adapter for MySAP ERP User's Guide 10g Release 3 (10.1.3.4.0) Part Number E14196-01 |
|
|
View PDF |
OracleAS Adapter for MySAP ERP integrates seamlessly with Business Process Execution Language (BPEL) Process Manager to facilitate Web service integration. Oracle BPEL Process Manager is based on the Service-Oriented Architecture (SOA). It consumes adapter services exposed as Web Service Definition Language (WSDL) documents.
This chapter includes the following topics:
Overview of Adapter Integration with Oracle BPEL Process Manager
Invoking Adapter Request-Response Service from Oracle BPEL Process Manager
To integrate with Oracle BPEL Process Manager, OracleAS Adapter for MySAP ERP must be deployed in the same OC4J container as Oracle BPEL Process Manager. The underlying adapter services must be exposed as WSDL files, which are generated during design time in Oracle Application Server Adapter Application Explorer (Application Explorer) for both request-response (outbound) and event notification (inbound) services of the adapter. See "Generating WSDL (J2CA Configurations Only)" for more information.
The generated WSDL files are used to design the appropriate BPEL processes for inbound or outbound adapter services. A completed BPEL process must be successfully compiled in JDeveloper and deployed to a BPEL server. Upon deployment to the BPEL server, every newly built process is automatically deployed to the Oracle BPEL Console, where you run, monitor, and administer BPEL processes, and listen to adapter events.
When using the adapter with Oracle BPEL Process Manager installed on OracleAS Middle Tier, your middle-tier BPEL PM home directory is OC4J_BPEL, located as follows:
OracleAS_home\j2ee\OC4J_BPEL
See Also:
Oracle Application Server Adapter Concepts
Oracle BPEL Process Manager Developer's Guide
During installation, OracleAS Adapter for MySAP ERP is deployed as a J2CA 1.0 resource adapter within the OC4J J2CA container. The adapter must be deployed in the same OC4J container as Oracle BPEL Process Manager.
See Also:
Oracle Application Server Adapter ConceptsThe following tools are required to complete your adapter design-time configuration:
OracleAS Adapter Application Explorer (Application Explorer)
Oracle JDeveloper BPEL Designer (JDeveloper) or Eclipse
Note:
The examples in this chapter demonstrate the use of JDeveloper.Before you design a BPEL process, you must generate the respective WSDL file using Application Explorer. See "Generating WSDL (J2CA Configurations Only)" for more information.
The purpose of an XML namespace is to allow the deployment of XML vocabularies (where element and attribute names are defined) in a global environment and to reduce the risk of name collisions in a given document when vocabularies are combined. Qualified namespaces are used for stricter schema validation. In documents conforming to this specification, element and attribute names appear as qualified names. Syntactically, they are either prefixed names or unprefixed names. An attribute-based declaration syntax is provided to bind prefixes to namespace names and to bind a default namespace that applies to unprefixed element names. These declarations are scoped by the elements on which they appear so that different bindings may apply in different parts of a document. Processors conforming to this specification must recognize and act on these declarations and prefixes.
In the 10.1.3.1.0 SOA release, the recommendations for BPEL integrations is to perform stricter name space validations. As a result, Application Explorer generates Web services for the back-end with the namespace marked as “Qualified”. During testing or usage phases of this service by BPEL, the request XML document that is used should adhere to the schema and WSDL document. Once again, it is important to remember that the namespaces are qualified. To further understand this point, the difference is illustrated with the following example:
Input XML for BPEL based on unqualified namespaces:
<?xml version="1.0" encoding="UTF-8"?><CompanyCode.GetDetail><COMPANYCODEID>1000</COMPANYCODEID></CompanyCode.GetDetail>
Input XML for BPEL based on qualified namespaces:
<?xml version="1.0" encoding="UTF-8"?><bapi:CompanyCode.GetDetail xmlns:bapi="urn:sap-com:document:sap:business" CompanyCodeId="1000"></bapi:CompanyCode.GetDetail>
Note: If you are passing an unqualified input against a WSDL document that is expecting qualified namespaces, BPEL will throw the exception as “Unable to process input xml...."
An outbound BPEL process consists of PartnerLink, Invoke, and Assign process activities. You must first create a new Application Server connection, Integration Server connection, and a synchronous BPEL process template.
Create a New Application Server Connection
To create a new Application Server connection:
Display the connections by clicking the Connections Navigator tab at the top of the upper left pane in JDeveloper.

Right-click Application Server and select New Application Server Connection.
The Create Application Server Connection - Welcome dialog box is displayed.
Click Next.
The Create Application Server Connection - Step 1 of 4: Type dialog box is displayed.

Specify a unique name and select a connection type for your Application Server connection and click Next.
The Create Application Server Connection - Step 2 of 4: Authentication dialog box is displayed.

Specify a valid user name and password for the Application Server you wish to connect to.
Select Deploy Password.
Click Next.
The Create Application Server Connection - Step 3 of 4: Connection dialog box is displayed.

Select the Single Instance connection option.
Enter localhost as the host name and 6003 for the OPMN port.
Enter home as the OC4J instance name
Click Next.
The Create Application Server Connection - Step 4 of 4: Test dialog box is displayed

Click Test Connection.
When the test is complete and the connection is successful, a Success! message appears in the status area.
Click Finish.
Your newly created Application Server connection is displayed in the Connections Navigator tab under the Application Server node.

Create a New Integration Server Connection
To create a new Integration Server connection:
Display the connections by clicking the Connections Navigator tab at the top of the upper left pane in JDeveloper.

Right-click Integration Server and select New Integration Server Connection.
The Create Integration Server Connection - Welcome dialog box is displayed.
Click Next.
The Create Integration Server Connection - Step 1 of 3: Name dialog box is displayed.

Specify a unique name and click Next.
The Create Integration Server Connection - Step 2 of 3: Connection dialog box is displayed.

Select an Application Server connection, which is already created.
Enter localhost as the host name and 8888 for the port number.
Select Add host name to the list of proxy exceptions and click Next.
The Create Integration Server Connection - Step 3 of 3: Test Connection dialog box is displayed.

Click Test Connection.
When the test is complete and the connection is successful, a Success! message appears in the status area.
Click Finish.
Your newly created Integration Server connection is displayed in the Connections Navigator tab under the Integration Server node.

Testing Outbound BPEL and ESB Processes
The BPEL console enables the testing of deployed BPEL processes. Once a process is deployed, you can manage, monitor, and run an end-to-end scenario using the Initiate tab in the console. The OracleAS Adapter for MySAP ERP is certified for testing using the XML Payload option and the option of running using Through Java Delivery API. It is recommended that developers use this method for testing the OracleAS Adapter for MySAP ERP.
When testing an outbound BPEL process from the BPEL console or an outbound ESB process from the Enterprise Manager console, do not use the XML envelopes that are generated by these consoles. Instead, remove them and use the XML payloads that are generated from the schemas, which conform to the WSDLs for namespace qualifications.
The ESB data flows can be tested using the Enterprise Manager console. When creating an ESB data flow and interactions, the Web services are created and registered with the Oracle Application Server. For more information on creating an ESB outbound process, see Chapter 6, "ESB Integration Examples".
This example demonstrates SAP service integration. It describes design-time, followed by run-time configuration.
Before you design a process for SAP service integration, you must generate its respective WSDL file using Application Explorer.
Generating WSDL for Request/Response Service
Perform the following steps:
Start Application Explorer and connect to a defined MySAP ERP target (a J2CA configuration).
See "Defining a Target to MySAP ERP" for more information on defining a target and connecting to MySAP ERP.
Expand the MySAP ERP target to which you are connected.
Expand Remote Function Modules, Financial Accounting, 0002 -- Company Code Business Object, and then select 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 can now design a BPEL process in JDeveloper.
Creating a BPEL PM Server Connection in JDeveloper
Before you design an outbound BPEL process, you must configure a new Application Server and Integration Server connection in Oracle JDeveloper. For more information, see Chapter 5, "Integration with Oracle BPEL Process Manager".
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 Navigator tab and select an application for your project. If an application does not exist, then you must create a new application.
Right-click the application and select New Project.
The New Gallery window displays a list of available items.

From the Items list, select BPEL Process Project and click OK.
The BPEL Project Creation Wizard - Project Settings 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 list, select Synchronous BPEL Process.
Click Next.
The following BPEL Project Creation Wizard dialog box is displayed.

Review the input and output schema elements that are created by the BPEL Project Creation Wizard and click Finish.
Designing the BPEL Process for BAPI_COMPANYCODE_GETDETAIL
From the Services pane on the right, drag and drop a PartnerLink to the visual editor.
The Create Partner Link dialog box is displayed.

Click the Service Explorer icon (second icon from the left preceding the WSDL File field).
The Service Explorer dialog box is displayed.

Expand your new connection under Adapter Services, followed by adapters, and then applications.
The WSDL tree displayed in the Service Explorer dialog box lists any WSDL files you have created using Application Explorer. The WSDL tree is generated by a WSDL servlet, which is automatically deployed as part of the BPEL Server installation.

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 list, select the default value 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.

Extend a connection between the Invoke activity and your newly-created 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 SAP_GetCCDetail.
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 Operation tab, click Create and select Copy Operation.
The Create Copy Operation dialog box is displayed.
In the From pane, expand Variables, then inputVariable, and then highlight payload.
In the To pane, expand Variables, then Invoke_1_GetDetail_InputVariable, and then highlight input_GetDetail.
Your Create Copy Operation dialog box should look as follows:

To close the Create Copy Operation 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 Invoke_1_GetDetail_OutputVariable, output_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 this BPEL process.

Deploying the BPEL Process for BAPI_COMPANYCODE_GETDETAIL
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, then Your BPEL PM Server connection, and then Deploy to default domain.
Observe the Messages log at 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.
The OracleAS Adapter for MySAP ERP request-response service is used to create, delete, update, and query back-end data, and to call back-end workflows and transactions. The following section describes how to invoke the adapter synchronous request-response service, also referred to as Outbound Interaction, and how to manage the process in Oracle BPEL Console.
Manage the Deployed Outbound Process in Oracle BPEL Console
JDeveloper deploys the developed process directly to the Oracle BPEL Console, which enables youto run, monitor, and administer BPEL processes.
To invoke adapter request-response service:
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. All deployed BPEL processes are listed in the Dashboard tab.

This tab provides a more detailed view of each deployed process.

Click the MySAP ERP process link, MySAP_outbound_companycode_getdetail (v. 1.0).
The Manage window provides options for managing this BPEL process. Do not change any of the following default settings.

Click the Initiate tab.
The Initiate tab enables you to test your BPEL process.

Perform the following steps:
Select XML Source.
Select the Java through delivery API link in the right side of the test area.
Enter the following code in the text area provided for XML input:
<?xml version="1.0" encoding="UTF-8"?> <CompanyCode.GetDetail CompanyCodeId="1000"/>
Click Post XML Message.
The response received from the MySAP ERP system is displayed in the Initiate window.
See Also:
Oracle Application Server Adapter ConceptsThis example demonstrates how OracleAS Adapter for MySAP ERP integrates with SAP to receive event data. In this example, an SAP event occurs when a customer record is added to a SAP system.
The design-time and run-time procedures are outlined in the following sections.
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 two or more events share the same channel, event messages may not be delivered to the right BPEL process.Creating a Channel
To create a channel:
Start Application Explorer and connect to a J2CA configuration.
In the left pane, expand the Events node.
Expand the MySAP 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 Application Server - mySAP.
Click Next.
The Application Server dialog box is displayed. The following tabs are available:
User (Required)
System (Required)
Security
Advanced

For the User tab, enter the appropriate information for your MySAP ERP channel based on the information in the following table.
Table 5-1 User Tab Parameters
| Target Parameter | Description |
|---|---|
|
Client |
The client number defined for the MySAP ERP application for client communications. |
|
User |
A valid user ID for the MySAP ERP application. |
|
Password |
A valid password for the MySAP ERP application. |
|
Authentication Mode |
The authentication mode you want to use when connecting to your MySAP ERP system. By default, Password is selected from the drop-down list. |
Click the System tab.

For the System tab, enter the appropriate information for your MySAP ERP channel based on the information in the following table.
Table 5-2 System Tab Parameters
| Target Parameter | Description |
|---|---|
|
Gateway host |
A host name for the MySAP ERP Gateway. |
|
Gateway service |
A service for the MySAP ERP Gateway. |
|
Program ID of the server |
A MySAP ERP program ID you want to use for this channel. |
|
Message Server |
A host name for the message server. |
|
Application Server |
A name of the MySAP ERP application server you are using. |
|
System Number |
A MySAP ERP system number. |
For the Security tab (optional), enter the appropriate information for your MySAP ERP channel based on the information in the following table.
Table 5-3 Security Tab Parameters
| Target Parameter | Description |
|---|---|
|
SNC mode |
By default, SNC is disabled. To enable SNC, select 1 from the list. |
|
SNC partner |
Enter the name of the RFC server or message server (load balancing) that provides the SNC services. |
|
SNC level |
From the list select the version of the SNC library. |
|
SNC name |
Enter the name of the SNC library you are using. |
|
SNC library path |
For the Advanced tab (optional), enter the appropriate information for your MySAP ERP channel based on the information in the following table.
Table 5-4 Advanced Tab Parameters
| Target Parameter | Description |
|---|---|
|
IDOC Format |
Select an IDOC type from the list. |
|
IDOC release |
The IDOC versioning you want to use for your connection. |
|
IDOC release provider |
The IDOC release provider for your connection. Select IDOC DOCREL field (default), SAP release, or user input from the drop-down list. |
|
SAP trace |
Select this option to enable traces. |
|
Processing Mode |
Select the type of synchronous processing from the list. Possible values include REQUEST and REQUEST_RESPONSE. |
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.
Generating WSDL for Event Notification
After you create a channel and verify that it is not started, you must generate WSDL for the event using Application Explorer.
Start Application Explorer.
A list of all adapters is displayed.

Perform the following steps:
Expand the MySAP node.
A list of your available targets is displayed.
Click a target name under the MySAP 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 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 Name field, specify a name for the WSDL file.
Ensure that qualified is selected as the element form, which is the default.
From the Channel drop-down list, select the channel you created for this inbound service.
Important: You must create a separate channel for every event. Verify that the channel is stopped before run-time.
Creating a BPEL PM Server Connection in JDeveloper
Before you design a BPEL process using the WSDL you generated in Application Explorer, you must configure a new Application Server and Integration Server connection in Oracle JDeveloper. For more information, see Chapter 5, "Integration with Oracle BPEL Process Manager".
Designing the BPEL Process for the SAP_DEBMAS05 Event
To design a BPEL process for inbound interaction:
Click the Applications Navigator tab and select an application for your project.
Right-click the application 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 Creation Wizard dialog box is displayed.

Perform the following steps:
Specify a name for the process.
The Namespace field is updated automatically.
From the Template list, select Empty BPEL Process.
Click Finish.
An empty BPEL process project template is created.
From the Services pane on the right, drag and drop a PartnerLink to the visual editor.
The Create Partner Link dialog box is displayed.

Click the Service Explorer icon (second icon from the left preceding the WSDL File field).
The Service Explorer dialog box is displayed.

Expand your new connection under Adapter Services, followed by adapters, and then applications.
The WSDL tree displayed in the Service Explorer dialog box lists any WSDL files you have created using Application Explorer. The WSDL tree is generated by a WSDL servlet, which is automatically deployed as part of the BPEL Server installation.
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 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_DEBMAS05.
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.
Your completed process looks as follows.

Select Save from the File menu.
Deploying the BPEL Process for the SAP_DEBMAS05 Inbound Service
Events are generated by activity in an application system. For example, MySAP ERP may generate an event as customer information is updated in the system. For more information on events, see "Configuring an Event Adapter"
Triggering an Event in MySAP ERP
The following topics describe how to trigger an event in MySAP ERP and verify event integration using OracleAS Adapter for MySAP ERP.
To trigger an event in MySAP ERP:
Start the SAP Workbench and log in to the MySAP ERP 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 MySAP ERP.
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 MySAP ERP.
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.
Click the Instances tab.
Recently received run-time events are displayed in the Instances tab.

Click the SAP_DEBMAS05 instance, then click Audit to see the received SAP_DEBMAS05 event message.
