Wednesday, September 7, 2016

EDI Gateway & Trading Partner Setup

Overview of Oracle EDI Gateway

Oracle Applications provides users with the ability to conduct business electronically between trading partners based on the Electronic Commerce standards and methodology. One form of Electronic Commerce is Electronic Data Interchange (EDI).
EDI is an electronic exchange of information between trading partners. Data files are exchanged in a standard format to minimize manual effort, speed data processing, and ensure accuracy.
The EDI Gateway performs the following functions:

  • define trading partner groups and trading partner locations
  • enable transactions for trading partners
  • provide location code conversion between trading partner location codes and codes used in Oracle Applications
  • provide general code conversion between trading partner codes or standard codes
  • define interface data files so that application data can interface with EDI translators
  • extract application data, format, and write to data files (outbound transactions)
  • import data or converted codes into application open interface tables so that application program interfaces (API) can validate and update Oracle application tables (inbound transactions)

How Oracle EDI Gateway Works with Other Oracle Applications

Oracle Applications are designed with an open architecture for easy integration with EDI translators and electronic transmission products to provide a seamless solution. Oracle Applications utilize the Oracle EDI Gateway to integrate with EDI translator software. EDI translation software packages integrate with an electronic transmission service to provide a closed-loop between Oracle Applications and the trading partner's application.
The Oracle Applications for Manufacturing, Distribution, and Financials are EDI-enabled using the Oracle EDI Gateway product. The Oracle EDI Gateway product augments the existing standard paper document capabilities of Oracle Applications, or adds functionality where no corresponding paper documents exist.
A common EDI implementation is via ASCII data files in a batch environment. Data from the sending application is extracted into an application data file. The application data file is received by the translation software which translates it into the an EDI standard both trading partners agree upon. Then the EDI data file is placed on a network for transmission to the receiving application. The receiving application's EDI translator receives the EDI data file from the network and begins the file processing in reverse sequence. The translator translates the EDI data file and creates an application data file meaningful to the receiving application. The receiving application receives the application data file for processing and imports the data into the application.
The following figure illustrates the outbound EDI Gateway transaction flow:
Figure 1 - 1.

The following figure illustrates the inbound EDI Gateway transaction flow:
Figure 1 - 2.


Oracle EDI Gateway Product Architecture

With an open architecture, Oracle Applications allows you to choose the best translation and electronic transmission service for your business requirements. You can use a commercially available EDI translator and transmission provider or use a proprietary solution. The Oracle Applications and the Oracle EDI Gateway places no restriction on your choices.

Product Components for All Transactions

The Oracle EDI product architecture consists of the following features for both outbound and inbound EDI transactions.

Trading Partner Definition

Used for both inbound and outbound transactions to define trading partner locations within a trading partner group. By defining a trading partner, you do the following:

  • enable EDI translations
  • establish a link to the location or business entity defined in the Oracle Applications
  • establish a link to the trading partner definition in the EDI translator.

Code Conversion Definition

Used for both inbound and outbound transactions to convert general codes between the sending and receiving systems. This can be used to convert Oracle Applications codes to EDI standard codes or user-defined codes.

Flexfields

Flexfields (attributes) are user-defined fields in the Oracle Applications. They are found in both inbound and outbound transactions.
You have to modify the general EDI translator data maps or templates to use flexfields.

Product Components for Outbound Transactions

The Oracle EDI Gateway product architecture consists of the following components for outbound transactions:

Oracle Applications Concurrent Program Manager

Used for outbound transactions to initiate data extraction programs that create interface data files that are passed to the EDI translator for processing the data into the desired EDI standard.

Stored Procedures to Prevent Duplicate Extraction

Used with outbound transactions to provide encapsulated application logic to record the EDI transaction in the Oracle application. For example, the Oracle Purchasing tables are updated to reflect the extraction of purchase order data. This prevents the same data from being extracted again.

Transaction-specific Extension Tables

Used with outbound transactions to temporarily store user-supplied data or data from a non-Oracle Applications source that is required by target EDI documents. See: Extensible EDI Gateway Architecture.

Transaction-specific Interface Tables

Used with outbound transactions to temporarily store data extracted from the Oracle Applications, including converted codes and data copied from customized extension tables.

Transaction-specific Database Views

