Free Oracle Magazine Profit:The Executive's Guide to Oracle Applications

Enter your e-mail address to receive notifications when there are new posts

Profit Magazine: The Executive's Guide to Oracle Applications

Deep Drive : Customer Interface in AR

Posted on November 8th, 2007 by Sanjit Anand |Print This Post Print This Post |Email This Post Email This Post

Lot of people requested some more information for customer import. So I decided to clubbed together, so here to go:

Lets start with Customer ..why it is important in your business.

As per encyclopedia the customer is defined as:

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

customersetup

Fig: Standard Setup process for customer

customersetup1

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.

10

11cust

most important , the Match Results window now is included in 11i, and it represnt multiple lines due to Parties and Accounts:

cusseacrch

arrow upCustomer screen

107custscreen

11icustome

Customer Tables

  • Previous Tables that have changed
    • RA_CUSTOMERS
    • RA_ADDRESSES
    • RA_SITE_USES
    • RA_PHONES
    • RA_CONTACTS
    • AR_CUSTOMER_PROFILES
    • RA_CUSTOMER_RELATIONSHIPS
    • AR_CUSTOMER_PROFILE_AMOUNTS
  • Tables that remain the same
    • RA_CUST_RECEIPT_METHODS
    • AP_BANK_BRANCHES
    • AP_BANK_ACCOUNTS
    • AP_BANK_ACCOUNT_USES

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

Here is summarize information for both for them:

customerdatamapping

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

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:

customerinterfaceFlow

Please take a note, the bank model has been changed in r12, this will have till 11.5.10.2. 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

  • 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 provided
    Interfaces -> Customer
  • Check output file for errors

erroroutput

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


Posted in Functional, Oracle Receivable, Technical | Email This Post Email This Post | Print This Post Print This Post

