Wednesday, 14 August 2013

Interfaces and Conversions

Interfaces and Conversions



Overview:

Oracle provides flexible and flexible tools in the form of Interface programs to import the master and transactional data like Customers, Invoices, and Sales Orders etc from external systems into Oracle Applications.


Conversion/Interface Strategy:

  1. Data Mapping
    During the data mapping process, list of all the data sets and data elements that will need to be moved into the Oracle tables as part of conversion are identified. Data mapping tables are prepared as part of this activity that show what are the data elements that are needed by the target system to meet the business requirements and from where they will be extracted in the old system.
  2. Download Programs
    After the conversion data mapping is complete, download programs are developed that are used to extract the identified conversion data elements from the current systems in the form of an ASCII flat file. The structure of the flat file must match the structure of the Oracle standard interface tables. These flat files generated may be in text form or a comma or space delimited, variable or fixed format data file.
  3. Upload Program
    Once the data has been extracted to a flat file, it is then moved to the target file system and the data from the file is loaded into user defined staging tables in the target database using SQL Loader or UTL_FILE utilities. Then programs are written and run which validate the data in the staging tables and insert the same into the Oracle provided standard Interface tables.
  4. Interface Program
    Once the interface tables are populated, the respective interface program (each data element interface has a specific interface program to run) is submitted. The interface programs validate the data, derive and assign the default values and ultimately populate the production base tables.


Interface/Conversion examples and details:
The below list of interfaces/conversions are covered in this section. Details like pre-requisites required, interface tables, interface program, base tables, validations that need to be performed after inserting the details into the interface tables and required columns that need to be populated in the interface table are discussed for each interface.
  • Order Import Interface (Sales Order Conversion)
  • Item import (Item conversion)

  • Inventory On-hand quantity Interface

  • Customer conversion

  • Auto Invoice Interface
  • AR Receipts
  • Lockbox Interface
  • AP Invoices
  • Vendor
  • Purchase Orders
  • Requisition
  • Receiving
  • Journal import
  • Budget import
  • Daily Conversion Rates

  • Order Import Interface (Sales Order Conversion)
    Order Import enables you to import Sales Orders into Oracle Applications instead of manually entering them.
    Pre-requisites:

    Order Type
    Line Type
    Items
    Customers
    Ship Method/ Freight Carrier
    Sales Person
    Sales Territories
    Customer Order Holds
    Sub Inventory/ Locations
    On hand Quantity

Interface tables:
OE_HEADERS_IFACE_ALL
OE_LINES_IFACE_ALL
OE_ACTIONS_IFACE_ALL
OE_ORDER_CUST_IFACE_ALL
OE_PRICE_ADJS_IFACE_ALL
OE_PRICE_ATTS_IFACE_ALL

Base tables:
OE_ORDER_HEADERS_ALL
OE_ORDER_LINES_ALL
Pricing tables:    QP_PRICING_ATTRIBUTES

Concurrent Program:
Order Import
Validations:
Check for sold_to_org_id. If does not exist, create new customer by calling create_new_cust_info API.
Check for sales_rep_id. Should exist for a booked order.
Ordered_date should exist (header level)
Delivery_lead_time should exist (line level)
Earliest_acceptable_date should exist.
Freight_terms should exist

Notes:
During import of orders, shipping tables are not populated.
If importing customers together with the order, OE_ORDER_CUST_IFACE_ALL has to be populated and the base tables are HZ_PARTIES, HZ_LOCATIONS.
Orders can be categorized based on their status:
1. Entered orders
2. Booked orders
3. Closed orders
Order Import API OE_ORDER_PUB.GET_ORDER and PROCESS_ORDER can also be used to import orders.

Some important columns that need to populated in the interface tables:
OE_HEADERS_IFACE_ALL:
ORIG_SYS_DOCUMENT_REF
ORDER_SOURCE
CONVERSION_RATE
ORG_ID
ORDER_TYPE_ID
PRICE_LIST
SOLD_FROM_ORG_ID
SOLD_TO_ORG_ID
SHIP_TO_ORG_ID
SHIP_FROM_ORG_ID
CUSTOMER_NAME
INVOICE_TO_ORG_ID
OPERATION_CODE

OE_LINES_IFACE_ALL
ORDER_SOURCE_ID
ORIG_SYS_DOCUMENT_REF
ORIG_SYS_LINE_REF
ORIG_SYS_SHIPMENT_REF
INVENTORY_ITEM_ID
LINK_TO_LINE_REF
REQUEST_DATE
DELIVERY_LEAD_TIME
DELIVERY_ID
ORDERED_QUANTITY
ORDER_QUANTITY_UOM
SHIPPING_QUANTITY
PRICING_QUANTITY
PRICING_QUANTITY_UOM
SOLD_FROM_ORG_ID
SOLD_TO_ORG_ID
INVOICE_TO_ ORG_ID
SHIP_TO_ORG_ID
PRICE_LIST_ID
PAYMENT_TERM_ID

  • Item import (Item conversion)

The Item Interface lets you import items into Oracle Inventory.
Pre-requisites:
Creating an Organization
Code Combinations
Templates
Defining Item Status Codes
Defining Item Types

Interface tables:
MTL_SYSTEM_ITEMS_INTERFACE
MTL_ITEM_REVISIONS_INTERFACE (If importing revisions)
MTL_ITEM_CATEGORIES_INTERFACE (If importing categories)
MTL_INTERFACE_ERRORS (View errors after import)

Concurrent Program:
Item import
In the item import parameters form, for the parameter ‘set process id’, specify
the ‘set process id’ value given in the mtl_item_categories_interface table. The
parameter ‘Create or Update’ can have any value. Through the import process, we
can only create item category assignment(s). Updating or Deletion of item category assignment is not supported.

Base tables:
MTL_SYSTEM_ITEMS_B
MTL_ITEM_REVISIONS_B
MTL_CATEGORIES_B
MTL_CATEGORY_SETS_B
MTL_ITEM_STATUS
MTL_ITEM_TEMPLATES

Validations:
Check for valid item type.
Check for valid part_id/segment of the source table.
Validate part_id/segment1 for master org.
Validate and translate template id of the source table.
Check for valid template id. (Attributes are already set for items, default attributes for
that template, i.e., purchasable, stockable, etc)
Check for valid item status.
Validate primary uom of the source table.
Validate attribute values.
Validate other UOMs of the source table.
Check for unique item type. Discard the item, if part has non-unique item type.
Check for description, inv_um uniqueness
Validate organization id.
Load master records and category records only if all validations are passed.
Load child record if no error found.

Some important columns that need to populated in the interface tables:
MTL_SYSTEM_ITEMS_INTERFACE:
PROCESS_FLAG = 1 (1= Pending, 2= Assign Complete,
3= Assign/Validation Failed, 4= Validation succeeded; Import failed, 5 = Import in Process,
7 = Import succeeded)
TRANSACTION_TYPE = ‘CREATE’, ‘UPDATE’
SET_PROCESS_ID = 1
ORGANIZATION_ID
DESCRIPTION
ITEM_NUMBER and/or SEGMENT (n)
MATERIAL_COST
REVISION
TEMPLATE_ID
SUMMARY_FLAG
ENABLED_FLAG
PURCHASING_ITEM_FLAG
SALES_ACCOUNT (defaulted from
MTL_PARAMETERS.SALES_ACCOUNT)
COST_OF_SALES_ACCOUNT (defaulted from MTL_PARAMETERS.
COST_OF_SALES_ACCOUNT)

MTL_ITEM_CATEGORIES_INTERFACE:

INVENTORY_ITEM_ID or ITEM_NUMBER.
ORGANIZATION_ID or ORGANIZATION_CODE or both.
TRANSACTION_TYPE = ‘CREATE’ (‘UPDATE’ or ‘DELETE’ is not
possible through Item Import).
CATEGORY_SET_ID or CATEGORY_SET_NAME or both.
CATEGORY_ID or CATEGORY_NAME or both.
PROCESS_FLAG = 1
SET_PROCESS_ID (The item and category interface records should have the
same set_process_id, if you are importing item and category assignment together)

MTL_ITEM_REVISIONS_INTERFACE:
INVENTORY_ITEM_ID or ITEM_NUMBER (Must match the item_number in mtl_system_items_interface table)
ORGANIZATION_ID or ORGANIZATION_CODE or both
REVISION
CHANGE_NOTICE
ECN_INITIATION_DATE
IMPLEMENTATION_DATE
IMPLEMENTED_SERIAL_NUMBER
EFFECTIVITY_DATE
ATTRIBUTE_CATEGORY
ATTRIBUTEn
REVISED_ITEM_SEQUENCE_ID
DESCRIPTION
PROCESS_FLAG = 1
TRANSACTION_TYPE = ‘CREATE’
SET_PROCESS_ID = 1
Each row in the mtl_item_revisions_interface table must have the REVISION
and EFFECTIVITY_DATE in alphabetical (ASCII sort) and chronological
order.

  • Inventory On-hand quantity Interface

    This interface lets you import the on hand inventory into Oracle.
Interface tables:

MTL_TRANSACTIONS_INTERFACE
MTL_MTL_TRANSACTION_LOTS_INTERFACE (If the item is Lot controlled)
MTL_SERIAL_NUMBERS_INTERFACE (If the item is Serial controlled)

Concurrent Program:

Launch the Transaction Manager through Interface Manager or explicitly call the API – INV_TXN_MANAGER_PUB.PROCESS_TRANSACTIONS () to launch a dedicated transaction worker to process them.
The Transaction Manager picks up the rows to process based on the LOCK_FLAG, TRANSACTION_MODE, and PROCESS_FLAG. Only records with TRANSACTION_MODE of 3, LOCK_FLAG of ’2′, and PROCESS_FLAG of ’1′ will be picked up by the Transaction Manager and assigned to a Transaction Worker. If a record fails to process completely, then PROCESS_FLAG will be set to ’3′ and ERROR_CODE and ERROR_EXPLANATION will be populated with the cause for the error.
Base Tables:

