| Oracle Application Server Adapter for Oracle Applications User's Guide 10g (10.1.3.3.0) Part Number E05440-01 |
|
|
View PDF |
| Oracle Application Server Adapter for Oracle Applications User's Guide 10g (10.1.3.3.0) Part Number E05440-01 |
Contents |
Previous |
Next |
This chapter covers the following topics:
Oracle Applications is a set of integrated business applications that runs entirely on the Internet. Oracle Applications offers you the following:
Reduced costs
Increased revenue across front-office and back-office functions
Access to current, accurate, and consistent data
The applications in Oracle Applications are built on a unified information architecture that consolidates data from Oracle and non-Oracle applications and enables a consistent definition of customers, suppliers, partners, and employees across the entire enterprise. This results in a suite of applications that can give you information, such as current performance metrics, financial ratios, profit and loss summaries. To connect Oracle Applications to non-Oracle applications, you use OracleAS Adapter for Oracle Applications.
OracleAS Adapter for Oracle Applications provides comprehensive, bidirectional, multimodal, synchronous, and asynchronous connectivity to Oracle Applications. 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.
Note: This overview includes details about features and capabilities that are new in the current release of OracleAS Adapter for Oracle Applications. For more information, see New Features in This Release.
OracleAS Adapter for Oracle Applications includes the following features:
It supports open standards, including J2EE Connector Architecture (J2CA), Extensible Markup Language (XML), Web Service Invocation Framework (WSIF), Web Service Inspection Language (WSIL), and Web Service Definition Language (WSDL).
It uses a JDeveloper based design-time tool for dynamically browsing the Oracle Applications interface and configuring the adapter metadata.
It integrates applications based on open standards, such as IFX, OAG, RosettaNet, and UCCnet by interfacing with XML Gateway.
It generates adapter metadata as WSDL files with J2CA extension.
Note: See Oracle Application Server Adapter Concepts on OTN for more information.
It supports custom integration interfaces with reference to various versions of Oracle E-Business Suite including Release 12, Release 11i10, and pre-Release 11i10.
It supports multiple languages and multiple organization setups based on the concept of applications context.
OracleAS Adapter for Oracle Applications is based on J2CA 1.0 standards and deployed as a resource adapter in the same Oracle Application Server Containers for J2EE (OC4J) container as BPEL Process Manager. The architecture of OracleAS Adapter for Oracle Applications is similar to the architecture of technology adapters.
OracleAS Adapter for Oracle Applications Architecture

