Monday, November 26, 2007

Customer Interface

“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.


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 11i
11i version uses 23+ tables


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


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.


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:
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

RA_CUSTOMER_INTERFACE_ALL

  • ORIG_SYSTEM_CUSTOMER_REF
  • CUSTOMER_NAME
  • CUSTOMER_STATUS
  • INSERT_UPDATE_FLAG
  • CUSTOMER_NUMBER
  • ORIG_SYSTEM_ADDRESS_REF
  • PRIMARY_SITE_USE_FLAG
  • SITE_USE_CODE
  • ADDRESS1
  • COUNTRY
  • LOCATION

RA_CUSTOMER_PROFILES_INT_ALL

  • CUSTOMER_PROFILE_CLASS_NAME
  • ORIG_SYSTEM_CUSTOMER_REF
  • INSERT_UPDATE_FLAG
  • CREDIT_HOLD
  • ORIG_SYSTEM_ADDRESS_REF


RA_CONTACT_PHONES_INT_ALL

  • ORIG_SYSTEM_CUSTOMER_REF
  • ORIG_SYSTEM_TELEPHONE_REF
  • TELEPHONE
  • TELEPHONE_TYPE
  • INSERT_UPDATE_FLAG
  • ORIG_SYSTEM_ADDRESS_REF
  • ORIG_SYSTEM_CONTACT_REF
  • CONTACT_LAST_NAME

RA_BANKS_INTERFACE

  • ORIG_SYSTEM_CUSTOMER_REF
  • PRIMARY_FLAG
  • START_DATE
  • BANK_ACCOUNT_NAME
  • BANK_ACCOUNT_CURRENCY_CODE
    BANK_ACCOUNT_NUM
  • BANK_BRANCH_NAME
  • ORIG_SYSTEM_ADDRESS_REF


RA_CUST_PAY_METHOD_INTERFACE

  • ORIG_SYSTEM_CUSTOMER_REF
  • START_DATE
  • PAYMENT_METHOD_NAME
  • PRIMARY_FLAG
  • ORIG_SYSTEM_ADDRESS_REF

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 providedInterfaces -> Customer
- Check output file for errors

Common Errors...

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:
You cannot change the sequence via the forms and therefore any change that you make to the sequence would have to bethrough 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.

3 comments:

Unknown said...

Hello,
It's a very good explanation what you've post about Customer Interface.
I have a problem with it that I can't solve.. may be you could clarify... :
I'm running Customer Interface to import data of AR Clients [11.0.3 to 11.5.10.2].
After executing the request, it appears an error mesage saying:
"For each customer, you may only have one active "Statements" type"
I've checked the customer data:
It has two addresses . The 1st has 2 business purposes: Bill_to and Statement. Both are Inactive and Main check-box NOT checked
The 2nd has both business purposes active (not checked Main check-box).

So the error message does not show the true situation. I think it's because the RA_CUSTOMER_INTERFACE_ALL has no a columns to show the status of the site_code (business purpose) and it tooks the CUSTOMER_STATUS column value (that it's 'A') and that's why I think it shows the error...
Do you know if is there any way to indicate this status? (i.e. via SITE_USE_ATTRIBUTE_1 to 15 columns?)
I've checked the note: 268865.1 but we have already applied the patches (we are on HZ.N) so.. I don't know what more things to try...
Thanks a lot.

Jose

Srila said...

Hi,

I am using seeded Oracle concurrent program to load the data. But how to load inactive customer site and customer site usages using the interface table?

Please let me know.

Thanks & Regards,
Srila

Unknown said...

We added your article to our auto glass directory. You’ll find there is link to this blog.
account receivables financing