MTL_ON_HAND_QUANTITIES
MTL_LOT_NUMBERS
MTL_SERIAL_NUMBERS

Validations:

Validate organization_id
Check if item is assigned to organization
Validate disposition_id
Check if the item for the org is lot controlled before inserting into the Lots interface table.
Check if the item for the org is serial controlled before inserting into Serial interface table.
Check if inventory already exists for that item in that org and for a lot.
Validate organization_id, organization_code.
Validate inventory item id.
Transaction period must be open.

Some important columns that need to be populated in the interface tables:

MTL_TRANSACTIONS_INTERFACE:
TRANSACTION_SOURCE_NAME (ANY USER DEFINED VALUE),
TRANSACTION_HEADER_ID (MTL_MATERIAL_TRANSACTIONS_S.NEXTVAL)
TRANSACTION_INTERFACE_ID (MTL_MATERIAL_TRANSACTIONS_S.NEXTVAL – If item is lot or serial controlled, use this field to link to mtl_transactions_interface otherwise leave it as NULL),
TRANSACTION_DATE,
TRANSACTION_TYPE_ID,
PROCESS_FLAG (1 = Yet to be processed, 2 = Processed, 3= Error)
TRANSACTION_MODE (2 = Concurrent – to launch a dedicated transaction worker
to explicitly process a set of transactions.
3 = Background – will be picked up by transaction manager
polling process and assigned to transaction
worker. These will not be picked up until the
transaction manager is running)
SOURCE_CODE,
SOURCE_HEADER_ID,
SOURCE_LINE_ID (Details about the source like Order Entry etc for tracking purposes)
TRANSACTION_SOURCE_ID

Source Type Foreign Key Reference
Account GL_CODE_COMBINATIONS.CODE_COMBINATION_ID
Account Alias MTL_GENERIC_DISPOSITIONS.DISPOSITION_ID
Job or schedule WIP_ENTITIES.WIP_ENTITY_ID
Sales Order MTL_SALES_ORDERS.SALES_ORDER_ID

ITEM_SEGMENT1 TO 20,
TRANSACTION_QTY,
TRANSACTION_UOM,
SUBINVENTORY_CODE,
ORGANIZATION_ID,
LOC_SEGMENT1 TO 20.

MTL_TRANSACTION_LOTS_INTERFACE:
TRANSACTION_INTERFACE_ID,
LOT_NUMBER,
LOT_EXPIRATION_DATE,
TRANSACTION_QUANTITY,
SERIAL_TRANSACTION_TEMP_ID (This is required for items under both lot and serial control to identify child records in mtl_serial_numbers_interface)

MTL_SERIAL_NUMBERS_INTERFACE:
TRANSACTION_INTERFACE_ID,
FM_SERIAL_NUMBER,
TO_SERIAL_NUMBER,
VENDOR_SERIAL_NUMBER

  • Customer conversion

    Customer Interface helps you create customers in Oracle Applications.
    Interface tables:
    RA_CUSTOMERS_INTERFACE_ALL
    RA_CUSTOMER_PROFILES_INT_ALL
    RA_CONTACT_PHONES_INT_ALL
    RA_CUSTOMER_BANKS_INT_ALL
    RA_CUST_PAY_METHOD_INT_ALL

Base tables:
RA_CUSTOMERS
RA_ADDRESSES_ALL
RA_CUSTOMER_RELATIONSHIPS_ALL
RA_SITE_USES_ALL

Concurrent program:
Customer Interface
Validations:
Check if legacy values fetched are valid.
Check if customer address site is already created.
Check if customer site use is already created.
Check is customer header is already created.
Check whether the ship_to_site has associated bill_to_site
Check whether associated bill_to_site is created or not.
Profile amounts validation:
Validate cust_account_id, validate customer status.
Check if the location already exists in HZ_LOCATIONS. If does not exist, create new location.

Some important columns that need to be populated in the interface tables:

RA_CUSTOMERS_INTERFACE_ALL:
ORIG_SYSTEM_CUSTOMER_REF
SITE_USE_CODE
ORIG_SYSTEM_ADDRESS_REF
INSERT_UPDATE_FLAG (I = Insert, U = Update)
CUSTOMER_NAME
CUSTOMER_NUMBER
CUSTOMER_STATUS
PRIMARY_SITE_USE_FLAG
LOCATION
ADDRESS1
ADDRESS2
ADDRESS3
ADDRESS4
CITY
STATE
PROVINCE
COUNTY
POSTAL_CODE
COUNTRY
CUSTOMER_ATTRIBUTE1
CUSTOMER_ATTRIBUTE2
CUSTOMER_ATTRIBUTE3
CUSTOMER_ATTRIBUTE4
CUSTOMER_ATTRIBUTE5
LAST_UPDATED_BY
LAST_UPDATE_DATE
CREATED_BY
CREATION_DATE
ORG_ID
CUSTOMER_NAME_PHONETIC

RA_CUSTOMER_PROFILES_INT_ALL:
INSERT_UPDATE_FLAG
ORIG_SYSTEM_CUSTOMER_REF
ORIG_SYSTEM_ADDRESS_REF
CUSTOMER_PROFILE_CLASS_NAME
CREDIT_HOLD
LAST_UPDATED_BY
LAST_UPDATE_DATE
CREATION_DATE
CREATED_BY
ORG_ID

RA_CONTACT_PHONES_INT_ALL:
ORIG_SYSTEM_CONTACT_REF
ORIG_SYSTEM_TELEPHONE_REF
ORIG_SYSTEM_CUSTOMER_REF
ORIG_SYSTEM_ADDRESS_REF
INSERT_UPDATE_FLAG
CONTACT_FIRST_NAME
CONTACT_LAST_NAME
CONTACT_TITLE
CONTACT_JOB_TITLE
TELEPHONE
TELEPHONE_EXTENSION
TELEPHONE_TYPE
TELEPHONE_AREA_CODE
LAST_UPDATE_DATE
LAST_UPDATED_BY
LAST_UPDATE_LOGIN
CREATION_DATE
CREATED_BY
EMAIL_ADDRESS
ORG_ID

  • Customer API
Trading Community Architecture (TCA) is an architecture concept designed to support complex
trading communities. These APIs utilize the new TCA model, inserting directly to the HZ tables.

API Details:
  1. Set the organization id
    Exec dbms_application_info.set_client_info(’204′);
  2. Create a party and an account
    HZ_CUST_ACCOUNT_V2PUB.CREATE_CUST_ACCOUNT()
    HZ_CUST_ACCOUNT_V2PUB.CUST_ACCOUNT_REC_TYPE
    HZ_PARTY_V2PUB.ORGANIZATION_REC_TYPE
    HZ_CUSTOMER_PROFILE_V2PUB.CUSTOMER_PROFILE_REC_TYPE

  3. Create a physical location
    HZ_LOCATION_V2PUB.CREATE_LOCATION()
    HZ_LOCATION_V2PUB.LOCATION_REC_TYPE

  4. Create a party site using party_id you get from step 2 and location_id from step 3.
    HZ_PARTY_SITE_V2PUB.CREATE_PARTY_SITE()
    HZ_PARTY_SITE_V2PUB.PARTY_SITE_REC_TYPE

  5. Create an account site using account_id you get from step 2 and party_site_id from step 4.
    HZ_CUST_ACCOUNT_SITE_V2PUB.CREATE_CUST_ACCT_SITE()
    HZ_CUST_ACCOUNT_SITE_V2PUB.CUST_ACCT_SITE_REC_TYPE

  6. Create an account site use using cust_acct_site_id you get from step 5 ans site_use_code = ‘BILL_TO’.
    HZ_CUST_ACCOUNT_SITE_V2PUB.CREATE_CUST_SITE_USE()
    HZ_CUST_ACCOUNT_SITE_V2PUB.CUST_SITE_USE_REC_TYPE
    HZ_CUSTOMER_PROFILE_V2PUB.CUSTOMER_PROFILE_REC_TYPE

Base table:
HZ_PARTIES
HZ_PARTY_SITES
HZ_LOCATIONS
HZ_CUST_ACCOUNTS
HZ_CUST_SITE_USES_ALL
HZ_CUST_ACCT_SITES_ALL
HZ_PARTY_SITE_USES

Validations:
Check if legacy values fetched are valid.
Check if customer address site is already created.
Check if customer site use is already created.
Check is customer header is already created.
Check whether the ship_to_site has associated bill_to_site
Check whether associated bill_to_site is created or not.
Profile amounts validation:
Validate cust_account_id, validate customer status.
Check if the location already exists in HZ_LOCATIONS. If does not exist, create new location.

For detailed explanation refer to the below article:


  • Auto Invoice interface

    This interface is used to import Customer invoices, Credit memos, Debit memos and On Account credits.
    Pre-requisites:

    Set of Books
    Code combinations
    Items
    Sales representatives
    Customers
    Sales Tax rate
    Payment Terms
    Transaction Types
    Freight Carriers
    FOB
    Batch Sources
    Accounting Rules
Interface tables:
RA_INTERFACE_LINES_ALL
RA_INTERFACE_SALESCREDITS
RA_INTERFACE_DISTRIBUTIONS
RA_INTERFACE_ERRORS (details about the failed records)

Base tables:
RA_BATCHES
RA_CUSTOMER_TRX_ALL
RA_CUSTOMER_TRX_LINES_ALL
AR_PAYMENT_SCHEDULES_ALL     RA_CUSTOMER_TRX_LINE_SALESREPS
RA_CUST_TRX_GL_DIST_ALL
RA_CUSTOMER_TRX_TYPES_ALL