OracleAS Adapter for Oracle Applications acts as a highly flexible integration interface for Oracle Applications. The adapter supports the following interface types for integrating with Oracle Applications:
Oracle XML Gateway
XML Gateway enables bidirectional integration with Oracle Applications. It helps you to insert and retrieve data from Oracle Applications. XML Gateway is a higher-level interface that exposes OAGIS-formatted XML documents for commonly used Oracle Application business objects and business interfaces. XML Gateway integrates with interface tables, Oracle Workflow Business Event System (BES), and interface views to insert and retrieve data from Oracle Applications. It maps the underlying table data to XML and back.
Business events
A business event occurs in an internet application whenever something of significance happens, or can happen. An example of a business event is the creation of a new sales order. The BES is an application service that uses the Oracle Advanced Queuing (AQ) infrastructure to communicate business events between systems.
Concurrent programs
Concurrent programs enable you to move data from interface tables to base tables.
Interface tables
Interface tables enable you to insert or update data into Oracle Applications. The associated concurrent program should be running to move the data from the interface tables to base tables.
Interface views
Interface views help you to retrieve data from Oracle Applications using the application tables.
PL/SQL APIs
These APIs enable you to insert and update data in Oracle Applications using PL/SQL.
Oracle e-Commerce (EDI) Gateway
Oracle e-Commerce Gateway provides a common, standards-based approach for Electronic Data Interchange (EDI) integration between Oracle Applications and third party applications.
Please note that OracleAS Adapter also supports the following integration interface types that are exposed by the Oracle Applications Module Browser, not by Oracle Integration Repository:
Customized XML Gateway maps
Customized PL/SQL APIs
Note: Business events integration interface type is also exposed by Oracle Applications Module Browser, not by Oracle Integration Repository.
The integration interfaces are available for process orchestration through the Oracle BPEL Process Manager.
Oracle Integration Repository, an integral part of Oracle E-Business Suite, is a prebuilt catalog of information about the numerous public integration interfaces delivered with Oracle applications, known as business interfaces. It provides a comprehensive view of the interface mechanisms available for Oracle E-Business Suite's business interfaces. These interfaces are exposed because their definitions were annotated at design-time as required by Oracle Integration Repository.
Oracle Integration Repository can only provide information about an integration interface that has been specifically annotated by the developer to make it public. OracleAS Adapter takes advantage of the annotations that have already been created to make the following business interface types visible in the Oracle Applications Module Browser:
XML Gateway message maps
PL/SQL APIs
Concurrent programs
Open Interface tables
Interface views
e-Commerce Gateway EDI messages
These business interfaces are exposed as Web services, and are available for process orchestration through the Oracle BPEL Process Manager.
For more information, see Oracle Integration Repository User's Guide. This guide is a part of the Oracle Applications documentation library. Oracle Applications documentation can be accessed with the following link:
http://www.oracle.com/technology/documentation/applications.html
To extend the support for Oracle E-Business Suite, OracleAS Adapter enhances the capability of implicitly or explicitly utilizing Oracle Integration Repository to support custom interfaces, such as customized PL/SQL APIs, with reference to the following versions of Oracle E-Business Suite:
From the business service creation and runtime perspectives, OracleAS Adapter treats customized PL/SQL APIs as part of the seeded PL/SQL APIs. The only difference is that the customized PL/SQL APIs can be exposed by the Oracle Applications Module Browser during the design time.
Support for Oracle E-Business Suite Release 12
From Release 12, Oracle Integration Repository is shipped as part of the E-Business Suite which enables OracleAS Adapter to directly connect to the live database of Oracle Integration Repository querying for the public interfaces and then displaying the list of customized PL/SQL APIs under the Other Interfaces node in the Oracle Applications Module Browser.
Supporting Custom Integration Interfaces in Release 12

Please note that OracleAS Adapter allows you to extract the Integration Repository data file from the live database you connect to Oracle Applications and create a local copy of the Integration Repository in your workplace. Next time when you look for public interfaces, the system can retrieve data from the cache backend connection in your workplace.
For detailed information about connecting to Oracle E-Business Suite Release 12, please refer to the Creating a Partner Link or Adding a Partner Link design-time task for each integration interface.
Support for Oracle E-Business Suite Release 11i10
To support the Release 11i10 version of Oracle E-Business Suite, OracleAS Adapter connects to the live database of Oracle Integration Repository and stores the data file within the Adapter for query. At the design time, OracleAS Adapter queries public interfaces from the native XML data file of the Integration Repository located in the Adapter and displays the list of custom integration interfaces under the Other Interfaces node in the Oracle Applications Module Browser.
Supporting Custom Integration Interfaces in Release 11i10

Support for Oracle E-Business Suite Pre-Release 11i10
To support the pre-Release 11i10 versions of Oracle E-Business Suite, OracleAS Adapter connects to the live database of Oracle Integration Repository for all interface types. Since there is no differentiation between public, private, and customized PL/SQL APIs in the pre-Release 11i10 versions of Oracle E-Business Suite, OracleAS Adapter displays them all under the node of each module through Oracle Applications Module Browser.
Before making a selection from the browser for the pre-Release 11i10, you must select an interface type you want to use in the Adapter Configuration Wizard. All interfaces of your selected type will be displayed in the browser.
For example, you will find a list of concurrent programs associated with e-Commerce (EDI) Gateway displayed in the Oracle Application Module Browser as follows if the EDI Gateway interface type is selected.
Supporting Custom Integration Interfaces in pre-Release 11i10

