Friday, 21 August 2015

Customer Interface in AR and 11i R12 tables in oracle apps

"A customer is someone who makes use of or receives the products or services of an individual or organization." Its means it is one who become a entity in your business world, irrespective of your line of business. If you are manufacturer the customer is one to whom you provide the product and get the money or services for which your get paid.
Time to time the customer definition has been changed and now in today economy it can be redefined as:
A customer..may include users, consumers, demanders, commanders, and requestors. Any person or entity who interacts directly or indirectly with any business system, thus it can be a client within internal departments, a supplier from the procurement process, an employee, or someone who is ringing up the cash register.
What information is important to keep in Business?
Typical information required for any customer is address, contact, bank , profile,class. Oracle standard form does have more than 8 tabs which hold most of the information. A typical flow of customer setup in Oracle is as;
Fig: Standard Setup process for customer
Fig : Entity Model for Customer Setup
What is Customer Interface ?
Customer Interface is a oracle seeded tool that is used to import and validate current or historical customer information from other systems into Receivables. Once customer information is imported into the system, you can use Customer Interface to import additional data for that customer (such as additional contacts or addresses) and to update existing information. This is yet another options to enter Customer information other than manually update and enter new information using the Customer windows.
Customer Interface and Customer in pre 11i and 11i
If you are coming from some old version, if have been noticed few things has been changed:
  • Customer tables have changed, to move customer in TCA model, it means
    • The HZ tables
    • The role of Parties
      • Note:Added in order to track prospective customers Due to CRM integration and adds “benefit” of having all customer “groups” stored in one location.
11i tables used by Customer Interface
  • Pre 11i versions used only 12 tables
  • 11i version uses 23+ tables
  • Only 4 of those tables remain the same
  • Main Customer tables have changed
  • Revised look and feel to Customer screen, too
The Change
Here is significant changes has been noticed from pre 11i and r11i version.
arrow upFIND screen
in 11i Find window automatically appears while calling customer screen.
most important , the Match Results window now is included in 11i, and it represnt multiple lines due to Parties and Accounts:
arrow upCustomer screen
Customer Tables in 11i
  • Previous Tables that have changed
  • Tables that remain the same
TCA model - how its drived
  • RA_CUSTOMERS, previously the main customer table is now a view.This become view which consists of data in HZ_CUST_ACCOUNTS and HZ_PARTIES tables.
  • New Customer Tables - also known as HZ Tables
  • The new HZ Customer Tables have tables for Customer Accounts and Parties
Customer Table Vs HZ Tables in R12
Here is summarize information for both for them:


Considering Customer as Parties
  • HZ_PARTIES stores information about organizations, groups, and people.
  • If a party becomes a customer then the information for the customer is stored in the HZ_CUST_ACCOUNTS table.
  • A Party record in the Parties table can have multiple customer account records in the Customer Accounts table.
  • One row is created in HZ_PARTIES for every customer record that is imported through the Customer Interface.
  • CRM uses the customer module making it a requirement for all customers to have a party id and customer id.
Customer Interface : The Flow:
The following diagram shows how customer information is imported into the customer tables.
11i Customer Interface Vs Oracle Base table
Here is summarize information for interface Vs base table. Once Customer Import get completed successfully , the data moved to these tables:
Please take a note, the bank model has been changed in r12, this will have till If you are looking for R12 , refer to trm guide.
Where to start for Customer Interface
1.The first steps would be your is preparing Receivables setup activity
  • Be sure to set up new data in Receivables that the Customer Interface should import. For example:
    • AutoCash Rule Sets
    • AutoInvoice Grouping Rules
    • Collectors
    • Customer Addresses
    • Customer Bank Information
    • Customer Exemptions
    • Customer Profile Classes
    • Demand Classes
    • Dunning Letter Sets
    • Freight Carriers
    • Payment Methods
    • Payment Terms
    • Statement Cycles
    • Tax Codes
  • Be sure to also set up Lookups in Receivables that the Customer Interface should import. These are the lookups:
    • Countries
    • Site Use Codes
    • Credit Ratings
    • Risk Codes
    • Account Statuses
    • Communication Types
    • Customer Classes