Concurrent Program:
Auto invoice master program
Validations:
Check for amount, batch source name, conversion rate, conversion type.
Validate orig_system_bill_customer_id, orig_system_bill_address_id, quantity.
Validate if the amount includes tax flag.

Some important columns that need to be populated in the interface tables:
RA_INTERFACE_LINES_ALL:
AGREEMENT_ID
COMMENTS
CONVERSION_DATE
CONVERSION_RATE
CONVERSION_TYPE
CREDIT_METHOD_FOR_ACCT_RULE
CREDIT_METHOD_FOR_INSTALLMENTS
CURRENCY_CODE
CUSTOMER_BANK_ACCOUNT_ID
CUST_TRX_TYPE_ID
DOCUMENT_NUMBER
DOCUMENT_NUMBER_SEQUENCE_ID
GL_DATE
HEADER_ATTRIBUTE1–15
HEADER_ATTRIBUTE_CATEGORY
INITIAL_CUSTOMER_TRX_ID
INTERNAL_NOTES
INVOICING_RULE_ID
ORIG_SYSTEM_BILL_ADDRESS_ID
ORIG_SYSTEM_BILL_CONTACT_ID
ORIG_SYSTEM_BILL_CUSTOMER_ID
ORIG_SYSTEM_SHIP_ADDRESS_ID
ORIG_SYSTEM_SHIP_CONTACT_ID
ORIG_SYSTEM_SHIP_CUSTOMER_ID
ORIG_SYSTEM_SOLD_CUSTOMER_ID
ORIG_SYSTEM_BATCH_NAME
PAYMENT_SERVER_ORDER_ID
PREVIOUS_CUSTOMER_TRX_ID
PRIMARY_SALESREP_ID
PRINTING_OPTION
PURCHASE_ORDER
PURCHASE_ORDER_DATE
PURCHASE_ORDER_REVISION
REASON_CODE
RECEIPT_METHOD_ID
RELATED_CUSTOMER_TRX_ID
SET_OF_BOOKS_ID
TERM_ID
TERRITORY_ID
TRX_DATE
TRX_NUMBER

  • Receipt API

    To bring in Unapplied Receipts and Conversion Receipts for Open Debit items to reduce the balance to the original amount due.
    Pre-requisites:

    Set of Books
    Code combinations
    Items
    Quick Codes
    Sales representatives
    Customers
    Sales Tax rate

API:
AR_RECEIPT_API_PUB.CREATE_CASH
AR_RECEIPT_API_PUB.CREATE_AND_APPLY

Base tables:
AR_CASH_RECEIPTS
Validations:
Check the currency and the exchange rate type to assign the exchange rate.
Validate bill to the customer.
Get bill to site use id.
Get the customer trx id for this particular transaction number.
Get payment schedule date for the customer trx id.

  • Lockbox interface

    AutoLockbox lets us automatically process receipts that are sent directly to the bank instead of manually feeding them in Oracle Receivables.
AutoLockbox is a three step process:

1. Import: During this step, Lockbox reads and formats the data from your bank file
into interface table AR_PAYMENTS_INTERFACE_ALL using a SQL *Loader
script.
2. Validation: The validation program checks data in this interface table for
compatibility with Receivables. Once validated, the data is transferred into
QuickCash tables (AR_INTERIM_CASH_RECEIPTS_ALL and
AR_INTERIM_CASH_RCPT_LINES_ALL).
3. Post QuickCash: This step applies the receipts and updates your customer’s
balances.

Pre-Requisites:
Banks
Receipt Class
Payment Method
Receipt Source
Lockbox
Transmission format
AutoCash Rule sets

Interface tables:
AR_PAYMENTS_INTERFACE_ALL (Import
data from bank file
)
AR_INTERIM_CASH_RECEIPTS_ALL
AR_INTERIM_CASH_RCPT_LINES_ALL (Validate data in interface table and place in quick cash tables)

Base Tables:
AR_CASH_RECEIPTS
AR_RECEIVABLES_APPLICATIONS
AR_ADJUSTMENTS
AR_DISTRIBUTIONS_ALL
AR_PAYMENT_SCHEDULES_ALL

Concurrent program:
Lockbox

Validations:
Check for valid record type, transmission record id.
Validate sum of the payments within the transmission.
Identify the lockbox number (no given by a bank to identify a lockbox).

Some important columns that need to be populated in the interface tables:
AR_PAYMENTS_INTERFACE_ALL:
STATUS
RECORD_TYPE
LOCKBOX_NUMBER
BATCH_NAME
TRANSIT_ROUTING_NUMBER
ACCOUNT
CHECK_NUMBER
REMITTANCE_AMOUNT
DEPOSIT_DATE
ITEM_NUMBER
CURRENCY_CODE
DEPOSIT_TIME

  • AP invoice interface

    This interface helps us to import vendor invoices into Oracle applications from external systems into Oracle Applications.
    Pre-requisites:

    Set of Books
    Code combinations
    Employees
    Lookups

    Interface tables:
    AP_INVOICES_INTERFACE
    AP_INVOICE_LINES_INTERFACE


Base tables:
AP_INVOICES_ALL – header information
AP_INVOICE_DISTRIBUTIONS_ALL – lines info

Concurrent program:
Payables Open Interface Import

Validations:
Check for valid vendor
Check for Source, Location, org_id, currency_code’s validity
Check for valid vendor site code.
Check if record already exists in payables interface table.

Some important columns that need to be populated in the interface tables:
AP_INVOICES_INTERFACE:
INVOICE_ID
INVOICE_NUM
INVOICE_DATE
VENDOR_NUM
VENDOR_SITE_ID
INVOICE_AMOUNT
INVOICE_CURRENCY_CODE
EXCHANGE_RATE
EXCHANGE_RATE_TYPE
EXCHANGE_DATE
DESCRIPTION
SOURCE
PO_NUMBER
PAYMENT_METHOD_LOOKUP_CODE
PAY_GROUP_LOOKUP_CODE
ATTRIBUTE1 TO 15
ORG_ID

AP_INVOICE_LINES_INTERFACE:

INVOICE_ID
INVOICE_LINE_ID
LINE_TYPE_LOOKUP_CODE
AMOUNT
DESCRIPTION
TAX_CODE
PO_NUMBER
PO_LINE_NUMBER
PO_SHIPMENT_NUM
PO_DISTRIBUTION_NUM
PO_UNIT_OF_MEASURE
QUANTITY_INVOICED
DIST_CODE_CONCATENATED
DIST_CODE_COMBINATION_ID
ATTRIBUTE1
ATTRIBUTE2
ATTRIBUTE3
ATTRIBUTE4
ATTRIBUTE5
ORG_ID

  • Vendor conversion/interface

    This interface is used to import suppliers, supplier sites and site contacts into Oracle applications.

    Pre-requisites setup’s required:

    Payment terms
    Pay Groups
    CCID
    Supplier classifications
    Bank Accounts
    Employees (if employees have to set up as vendors)

    Interface tables:

    AP_SUPPLIERS_INT
    AP_SUPPLIER_SITES_INT
    AP_SUP_SITE_CONTACT_INT

    Base Tables:

    PO_VENDORS
    PO_VENDOR_SITES_ALL
    PO_VENDOR_CONTACTS

    Interface programs:

    Supplier Open Interface Import
    Supplier Sites Open Interface Import
    Supplier Site Contacts Open Interface Import

    Validations:

    Check if vendor already exists
    Check if vendor site already exists
    Check if site contact already exists
    Check if term is defined.

Some important columns that need to be populated in the interface tables:
AP_SUPPLIERS_INT:
VENDOR_NUMBER, VENDOR_NAME, VENDOR_TYPE, STATE_REPORTABLE, FED_REPORTABLE, NUM_1099, TYPE_1099, PAY_GROUP_LOOKUP_CODE, VENDOR_ID is auto generated.

AP_SUPPLIER_SITES_INT:
VENDOR_SITE_ID, ORG_ID, VENDOR_SITE_CODE, INACTIVE_DATE, PAY_SITE, PURCHASING_SITE, SITE_PAYMENT_TERM, ADDRESS1, ADDRESS2.ADDRESS3, CITY, STATE, COUNTRY, ZIP, PH_NUM, FAX_NUMBER, TAX_REPORTING_SITE_FLAG.

AP_SUP_SITE_CONTACTS_INT:
VENDOR_ID, VENDOR_SITE_ID, FIRST_NAME, LAST_NAME, AREA_CODE, PHONE, EMAIL, ORG_ID


  • Purchase Order conversion:

    The Purchasing Document Open Interface concurrent program was replaced by two new concurrent programs Import Price Catalogs and Import Standard Purchase Orders. Import Price Catalogs concurrent program is used to import Catalog Quotations, Standard Quotations, and Blanket Purchase Agreements. Import Standard Purchase Orders concurrent program is used to import Unapproved or Approved Standard Purchase Orders.
Import Standard Purchase Orders

Pre-requisites:
Suppliers, sites and contacts
Buyers
Line Types
Items
PO Charge account setup

Interface Tables:
PO_HEADERS_INTERFACE
PO_LINES_INTERFACE
PO_DISTRIBUTIONS_INTERFACE
PO_INTERFACE_ERRORS (Fallouts)

Interface Program:
Import Standard Purchase Orders.

Base Tables:
PO_HEADERS_ALL
PO_LINES_ALL
PO_DISTRIBUTIONS_ALL
PO_LINE_LOCATIONS_ALL

Validations:
Header:
Check if OU name is valid
Check if Supplier is valid
Check if Supplier site is valid
Check if buyer is valid
Check if Payment term is valid
Check if Bill to and ship to are valid
Check if FOB, freight terms are valid