When you make a selection through the module browser at design time, OracleAS Adapter validates your selected API against the database. If it exists in the database for a particular version of your instance, then the associated WSDL file will be generated successfully.
This section describes the new features that have been added in OracleAS Adapter for Oracle Applications 10g (10.1.3.3.0).
To extend the support for Oracle E-Business Suite, OracleAS Adapter now allows you to access Oracle Applications through the live connection of Oracle Integration Repository which is shipped as part of the Oracle E-Business Suite in Release 12.
In addition to the live database connection, OracleAS Adapter also provides the capability of allowing the Integration Repository data file to be extracted from the live database you connect to Oracle Applications and creating a local copy of the Integration Repository in your workplace. Once the local copy is created successfully, OracleAS Adapter will pick it up automatically next time when you connect to the instance. This way, you do not need to retrieve the repository data file each time you connect to Oracle Applications and will have faster and easier data access from your local database.
OracleAS Adapter now provides enhanced support for custom integration interfaces, such as customized PL/SQL APIs, with reference to the following versions of Oracle E-Business Suite:
Release 12
Release 11i10
Pre-Release 11i10
To support multiple organization setups, OracleAS Adapter now provides a mechanism which allows Organization ID information can be directly entered through the header variable creation during the design time, instead of implicitly deriving it from a profile value during the Oracle Applications setups. Once you declare the header variable and assign a value to the Organization ID for a business activity through a PL/SQL API or an interface which requires the applications context to be set, the organization value specified in the header will be passed and used as an input to the rest of activities in the BPEL process.
The advantage of having this header variable mechanism in supporting multiple organization setups is that with only one single BPEL process, organization information can be easily placed into multiple organizations within the E-Business Suite if the Organization ID value has been specified in the header. While in the past, since Organization ID is implicitly derived from the profile value based on an application logon user's username and responsibility; therefore, only that associated organization for the invocation of the deployed BPEL process can be inserted.
By leveraging the Multiple Language Support (MLS) feature from Oracle E-Business Suite, OracleAS Adapter allows a logon user's default language to be dynamically displayed at runtime when the system deploys a BPEL process through an API requested by the user.
With this feature, when an application user retrieves data from the system for a transaction or receives error messages while executing APIs, the user will find the data or error messages displayed in his or her default language. Additionally, if the user has dates set up based on a region, after data retrieval, he or she will find the dates returned with the format and time zone information corresponding to the information defined in the user's preference page.
Applications context is required for secured transaction processing into and out of Oracle Applications.
Applications context is a combination of Organization ID, Username and Responsibility. To establish applications context, the Organization ID is implicitly derived from the Oracle Applications setup data.
To understand applications context, you need to understand first how Organization ID and multiple organizations are related.
You can define multiple organizations and the relationships between them in a single installation of Oracle Applications. These organizations can be sets of books, business groups, legal entities, operating units, or inventory organizations.
You can define multilevel organization hierarchies, with a business group at the top of each hierarchy. When you define new organizations, they are automatically assigned to the business group associated with your current session. Each organization is part of a business group. The business group is usually the top box on an enterprise organization chart.
Business Group Hierarchy

Example of a Multiple-Organization Setup
Using the accounting, distribution, and materials management functions in Oracle Applications, you define the relationships among inventory organizations, operating units, legal entities, and sets of books to create a multilevel company structure, as shown in the following diagram.
A Multiple-Organization Transaction

Consider two different organizations in your company: One is a French sales office and the other is a German warehouse. There is a sales order transaction with the customer, and this illustrates how the entire Order-to-Deliver process would work:
The customer places a sales order with the French sales office.
The German warehouse delivers the product shipment to the customer.
The German warehouse issues an inter-company invoice to the French sales office.
The French sales office makes the inter-company payment to the German warehouse.
The French sales office sends the customer invoice to the customer.
The customer makes payment to the French sales office.
The database architecture is the same for a multiple-organization and non-multiple-organization installation, and uses the standard install tools feature that automatically creates synonyms in the APPS schema for each base product table and defines these synonyms with the same name as the base product tables. For example, the PO Oracle schema has a table named PO_HEADERS_ALL and the APPS schema has a corresponding synonym of the same name, PO_HEADERS_ALL. The PO_HEADERS_ALL synonym can be used to access unpartitioned data.
Schema Synonyms

Now let's see how Oracle Applications ties Username, Responsibility with Organization ID. While setting up the System Profile Values, the username, responsibility is tied up with the Organization with Username, Responsibility.
Multiple-Organization System Profiles

The following diagram illustrates how Oracle Applications use the profile options.
Building Applications Context