Used with outbound transactions to provide encapsulated data selection logic for the target EDI transaction. You enter selection criteria, using Standard Request Submission, to launch individual extract programs.

Interface Tables Table

Used with outbound transactions to store the starting record identifier of each section of the output file and to track which transaction-specific interface and extension tables are related. The data extract program uses this information to write the next sequential identifier at the beginning of each record in the data file.

Interface Columns Table

Used with outbound transactions to store the assigned location of each data element within the data file. The data extract program uses this information to write data to the correct position in the data file.

Data Extract Programs

Used with outbound transactions to create a standard ASCII data file format that can be mapped to any standard. The data file contains data from Oracle Applications, converted codes from EDI Gateway tables, and descriptive flexfields defined in both EDI Gateway and the Oracle applications.

Extension Tables

The EDI Gateway extension tables are used to hold outbound data from tables that are outside the Oracle application. These extension tables are installed with EDI Gateway. However, you must define and populate the table columns if you want to use these tables.
Each transaction interface table has one extension table per interface table for the given transaction. The extension tables share the same base interface table name as the transaction with an "_X" suffix. For example, the primary interface table ECE_DSNO_ORDERS has the extension table ECE_DSNO_ORDERS_X.

Industry-Specific Tables

Some Oracle Applications have additional application tables for vertical industry solutions. These additional tables are detected in the EDI Gateway by reading system setup tables. If industry-specific tables are detected, their data, along with customer-defined extension table data, is copied to the EDI Gateway extension tables during the data extraction for outbound transactions.

Note: EDI extension tables are not used with inbound transactions.

Product Components for Inbound Transactions

The Oracle EDI Gateway product architecture consists of the following components for inbound transactions:

Oracle Applications Concurrent Program Manager

Used for inbound transactions to initiate data load programs that import interface data files from the EDI translator to EDI Gateway for processing into Oracle Applications.

Data Load Programs

Used with inbound transactions to load the Oracle Applications open interfaces from a standard ASCII data file. The data load program converts external codes in the file to internal codes found in the code conversion tables. The internal codes found in the code conversion tables or found in the internal fields as populated by the EDI translator are loaded into the application open interface tables.

Oracle Applications Open Interface

Used with inbound transactions. The application open interface consists of temporary interface tables and an application open interface API. The temporary interface tables are used to store the data loaded by the data load programs. The API is used to validate the data in the temporary interface tables and populate the Oracle Application tables. See: Running the Import Program for Inbound Transactions. Error detection, reporting, correction, and recovery are addressed by the respective Oracle Applications.

EDI Standards Supported

The Oracle EDI Gateway product is designed to support any EDI standard supported by EDI translation software; it is not tailored to any specific EDI standard.

EDI Transaction Support

The following transactions are supported:

ASC X12EDIFACTDocument IDDescription
Inbound Transactions
810INVOICINIInbound Invoice
832PRICATCATIInbound Price / Sales Catalog
843QUOTESRRQIInbound Response to Request for Quote
850ORDERSPOIInbound Purchase Order
856DESADVASNIInbound Ship Notice / Manifest
857No equivalentSBNIInbound Shipping and Billing Notice
Outbound Transactions
824APERAKADVOOutbound Application Advice
810INVOICINOOutbound Invoice
820PAYORD / REMADVPYOOutbound Payment Order / Remittance Advice
830DELFORSPSOOutbound Planning Schedule
862DELJITSSSOOutbound Shipping Schedule
850ORDERSPOOOutbound Purchase Order
860ORDCHGPOCOOutbound Purchase Order Change Request
856DESADVDNSOOutbound Ship Notice / Manifest


Overview of Trading Partners

The term "trading partner" is used differently in the context of EDI translators than in the context of the EDI Gateway.For EDI translators, the purpose of trading partner data is to:

  • identify sending and receiving electronic mailbox addresses
  • identify the communication medium (such as network or direct connection)
  • enable specific transactions by trading partner
For the Oracle EDI Gateway, the purpose of trading partner data is to:
  • cross-reference a particular address location in Oracle Applications to the location code defined for the trading partner for that address
  • link the EDI translator trading partner identifier to the EDI Gateway trading partner for the primary business address entity in the transaction
  • enable specific transactions for the EDI Gateway trading partner
