Data Migration vs Data conversion

Data Migration vs Data conversion, www.askhareesh.com

When we need to enter data into oracle Apps:
  • The Data can be entered using the application Screens (for small amount of data, like creating PO, entering sales orders using Oracle Apps screens).
  • The data can be entered using Oracle’s Open System Interface (for regular operations e.g. for moving data from one module to another).
  • The data can be stored in the database table directly (Not recommended by oracle and can be very risky, because on any event data is going to be stored in many tables and data should be validated before inserting into tables that may cause data integrity and inconsistency problem, sometimes it may corrupt the data completely.).
  • Using third party tools like data loader (It is also can be used when data is relatively small (25-200 records) because it captures the keystrokes and works like manually entering the data into Oracle form but much faster as process is automated).
Read Need of Migration/Conversion


Migration: Migration of data means moving the data from one system to another using Interface Programs/APIs where both the systems have same structure of data.
Process of Migrating of data:
  • Identify the data to be imported to new system (Business requirement).
  • Extract the data into flat file/Staging table
  • Load the data into Interface Table(using SQL* Loader/DB Link/Others) after validation(If loading the data using Interface)
Conversion: Conversion of data means translating the data to suite target system (data should be formatted according to target system )  and then move the translated data using Interface Programs/APIs.
  • Identify the data to be imported to new system (Business requirement).
  • Extract into flat file/Staging table
  • Translate/Convert/Format the data
  • Load the data into Interface Table(using SQL* Loader/DB Link/Others) after validation(If loading the data using Interface) and then launch standard Interface concurrent program to load the data to Oracle Apps Base Tables
  • If using API, fetch the data, validate it and then call API to import the data
Also Read Difference between Migration/Conversion and Interface


Need of Data Migration or Data Conversion

Need of Data Migration or Data Conversion, www.askhareesh.com
Migration/Conversion are required when we are upgrading to one version to another (e.g. Oracle Apps 11.5.7 to Oracle 11.5.10) or moving data from some legacy system to Oracle Apps. There will be bulk  of data (sometimes millions or even more than that) that needs to be moved from one system to another  and  before moving the data it should be validated and only valid records should be entered into Oracle Apps.

If both the systems (Target and source) are not having same structure for data (Tables are not same/Table Structure is not same/The data is being stored in database is not same), it needs to be translated (e.g. upgrading from Oracle 11i to R12 where table structures are not same) then we say it as conversion (any kind of translation of data on Source data to make it suitable for Target system) otherwise migration.


Difference between conversion/Migration and interface

Difference between conversion/Migration and interface, www.askhareesh.com
Frequency
  • Conversions/Migration are a one time event
  • interfaces are ongoing
Occurrence in the project timeline
  • conversions/Migration executed before production
  • interfaces executed during production
Manner of execution
  • Conversions/Migration are batch
  • Interfaces may be batch or real time
Complexity
  • Conversion/Migration does have very complex, it’s totally depends upon the data mapping activity.
  • Coordinating with other systems make interfaces more complex
Maintenance
  • Maintenance of interface is bit cost intensive task.


PL/SQL Script of Purchase Order Interface

Purchase Order Interface, AskHareesh.blogspot.com
PL/SQL Script to upload data from staging table to interface table


CREATE OR REPLACE PROCEDURE xxx_po_api
AS
---To Import data from Interface to Base Tables - Import Standard Purchase Orders
-- please do the following: to see the errors
-- Run the program - Purchasing Interface Errors Report
-- choose parameter : PO_DOCS_OPEN_INTERFACE
-- po_interface_errors
l_currency_code fnd_currencies_vl.currency_code%type;
l_verify_flag Char(1);
l_error_message varchar2(5000);
l_vendor_id po_vendors.vendor_id%type;
l_vendor_site_id po_vendor_sites_all.vendor_site_id%type;
l_ship_to hr_locations.location_id%type;
l_bill_to hr_locations.location_id%type;
l_inventory_item_id mtl_system_items_b.inventory_item_id%type;
l_legacy_ponum number(20):=0;
l_batch_id number(3);
CURSOR C_PO_HEADER IS
            select distinct legacy_ponum,
            currency_code,
            vendor_name,
            vendor_site_code,
            ship_to,
            bill_to,
            status
            from xxx_purchase_order_stg;

CURSOR C_PO_LINES(l_legacy_ponum NUMBER) IS
            select *
            from xxx_purchase_order_stg
            where trim(legacy_ponum) = trim(l_legacy_ponum);
BEGIN
    FOR H1 IN C_PO_HEADER LOOP
        l_verify_flag := 'Y' ;
        l_error_message := NULL;
        BEGIN
            select currency_code
            into l_currency_code
            from fnd_currencies_vl
            where enabled_flag = 'Y'
            and currency_flag = 'Y'
            and upper(currency_code) = upper(trim(H1.currency_code));
            EXCEPTION
            WHEN OTHERS THEN
            l_verify_flag := 'N' ;
            l_error_message := l_error_message||'Currency Code is not Valid...';
        END;
        BEGIN
            select vendor_id
            into l_vendor_id
            from po_vendors
            where upper(vendor_name) = upper(trim(H1.vendor_name)) ;
            EXCEPTION
            WHEN OTHERS THEN
            l_verify_flag := 'N' ;
            l_error_message := l_error_message||'Vendor is not Existing...';
        END;
        BEGIN
            select vendor_site_id
            into l_vendor_site_id
            from po_vendor_sites_all
            where vendor_id = l_vendor_id
            and vendor_site_code = upper(trim(H1.vendor_site_code)) ;
            EXCEPTION
            WHEN OTHERS THEN
            l_verify_flag := 'N' ;
            l_error_message := l_error_message||'Vendor Site is not Existing...';
        END;
        BEGIN
            select location_id
            into l_ship_to
            from hr_locations
            where location_code = upper(trim(H1.ship_to));
            EXCEPTION
            WHEN OTHERS THEN
            l_verify_flag := 'N' ;
            l_error_message := l_error_message||'Ship To Location is not Existing...';
        END;
        BEGIN
            select location_id
            into l_bill_to
            from hr_locations
            where location_code = upper(trim(H1.bill_to));
            EXCEPTION
            WHEN OTHERS THEN
            l_verify_flag := 'N' ;
            l_error_message := l_error_message||'Bill To Location is not Existing...';
        END;
        If H1.status = 'Approved' then
        l_batch_id := 100 ;
        elsif H1.status = 'Incomplete' then
        l_batch_id := 101 ;
        else
        l_verify_flag := 'N' ;
        l_error_message := l_error_message||'Status is not valid...';
        end if;