When the system integrator runs, the process achieves the integration with Oracle Applications using PL/SQL APIs.
The Apps.Initialize process takes the parameters of Username and Responsibility.
With these parameters, a lookup on the System Profile Values is done to determine the Operating Unit.
The Operating Unit is modeled as Organization ID in the System Profile Values.
The data is read and written into the Oracle Applications with the parameters of Username, Responsibility and Organization ID.
Based on the concept of applications context, OracleAS Adapter for Oracle Applications provides the following features:
Instead of implicitly deriving organization information from a profile value during the Oracle Applications setups, OracleAS Adapter provides a mechanism which allows Organization ID information can be directly entered through the header variable creation during the design time to support multiple organization setups.
OracleAS Adapter uses the header variable to include Username, Responsibility, and Organization ID, the three essential elements for applications context. Once you declare the header variable and assign appropriate values to each parameter contained in the header for a business activity through a PL/SQL API or an interface which requires the applications context to be set, these values in the header will be passed and used as an input to the rest of activities in the BPEL process.
Note: Integration interface types that require applications context to be set are PL/SQL APIs, concurrent programs, and EDI programs.
Creating and Assigning Header Variable

The advantage of having this header variable mechanism in supporting multiple organization setups is that with only one single BPEL process, organization information can be easily placed into multiple organizations within the E-Business Suite if the Organization ID value has been specified in the header. While in the past, since Organization ID is implicitly derived from the profile value based on an application logon user's username and responsibility; therefore, only that associated organization for the invocation of the deployed BPEL process can be inserted.
With the example described earlier in the Multiple Organization Setup section, when a change order is placed within the French sales office, a sales manager from the French office logs on to the system to update the order which invokes a PL/SQL API for that change. If the Organization ID contained in the header variable has been assigned with a value, such as 207 for the French sales office, the Organization ID associated with the sales manager will be set to French sales office for the invocation of the API.
Note: For Oracle E-Business Suite Release 12, Organization ID parameter is automatically included in the header variable along with Username and Responsibility. For Release 11.5.10, you must apply back port patch 4549743 to Oracle Applications instance in order to have Organization ID displayed in the header.
OracleAS Adapter uses the following procedures to complete the design-time tasks to support Organization ID in multiple organization setups:
Configure an Invoke Activity and Create the Header Variable
This activity involves the following tasks:
Configure an Invoke Activity in the General tab
Configure an Invoke activity by linking the activity to the partner link you just created. This opens the General tab in the Edit Invoke dialog box with Partner Link and Operation information populated. You will create Input Variable and Output Variable for the Invoke activity.
Create the Header Variable in the Adapters tab
Create the header variable used in applications context for Oracle Applications to identify the application user and the user's associated organization information.
Assign Organization ID Using an Assign Activity
After creating the header variable, you need to configure an Assign activity by placing it before the Invoke activity.
Select Copy Operation tab in the Assign dialog box and select Copy Operation... from the Create drop-down list.
In the From group, enter an ORG_ID value, such as '207', in the Expression field. In the To group, locate the variable header where you declare the variable and assign the Organization ID to ORG_ID parameter of the header.
Assigning Value to ORG_ID

By leveraging the Multiple Language Support (MLS) feature from Oracle E-Business Suite, OracleAS Adapter allows a logon user's default language to be dynamically displayed at runtime when the system deploys a BPEL process through an API requested by the user. When an application user retrieves data from the system for a transaction or receives error messages while executing APIs, the user will find the data or error messages displayed in his or her default language. Additionally, if the user has dates set up based on a region, after data retrieval, that user will find the dates returned with the format and time zone information corresponding to the default information specified in his or her preference page.
To understand how OracleAS Adapter supports the MLS feature, you need to first understand how data is retrieved from the application database.
Many of the APIs that OracleAS Adapter invokes query database views and these views present data in the default language of the applications user that is used to invoke the APIs. In other words, these APIs exposed within OracleAS Adapter are language aware. When an application user requests a transaction through the execution of APIs, data queries from the database views must have been initialized with the default language specified by the user in the preference page.
To identify the default language used in the database session for data query and retrieval, OracleAS Adapter will first examine the ICX: Language profile value at all levels including user, responsibility, application, and site. If it is not set at any of those levels, OracleAS Adapter then takes NLS_LANGUAGE parameter from the database instance National Language Support (NLS) parameters. The NLS parameters initialized in the session are:
NLS_LANGUAGE
NLS_SORT
NLS_DATE_FORMAT
NLS_DATE_LANGUAGE
NLS_NUMERIC_CHARACTERS
NLS_TERRITORY
Dynamically Displaying Language Based on User's Default Language