In the EDI Gateway, the trading partner is defined as any address in Oracle Applications. This allows the conversion of location codes between the sender's defined code in their application to the receiver's defined code in their Oracle Application and vice versa. The translator code definition in the EDI Gateway identifies the trading partner setup code as defined in the EDI translator.For example, assume the trading partner defined the address code as AL-012. However, the same physical address was defined as 1234 in Oracle Applications. Defining the trading partner location in the appropriate Oracle application ensures that the code AL-012 is returned in transactions.
When defining trading partner data in the EDI Gateway, transactions must be enabled for the trading partner in order for data to be imported or extracted and written to the data file.

Inbound Transactions

The primary trading partner location is the location in the transaction detail records that is reviewed in the EDI Gateway to determine the key business entity that has ownership of this transaction in the Oracle Application. This entity is at the address or site level in the transaction. The higher level customer or supplier definition (without addresses) is determined by the primary site entity found within the transaction.The EDI translator writes a trading partner code for the record 0010 control record but it is not reviewed by the EDI Gateway. The detail location codes extracted from N104 and NAD records are reviewed within the EDI Gateway to determine the primary entity as needed by the Oracle application.

Outbound Transactions

The primary trading partner location is the address location reviewed within the transaction to determine the trading partner code for the record 0010 control record. This is the coded that links the transaction to the trading partner definition in the EDI translator.
DocumentDirectionASC X12EDIFACTContentPrimary Trading Partner Location
INIInbound810INVOICInvoiceSUPPLIER SITE
CATIInbound832PRICATPrice / Sales CatalogSUPPLIER SITE
RRQIInbound843QUOTESResponse to Request for QuotationSUPPLIER SITE
POIInbound850ORDERSPurchase OrdersSHIP TO
ANSIInbound856DESADVShip Notice / ManifestSUPPLIER SITE
SBNIInbound857n/aShipment and Billing NoticeSHIP TO
INOOutbound810INVOICInvoiceBILL TO
PYOOutbound820REMADV / PAYORDPayment Order / Remittance AdvicePAYING BANK BRANCH
SPSOOutbound830DELFORPlanning ScheduleSUPPLIER SITE
POOOutbound850ORDERSPurchase OrdersSUPPLIER SITE
POCOOutbound860ORDCHGPurchase Order ChangeSUPPLIER SITE
SSSOOutbound862DELJITShipping ScheduleSUPPLIER SITE

Each trading partner is assigned a primary address to associate with the transaction, such as bill-to address for outbound invoices or ship-to address for inbound purchase orders.
If a trading partner is both a customer and a supplier, Oracle recommends that you define the partner twice, once as a customer and once as a supplier. For each, enter a note in the trading partner description field to indicate whether it is the customer or supplier definition.
You must define a trading partner header for every location code found in the transaction. For example, an outbound invoice may have a remit-to location and a ship-to location. Both locations must be defined as trading partners in the EDI Gateway to define the external location code to appear in transactions.

Test / Production Transaction Status

Each application open interface has its own processing rules for validating EDI inbound transactions, including those marked as test transactions. The test / production status code is found on the control record (0010) in the data file. The status code is set by the EDI translator for inbound transactions. For outbound transactions, the status code is set by the EDI Gateway.Some open interface programs include a test / production status code as one of the parameters entered when you launch the Standard Request. This status code may override the test / production status code found in the control record (0010) for each transaction.

    Note: The test / production status code may be presented differently for various reasons. For example, T for Test, P for Production, or Y for Yes.
If the application open interface table has a test / production status code, the following may happen:

  • the test / production status code is passed from the control record of each transaction to the open interface table without being overridden by the Standard Request Submission or the open interface.
  • the test /production status code is passed from the control record but overridden by the test / production code from the Standard Request Submission parameters
  • the test / production status code is ignored by the application open interface and is determined from the Standard Request Submission parameters.
For further information, refer to the Oracle Manufacturing and Distribution Open Interfaces Manual, Release 11 or the Oracle Financials Open Interfaces Manual, Release 11.

EDI in a Multi-Organization Environment

A separate EDI responsibility must be defined for each organization that processes EDI transactions. Therefore, you must run EDI transactions separately by organization.
    Note: Some outbound transactions may operate on all organizations. However, you must still define a separate responsibility for each organization.