l_legacy_ponum := trim(H1.legacy_ponum) ;
        IF l_verify_flag <> 'N' THEN
            insert into po_headers_interface
            (interface_header_id,
            batch_id,
            action,
            document_type_code,
            currency_code,
            agent_id,
            vendor_id,
            vendor_site_id,
            ship_to_location_id,
            bill_to_location_id
            )
            values
            (po_headers_interface_s.nextval,
            l_batch_id,
            'ORIGINAL',
            'STANDARD',
            l_currency_code,
            5479,
            l_vendor_id,
            l_vendor_site_id,
            l_ship_to,
            l_bill_to );
            update xxx_purchase_order_stg
            set h_verify_flag = 'Y'
            where legacy_ponum = l_legacy_ponum;
            COMMIT;
    FOR L1 IN C_PO_LINES(l_legacy_ponum) LOOP
        BEGIN
            select inventory_item_id
            into l_inventory_item_id
            from mtl_system_items_b
            where segment1||'.'||segment2||'.'||segment3||'.'||segment4=L1.item
            and organization_id = (select inventory_organization_id
            from hr_locations
            where location_id = l_ship_to ) ;
            EXCEPTION
            WHEN OTHERS THEN
            l_verify_flag := 'N' ;
            l_error_message := l_error_message ||'Inventory Item is not Existing...';
        END;
        IF L1.unit_price IS NULL THEN
        l_verify_flag := 'N' ;
        l_error_message := l_error_message ||'Unit Price is not Existing...';
        ELSIF L1.quantity IS NULL THEN
        l_verify_flag := 'N' ;
        l_error_message := l_error_message ||'Quantity is not Existing...';
        ELSIF L1.need_by_date IS NULL THEN
        l_verify_flag := 'N' ;
        l_error_message := l_error_message ||'Need By Date is not Existing...';
        END IF;
        IF l_verify_flag <> 'N' THEN
            insert into po_lines_interface
            (interface_line_id,
            interface_header_id,
            action,
            line_num,
            item_id,
            unit_price,
            quantity,
            Need_By_Date)
            values
            (po_lines_interface_s.nextval,
            po_headers_interface_s.currval,
            'ORIGINAL',
            L1.line_num,
            l_inventory_item_id,
            L1.unit_price,
            L1.quantity,
            L1.need_by_date);
            update xxx_purchase_order_stg
            set l_verify_flag = 'Y'
            where legacy_ponum = L1.legacy_ponum
            and line_num = L1.line_num;
ELSE
            update xxx_purchase_order_stg
            set l_error_message = l_error_message,
            l_verify_flag = 'N'
            where legacy_ponum = L1.legacy_ponum
            and line_num = L1.line_num;
END IF;
COMMIT;
END LOOP;
ELSE
            update xxx_purchase_order_stg
            set h_error_message = l_error_message,
            h_verify_flag = 'N'
            where legacy_ponum = H1.legacy_ponum;
END IF;
COMMIT;
END LOOP;
end xxx_po_api;
/

Purchase Order Interface


Interface/Conversion examples

Interfaces and Conversions in Oracle Applications, AskHareesh.blogspot.com

Interface/Conversion examples

The below list of interfaces/conversions are covered in this section. Details like prerequisites 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.


GL daily conversion rates

AP invoice interface, askHareesh blog for Oracle Apps

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.
Important Columns:
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
  • GL'S INTERFACE TABLES


PO Receipts Interface

AP invoice interface, askHareesh blog for Oracle Apps

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
Important Columns:
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 budget interface

AP invoice interface, askHareesh blog for Oracle Apps

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.
Important Columns:
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 to PERIOD60_AMOUNT
  • SEGMENT1 to SEGMENT30


Requisition import

AP invoice interface, askHareesh blog for Oracle Apps

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 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.
Important Columns:
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 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)


Purchase Order conversion

Purchase Order conversion, askHareesh blog for Oracle Apps

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.
Important Columns:
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

Vendor conversion/interface

Vendor Conversion interface, askHareesh blog for Oracle Apps

Vendor conversion/interface

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

Pre-requisites:
  • 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.
Important Columns:
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

AP invoice interface

AP invoice interface, askHareesh blog for Oracle Apps

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.
Important Columns:
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

Lockbox interface

Lockbox interface, AskHareesh blog for oracle apps

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).
Important Columns:
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


Receipt API

Receipt API, AskHareesh.blogspot.com

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.

Auto Invoice interface

Interfaces and Conversions in Oracle Applications, AskHareesh.blogspot.com

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,
  • Validate if the amount includes tax flag.
Important Columns:
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

Customer conversion

Customer conversion, AskHareesh.blogspot.com

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.
Important Columns:
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