Lines:
Check if Line_type, ship_to_org, item, uom, ship_to_location_id, requestor, charge_account, deliver_to_location are valid

General:
Check for duplicate records in interface tables
Check if the record already exists in base tables.

Some important columns that need to be populated in the interface tables:

PO_HEADERS_INTERFACE:
INTERFACE_HEADER_ID (PO_HEADERS_INTERFACE_S.NEXTVAL), BATCH_ID, ORG_ID, INTERFACE_SOURCE_CODE, ACTION (‘ORIGINAL’,'UPDATE’,'REPLACE’), GROUP_CODE, DOCUMENT_TYPE_CODE, PO_HEADER_ID (NULL), RELEASE_ID, RELEASE_NUM, CURRENCY_CODE, RATE, AGENT_NAME, VENDOR_ID, VENDOR_SITE_ID, SHIP_TO_LOCATION, BILL_TO_LOCATION, PAYMENT_TERMS

PO_LINES_INTERFACE:
INTERFACE_LINE_ID, INTERFACE_HEADER_ID, LINE_NUM, SHIPMENT_NUM, ITEM, REQUISITION_LINE_ID, UOM, UNIT_PRICE, FREIGHT_TERMS, FOB

PO_DISTRIBUTIONS_INTERFACE:
INTERFACE_LINE_ID, INTERFACE_HEADER_ID, INTERFACE_DISTRIBUTION_ID, DISTRIBUTION_NUM, QUANTITY_ORDERED, QTY_DELIVERED, QTY_BILLED, QTY_CANCELLED, DELIVER_TO_LOCATION_ID, DELIVER_TO_PERSON_ID, SET_OF_BOOKS, CHARGE_ACCT, AMOUNT_BILLED.

Import Blanket Purchase Agreements:

Interface Tables:
PO_HEADERS_INTERFACE
PO_LINES_INTERFACE

Interface program:
Import Price Catalogs

Base tables:
PO_HEADERS_ALL
PO_LINES_ALL
PO_LINE_LOCATIONS_ALL

Example:
Suppose you want to create a blanket with one line and two price breaks and the details for the price break are as below:
1) Quantity = 500, price = 10, effective date from ’01-JAN-2006′ to
’31-JUN-2006′
2) Quantity = 500, price = 11, effective date from ’01-JUL-2006′ to
’01-JAN-2007′
To create the above the BPA, you would create ONE record in PO_HEADERS_INTERFACE and THREE records in PO_LINES_INTERFACE
LINE1: It will have only the line information. LINE NUM would be 1.

LINE2: For the first Price Break details, LINE NUM will be the same as above i.e. 1. SHIPMENT_NUM would be 1 and SHIPMENT_TYPE would be ‘PRICE BREAK’

LINE3: For the second Price Break details, LINE NUM will be the same as above i.e. 1. SHIPMENT_NUM would be 2 and SHIPMENT_TYPE would be ‘PRICE BREAK’

All the line-level records above must have the same INTERFACE_HEADER_ID.
For detailed explanation refer to the below article:
http://erpschools.com/articles/importing-blanket-purchase-agreementsbpa-2


  • Requisition import

    You can automatically import requisitions into Oracle Applications using the Requisitions Open Interface
    Pre-requisites:

    Set of Books
    Code combinations
    Employees
    Items
    Define a Requisition Import Group-By method in the Default region of the Purchasing
    Options window.
    Associate a customer with your deliver-to location using the Customer Addresses
    window for internally sourced requisitions.
Interface tables:
PO_REQUISITIONS_INTERFACE_ALL
PO_REQ_DIST_INTERFACE_ALL    

Base tables:
PO_REQUISITIONS_HEADERS_ALL
PO_REQUISITION_LINES_ALL
PO_REQ_DISTRIBUTIONS_ALL

Concurrent program:
REQUISITION IMPORT

Validations:
Check for interface transaction source code, requisition destination type.
Check for quantity ordered, authorization status type.

Some important columns that need to be populated in the interface tables:
PO_REQUISITIONS_INTERFACE_ALL:
INTERFACE_SOURCE_CODE (to identify the source of your imported
Requisitions)
DESTINATION_TYPE_CODE
AUTHORIZATION_STATUS
PREPARER_ID or PREPARER_NAME
QUANTITY
CHARGE_ACCOUNT_ID or charge account segment values
DESTINATION_ORGANIZATION_ID or DESTINATION_ORGANIZATION_
CODE
DELIVER_TO_LOCATION_ID or DELIVER_TO_LOCATION_CODE
DELIVER_TO_REQUESTOR_ID or DELIVER_TO_REQUESTOR_NAME
ORG_ID
ITEM_ID or item segment values (values if the SOURCE_TYPE_CODE or
DESTINATION_TYPE_CODE is ‘INVENTORY’)

PO_REQ_DIST_INTERFACE_ALL:
CHARGE_ACCOUNT_ID or charge account segment values
DISTRIBUTION_NUMBER
DESTINATION_ORGANIZATION_ID
DESTINATION_TYPE_CODE
INTERFACE_SOURCE_CODE
ORG_ID
DIST_SEQUENCE_ID (if MULTI_DISTRIBUTIONS is set to Y)



  • PO Receipts Interface
    The Receiving Open Interface is used for processing and validating receipt data that
    comes from sources other than the Receipts window in Purchasing.

Pre-requisites:
Set of Books
Code combinations
Employees
Items

Interface tables:
RCV_HEADERS_INTERFACE
RCV_TRANSACTIONS_INTERFACE
PO_INTERFACE_ERRORS

Concurrent program:
RECEIVING OPEN INTERFACE

Base tables:
RCV_SHIPMENT_HEADERS
RCV_SHIPMENT_LINES
RCV_TRANSACTIONS

Validations:
Check that SHIPPED_DATE should not be later than today.
Check if vendor is valid.
If Invoice number is passed, check for its validity
Check if Item is valid

Some important columns that need to be populated in the interface tables:

RCV_HEADERS_INTERFACE:
HEADER_INTERFACE_ID
GROUP_ID
PROCESSING_STATUS_
CODE
RECEIPT_SOURCE_CODE
TRANSACTION_TYPE
SHIPMENT_NUM
RECEIPT_NUM
VENDOR_NAME
SHIP_TO_
ORGANIZATION_CODE
SHIPPED_DATE
INVOICE_NUM
INVOICE_DATE
TOTAL_INVOICE_
AMOUNT
PAYMENT_TERMS_ID
EMPLOYEE_NAME
VALIDATION_FLAG (Indicates whether to validate a row or not, values ‘Y’, ‘N’)

RCV_TRANSACTIONS_INTERFACE:
INTERFACE_TRANSACTION_ID
GROUP_ID
TRANSACTION_TYPE (‘SHIP’ for a standard shipment (an ASN or ASBN)
or ‘RECEIVE’ for a standard receipt)
TRANSACTION_DATE
PROCESSING_STATUS_CODE =’PENDING’
CATEGORY_ID
QUANTITY
UNIT_OF_MEASURE
ITEM_DESCRIPTION
ITEM_REVISION
EMPLOYEE_ID
AUTO_TRANSACT_CODE
SHIP_TO_LOCATION_ID
RECEIPT_SOURCE_CODE
TO_ORGANIZATION_CODE
SOURCE_DOCUMENT_CODE
PO_HEADER_ID
PO_RELEASE_ID
PO_LINE_ID
PO_LINE_LOCATION_ID
PO_DISTRIBUTION_ID
SUBINVENTORY
HEADER_INTERFACE_ID
DELIVER_TO_PERSON_NAME
DELIVER_TO_LOCATION_CODE
VALIDATION_FLAG
ITEM_NUM
VENDOR_ITEM_NUM
VENDOR_ID
VENDOR_SITE_ID
ITEM_ID
ITEM_DESCRIPTION
SHIP_TO_LOCATION_ID


  • GL Journal interface

    This interface lets you import journals from other applications like Receivables, Payables etc to integrate the information with General Ledger.
    Pre-requisites:

    Set of Books
    Flex field Value sets
    Code Combinations
    Currencies
    Categories
    Journal Sources
Interface tables:
GL_INTERFACE

Base tables:
GL_JE_HEADERS
GL_JE_LINES
GL_JE_BACTHES

Concurrent Program:
Journal Import
Journal Posting — populates GL_BALANCES

Validations:
Validate SOB, journal source name, journal category name, actual flag
A – Actual amounts
B – Budget amounts
E – Encumbrance amount
If you enter E in the interface table, then enter appropriate encumbrance ID, if
B enter budget id.
Check if accounting date or GL date based period name is valid (i.e., not closed).
Check if accounting date falls in open or future open period status.
Check chart of accounts id based on Sob id.
Check if code combination is valid and enabled.
Check if record already exists in GL interface table.
Check if already journal exists in GL application.

Some important columns that need to be populated in the interface tables:
GL_INTERFACE:
STATUS
SET_OF_BOOKS_ID
ACCOUNTING_DATE
CURRENCY_CODE
DATE_CREATED
CREATED_BY
ACTUAL_FLAG
USER_JE_CATEGORY_NAME
USER_JE_SOURCE_NAME
CURRENCY_CONVERSION_DATE
ENCUMBRANCE_TYPE_ID
BUDGET_VERSION_ID
USER_CURRENCY_CONVERSION_TYPE
CURRENCY_CONVERSION_RATE
SEGMENT1 to
ENTERED_DR
ENTERED_CR
ACCOUNTED_DR
ACCOUNTED_CR
TRANSACTION_DATE
PERIOD_NAME
JE_LINE_NUM
CHART_OF_ACCOUNTS_ID
FUNCTIONAL_CURRENCY_CODE
CODE_COMBINATION_ID
DATE_CREATED_IN_GL
GROUP_ID


  • GL budget interface

    Budget interface lets you load budget data from external sources into Oracle Applications.

    Pre-requisites:

    Set of Books
    Flex field Value sets
    Code Combinations