For outbound transactions, you extract data for the organization assigned to the current responsibility. So, if you intend to extract data from multiple organizations, you must do so from separate responsibilities.
For inbound transactions, the EDI translator, another process, or the trading partner sending the data file must separate the transactions by organization before the EDI Gateway imports the data. In other words, each data file sent by a trading partner should contain only those transactions into the specific organization.
If you intend to extract data from multiple organizations, you must switch to Transactions associated with other organizations will not successfully cross-reference the trading partner's location codes. The EDI Gateway associates the organization defined in the EDI Gateway responsibility with each primary trading partner location during the location cross reference. If the responsibility has organization A, but all the trading partner primary locations in the transactions are defined to organization B in the Oracle Application, the location codes cross reference process cannot find the location in the Oracle Application. The EDI Gateway reads only trading partner locations for the specified organization.

    Attention: During code conversion, the organization defined in the EDI responsibility is assigned to the trading partner primary location. If that organization is not correct for the location, the application open interface rejects the transaction during validation. Review the error report or on-line error handling procedure for the specific application.

Separate Transactions by Location

EDI translators can separate transactions into different data files. Transactions can be segregated into:
  • different trading partner electronic envelopes
  • different functional groups within the same electronic envelope
  • different mailboxes.
One solution is to have your trading partner separate the transactions in separate address locations that mirror your different organizations. If you have a single physical address that you have defined to two or more organizations, you may request that your trading partner also distinguish the locations. They can define unique address site / location codes in their application even those codes have the same physical address. The EDI translator can then separate the transactions to different electronic envelopes or functional groups within envelopes. The transactions can then be processed separately into different organizations.

Address Site ID Retrieval

Each transaction is associated with a primary internal location address site defined in the Oracle application. That has a corresponding external location code defined by the trading partner. The external code is the location code found in the ASC X12 N1 name segment or the UN/EDIFACT NAD name and address segment. Multiple customers could use the same external location codes because the combination of their trading partner translator code (their identifier in the EDI translator) and their external location code make a unique combination in the EDI Gateway trading partner definition. This pair of codes is associated with the address site in the Oracle application.There is a conflict when a given trading partner sends transactions with the same trading partner translator code and the same external location codes. However, some of these transactions are split across different organizations. Only one organization can be associated to a given address site.
Each EDI trading partner location code is derived from a unique address site ID defined in the Oracle application. That site ID is often written into the transaction so that the application open interface can correctly identify the correct address site for the customer, supplier, or other trading partner.
When extracting or importing transactions, only those address site IDs that belong to the organization defined for the current responsibility are retrieved. The same location codes used in other organizations are not retrieved, since the process is organization-specific.
The following table illustrates an external location code defined in multiple organizations. Assume that the trading partner used the code AB123 that is associated with two addresses in different organizations in the Oracle application:
Customer or SupplierAddress SiteTrading Partner Translator Code External Location Code (on N1 or NAD segment) Address Site IDOrganization for the Address Site ID
ACME Inc.123 Main, Chicago ILE1-ACME-1+AB123=12345678A
ACME. Inc.123 Main, Chicago ILE1-ACME-2+AB123=13567890B


    Note: The organization is defined in the Oracle application for this address site. This is not validated by the EDI Gateway. It may be passed to the application open interface table given the address site ID that is retrieved by the EDI Gateway.

    The address site ID is assigned when you set up the trading partner and is retrieved when the EDI Gateway processes the transaction.
    The EDI Gateway cross-references the trading partner external location code to the Oracle application internal location code (defined during trading partner set up) to retrieve the associated address site ID to be used bye the application open interface. For organization A, only the address site IDs defined for organization A are retrieved. Address site ID 13567890 in organization B is not referenced during execution.
    Attention: If there are problems with transactions loading to the correct address site, review the organization for the address site, and check the EDI responsibility in use when loading transactions to the open interface tables.

Test and Production Environments

The following table describes four possible scenarios for inbound transactions. If you import a production transaction into either a production or test environment, or if you import a test transaction in a test environment, the open interfaces validate the data and load it into production tables.However, you must use caution when importing a test transaction into a production environment. Otherwise, test data is imported into your production environment.