42 Responses
  1. Prativa Says:

    Hi Anand, Thanks a lot for these nice articles. Please keep it up. God Bless you in every aspects.
    Could you please put more article in AR process, transactions, receipts, recognition, and period close.I am a technical consultant. I have worked less in AR. I would like learn more.

  2. Paul Guillen Says:

    Hi Anand;

    Thank you for all your articles, very helpful in understanding the process.
    Qustion for you?
    DO you or will you have some info on the AR changes in new release 12.

    Thank you in advance

  3. Srinath Says:

    Hi
    Anand Nice article about customer interface
    Thanks a lot for the information

  4. Chandu Says:

    Hi Anand,

    its very nice to see people helping others and your work is really commendable…bcause for the starters in AR like me the info given is immensely helpful..especially the error part…keep it up….

    Thanks You.

  5. Mark Valentine Says:

    Hi,

    I need some thing in Customer Conversion details. How we can do a conversion program in apps…

  6. Sanjit Anand Says:

    your step should be:

    1. try to understand what is the source of data.Understand the data and attribute first, then try to map with interface table as discussed in this post.

    2.If source is in Oracle, use db link, else in case of other system, you need to write a loader program .

    3. Write a pre-validation program which will validate the data from staging and insert into interface table.

    4. run the customer import seeded program.If any expection , review log and re-import the step 4.

    This is the standrad way to do conversion. If you are new to oracle apps adviced to use Customer import else API’s are are too good to use.

    In case if you are looking any specfic information, let me know, will share.

  7. Prasad Says:

    Hi,
    this is a nice article. Thanks.
    I am trying to import Customers
    and i get
    Q2 Error : Validation failed for the key location flexfield structure.
    I am not able to figure out what i need to do for this.
    any help would be highly appreciated .
    thanks

  8. Sanjit Anand Says:

    hey Prasad,

    The Customer import normally throws such kind of error when you are not passing country field.
    Make sure the field in the country you are passing and must exist in the FND_TERRITORIES table

    If Address Validation is set to ‘No validation’ and you pass a value that does not exist in AR_LOCATION_VALUES, Customer Interface inserts this value
    into AR_LOCATION_VALUES.
    Validation - The county must exist in FND_TERRITORIES.

  9. Prasad Says:

    Hi Anand,
    Thanks for the Quick Response.
    I guess i didnt pass anything in the County Field and since i am testing it I do not want the address to be validated.
    So my Questions are :
    1) I was assuming only Address1 , City , State, Country are mandatory fields ( and not county as you mentioned)
    2) How do i set the “Address Validation” to “No Validation”
    3) And if i set the Address Validation to No , what fields should Can/ Should I Pass

    Thanks again Anand. I appreciate the help you are providing. Oracle Apps is such an Ocean that you always feel somebody needs to be there to guide you all the time.

    thanks again

  10. Sanjit Anand Says:

    for 1: do a quick cehck on
    SELECT territory_code
    FROM fnd_territories_vl
    WHERE territory_code =

    For 2:Check the value in AR System Options ??
    Navigate to AR go to system options.

    In case if you are still stuck, share your insert script, then will figure out where it goes wrong.

  11. Prasad Says:

    Thanks Anand.
    I have been waiting to get a response from you.
    I hardcoded all the values and tried. it still doesnt work :-(
    getting frustrated…..

  12. Prasad Says:

    I’ll send you the code i am using.

    Thanks again anand.

  13. Haq Says:

    Hi Anand,

    Its very nice to have such article…..

    I have few doubts…

    As I am a technical consultant… I want to know something about functional flow.. also now am n customer/invoice conversion

    so,

    1) where I want to start ( incase of functional)

    2) for customer/invoice conversion, where I want to start technical as well as functional aspects…

    3)do u have any documents related to that, if so please send it to me

    Thanks in advance….

    2)where

  14. Sanjit Anand Says:

    I would advice you to refer TRM and user guide, which is freely avaiable on internet from Oracle site, in case if you are still looking any specfic information or document just let me know.

    Oracle University has different courses, they are also benifical. You can check to there site for details and fee.

  15. Pauline Says:

    Hi Anand

    Great article.

    I was going through it and found:-
    “A Party record in the Parties table can have multiple customer account records in the Customer Accounts table.”

    Had a question on this.

    Does it means that standard oracle allows multiple CUST_ACCOUNT_ID to 1 PARTY_ID?
    If yes, usually for what kind of situation?

    Appreciate your advise. Thanks in advance.

    Pauline

  16. Sanjit Anand Says:

    Thanks Pauline ,
    Yes, we can.

    Donot get confused with these terms:
    Let me recap these two words:

    “Party” is an entity in the Trading Community Model that can enter into business relationships. A party is a real person, organization, branch,subsidiary, legal entity, holding company, etc. The attributes of a party are universal. In other words, they are independent of your selling (or ultimately buying) relationship with the party.

    “Account” refers to the details of the deploying company’s selling relationship with a particular customer.

    Account – the attributes of the selling relationship between the company deploying Oracle Applications and a party. Account attributes do not describe a
    party; they only exist when a selling relationship is present between the deploying company and the party.

    More over you should note that: An account is created for a party not for a party site. The selling relationship is not with a location but with the party that is using that location.

    An Account cannot be created without a Party.

    Account Site – a party site that is used within the context of an account; e.g., for billing or shipping purposes.

    You need to have 2 tables:
    1) HZ_CUST_ACCOUNTS
    The HZ_CUST_ACCOUNTS table stores information about customer relationships established with a party. When a party becomes a customer, information about the customer account is stored in this table. Since a party can have multiple customer accounts, this table may contain several records for a single party. For example, an individual person may establish a personal account, a family account, and a professional account for a consulting practice. Note that the focus of this table is a business relationship and how transactions are conducted in the relationship. The primary key for this table is CUST_ACCOUNT_ID.

    A single PARTY_ID is stored on this table to designate the customer account owner.

    Each customer account may have only one owner (although other parties may be associated to the customer account via the HZ_CUST_ACCOUNT_ROLES table).

    2)HZ_CUST_ACCT_RELATE_ALL
    HZ_CUST_ACCT_RELATE_ALL stores information about relationships between customer accounts. A flag allows you to indicate whether a relationship is reciprocal. Note that columns also exist to reflect if the account relationship exist to enable shipping or billing to other accounts.

    In real business world, these are approch normally we take:
    1.Party Centric Approach : where each custmer is traeted as Party.
    2.Site Centric Approach

    Here are the screen snapshots how it looks:
    1.Party Centric Approach


    I have done setup for three account, account#1,#2,#3

    2.Site Centric Approach

    This can be best understood as customer Number 10009831-10009832-10009834

    select party_id, party_number,party_name from hz_parties where party_name=’PAULINE’

    Means we have 4 party created
    Case 1: 3 party as 3 customer name with 3 different account
    Case 2: 1 party as 1 Customer name with 3 site , each site pointing to one account.

    Case 2, is more popular in industry. Typical Healthcare , uses case 2.

    select * from HZ_CUST_ACCOUNTS where party_id in (select party_id from hz_parties where party_name=’PAULINE’)

    I have already sent you a mail, in case if more information , let me know.
    Hope this helps.
    sanjit

  17. Anshul Says:

    Hi Anand,

    This is an excellent article you have provided. Good work man!!

    Hey can you please provide some information on the API’s used to import customers?

    Regards,
    Anshul

  18. Harsh Says:

    Hi Anand,
    The above article is really very useful. Similarly do you have the complete flow of the AR and AP till GL including table level updates and API’s used?
    Regards,
    Harsh

  19. kavya, Says:

    Hi Anand,

    Article is really good to understand the customer interface,I have one quick question…which table is used to store the interface errors

  20. Darshini Says:

    hi Anand,

    Article is really good to understand the customer interface.
    I have one quick question regarding errors…which table is used to store the interface errors

    Thanks,
    Darshini

  21. Sanjit Anand Says:

    there is no error for customer interface. The best way is run the customer import, and if you get reported error in log , refer back to documentation and fix this.

    i hope you must have error list and there possible resolutions.

  22. Hi Anand, Says:

    During Customer conversion is there a way to populate payment terms for customer at the site level.In other words,is there any field in the interface tables to load the ‘Payment terms’ at the site level in addition to, the profile level?
    Thanks inadvance

  23. Darshini Says:

    Hi,

    Is there anyway to assign ‘Payment Terms’ to Customer at site level using interface table.(Is there any Column in interface table to load Payment Terms for the customer not at profile class level but at the site level)

    Thanks in advance!

  24. Sanjit Anand Says:

    Darshini,

    you need to populate ra_customer_profiles_int_all.standard_term_name.

    Now , you need to populate these two columns for tag this payment term.

    1) orig_system_address_ref column
    This is one of mandatory column.

    2)Orig_system_customer_ref

    If you provide this value , of site then payment term is tag at site leval

    Hope this helps

  25. Hi Anand, Says:

    Hi Anand,

    Thanks for the help …but this populates the payment terms at the profile calss of the customer at site level. But I am trying to populate at
    Navigation:
    Customer>Address> business purpose > bill_to>Details > ‘Payment terms’
    is there any other field in interface table to populate this field.

    I greatly appreciate your help.

  26. Darshini Says:

    Hi Anand,

    there is no way to load the payment terms using interface,its know by oracle and they have an enhance request created for this.

    customer conversion and loading the customers as ‘Person’ is it possible to create the same party(person,sam peter) as the contact of himself(sam peter) .

    I am able to load data according to above scenario using custom script and ‘Customer Interface’ but when we tried create the contact as same person using forms it errors and doesn’t let us save the data. Its strange some times it lets us create the contact even from forms too…its not stable?
    Do you have any thoughts on this?

    Main concern is can we create same person (’SAM PETER’) as the contact at the customer level (’SAM PETER’)..is this allowable in oracle?
    Thanks!

  27. sanjit Says:

    Darshini

    I am relly sorry that could not reply on time as running out of tight schedule in project.

    Coming to first part;
    Payment term , you need to understand this is drive how term is picked and thus incorporting customer aging. The reason, your working capital is trigger with the term(no of days..agreed to pay) for which a particular customer is picked. More over Ship_to or bill_to have different purpsoes and I did not find any sense to keep payment term at purpose leval , which never have any usage.

    More over during Billing customer is drived by two leval
    - customer leval
    - site leval
    or
    - Location level

    there there you can manage payment term at at above mention options, and if oracle is overrides by these hirecery.

    I have a hospital based customer where the requirement was very same , but when you model customer model and customer billing , we reliazed that can n’t be a valid case,therefore we capture the payment term at site cum location leval.

    Coming to your last part, We can …do …

    I have senarios from one of heathcare based cleint and will elaborate how this is modeled.

    Lets say,The customer is register as Dr X defined as party as person as well as Customer in Oracle.
    And as contact point same as X
    This is very similar to your case.

    LETS RECAP THE BASIC
    party :Person or organization that enters business relationships with another party
    …..For example, Darshini and Vision Corporation are respectively parties of the person and organization party types

    Contact :Individual person or organization that communicates on behalf of an organization or person.
    ……For example, Darshini, a purchasing manager, would be a contact for Vision Corporation.

    if you lookat the model for this section
    contact
    An individual person or organization that communicates on behalf of an organization or another person.
    • Organization contact: Describes the position held by the contact for a party or party site,not the specific person who fills the position
    • Contact roles: Defines the roles performed by the contact within an organization
    • Relationships: Information about a relationship between two parties.
    • Party: Entity that can join in business relationships

    The more important for you to pull and manage best by orig_system_ref…column.

  28. Darshini Says:

    Hi Anand,

    Thanks for the good explanation.

    We are looking for the payment term at business purpose for ‘Consolidated billing ‘ for which this field is required.

    and regarding second.So we can create same person as the contact/relationship as ‘contact’ and has contact with himself..it is permissible?

    Thanks!

  29. SB Says:

    Hi Sanjit,
    Excellent article. I have a couple of questions. We intend to convert some legacy data into Oracle 11i into the TCA model.
    1) Do we need to decide on a specific model before we convert? like you mentioned the site centric and party centric approach earlier.
    In case we have to how is one different from the other and how would that change the conversion strategy?
    2) If we use the standard Customer interface and convert will that be in the TCA model? What is the difference between using the standard interface versus the TCA API’s.
    3)If we import using the Standard Interface can we convert later to the TCA model??

    To many questions… am a bit confused at this moment.

    Thanks in Advance..

    SB

  30. Sanjit Anand Says:

    1) Do we need to decide on a specific model before we convert? like you mentioned the site centric and party centric approach earlier.
    In case we have to how is one different from the other and how would that change the conversion strategy?

    >>>Yes, you have to decide based out of your billing revenue model, what is best way to manage your customer. If you are not using other CRM products, your focus should be only on Billing part and you have to look a particular customer same as party.

    The model varies from industry to industry , like Telecom, healthcare, and banking. The more customer centric business like (Telecom, healtcare ) they prefer to go site /location centric. Once you decided which model should be , they it’s a simple matter to tag location and site with particular customer/party.Accounts will be drived by site or location leval. Technically, few columns like orig_system_ref_id,orig_system_%%

    2) If we use the standard Customer interface and convert will that be in the TCA model? What is the difference between using the standard interface versus the TCA API’s.

    >>> Customer Import and TCA API’s does not make any difference while converting customer from other system. The customer import is very easy to use , thus people tried to use. as API will have lot many capabilities, but its requires bit longer time for development efforts.

    3)If we import using the Standard Interface can we convert later to the TCA model??

    >>>> Donot confuse with TCA model, TCA is just a model, the way in which you can manage your customer. There are underline API’s , which iteslf a subset of underline API’s by customer Import. There is no difference at all.

    Yes, TCA, will empower you to extend customer in some other area like CDH(data hub), D &B and other CRM & sales Model.

    Donot get confused with these two things
    let me recap
    Customer Import - The way to create customer by oracle OIT based API’s
    TCA API’S - The way to create custmor data by Oracle API’S without OIT(Oracle Open Interface Table)
    TCA - The architure provided by Oracle to manage business entity like Customer, bank, Supplier, student.

    My advice, if you are dealing with Technical things , come out with a genralize picture of a particular customer, then only you can 2 options to go either customer import or TCA API’s

    If Functional , then try to see the customer from billing point and others aspect like statement of account, bill to, ship to, dunning kind of view

    Still, have any query let me know, will try to help you out in understanding.

  31. SB Says:

    Thanks a lot for your response Sanjit.
    Few more queries…
    1) you said once we decide the model “Technically, few columns like orig_system_ref_id,orig_system_%%”
    Can you be more specific whats different between both. Or maybe you can provide a example on how both models are setup from the application side and provide sample records and how the interface load would vary.
    I am more interested in the technical part.
    Thanks a ton.. i know this takes lot of effort and time. realy appreciate your time and desire to share.

    Thanks

  32. Sanjit Anand Says:

    SB,

    Technically its not so tough to understand.

    can u understand comment #16, which clearly understood tow approach. Once its understood, i will provide provide input which additional column you should be more specfic.

  33. Kumar Says:

    Sanjit, can we make a customer with only ship_to and no bill_to, i have a requirement to create customer with only ship_to in R12. Let me know as I am able to create customer from front end with only ship_to address as site level.
    but when i pass the customer from interface table it fails.

    Thanks in advance,

  34. Ramanan Iyer Says:

    These are the error message , sharing for the rest of people who seek some information.

    These are the message codes and their meaning:

    A1 –> The customer reference for update does not exist in RA_CUSTOMERS

    A2 –> The address reference for update does not exist in RA_ADDRESSES

    A3 –> Customer reference for insert is already defined in RA_CUSTOMERS

    A4 –> Site use for this address reference already exists in the database

    A5 –> Customer Number already assigned to a different customer

    B1 –> ORIG_SYSTEM_ADDRESS_REF is mandatory when specifying an address

    B2 –> ADDRESS1 is mandatory when specifying an address

    B3 –> COUNTRY is mandatory when specifying an address

    B4 –> SITE_USE_CODE is mandatory when inserting an address

    B5 –> PRIMARY_SITE_USE_FLAG is mandatory when inserting an address

    B6 –> CUSTOMER_CLASS_CODE is not defined in AR_LOOKUPS

    B7 –> CUSTOMER_PROFILE_CLASS_NAME has an invalid value

    B8 –> STATE is not defined in AR_LOCATION_VALUES

    B9 –> COUNTRY is not defined in fnd_territories

    B0 –> SITE_USE_CODE is not defined in AR_LOOKUPS

    C1 –> This customer reference has two different customer names defined

    C2 –> This customer reference has two different customer numbers defined

    C3 –> This customer reference has two different parent customer references

    C5 –> Customer reference has two different customer class codes defined

    C6 –> This customer reference has two identical primary site uses defined

    D1 –> Address reference has two different ADDRESS1 values

    D2 –> Address reference has two different ADDRESS2 values

    D3 –> Address reference has two different ADDRESS3 values

    D4 –> Address reference has two different ADDRESS4 values

    D5 –> Address reference has two different cities

    D6 –> Address reference has two different postal codes

    D7 –> Address reference has two different states

    D8 –> Address reference has two different provinces

    D9 –> Address reference has two different counties

    D0 –> Address reference has two different countries

    E1 –> Address reference has two identical site use codes

    E2 –> Address reference has two different customers

    F1 –> ORIG_SYSTEM_TELEPHONE_REF mandatory for telephone information

    F2 –> TELEPHONE is mandatory when specifying telephone information

    F3 –> TELEPHONE_TYPE is mandatory when specifying telephone information

    F4 –> TELEPHONE_TYPE is not defined in AR_LOOKUPS

    F5 –> Telephone reference for insert is already defined in RA_PHONES

    F6 –> Telephone reference for update does not exist in RA_PHONES

    G1 –> ORIG_SYSTEM_CONTACT_REF mandatory for contact information

    G2 –> LAST_NAME is mandatory when specifying a contact

    G3 –> CONTACT_TITLE is not defined in AR_LOOKUPS

    G4 –> Contact reference for insert is already defined in RA_CONTACTS

    G5 –> Contact reference for update is not defined in RA_CONTACTS

    G6 –> The address reference specified is not defined for this customer

    G7 –> CONTACT_JOB_TITLE must be defined in AR_LOOKUPS

    H1 –> Contact reference has two different first names

    H2 –> Contact reference has two different last names

    H3 –> Contact reference has two different titles

    H4 –> Contact reference has two different job titles

    H5 –> Contact reference has two different customers

    H6 –> Contact reference has two different addresses

    I1 –> Telephone reference has two different phone numbers

    I2 –> Telephone reference has multiple extensions

    I3 –> Telephone reference has two different types

    I4 –> Telephone reference has two different area codes

    I6 –> Telephone reference has two different customers

    I7 –> Telephone reference has two different addresses

    J1 –> SITE_USE_CODE is not updateable

    J2 –> PRIMARY_SITE_USE_FLAG is not updateable

    J3 –> LOCATION is not updateable

    J4 –> CUSTOMER_TYPE is not defined in AR_LOOKUPS

    J5 –> PRIMARY_SITE_USE_FLAG has an invalid value

    J6 –> CUSTOMER_NUMBER must be null when auto-numbering is set to “Yes”

    J7 –> CUSTOMER_NUMBER is mandatory when auto-numbering is set to “No”

    J8 –> INSERT_UPDATE_FLAG has an invalid value

    J9 –> CUSTOMER_STATUS must have a value of ‘A’ or ‘I’

    K1 –> Concurrent request failed

    K3 –> This customer reference has two different customer types defined

    L1 –> COLLECTOR_NAME is mandatory when no profile class specified

    L2 –> TOLERANCE is mandatory when no profile class specified

    L3 –> DISCOUNT_TERMS is mandatory when no profile class specified

    L4 –> DUNNING_LETTERS is mandatory when no profile class specified

    L5 –> INTEREST_CHARGES is mandatory when no profile class specified

    L6 –> STATEMENTS is mandatory when no profile class specified

    L7 –> CREDIT_BALANCE_STATEMENTS mandatory when no profile class specified

    L9 –> DUNNING_LETTER_SET_NAME is mandatory when DUNNING_LETTERS is “Yes”

    L0 –> CHARGE_ON_FINANCE_CHARGE_FLAG mandatory when INTEREST_CHARGES is “Yes”

    M1 –> INTEREST_PERIOD_DAYS is mandatory when INTEREST_CHARGES is “Yes”

    M3 –> COLLECTOR_NAME has an invalid value

    M4 –> CREDIT_CHECKING has an invalid value

    M5 –> TOLERANCE has an invalid value

    M6 –> DISCOUNT_TERMS has an invalid value

    M7 –> DUNNING_LETTERS has an invalid value

    M8 –> INTEREST_CHARGES has an invalid value

    M9 –> STATEMENTS has an invalid value

    M0 –> CREDIT_BALANCE_STATEMENTS has an invalid value

    N1 –> CREDIT_HOLD has an invalid value

    N2 –> CREDIT_RATING has an invalid value

    N3 –> RISK_CODE has an invalid value

    N4 –> STANDARD_TERM_NAME which contains the payment terms has an invalid value

    N5 –> OVERRIDE_TERMS has an invalid value

    N6 –> DUNNING_LETTER_SET_NAME has an invalid value

    N7 –> STATEMENT_CYCLE_NAME has an invalid value

    N8 –> ACCOUNT_STATUS has an invalid value

    N9 –> PERCENT_COLLECTABLE has an invalid value

    N0 –> AUTOCASH_HIERARCHY_NAME which contains the AutoCash rule has
    an invalid value

    O1 –> STATEMENT_CYCLE_NAME is mandatory when STATEMENTS is “Yes”

    O2 –> LOCATION must be null when auto-numbering is set to “Yes”

    O3 –> LOCATION is mandatory when auto-numbering is set to “No”

    O4 –> CREDIT_CHECKING is mandatory when profile class is null

    O5 –> CHARGE_ON_FINANCE_CHARGE_FLAG must be null if INTEREST_CHARGES is No

    O6 –> INTEREST_PERIOD_DAYS must be null if INTEREST_CHARGES is “No”

    O7 –> INTEREST_PERIOD_DAYS must be greater than zero

    P1 –> Postal Code is not in the defined range of system options

    Q1 –> A new location was created for a value in an address segment field

    Q2 –> Validation failed for the key location flexfield structure

    R1 –> CUST_SHIP_VIA_CODE is not defined in ORG_FREIGHT

    R2 –> CUSTOMER_CATEGORY_CODE is not defined in AR_LOOKUPS

    R3 –> CUSTOMER_CATEGORY_CODE is not enabled in AR_LOOKUPS

    R4 –> CUST_TAX_CODE is not defined in AR_VAT_TAX

    R5 –> CUST_TAX_REFERENCE cannot be null when CUST_TAX_CODE is ‘EXEMPT’

    R6 –> SITE_USE_TAX_CODE is not defined in AR_VAT_TAX

    R7 –> SITE_USE_TAX_REFERENCE is required when SITE_USE_TAX_CODE is ‘EXEMPT’

    R8 –> Invalid demand class code.

    R9 –> SITE_SHIP_VIA_CODE not defined in ORG_FREIGHT

    S1 –> The customer reference specified is invalid

    S2 –> The address reference specified is invalid

    S3 –> The address reference specified is not valid for this customer

    S4 –> Payment Method is not defined in AR_RECEIPT_METHODS

    S5 –> A bank account does not exist for the specified customer

    S6 –> The end date specified cannot be before the start date

    S7 –> The address specified must have an active BILL_TO site defined

    T1 –> Customer payment method already active between the dates specified

    T2 –> Customer site payment method already active between the dates specified

    T3 –> Customer already has a primary payment method for specified dates

    T4 –> Customer site has a primary payment method on the dates specified

    T5 –> This customer payment method is already active in this date range

    T6 –> Multiple primary payment methods defined

    V2 –> The bank account specified must be of type ‘EXTERNAL’

    V3 –> Customer bank account is already active between the dates specified

    V4 –> Customer site bank account already active between these dates

    V5 –> This customer already has primary bank account for specified dates

    V6 –> Customer site can have only 1 primary bank account for the dates
    specified

    V7 –> Duplicate rows exist in Interface table for this Customer Bank and
    date run

    V8 –> Duplicate primary customer banks defined within the interface table

    W1 –> BANK_NAME is mandatory when creating a new bank account

    W2 –> BANK_BRANCH_NAME is mandatory when creating a new bank account

    W3 –> BANK_ACCOUNT_CURRENCY_CODE is mandatory creating a new bank account

    W4 –> BANK_ACCOUNT_CURRENCY_CODE is not defined in FND_CURRENCIES

    W5 –> Bank number already exists.

    W6 –> Duplicate bank number in interface table.

    W7 –> Primary flag should be ‘Y’ or ‘N’.

    W8 –> Duplicate bank and branch name in interface table.

    W9 –> Duplicate Location

    W0 –> Bank and branch name already exists.

    X1 –> AUTO_REC_INCL_DISPUTED_FLAG mandatory when profile class is null

    X2 –> TAX_PRINTING_OPTION is mandatory when no profile class specified

    X3 –> GROUPING_RULE_NAME is mandatory when no profile class is specified

    X4 –> CHARGE_ON_FINANCE_CHARGES_FLAG has an invalid value

    X5 –> GROUPING_RULE_NAME has an invalid value

    X6 –> CURRENCY_CODE has an invalid value

    X7 –> CREDIT_BALANCE_STATEMENTS is mandatory when STATEMENTS is “Yes”

    X8 –> CREDIT_BALANCE_STATEMENTS must be “No” when STATEMENTS is “No”

    X9 –> STATEMENT_CYCLE_NAME must be null when STATEMENTS is “No”

    X0 –> OVERRIDE_TERMS is mandatory when no profile class is specified

    Y1 –> PARTY_NUMBER must be null when auto-numbering is set

    Y2 –> PARTY_NUMBER is mandatory when auto-numbering is set to “No”

    Y3 –> Party Number already assigned to a different party.

    Y4 –> This party reference has two different party numbers defined in
    RA_CUSTOMERS_INTERFACE.

    Y5 –> PERSON_FLAG has an invalid value

    Y6 –> Party Site Number already assigned to a different address

    Y7 –> Address reference has two different party site numbers defined in
    RA_CUSTOMERS_INTERFACE.

    Y8 –> PARTY_SITE_NUMBER must be null when auto-numbering is set

    Y9 –> PARTY_SITE_NUMBER is mandatory when auto-numbering is set to “No”

    Z1 –> CREDIT_BALANCE_STATEMENTS must be null when STATEMENTS is null

    Z2 –> STATEMENT_CYCLE_NAME must be null when STATEMENTS is null

    Z3 –> CHARGE_ON_FINANCE_CHARGE_FLAG must be null when INTEREST_CHARGES is null

    Z4 –> INTEREST_PERIOD_DAYS must be null when INTEREST_CHARGES is null

    Z5 –> DISCOUNT_GRACE_DAYS must be null when DISCOUNT_TERMS is null

    Z6 –> DISCOUNT_GRACE_DAYS must positive

    Z7 –> DISCOUNT_GRACE_DAYS must be null when DISCOUNT_TERMS is “No”

    Z8 –> DUNNING_LETTER_SET_NAME must be null when DUNNING_LETTERS is “No”

    Z9 –> DUNNING_LETTER_SET_NAME must be null when DUNNING_LETTERS is null

    Z0 –> CURRENCY_CODE is mandatory when a profile amount value is populated

    a1 –> Customer record for insert must have validated profile record defined

    a2 –> TAX_PRINTING_OPTION has an invalid value

    a3 –> The customer profile for this customer reference already exists

    a4 –> The customer profile class for update does not exist

    a7 –> Duplicate record within the interface table

    a8 –> Conflicting profile classes specified for this customer/site

    b1 –> Both TRX_CREDIT_LIMIT and OVERALL_CREDIT_LIMIT must be populated

    b2 –> TRX_CREDIT_LIMIT may not be greater than the OVERALL_CREDIT_LIMIT

    b3 –> DUNNING_LETTER_SET_NAME must have a unique value

    b4 –> COLLECTOR_NAME must have a unique value

    b5 –> STANDARD_TERM_NAME must have a unique value

    b6 –> STATEMENT_CYCLE_NAME must have a unique value

    b7 –> BANK_ACCOUNT_NUM is mandatory when creating a new bank account

    b8 –> AUTO_REC_INCL_DISPUTE_FLAG has an invalid value

    b9 –> PAYMENT_GRACE_DAYS must be a positive value

    e2 –> Bill_to_orig_address_ref should only be defined for Ship-to Addresses

    e3 –> Bill_to_orig_address_ref is not a valid bill-to address

    f1 –> You may have only one active Dunning site use for each customer

    f2 –> For each customer, you may only have one active “Statements” type

    f3 –> For each customer, you may only have one active Legal site

    f4 –> Clearing Days must be greater than or equal to zero

    f5 –> Address language is not installed

    f6 –> Address reference has different languages

    f7 –> Duplicate telephone reference in table RA_CONTACT_PHONES_INTERFACE

    f8 –> A bank and branch with this bank number and branch number already exists

    f9 –> Customer Prospect Code must be either CUSTOMER or PROSPECT

    g1 –> This customer reference has two different customer prospect codes

    u5 –> Contact reference has two different e-mail addresses

    w2 –> CREDIT_CLASSIFICATION must have a valid value

    w3 –> You cannot update the PARTY_TYPE using Customer Interface.
    Please do not specify a value for PARTY_TYPE when the
    INSERT_UPDATE_FLAG is set to U.

    w4 –> When you create a PERSON party_type, you must provide
    PERSON_FIRST_NAME or PERSON_LAST_NAME.

    y0 –> CONTACT_JOB_TITLE is not defined

    y1 –> PHONE_COUNTRY_CODE is not defined in HZ_PHONE_COUNTRY_CODES

    y2 –> This customer is already assigned to a different party

    y3 –> This customer is already assigned to a different party

    y4 –> LOCKBOX_MATCHING_OPTION must have a valid value

    y6 –> TELEPHONE_TYPE cannot be updated from telex to any other type or any
    other type to telex.

    y7 –> You cannot update this address. A printed, posted, or applied
    transaction with an associated tax line exists for this address

    y8 –> ADDRESS_CATEGORY_CODE does not exist. Please enter a valid adress
    category code or define a new one using the Receivables Lookups
    window.

    y9 –> ADDRESS_CATEGORY_CODE is not enabled. Please enable this address
    category by updating the Enabled flag in the Receivables Lookups window.

  35. Sanjit Anand Says:

    Thanks Ramanan for sharing this info.

    sanjit

  36. Tataji Says:

    Hi Anand,

    Thank u very much this documnet really helped me a lot….

  37. Dilip Says:

    Hi,

    All Provided Information is very good and helpful in understanding the customer Architecture.

    Kindly provide if the similar kind of information usuing API’s.

  38. ilyas Says:

    Hello Sanjit, Great article - nicely written, and informative. Thank you.

    Question - For Customer conversion (R12) how does one decide between using the Open Interface Tables or the HZ APIs? Is it a matter of data fields supported by the two APIs (Open Interface has fewer that the HZ APIs), or some other consideration(s)?

  39. ilyas Says:

    Followup to my question.

    Just noticed my question was previously asked by ‘SB’ and you’ve answered it. Thanks

  40. Dealing with “Addressee” on Customer Master | OracleApps Epicenter Says:

    [...] Deep Drive : Customer Interface in AR [...]

  41. Trading Community Architecture (TCA) 101 | OracleApps Epicenter Says:

    [...] TCA - Customer : Here are Technical details for 11i/R12 customer in TCA. You can also refer old post for customer model. [...]

  42. Customer Interface Vs TCA API | OracleApps Epicenter Says:

    [...] Customer Interface aka RACUST is a concurrent program that is responsible for the import and update of AR customer information from open interface tables to AR Customer tables. Check out the details here. [...]

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.