Interface tables:
GL_BUDGET_INTERFACE

Base tables:
GL_BUDGETS
GL_BUDGET_ASSIGNMENTS
GL_BUDGET_TYPES

Concurrent program:
Budget Upload

Validations:
Check if CURRENCY_CODE is valid.
Check if SET_OF_BOOKS_ID is valid.
Check if BUDGET_ENTITY_NAME (budget organization) is valid.


Some important columns that need to be populated in the interface tables:

GL_BUDGET_INTERFACE:

BUDGET_NAME NOT
BUDGET_ENTITY_NAME
CURRENCY_CODE
FISCAL_YEAR
UPDATE_LOGIC_TYPE
BUDGET_ENTITY_ID
SET_OF_BOOKS_ID
CODE_COMBINATION_ID
BUDGET_VERSION_ID
PERIOD_TYPE
DR_FLAG
STATUS
ACCOUNT_TYPE
PERIOD1_AMOUNT through PERIOD60_AMOUNT
SEGMENT1 through SEGMENT30


  • GL daily conversion rates
    This interface lets you load the rates automatically into General Ledger.
    Pre-requisites:

    Currencies
    Conversion rate Types

Interface tables:
GL_DAILY_RATES_INTERFACE

Base tables:
GL_DAILY_RATES
GL_DAILY_CONVERSION_TYPES

Concurrent Program:
You do not need to run any import programs. The insert, update, or deletion of rates in GL_DAILY_RATES is done automatically by database triggers on the GL_DAILY_RATES_INTERFACE. All that is required is to develop program to populate the interface table with daily rates information.

Validations:
Check if
FROM_CURRENCY and TO_CURRENCY are valid.
Check if USER_CONVERSION_TYPE is valid.

Some important columns that need to be populated in the interface tables:

GL_DAILY_RATES_INTERFACE:

FROM_CURRENCY
TO_CURRENCY
FROM_CONVERSION_DATE
TO_CONVERSION_DATE
USER_CONVERSION_TYPE
CONVERSION_RATE
MODE_FLAG (D= Delete, I = Insert, U = Update)
INVERSE_CONVERSION_RATE

Tuesday, 13 August 2013

Purchasing Document Open Interface (PDOI)

Purchasing Document Open Interface (PDOI)

INTRODUCTION - PDOI are used to Import and update price/sales catalog information. It uses Application Program Interfaces (APIs) to process catalog data in the Oracle Applications interface tables. It is done to ensure that it is valid before importing it into Oracle Purchasing.

After validating the price/sales catalog information
1. PDOI program converts the information, including price break information, in the interface tables into blanket purchase agreements.
2. You can also choose to update your item master and apply sourcing rules and release generation methods to the imported item for blanket purchase agreements.
3. Blanket purchase agreements can also be replaced with the latest price/sales catalog information when your supplier sends a replacement catalog, or updated when the supplier sends an updated catalog.

How to import data - One way to import price/sales catalog data is through Electronic Data Interchange (EDI). PDOI supports the EDI transmissions of the price/sales catalogs (ANSI X12 832 or EDIFACT PRICAT).

FUNCTIONAL OVERVIEW - There are different ways that a supplier sends the price/sales catalog to its client. They may use EDI’s, interface, mail etc., The main aim with supplier information is to load the interface tables. we can load them manually or depending on the interface the information is coming through. Flow of price /sales catalog from supplier to client:


The figure above shows the flow of price/sales catalog information from the
supplier or trading partner, to Oracle e-Commerce Gateway, to the Purchasing
Documents Open Interface, and finally into Purchasing.
Interface tables - PO_HEADERS_INTERFACE and PO_LINES_INTERFACE