Test Transaction to Production Environment

    Caution: Unless care is exercised, test transactions may be processed into production tables. You must set up test / production status codes properly in your EDI translator and enter them properly when you launch Standard Requests to ensure test data is not loaded into your production database.
If the application open interface has a test / production status code and it is set for test, validation is performed but data is not committed to the database. (To perform a complete test where data is committed to the database, you must set up a test environment with a test database.)
If the trading partner is currently in production for the particular transaction at the particular site, and you want to test a transaction for that trading partner, make sure that you set up a trading partner for the test transaction with a different translator code. All test transactions must be given a different translator code when defining trading partner data. All test / production flags are associated with the combinationof the trading partner definition and the translator code. Providing different translator codes for production and test transactions ensures that the two are not confused. This is only necessary if the trading partner is mixing production and test transactions for the same locations within one translator code.


Defining Trading Partner Data

   To define a trading partner group:

    1. Navigate to the Trading Partner Groups window.
    2. Enter a unique trading partner group identifier.
    A trading partner group is a collection of individual address entities for a given trading partner.
    3. Optionally, enter a description for the trading partner group.
    4. Do one of the following:
  • To add a new trading partner to a trading partner group, enter the trading partner code and description. Then choose the New button.
    This trading partner entity is linked to a physical address in the Oracle application using the Assignments alternative region of the Define Trading Partner window.
  • To update an existing trading partner in a trading partner group, enter the trading partner location code and description. Then choose the Open button.

   To define a trading partner within a trading partner group:

    1. Enter a unique trading partner identifier. This defines a trading partner identifier for the EDI Gateway. This code is not written to the data files.
    2. Optionally, enter the trading partner description.
    3. Enter references 1 and 2. This is for any additional information needed by the trading partner.
    This data is written to the control record of every outbound transaction as the primary location for the specific transaction. You can use this information to return codes to the trading partner per their requirement.
    For example, assume the bill-to customer wants code 'AB-XY' added to all invoices, but you do not want to define an application flexfield for this customer-specific code. Once the code is in the data file, you can map it to the desired data element in the standard transaction.
    4. Access trading partner flexfields (also known as attributes) set up using system administration.

   To define trading partner assignment:

    1. In the Assignment alternative region, associate this trading partner definition with the corresponding Oracle Applications physical address entity. This is usually address- or site-level data.
    2. Do one of the following:
  • If you are defining the trading partner as a customer, select a customer and customer site. These values are defined in Oracle Order Entry and / or Oracle Receivables.
  • If you are defining the trading partner as a supplier, select a supplier and supplier site. These values are defined in Oracle Purchasing and / or Oracle Payables.
  • If you are defining the trading partner as a bank, select a bank branch address. This value is defined in Payables.
  • If you are defining other trading partner relationships, select the Human Resources location code. These values are defined in Oracle Human Resources.

   To define trading partner details:

    1. Open the Details alternative region to enable EDI transactions and processing rules for the trading partner location.
    2. Select the EDI document and the document type. Doing so enables the transaction for the trading partner.
    You must enter each document and each type explicitly to enable the transaction. If you do not enter both, no data is extracted.
    3. Enter the translator code (as defined in the EDI translator software) to associate with the transaction and location which is being enabled. The translator code links the EDI Gateway trading partner definition to that in the EDI translator.
    4. Indicate whether to send documents via EDI to this trading partner. This permits outbound transactions to be extracted and sent via EDI for this trading partner.
    5. Indicate whether to print a paper copy for this partner. (This functionality is not presently supported.)
    6. Indicate whether you are sending / receiving test EDI transactions for this partner.
    This allows transactions to be marked as a test transaction even if it is extracted from a production application. This code should agree with the test / production flag defined in the EDI translator software.

   To define trading partner contact data:

  • Optionally, open the Contact alternative region and enter the EDI contact name, title, basic address information, electronic mail address, phone, fax number, and so on. This information is useful for EDI coordinators in case issues arise regarding transmission of EDI files. This data is not written to the data files. The data is independent of all contact information in the Oracle Applications.

Oracle Fusion - Cost Lines and Expenditure Item link in Projects

SELECT   ccd.transaction_id,ex.expenditure_item_id,cacat.serial_number FROM fusion.CST_INV_TRANSACTIONS cit,   fusion.cst_cost_distribution_...