2. Next is to map the Interface Tables
    • ADDRESS1

Customer conversionInterface tables in R12

3. RUN the Import Program
  • Run Import after AR Customer Interface tables have been populated
  • Program will validate the data in the interface table before creating records in Receivables
  • Run the Customer Interface process through the Submit Request window
  • But, a separate navigational path is also provided
    Interfaces -> Customer
  • Check output file for errors
  • Make corrections and repeat import process
Not Surprise , if you get these....Common Errors..very common
  • a3: Bill_To_Orig_Address_Ref is not a valid bill-to address
    • Verify the Bill-To address reference is valid. Keep in mind that when using the bill-to reference with a ship-to address record... the bill-to must already exist in Receivables.
    • Note: Ran into this issue. Try running bill-to records through the interface first and ship-to records as second batch - this will resolve the error. Do not Interface with both in the same batch.
  • a1:Customer record for insert must have validated profile record defined
    • New customers and each Bill-To record must have a customer level profile in the RA_CUSTOMER_PROFILES_INT_ALL table.
  • a8: Conflicting profile classes specified for this customer/site
    • Profile classes for customer and bill-to must be the same. Sites cannot have a profile class different from the customer.
  • J1: Site_USE_CODE is not updateable.
  • J3: LOCATION is not updateable.
  • J2: PRIMARY_SITE_USE_FLAG is not updateable.
    • Keep in mind that site_use_code, primary_use_flag, and location may not be updateable through the Customer Interface
  • A3: Customer reference for insert is already defined.
  • A5: Customer Number already assigned to a different customer.
    • Customer reference and Customer number are values that must be unique. Verify the customer reference or customer number does not already exist for another customer.
Tips and Technique
1. Check out some of the Profile Options hitting Customer Import
  • HZ: Generate Party Number
    • This the profile option can be updated at Site, Application, Responsibility and User levels.This profile option determines whether party number should be auto-generated. If value is 'No',means party number must be passed in by the user else if 'Yes' or if the value is not set, party number will be auto-generated.
  • HZ: Generate Party Site Number
    • same as above for party site number set at all leval.
  • HZ: Internal Party
    • This profile option is used as a part of CRM setup. This must be set if CRM is installed. It is used for data migration purpose.
  • HZ: Generate Contact Number
    • This profile option determines whether contact number should be auto-generated.If the value is 'No', contact number must be passed in by the user. If the value is 'Yes' or if the value is not set, contact number will be auto-generated.
2. Automatic sequence number for customer number
Many times AR department is not like oracle seeded number which start by default 1000.Options are there:
From R11 and 11i, you cannot change the sequence via the forms and therefore any change that you make to the sequence would have to be
through SQLPlus and that would not be supported.
To set the sequence number
Step 1. In the Application Developer responsibility,
Menu: Application=>Database=>Sequence
Step 2. Query on sequence RA_CUSTOMERS_NUM_S This will bring up the sequence for the customer numbers and you can enter the number that you want it to start from.
To set automatic numbering for customer after setting the sequence:
Step 1. Menu:=>System=>System Options
Step 2. Region - Invoicing and Customers
Step 3. Check the box for Automatic Customer Numbering.
3. When doing Migration from other system, adviced to use TRIM Function
  • When loading interface tables remove all trailing spaces from import data.
    Example: LTRIM(RTRIM(customer_name))
4.If importing large number of customers, run in smaller batches instead of all at once.
Oracle benchmark is about 10,000 records per batch is ideal, it is suggested to keep the batch size small.
5.When rolling out in Multi-Org , then you must populate the org_IDs in the interface tables and run the customer interface for each organization set-up responsiblity.

1 comment:

  1. Regards
    Sridevi Koduru (Senior Oracle Apps Trainer
    LinkedIn profile -
    Please Contact for One to One Online Training on Oracle Apps Technical, Financials, SCM, Oracle Manufacturing, BI Publisher, OAF, ADF, SQL, PL/SQL, D2K at | +91 - 9581017828.