For example, when a user with a default language Japanese logs into the system and performs a transaction through the execution of APIs that the user defined in the Partner link of the BPEL process, OracleAS Adapter uses the username of the logon Japanese user and responsibility to identify the default language code, such as JA for Japanese, used in the database session. Consequently, the NLS context parameters are set in Japanese. That user will therefore see all queried data or error messages displayed in Japanese which corresponds to the user's default language set in the General Preference page of Oracle Applications.
Note: The default language set in the General Preference page updates the ICX: Language profile option.
Please refer to the Set Preferences section, Getting Started with Oracle Applications chapter, Oracle Applications User's Guide for the information on how to set the default language used by the applications user.
To implement the MLS support feature, perform the following design-time tasks before you configure an Invoke activity so that the variable can be passed to the activity:
You can optionally define the username and responsibility to be used in the execution of the API by setting a header variable {http://xmlns.oracle.com/pcbpel/adapter/appscontext/}Header_msg. This declaration provides context information for Oracle Applications to identify the application user that will be executing the API.
Note: Since the header variable declaration provides context information for Oracle Applications to identify the application user, OracleAS Adapter not only uses this variable declaration to support the MLS feature, but also to support other features that utilize the concept of applications context including the Organization ID support in multiple organization setups.
Declaring Header Variable

Because the declaration of this header variable is optional, if you do not declare the variable, the default username is SYSADMIN and the default responsibility is System Administrator.
After declaring the header variable, you must assign the variable value using an Assign activity. For example, in the From group, enter an username, such as 'Operation', in the Expression field. In the To group, locate the variable header where you declare the variable and assign the value to username variable.
Assigning a Variable Value

The username defined in the header variable will be used to derive the NLS variables which will be set in the context of the session that executes the API you defined in the Partner link of the BPEL process.
The installation of the Oracle Application Server Adapter happens out-of-the-box with the Oracle BPEL Process Manager (PM) product. OracleAS Adapter for Oracle Applications is deployed using the Oracle BPEL PM in Oracle JDeveloper.
Note: Refer to Oracle Application Server Integration Business Activity Monitoring User's Guide for more details about installing Oracle BPEL Process Manager. Refer to the section "Notes on Installing Oracle BPEL Process Manager."
In addition to the interfaces that are made available through Oracle Integration Repository, OracleAS Adapter for Oracle Applications enables you to use business events, customized PL/SQL APIs, customized XML Gateway maps, and selected concurrent programs, all of which you can explore using the Oracle Applications Module Browser.
Oracle Applications Module Browser

The Oracle Applications Module Browser is a key component of OracleAS Adapter for Oracle Applications. You use the Module Browser to select the interface needed to define a partner link. The Module Browser combines interface data from Oracle Integration Repository with information about the additional interfaces supported by OracleAS Adapter, organized in a tree hierarchy as follows:
ProductFamilies
|-[product_family]
| |-[product]
| |-[business_entity]
| |-XML Gateway ([n])
| |-EDI ([n])
| |-PLSQL ([n])
| | |-[package_name]
| |-OpenInterfaces ([n])
| |-[OpenInterface_name]
| |-Tables ([n])
| |-Views ([n])
| |-ConcurrentPrograms ([n])
|-Other Interfaces
|-Business Events
|-Custom Objects
|-PLSQL APIs
| |-[package_name]
|-XMLGateway Maps
|-Inbound
|-Outbound
Note: The items under Other Interfaces, as well as certain PL/SQL APIs and concurrent programs under the [product family] hierarchy, are available through OracleAS Adapter for Oracle Applications, but not through Oracle Integration Repository.
The Oracle Integration Repository interface data populates the [product_family] sections, grouped according to the products and business entities to which they belong. Each interface type heading is followed by a number [n] indicating how many of that type are listed in that section.
Business events appear under Other Interfaces. Customized XML Gateway maps appear under Other Interfaces > Custom Objects, categorized as either inbound or outbound.
Customized PL/SQL APIs appear in two places:
Procedures within a package that's already exposed via Oracle Integration Repository appear under the package name within a product family hierarchy.
Procedures within a completely new package appear under the package name, under Other Interfaces > Custom Objects.
This section describes the following issues and workarounds:
WSDL Context Information Default Values
In the current release, BPEL Process manager generates WSDL code containing context information, including the username and responsibility of an Oracle Applications user who has sufficient privileges (based on the applications context of Organization ID, Username and Responsibility) to run the program.
By default the Username value is set to SYSADMIN and the Responsibility value is set to SYSTEM ADMINISTRATOR. To change these values, you must manually edit the WSDL file.
Correlation ID Defaults to BPEL for XML Gateway Transactions
The Adapter Configuration wizard of OracleAS Adapter for Oracle Applications does not specify a correlation ID for XML Gateway transactions for inbound or outbound interfaces. Instead, a default correlation ID of BPEL is automatically set in the WSDL file. To make this configuration work, you must configure Oracle Applications to set the same correlation ID value of BPEL for the corresponding XML Gateway transactions.
If you want the Adapter to use a different correlation ID than the default, you need to configure a correlation ID in Oracle Applications, then edit the Correlation="BPEL" line contained in the <jca:operation> section of the adapter service WSDL. Replace BPEL with the string value of the correlation ID you specified in Oracle Applications.
Workaround for Stored Procedures Using Complex Types and the DEFAULT Clause
When working with stored procedures for which the Adapter Configuration wizard must generate wrapper SQL stored procedures, there is a current limitation on DEFAULT clauses not being carried over to the generated wrapper stored procedures.
As a workaround, perform the following steps one time only for a given stored procedure:
Open the generated wrapper SQL script.
Copy all default clauses from the base-stored procedure into the corresponding wrapper.
Use SQL*Plus to reload the wrapper SQL script into the database.
Edit the generated XSD. If a parameter has a DEFAULT clause, its corresponding element in the XSD must have the extra attribute: db:default="true"
For example, with the following SQL:
FINANCE$INVOICE(isTrue INTEGER DEFAULT 1, value NUMBER DEFAULT 0)
The elements in the XSD for isTrue and value must have the new attribute:
<element name="ISTRUE" ... db:default="true" .../> <element name="VALUE" ... db:default="true" .../>
One-time Workaround for Concurrent Programs and E-Commerce Gateway Interfaces
When working with Concurrent Programs and E-Commerce Gateway interfaces, you must perform the following workaround exactly once for a given E-Business Suite instance.
Note: This is to work around the known issue with the Adapter Configuration wizard being unable to preserve DEFAULT clauses for PL/SQL wrappers that it generates underneath the covers.
Load the following SQL file into the apps schema (using SQL*Plus) before launching the Oracle Applications adapter of the Adapter Configuration wizard to create services for either Concurrent Programs or E-Commerce Gateway Interfaces.
ORACLE_HOME\bpel\samples\tutorials\150.AppsAdapter\OrderImportConcurrentProgram\bpel\XX_BPEL_FND_REQUEST_SUBMIT_REQUEST.sql
Cannot Create a Partner Link If the Underlying API Has Been Recreated
The generation of a wrapper for an API that was recreated with the same name, but with a different set of parameters, will fail.
Note: This can happen for both packaged procedures and top-level or root procedures that require generated wrappers.
The following example illustrates the problem:
Create the initial API that, in this case, is defined at the top level:
SQL> create procedure test (a number, b varchar2, c BOOLEAN)
The BOOLEAN parameter indicates that a wrapper is necessary.
Use the database adapter for stored procedures in the Adapter Configuration wizard to generate and load the wrapper for this API.
Drop the API, then recreate it with a different set of parameters:
SQL> drop procedure test SQL> create procedure test (a number, b varchar2, c number, d BOOLEAN)
An attempt to generate a partner link for this API using the Adapter Configuration wizard will fail with the following message:
The wrapper procedure, TOPLEVEL$TEST, could not be found
As a workround, exit JDeveloper BPEL Designer and restart it after recreating the stored procedure, but before attempting to create the second partner link.