How the tables are loaded- Can be done manually
- e-Commerce Gateway ( supplier provides information as flat file using EDI translator according to EDI interface file definitions, then , the EDI Catalog Inbound program loads the information into the interface tables.

How it works - The EDI inbound program and the PDOI program are run as a request set when you choose Submit Request in the EDI import programs window. The EDI inbound program loads the interface tables. Later on, PDOI program validates the data and loads the validated data into Purchasing.

The PDOI program receives the data, derives and defaults any missing data, and validates the data. If no errors are found in the submission process, the data in the PDOI tables is loaded into the PO_HEADERS, PO_LINES, and PO_LINE_LOCATIONS tables in Purchasing to create the blanket purchase agreement

How to check status – first make note of the Request ID number and then select View My Requests from the Help menu.

If PDOI program finds any error in the information, the record identification number and details of error are send to PO_INTERFACE_ERRORS table.

RECORD AND ERROR PROCESSING

Record Processing - PDOI processes a record from parent PO_HEADERS_INTERFACE table then to child PO_LINES_INTERFACE table before going on to the next record. Partial documents are accepted as PDOI saves or errors out line by line.

Error Processing –
1. If an error is found in a header, none of its lines will be processed and sets the column PROCESS_CODE to REJECTED in the PO_HEADERS_INTERFACE table.
2. If no errors are found, then the PROCESS_CODE is set as ACCEPTED.
3. If the supplier sends an updated price/sales catalog, the PDOI sets the PROCESS_CODE column to NOTIFIED for those lines with prices that exceed your price tolerance.

Oracle APIs and Open Interfaces

Oracle APIs and Open Interfaces



Oracle Puchasing:
1. Requisitions Open Interface
2. Purchasing Documents Open Interface
3. Cancel PO APIs
4. Receiving Open Interface
Oracle Inventory:
1. Open Transaction Interface
2.1 Customer Item Interface
2.2 Open Item Interface
2.3 Cycle Count Open Interface
3.1 Open Replenishment Interface
3.2 Reservations Open Interface
3.3 Move Orders Open Interface
OM:
1.    Order Import
2.    Process Order API
3.    RLM Open Interfaces
Actions, APIs, and Parameters: Descriptions of the APIs used for various functions and the API parameters.
Application Parameter Initialization: Description of the application parameter initialization call.
Trip API: Create and update trip records and perform actions on trips.
Stop API: Create and update stop records and perform actions on stops.
Deliveries API: Create and update trip stop records and perform actions on trip stops.
Delivery  Details API: Assign and unassign delivery details to and from  deliveries, split a delivery detail, update a delivery detail with new
information, and create trips and deliveries for multiple delivery lines.
Container API: Create container records, update container records, autopack containers, perform actions on containers.
Freight  Cost APIs: Create freight cost records, update freight cost records,  validate freight cost types, delete freight cost records.
Tables
OE_ORDER_HEADERS_ALL
OE_ORDER_LINES_ALL
WSH_DELIVERY_DETAILS
OE_ORDER_HOLDS_ALL
OE_PRICE_ADJUSTMENTS
OE_TRANSACTION_TYPES_ALL
OE_DROP_SHIP_SOURCES
OE_SETS
OE_SYSTEM_PARAMETSR
MTL_DEMANDS
MTL_RESRVATIONS
Inventory
Open Transaction Interface
 Oracle Inventory provides an open interface for you to load  transactions from external applications and feeder systems. These  transactions could include sales order shipment transactions from an  Order Management system other than Oracle Order Management, or they  could be simple material issues, receipts, or transfers loaded from data  collection devices. The following transaction types are supported by  this interface:
• Inventory issues and receipts (including user-defined transaction types)
• Subinventory transfers
• Direct interorganization transfers
• Intransit shipments
• WIP component issues and returns
• WIP assembly completions and returns
• Sales order shipments
• Inventory average cost updates
• LPN Pack
• Unpack
• Split Transactions
• Inventory Lot Split/ Merge/ Translate Transactions
 This interface is also used as an integration point with Oracle Order  Management for shipment transactions. Oracle Order Management's  Inventory Interface program populates the interface tables with  transactions submitted through the Confirm
Shipments window.
You  must write the load program that inserts a single row for each  transaction into the MTL_TRANSACTIONS_INTERFACE table. For material  movement of items that are under lot or serial control, you must also  insert rows into MTL_TRANSACTION_LOTS_INTERFACE and  MTL_SERIAL_NUMBERS_INTERFACE respectively. If you insert WIP
 assembly/completion transactions that complete or return job assemblies,  you must also insert rows into the CST_COMP_SNAP_ INTERFACE table if  the organization referenced uses average costing. The system uses this  information to calculate completion cost.
There are two modes you can use to process your transactions through  the interface. In the first processing mode, you populate the interface  table only. Then the Transaction Manager polls the interface table  asynchronously looking for transactions to process, groups the  transaction rows, and launches a Transaction Worker to process each  group.
In the second processing mode, you insert the rows in the  interface table and call a Transaction Worker directly, passing the  group identifier of the interfaced transactions as a parameter so that  the worker can recognize which subset of transactions to process.
The Transaction Worker calls the Transaction Validator, which  validates the row, updates the error code and explanation if a  validation or processing error occurs, and derives or defaults any  additional columns. Next, the Transaction Processor records the  transaction details in the transaction history table along with relevant  current cost information. All material movement transactions update  inventory perpetual balances for the issue, receipt, or transfer  locations. Once the transaction has been successfully processed, the  corresponding row is deleted from the interface table. Finally, the  transaction is costed by the transaction cost processor, which runs  periodically, picking up all transactions from the history table that  have not yet been marked as costed.
Open Replenishment Interface
 Oracle Inventory provides an open interface for you to easily load  replenishment requests from external systems such as a barcode  application. Such requests may be in the form of stock-take counts or  requisition requests for subinventories in which you do not track  quantities.
Cycle Count Entries Interface
 You can import cycle count entries from an external system into Oracle  Inventory using the Cycle Count Entries Interface. This interface  validates all data that you import into Oracle Inventory. It also  performs foreign key validation and checks for attribute  inter-dependencies, acceptable values, and value ranges. The interface  ensures that the imported cycle count entries contain the same detail as  items entered manually using the Cycle Count Entries window. Errors  detected during validation are written to the Cycle Count Interface  Errors table.
Kanban Application Program Interface
 The Kanban API is a public API that allows you to update the supply  status of kanban cards. To accomplish this task, you use the public  procedure update_card_supply_status
Item Open Interface
 You can import items from any source into Oracle Inventory and Oracle  Engineering using the Item Open Interface. With this interface, you can  convert inventory items from another inventory system, migrate assembly  and component items from a legacy manufacturing system, convert  purchased items from a custom purchasing system, and import new items  from a product data management package. The Item Open Interface  validates your data, ensuring that your imported items contain the same  item detail as items that you enter manually in the Master Item window.
You can also import item category assignments. This can be done  simultaneously with a process of importing items, or as a separate task  of importing item category assignments only. For this purpose, the  Inventory menu contains the Import submenu with the Import Items and  Import Item Category Assignments menu entries.
Receiving Open Interface
 You use the Receiving Open Interface to process and validate receipt  data that comes from sources other than the Receipts window in Oracle  Purchasing. These sources include:
• Receipt information from other Oracle applications or legacy systems
• Brocades and other receiving information from scanners and radio frequency devices
• Advance Shipment Notices (ASNs) from suppliers
 The Receiving Open Interface maintains the integrity of the new data as  well as the receipt data that resides in Oracle Purchasing.
The Receiving Open Interface does not support:
• Movement statistics
• Dynamic locators

BOM
Bills of Materials Open Interfaces
WIP
Open Move Transaction Interface
 You can load Move transaction information into the Open Move  Transaction Interface from a variety of sources, including external data  collection devices such as bar code readers, automated test equipment,  cell controllers, and other manufacturing execution systems. You then  use the interface to load these transactions into Oracle Work in  Process. All transactions are validated and invalid transactions are  marked, so that you can correct and resubmit them.
Open Resource Transaction Interface
 You can use external data collection devices such as bar code readers,  payroll systems, and time card entry forms to collect resource and  overhead transaction data, then load the data into the Open Resource  Transaction Interface for Oracle Work in Process to process.
Work Order Interface
 The Work Order Interface enables you to import Discrete job and  Repetitive schedule header information, and Discrete job operations,  material, resource, and scheduling information from any source, using a  single process.
You can import:
• Planned orders for new Discrete jobs,
• Discrete job operations, components, resources, resource usage, and scheduling details
• Update and reschedule recommendations for existing Discrete jobs
• Suggested Repetitive schedules Work in Process then uses this information to automatically create new Discrete jobs
and pending Repetitive Schedules, or to update existing Discrete jobs.
MRP
Open Forecast Interface
 You can import forecasts from any source using the Open Forecast  Interface table. Oracle Master Scheduling/MRP automatically validates  and implements imported forecasts as new forecasts in Oracle Master  Scheduling/MRP.
Cost Management
Periodic Cost Open Interface
 The Oracle Periodic Cost Open Interface provides an open interface for  you to easily load periodic item costs from external applications or  legacy systems and migrate them into the Oracle Cost Management  Application. This interface should only be used to bring in periodic  costs for the first opened periodic period. It cannot be used for  subsequent periods. Costs in subsequent periods are calculated by the  system.
Cost Import Interface
 The Oracle Cost Import Interface enables you to import costs for items  from legacy systems, and import new cost information for existing items.  Importing resource costs and resource overhead rates is also supported.  You will also be able to replace existing cost information with the new  cost information. However, updating of existing costs is not supported.  Importing costs into frozen cost type is also not supported. The item  costs will have to be imported into another cost type and then the cost  update may be run to update the frozen cost type
OM
Order Import
Pricing Open interface
Pick release


Oracle EBS APIs


  1. API To Find Sales Order's Subtotal,discount,charges and Tax (OE_OE_TOTALS_SUMMARY.ORDER_TOTALS)
  2. API for Cancelling the Purchase Order (PO) Document (PO_DOCUMENT_CONTROL_PUB.CONTROL_DOCUMENT)
  3. API for Deleting the category assignment to an item (INV_ITEM_CATEGORY_PUB.DELETE_CATEGORY_ASSIGNMENT)
  4. API for Updating Category Assignment of an item (INV_ITEM_CATEGORY_PUB.UPDATE_CATEGORY_ASSIGNMENT)
  5. API to Book a sales order (OE_ORDER_PUB.PROCESS_ORDER )
  6. API to Cancel a Sales Order (OE_ORDER_PUB.PROCESS_ORDER)
  7. API to Cancel an Order Line (OE_ORDER_PUB.PROCESS_ORDER)
  8. API to Check Existence of an Internal Bank R12 (CE_BANK_PUB.CHECK_BANK_EXIST)
  9. API to Create Item Specific UOM Conversion (INV_CONVERT.CREATE_UOM_CONVERSION)
  10. API to Create a Customer Account for an existing Party TCA R12 (HZ_CUST_ACCOUNT_V2PUB.CREATE_CUST_ACCOUNT)
  11. API to Create a Customer Profile TCA R12 (HZ_CUSTOMER_PROFILE_V2PUB.CREATE_CUSTOMER_PROFILE)
  12. API to Create a Customer Site TCA R12 (HZ_CUST_ACCOUNT_SITE_V2PUB.CREATE_CUST_ACCT_SITE)
  13. API to Create a Customer Site Use TCA R12 (HZ_CUST_ACCOUNT_SITE_V2PUB.CREATE_CUST_SITE_USE)
  14. API to Create a Party Site TCA R12 (HZ_PARTY_SITE_V2PUB.CREATE_PARTY_SITE)
  15. API to Create a Party Site Use TCA R12 (HZ_PARTY_SITE_V2PUB.CREATE_PARTY_SITE_USE)
  16. API to Create a Phone Number (Contacts) TCA R12 (HZ_CONTACT_POINT_V2PUB.CREATE_CONTACT_POINT)
  17. API to Create an Internal Bank Account in R12 CE_BANK_PUB.CREATE_BANK_ACCT
  18. API to Create an Internal Bank Branch R12 (CE_BANK_PUB.CREATE_BANK_BRANCH)
  19. API to Delete a Sales Order (OE_ORDER_PUB.PROCESS_ORDER )
  20. API to Delete an Order Line (OE_ORDER_PUB.PROCESS_ORDER)
  21. API to End Date an Internal Bank Branch in R12 - CE_BANK_PUB.SET_BANK_BRANCH_END_DATE
  22. API to End Date an Internal Bank in R12 - CE_BANK_PUB.SET_BANK_END_DATE
  23. API to Update Customer Address in Oracle TCA R12 (HZ_LOCATION_V2PUB.UPDATE_LOCATION)
  24. API to Update Oracle Applications Password (fnd_user_pkg.updateuser)
  25. API to Update Purchase Order Document (PO) (PO_CHANGE_API1_S.UPDATE_PO)
  26. API to Update a Customer Account TCA R12 (HZ_CUST_ACCOUNT_V2PUB.UPDATE_CUST_ACCOUNT)
  27. API to Update an Internal Bank Branch R12 (CE_BANK_PUB.UPDATE_BANK_BRANCH)
  28. API to Update an Internal Bank in R12 (CE_BANK_PUB.UPDATE_BANK)
  29. API to apply hold on AP invoice in R12 (AP_HOLDS_PKG.INSERT_SINGLE_HOLD)
  30. API to cancel single AP invoice (AP_CANCEL_PKG.AP_CANCEL_SINGLE_INVOICE)
  31. API to confirm on Order Header Status (OE_HEADER_STATUS_PUB)
  32. API to confirm on Order Line Status (OE_LINE_STATUS_PUB)
  33. API to create Group in TCA R12 (HZ_PARTY_V2PUB.CREATE_GROUP)
  34. API to create Party and Customer Account in R12 (HZ_CUST_ACCOUNT_V2PUB.CREATE_CUST_ACCOUNT)
  35. API to create a Person Type Party and Customer Account TCA R12 (HZ_CUST_ACCOUNT_V2PUB.CREATE_CUST_ACCOUNT)
  36. API to create customer Addresses in TCA R12 (HZ_LOCATION_V2PUB.CREATE_LOCATION)
  37. API to find AP INVOICE Status (AP_INVOICES_PKG.GET_APPROVAL_STATUS)
  38. API to get combination id based on segment info (FND_FLEX_EXT.GET_COMBINATION_ID)
  39. API to get open sales order quantity in oracle apps (OE_LINE_UTIL.GET_OPEN_QUANTITY)
  40. API to get the concatenated segment values for a code combination id (FND_FLEX_EXT.GET_SEGS)
  41. API to get the formatted contact details of a Party in oracle apps R12 (HZ_FORMAT_PHONE_V2PUB.PHONE_DISPLAY)
  42. API to get the segment delimiter for the specified key flex field structure (FND_FLEX_EXT.GET_DELIMITER)
  43. API to populate loc_id HZ_LOCATIONS R12 (HZ_TAX_ASSIGNMENT_V2PUB. CREATE_LOC_ASSIGNMENT )
  44. API to populate the Descriptive element Value of an item ( inv_item_catalog_elem_pub.process_item_descr_elements)
  45. API to release hold on AP invoice in R12 (AP_HOLDS_PKG.RELEASE_SINGLE_HOLD)
  46. API to update AR Invoice Printing Details in R12 AR_INVOICE_SQL_FUNC_PUB
  47. API to update AR Receipt in oracle apps R12 - AR_RECEIPT_UPDATE_API_PUB (UNIDENTIFIED to UNAPPLIED)
  48. API to update a Customer Account Relationship TCA R12 (HZ_CUST_ACCOUNT_V2PUB.UPDATE_CUST_ACCT_RELATE)
  49. API to update a Customer Profile TCA R12 (HZ_CUSTOMER_PROFILE_V2PUB.UPDATE_CUSTOMER_PROFILE)
  50. API to update an Internal Bank Account in Oracle Apps R12 (CE_BANK_PUB.UPDATE_BANK_ACCT)
  51. AR: Reversal of Receipt through API (ar_receipt_api_pub.REVERSE)
  52. AR: Unapplication of a Credit Memo through API (ar_cm_api_pub.unapply_on_account)
  53. AR_INVOICE_API_PUB.create_single_invoice
  54. AR_RECEIPT_API_PUB - Script to Create and Apply on account a AR Receipt
  55. AR_RECEIPT_API_PUB.Apply_on_account ( Script to apply a receipt on account )
  56. AR_RECEIPT_API_PUB.CREATE_MISC - R12 - Create Miscellaneous Cash Receipt in Oracle Apps
  57. AR_RECEIPT_API_PUB.Unapply_on_account ( Script to unapply on account a Receipt in R12)
  58. Add New Line to Existing Order Using the API (OE_ORDER_PUB.PROCESS_ORDER)
  59. Ar_receipt_api_pub.Apply
  60. Ar_receipt_api_pub.Create_and_apply
  61. Ar_receipt_api_pub.Create_cash
  62. Ar_receipt_api_pub.Unapply
  63. Assign Delivery Details to a Delivery through API ( WSH_DELIVERY_DETAILS_PUB.DETAIL_TO_DELIVERY )
  64. Assigning Category set to Category via API in Oracle Apps (INV_ITEM_CATEGORY_PUB.CREATE_VALID_CATEGORY)
  65. Assigning category to an Item using API (INV_ITEM_CATEGORY_PUB.CREATE_CATEGORY_ASSIGNMENT)
  66. Autocreate Deliveries Through API WSH_DELIVERY_DETAILS_PUB.AUTOCREATE_DELIVERIES
  67. CASH MANAGEMENT API'S (CE_BANK_PUB) IN ORACLE APPS R12
  68. CE_BANK_PUB.CHECK_BRANCH_EXISTS - API to check existence of an Internal Bank Branch in R12
  69. CE_BANK_PUB.CREATE_BANK API to Create an Internal Bank in R12
  70. CE_BANK_PUB.UPDATE_BANK_BRANCH API to Update an Internal Bank Branch R12
  71. Create Credit Card in Oracle Payments using API (IBY_FNDCPT_SETUP_PUB.CREATE_CARD)
  72. Create Party of type Organization in Oracle TCA using API hz_party_v2pub.create_organization
  73. Create a Customer Account Relationship API HZ_CUST_ACCOUNT_V2PUB.CREATE_CUST_ACCT_RELATE
  74. Create and Release Pciking Batch via API (wsh_picking_batches_pub.create_batch and wsh_picking_batches_pub.Release_batch)
  75. Credit Memo Creation via API ( ar_credit_memo_api_pub.create_request )
  76. FND_PROGRAM : Add Concurrent Program to Request Group via API
  77. FND_PROGRAM : Delete Concurrent Program Definition via API
  78. FND_PROGRAM : Delete Concurrent Program Executable via API
  79. FND_PROGRAM : Delete Concurrent Program Parameter via API
  80. FND_PROGRAM : Register Concurrent Program parameters via API
  81. FND_PROGRAM : Register Concurrent Program via API
  82. FND_PROGRAM : Remove Concurrent Program from Request Group via API
  83. FND_PROGRAM : Create Concurrent Executable via API
  84. FND_REQUEST.SUBMIT_REQUEST in R12
  85. FND_USER_PKG.CREATEUSER ( Create Applications User via PLSQL)
  86. GET ONHAND QUANTITIES THROUGH API in Oracle Apps R12 (INV_QUANTITY_TREE_PUB.QUERY_QUANTITIES)
  87. Generation of a LOT number for an Inventory item via API in R12
  88. How to apply invoice in detail against the receipt through api (AR_RECEIPT_API_PUB.Apply_In_Detail)
  89. How to attach documents from backend? ( fnd_webattch.add_attachment )
  90. How to delete a attachment from backend (fnd_attached_documents2_pkg.delete_attachments)
  91. How to do UOM Conversions through api? ( inv_convert.inv_um_convert_new )
  92. How to get the Description of the Item based on Item catalog group using API (invicgds.inv_get_icg_desc)
  93. How to get timezone based on ZIP code? (HZ_TIMEZONE_PUB.GET_TIMEZONE_ID)
  94. How to set context and profile values from backend in R12 Oracle apps
  95. IBY_EXT_BANKACCT_PUB.CREATE_EXT_BANK – R12 – API to Create External Bank
  96. IBY_EXT_BANKACCT_PUB.CREATE_EXT_BANK_ACCT – R12 – API to Create External Bank Account
  97. IBY_EXT_BANKACCT_PUB.CREATE_EXT_BANK_BRANCH – R12 – API to Create External Bank Branch
  98. IMPORT EXTERNAL BANK ACCOUNTS R12 ORACLE APPS
  99. Item Categories Deletion through API in Oracle Apps (INV_ITEM_CATEGORY_PUB.DELETE_CATEGORY)
  100. Item Categories Updation through API in Oracle Apps (INV_ITEM_CATEGORY_PUB.UPDATE_CATEGORY)
  101. Item categories creation through API in Oracle Apps (INV_ITEM_CATEGORY_PUB.CREATE_CATEGORY)
  102. Item categories in oracle apps R12
  103. Item import based on Item template in R12 (insert script)
  104. OE_HOLDS_PUB.APPLY_HOLDS -- Apply Hold Script
  105. OE_HOLDS_PUB.RELEASE_HOLDS -- Release Holds Script
  106. OE_ORDER_PUB.GET_ORDER -- API to collect existing sales order data in R12
  107. OE_ORDER_PUB.PROCESS_ORDER ( Sample Script for R12)
  108. OE_ORDER_PUB.PROCESS_ORDER in Oracle Apps R12
  109. OE_ORDER_PUB.PROCESS_ORDER to Apply hold on a sales order
  110. OE_ORDER_PUB.PROCESS_ORDER to Release a hold on sales order in R12
  111. ORA-01403: no data found in Package AR_RECEIPT_API_PUB Procedure Apply
  112. Picking Batch Creation Through API ( wsh_picking_batches_pub.create_batch)
  113. Price List Import via API (QP_PRICE_LIST_PUB.PROCESS_PRICE_LIST) in R12
  114. Script to Submit Item Import (INCOIN) using FND_REQUEST in Oracle Apps R12
  115. Script to get the Quantity reserved against an sales order line in oracle apps R12 (INV_RESERVATION_PUB.QUERY_RESERVATION_OM_HDR_LINE)
  116. TRADING COMMUNITY ARCHITECTURE (TCA) API’S IN R12 ORACLE APPS
  117. Unassign Delivery Details from Delivery through API ( WSH_DELIVERY_DETAILS_PUB.DETAIL_TO_DELIVERY )
  118. Update Order Header Details Using the API (OE_ORDER_PUB.PROCESS_ORDER)
  119. hz_party_contact_v2pub.create_org_contact - API to create a Contact person for an organization in Oracle TCA

Receiving PO Using Receiving Open Interface (ROI)



Receiving PO Using Receiving Open Interface (ROI)

The Receiving Transaction Processor processes pending or unprocessed receiving transactions. We can receive the Purchase Order either using the Expected Receipt form or by putting the record into the Receiving Open Interface (ROI). And then if we will submit the receiving transactions processor so the PO will be received.

Records needs to be inserted into rcv_transactions_interface with processing_status_code and transaction_status_code as 'PENDING' and transaction_type of 'RECEIVE'. and also inserted into rcv_shipment_headers which creates the shipment header.

Interface Tables: -
  • rcv_headers_interface
  • rcv_transactions_interface
  • mtl_transaction_lots_interface
Error Table: -
  • po_interface_errors
Base Tables:
  • rcv_shipment_headers
  • rcv_shipment_lines
  • rcv_transactions
  • mtl_lot_numbers
  • mtl_material_transactions
  • rcv_lot_transactions
R12 - Sample Procedure to Receive PO by inserting records into ROI
DECLARE

x_user_id NUMBER;
x_resp_id NUMBER;
x_appl_id NUMBER;
x_po_header_id NUMBER;
x_vendor_id NUMBER;
x_segment1 VARCHAR2 (20);
x_org_id NUMBER;
x_line_num NUMBER;
l_chr_lot_number VARCHAR2 (50);
l_chr_return_status VARCHAR2 (2000);
l_num_msg_count NUMBER;
l_chr_msg_data VARCHAR2 (50);
v_count NUMBER;

BEGIN

DBMS_OUTPUT.put_line ('RCV Sample Insert Script Starts');
DBMS_OUTPUT.put_line ('**************************************');

SELECT po_header_id, vendor_id, segment1, org_id
INTO x_po_header_id, x_vendor_id, x_segment1, x_org_id
FROM po_headers_all
WHERE segment1 = '380087' -- Enter The Po Number which needs to be received
AND org_id = 308 -- Enter the org_id
AND approved_flag = 'Y'
AND nvl(cancel_flag, 'N') = 'N';

SELECT DISTINCT
u.user_id,
to_char(a.responsibility_id) responsibility_id,
b.application_id
INTO
x_user_id, x_resp_id, x_appl_id
from
apps.fnd_user_resp_groups_direct a,
apps.fnd_responsibility_vl b,
apps.fnd_user u,
apps.fnd_application fa
where
a.user_id = u.user_id
and a.responsibility_id = b.responsibility_id
and a.responsibility_application_id = b.application_id
and sysdate between a.start_date and nvl(a.end_date,sysdate+1)
and fa.application_id (+) = b.application_id
and upper(u.user_name) = 'A42485' -- Enter the User_name
and b.responsibility_name = 'Inventory'; -- Enter The Responsibility Name

DBMS_OUTPUT.put_line ('Inserting the Record into Rcv_headers_interface');
DBMS_OUTPUT.put_line ('*********************************************');

INSERT INTO rcv_headers_interface
(header_interface_id, GROUP_ID, processing_status_code,
receipt_source_code, transaction_type, last_update_date,
last_updated_by, last_update_login, creation_date, created_by,
vendor_id,expected_receipt_date, validation_flag)
SELECT rcv_headers_interface_s.NEXTVAL, rcv_interface_groups_s.NEXTVAL,
'PENDING', 'VENDOR', 'NEW', SYSDATE, x_user_id, 0,SYSDATE, x_user_id,
x_vendor_id, SYSDATE, 'Y'
FROM DUAL;

DECLARE

CURSOR po_line
IS
SELECT
pl.org_Id, pl.po_header_id, pl.item_id, pl.po_line_id, pl.line_num, pll.quantity,
pl.unit_meas_lookup_code, mp.organization_code,
pll.line_location_id, pll.closed_code, pll.quantity_received,
pll.cancel_flag, pll.shipment_num,
pda.destination_type_code,
pda.deliver_to_person_id,
pda.deliver_to_location_id,
pda.destination_subinventory,
pda.destination_organization_id
FROM po_lines_all pl, po_line_locations_all pll,mtl_parameters mp, apps.po_distributions_all pda
WHERE pl.po_header_id = x_po_header_id
AND pl.po_line_id = pll.po_line_id
AND pll.line_location_id = pda.line_location_id
AND pll.ship_to_organization_id = mp.organization_id;

BEGIN

FOR rec_det IN po_line LOOP

IF rec_det.closed_code IN ('APPROVED', 'OPEN')
AND rec_det.quantity_received <>
THEN

DBMS_OUTPUT.put_line ('Inserting the Record into Rcv_Transactions_Interface');
DBMS_OUTPUT.put_line ('*********************************************');

INSERT INTO rcv_transactions_interface
(interface_transaction_id, GROUP_ID,
last_update_date, last_updated_by, creation_date,
created_by, last_update_login, transaction_type,
transaction_date, processing_status_code,
processing_mode_code, transaction_status_code,
po_header_id, po_line_id, item_id, quantity, unit_of_measure,
po_line_location_id, auto_transact_code,
receipt_source_code, to_organization_code,
source_document_code, document_num,
destination_type_code,deliver_to_person_id,
deliver_to_location_id,subinventory,
header_interface_id, validation_flag)
SELECT rcv_transactions_interface_s.NEXTVAL,
rcv_interface_groups_s.CURRVAL, SYSDATE, x_user_id,
SYSDATE, x_user_id, 0, 'RECEIVE', SYSDATE, 'PENDING',
'BATCH', 'PENDING', rec_det.po_header_id,rec_det.po_line_id,
rec_det.item_id, rec_det.quantity,
rec_det.unit_meas_lookup_code,
rec_det.line_location_id, 'DELIVER', 'VENDOR',
rec_det.organization_code, 'PO', x_segment1,
rec_det.destination_type_code, rec_det.deliver_to_person_id,
rec_det.deliver_to_location_id, rec_det.destination_subinventory,
rcv_headers_interface_s.CURRVAL, 'Y'
FROM DUAL;

DBMS_OUTPUT.put_line ('PO line:' rec_det.line_num ' Shipment: ' rec_det.shipment_num ' has been inserted into ROI.');

select count(*)
into v_count
from mtl_system_items
where inventory_item_id = rec_det.item_id
and lot_control_code = 2 -- 2 - full_control, 1 - no control
and organization_id = rec_det.destination_organization_id;

IF v_count > 0 then

DBMS_OUTPUT.put_line ('The Ordered Item is Lot Controlled');
DBMS_OUTPUT.put_line ('Generate the Lot Number for the Lot Controlled Item');

BEGIN

-- initialization required for R12
mo_global.set_policy_context ('S', rec_det.org_id);
mo_global.init ('INV');
-- Initialization for Organization_id
inv_globals.set_org_id (rec_det.destination_organization_id);
-- initialize environment
fnd_global.apps_initialize (user_id => x_user_id,
resp_id => x_resp_id,
resp_appl_id => x_appl_id);

DBMS_OUTPUT.put_line ('Calling inv_lot_api_pub.auto_gen_lot API to Create Lot Numbers');
DBMS_OUTPUT.put_line ('*********************************************');

l_chr_lot_number :=
inv_lot_api_pub.auto_gen_lot
(p_org_id => rec_det.destination_organization_id,
p_inventory_item_id => rec_det.item_id,
p_parent_lot_number => NULL,
p_subinventory_code => NULL,
p_locator_id => NULL,
p_api_version => 1.0,
p_init_msg_list => 'F',
p_commit => 'T',
p_validation_level => 100,
x_return_status => l_chr_return_status,
x_msg_count => l_num_msg_count,
x_msg_data => l_chr_msg_data);

IF l_chr_return_status = 'S' THEN
COMMIT;
ELSE
ROLLBACK;
END IF;

DBMS_OUTPUT.put_line ('Lot Number Created for the item is => ' l_chr_lot_number);

END;

DBMS_OUTPUT.put_line ('Inserting the Record into mtl_transaction_lots_interface ');
DBMS_OUTPUT.put_line ('*********************************************');

INSERT INTO mtl_transaction_lots_interface
( transaction_interface_id,
last_update_date,
last_updated_by,
creation_date,
created_by,
last_update_login,
lot_number,
transaction_quantity,
primary_quantity,
serial_transaction_temp_id,
product_code,
product_transaction_id)
(select
mtl_material_transactions_s.nextval,--transaction_interface_id
sysdate, --last_update_date
x_user_id, --last_updated_by
sysdate, --creation_date
x_user_id, --created_by
-1, --last_update_login
l_chr_lot_number, --lot_number
rec_det.quantity, --transaction_quantity
rec_det.quantity, --primary_quantity
NULL, --serial_transaction_temp_id
'RCV', --product_code
rcv_transactions_interface_s.currval --product_transaction_id
from dual);

ELSE

DBMS_OUTPUT.put_line ('The Ordered Item is Not Lot Controlled');
DBMS_OUTPUT.put_line ('********************************************');

END IF;

ELSE
DBMS_OUTPUT.put_line ( 'PO line ' rec_det.line_num'-' rec_det.shipment_num ' is either closed, cancelled, received.');
DBMS_OUTPUT.put_line ('*********************************************');

END IF;

END LOOP;

DBMS_OUTPUT.put_line ('RCV Sample Insert Script Ends');
DBMS_OUTPUT.put_line ('*****************************************');

END;

COMMIT;

END;


-- Cross Check the Records in the Interface Table

select * from apps.rcv_headers_interface
where created_by = 2083
and group_id = ***

select *
from apps.rcv_transactions_interface
where created_by = 2083
and group_id = ***

select * from apps.mtl_transaction_lots_interface
where created_by = 2083
and lot_number = ***
and product_transaction_id in
(select interface_transaction_id from apps.rcv_transactions_interface
where created_by = 2083 and group_id = ***)

-- Check for the Error


select * from po_interface_errors
where batch_id = ***
-- Reprocessing the records from the interface if the same errored out there.

UPDATE rcv_headers_interface
SET processing_request_id = NULL,
validation_flag = 'Y',
processing_status_code = 'PENDING'
WHERE GROUP_ID = ***

UPDATE rcv_transactions_interface
SET request_id = NULL,
processing_request_id = NULL,
validation_flag = 'Y',
processing_status_code = 'PENDING',
transaction_status_code = 'PENDING',
processing_mode_code = 'BATCH'
WHERE interface_transaction_id = ***
AND batch_id = ***


-- Verification of the base tables Once the Receiving Transactions Processor is Completed

select * from apps.rcv_shipment_headers
where created_by = 2083

select * from apps.rcv_shipment_lines
where created_by = 2083
and po_header_id = 619
select * from apps.rcv_transactions
where po_header_id = 619
and created_by = 2083

select * from apps.mtl_lot_numbers
where lot_number in ('A6631684', 'A6631685', 'A6631686')
select * from apps.rcv_lot_transactions
where lot_num in ('A6631684', 'A6631685', 'A6631686')
select * from apps.mtl_material_transactions
where created_by = 2083
and rcv_transaction_id in (select transaction_id from apps.rcv_transactions
where po_header_id = 619
and created_by = 2083)

SELECT (SELECT segment1
FROM po_headers_all
WHERE po_header_id = pl.po_header_id
AND org_id = pl.org_id) po_number, pl.po_header_id,
pl.item_id, pl.po_line_id, pl.line_num, pll.shipment_num,
pll.quantity, pl.unit_meas_lookup_code, mp.organization_code, pll.line_location_id,
pll.closed_code, pll.quantity_received, pll.cancel_flag,
pll.shipment_num, pda.destination_type_code, pda.deliver_to_person_id,
pda.deliver_to_location_id, pda.destination_subinventory
FROM
apps.po_lines_all pl,
apps.po_line_locations_all pll,
apps.mtl_parameters mp,
apps.po_distributions_all pda
WHERE 1 = 1
AND pl.po_header_id = 619
AND pl.org_id = 308
AND pl.po_line_id = pll.po_line_id
AND pll.line_location_id = pda.line_location_id
AND pll.ship_to_organization_id = mp.organization_id
order by 1, 5, 6