Вы находитесь на странице: 1из 14

TCA Tables

select * from hz_parties where party_id = 1007

select * from hz_cust_accounts where party_id = 1007
select * from hz_cust_acct_sites_all where cust_account_id = 1007 and org_id = 204
select * from hz_cust_site_uses_all where cust_acct_site_id = 1038 and site_use_code in
('BILL_TO','SHIP_TO') and STATUS = 'A'
select * from HZ_ORGANIZATION_PROFILES where
select * from HZ_RELATIONSHIPS
select * from HZ_CONTACT_POINTS
TCA - Fusion & Release 12
TCA API's brought a fresh approach to standardize DML's in Oracle Apps. I think this is one of Oracle's best
written modules in APPS, but the flaws that exist are primarily because Oracle developed TCA a bit too
late, after the other modules like Payables, Receivables etc.
What is TCA:

TCA stands for trading community architecture. As the name suggests, any business
with which a company does or did trading or can potentially do trading in future can be in Oracle TCA.
With whom can we possibly trade within Oracle Applications? To name a few....
1. Customers
We sell our products/services & bill customers using Order Management & Receivables
2. Suppliers
They sell us their goods(PO & iProc) and we pay their Payables invoices in Oracle
3. Employees
These can be special customers or pseudo vendor if they even sue you, as you make them payment.
4. Banks
Banks can be paying us interest, or charging penalties, or selling us products.
5. Insuance Company
This is Interesting. When you buy their policy, you become their customer. However when you make a
claim, you become their customer (as you get paid).
6. Students
Even more interesting than 5 above. They are your customers, as you would bill them. They can become
your staff latter. Or they can become your vendor if they become independent contractor latter by selling
their services to you. Even more, they can become your student again (for post-grad), after resigning as
an employee.
Financial Services..
vendor or customer or both !
Ever wondered why Oracle Applications eBusiness Suite has not managed to penetrate financial services
deeply as yet? Well, one of the reasons is that Financial services make no distinction between a vendor
and a customer. For them, whomsoever they trade with, becomes their counterparty. Guess what, Oralce
have their suppliers and customers in diffrerent tables and different schemas! Can you imagine that you

call up your insurance company to make a claim, and what if they are unable to identify you for the
premiums that you have been paying. Is the excuse that ooh well, let me search for you in the customer
tables..oops poor fellow will keep switching between Vendor and Customer screen.
Four years ago, when working for an Insurance Sector client of mine, I had raised this query with Oracle
( as a Tar ). The response came that merger of Vendors and Customers in Oracle Apps will happen in
Release12. I can't wait for Release 12 to be released, however I doubt my current client will be an early
adopter(but hey you never know).
Before you start pulling your hair with...oops what will happen to hundreds of custom reports that
reference po_vendors and po_sites_all? My response is that Oracle are hopefully/surely going to provide
views with exactly the same names, but these views will be based on TCA tables like HZ_PARTIES,
HZ_PARTY_SITES etc. Surely, if you have written custom processes that modify vendor data, then good
news is that such code can be translated to TCA API's, and hence will be supported by Oracle in future.
Untill 11.5.10 banks were stored in Oracle Payables. I hope banks are moving into TCA from Oracle R12
onwards or latest by Fusion. The bank branches can become the TCA Party Sites. Its not that Oracle
designed their Banking model poorly, the unfortunate fact is that Oracle Payables was conceived much
prior to Oracle TCA. Although I must admit that their banking model is hardcoded with columns like SWIFT
Code, IBAN etc. What if a new payment method gets popular in future? Shouldn't Oracle be managing
these payment types using Configurable Attributes? We will see what happens in Fusion.
For those who do not know, Oracle came out with lovely little product named Oracle Treasury. It is a good
product for back office deal/financial instruments, but it has its own flaws w.r.t oracle TCA. At least when I
worked on this product(4yrs ago). Four years ago Year 2002, Oracle Treasury's product director visited my
client, and I raised a question regarding merger of counterparty to Oracle TCA. His response was to raise a
enhancement request, and enhancement I raised. I am waiting to see whether Oracle Treasury
counterparties become a part of TCA in Release 12. If not Release 12, I am certain this will happen in
Oracle Fusion. A brief example for why this is important. Imagine you are a bank, that you have traded
some financial instruments with a counterparty. What if you then supply some consultancy service to that
counterpary. Also, what if you are selling insurance products to that counterparty. Imagine if the
counterpary has billions of dollars being traded with you. Would you ever with such trading party send a
rash reminder that their $1000/- consulting charges are outstanding...blaah for 6months...blaah will
blacklist you...blaah will report to credit rating agency........No fool will do that, but how will poor Oracle
Receivables system know that this customer happens to be an important trading partner.
Students become an Employee
Students are currently stored in TCA as parties. Please leave a comment to this post, if you believe there
is a standard way of hiring that student as an Employee. Well, if you can't translate a TCA HZ_PARTIES
record into HR's PER_PEOPLE_F, then imagine this situation....A student studies at a college where they
are also registered in TCA. Assume that this student has unpaid debt of $25,000/-. Will you offer such
candidate a job? Hey..but how is HR supposed to know those details....HR will create a new record in
per_people_f, with new Employee Number, which in turn will create a new HZ_PARTIES record. Imagine if
this student was from Asia or Africa....poor Oracle Receivables will send reminders for invoice payment to
far off countries, without knowing that the person works just there.....Please correct me if my
understanding is wrong here...
I can see that Oracle is finally getting there, hence I can't wait for Release 12. Most of these flaws are not
because of poor design from Oracle. These flaws exist because TCA made a late entry into Oracle's ERP.
The good thing is that all these separate entities will be moving into TCA. However the challenge will
remain that when TCA becomes single data hub for all kinds of trading partners, how will Oracle secure its
data , given that there will be multiple modules using the same set of data. Will the security be at Record
Level or Column Level or will security be configurable ?? I will publish an article on that soon....

I have some basic questions about TCA tables which make me confusion at all time.

What could be difference between customer and party? Give some examples.
What could be difference between customer, customer accounts and customer account sites?
What could be difference between site and location?
What could be difference between contacts and contact points?
What could be difference between addresses and address uses?
What could be difference between contacts and contact roles?
Which information store in table hz_relationships?
How TCA help client and programmer explain with one example?
How the party information store in different levels or tables (like party >> party site>>
contacts ...) and also give brief information about each tables
I have some basic questions about TCA tables which make me confusion at all time.
Lets take a case and try to answer your questions. Diamond Electronics is a company which sells
electronic items. They sell those electronics wholesale and retail. Anybody can buy them online or at their
They sell wholesale to other companies like WINTER HOTELS.
They sell retail to direct persons like you i.e. SRI KRISHNA.
OK. Now, they are implementing Oracle Applications as their ERP system.
What could be difference between customer and party? Give some examples.
You go to Diamond Electronics shop and ask for some information about an electronic item. You are
interested to buy, but first you want to get information and decide later. They will show you the item and
explain the details and after that they take your personal details, so that they contact you later or it would
be easy when you buy later. Thats part of Customer Relationship Management. When they enter in Oracle
ERP, You become a party in TCA, not customer because you have not yet decided to purchase.
The same case happens, if somebody from WINTER HOTELS goes to them and tells them that, he is
representing WINTER HOTELS and they are planning to buy lot of electronic items to their new hotel.
Here, 3 things are entered in Oracle TCA. WINTER HOTELS information, the person (ex: JOHN) who is
representative of WINTER HOTELS, and the relationship between that person and the WINTER HOTELS.
Here WINTER HOTELS is a party, JOHN is party contact and the relationship is AGENT.
After sometime, you or WINTER HOTELS decided to buy electronics and you go again and make a
purchase. That time, you become customer.
What could be difference between customer, customer accounts and customer account sites?
Customer is already explained above.
You are buying 2 items, but you want them to go to different places and billing address is also different.
This way, it is easier for your financial consolidation. So, you give them different credit cards and different
shipping and billing addresses. That time, they would create 2 customer accounts for you.
The same case may happen to WINTER HOTELS, they may have Corporate Hotel Address, but they want
to these expenses to be calculated at their new hotel. So they create a new account based on this new
hotel address.
Generally, site is logical representation of the location. Their new hotel physical address is location and it
can be represented as site. Now, depending on the use it can be BILL-TO or SHIP-TO. The site use
determines where the items to be shipped physically and where the invoice should go.
What could be difference between site and location?

Location is the physical address which needs to be created first. Then attach account site to the address
based on the usage. Usage is at the site level and not at the location level. One physical address can be
site for COMMUINCATION, CORPORATE, BILL-TO , SHIP-TO etc. I would say, site determines the purpose
of the physical location.
What could be difference between contacts and contact points?
In the above case, JOHN is the Contact of WINTER HOTELS.
Contact Points are ways to reach that person. Like his phone numbers, email address etc. They also take
phone numbers of WINTER HOTELS.
These contact points applicable to you also. When you give them your phone numbers while buying the
item, they are attached to your party record as contact points.
What could be difference between addresses and address uses?
Not clear. Address is the physical address of the party. I never heard the term address use. In TCA, we
have party site use and account site use. They determine the usage of the address determining at what
stage you are, either at party level or customer level.
What could be difference between contacts and contact roles?
In the above case, JOHN is the Contact of WINTER HOTELS.
Contact Role is, what is the role of JOHN in the WINTER HOTELS? He is employee of WINTER HOTELS, but
it is not mandatory that he is authorized to purchase items. Contact Role determines what is the role of
JOHN as employee of WINTER HOTELS, so that when DIAMOND Electronics sell items, they check whether
he is the correct person or not.
Which information store in table hz_relationships?
HZ_RELATIONSHIPS store the relationship between the parties. They may take information about WINTER
HOTELS Corporate and WINTER HOTELS new hotel. Here new hotel is child of Corporate. They create a
relationship between them as parent-child. This table stores that information.
In your case, they make ask your family details. If you give your spouse details, they create her as new
party and create a relationship between you as HUSBAND-WIFE. The hz_relationships table stores this
relationship details.
How TCA help client and programmer explain with one example?
It is proven, flexible customer model. It is very flexible that it can be implemented with most types of the
For programmer, it is complex and challenging. Anyhow, for a programmer, things should be challenging.
How the party information store in different levels or tables (like party >> party site>>
contacts ...) and also give brief information about each tables.
This answer is huge and he best answer TCA Admin Guide. Please check Oracle Documentation.
Hope I was able to give you some idea.
Once a Party Relationship is formed, it may become a Party
in its own right. A Party can belong to any number of relationships.
The combination of a party and its account(s) is considered a customer
Before TCA:

* There are multiple customer definitions across the enterprise.

* It was very difficult to track current and historical information about the customers.
* There was a lack of support for mixed business.
* It was quite tough to understand relationships between customers and others (suppliers, partners,
Customers: More important than anything else!
In any business, Customers and their data are always important. More than that what is important is to
understand who your customer interacts with inside and outside the enterprise.
What is Trading Community?
The summation of all entities, inclusive of partners, suppliers, and competitors, that are related to your
customers is called a Trading Community.
Trading Community Architecture:
Trading Community Architecture is the implementation of technology and applications to allow users to
create and maintain relationships among entities. It is a way to understand who your customer interacts
with inside and outside the enterprise.

Its Main Purpose:

* Create a central repository for the entire E-Business Suite to store information relating to all
members of a trading community versus separate tables for each member-Prospects, Customers,
Contacts, Employees, Partners, Distributors, Suppliers, Banks, etc.
* Record complex business relationships between Trading Community entities (including 3rd party
* Support all business models, industries, and geographies.
TCA Data Model Components:
1] Party:

It represents any entity that can enter into business relationships with your organization Organization,
Person, or Group.
* Person - A unique individual (dead or alive) of interest to the user.
* Organization - A legal entity recognized by some government authority.
* Group - A combination of two or more people, organizations or groups.
2] Party Relationship:
It is a binary relationship between two parties such as a partnership.
* Has a Role - Specifies the nature of the relationship between parties (e.g., member of, contact at,
married to).
* Indicates the Nature of the relationship - hierarchy or matrix.
* Indicates the Direction of the relationship - superior subordinate.
* Can become a Party - a Relationship becomes a party in itself.

The relationship model enables you to:

* Understand the complex relationships among members of your trading community
* Use this information to make better business decisions
3] Location:

A Location is a point in geographical space described by a street address. In previous releases of Oracle,
there was a risk of some data redundancy if more than one customer shared the same site or location.
The new model eliminates this redundancy.

Any number of location types can be defined. (e.g., bill-to, ship-to, mail-to).
There is no duplication of an address.
It is possible to maintain Customer History per address.
It is also possible to maintain Important Install Base info.

4] Party Site:
It links a Party with a Location
* Describes the usage of that Location for the Party (e.g., mailing address, billing address, home
address, etc.).
* Allows Parties to be associated to one or more Locations and any one Location to be associated with
5] Contact:
A Contact is a person in the context of an organization, modeled as a relationship between an organization
and a person or between two people, (this can be either a party contact or an account contact).
6] Contact Point:
A Contact Point is a means of contacting a party, for example, a phone number, e-mail address, or fax
This can be applied to:
* A Party (person, organization, group or relationship)
* A Site or Location
* A Party at a Site or Location
An entity may have one or more Contact Points.
7] Customer Account:
A Customer Account represents the business (selling) relationship that a company deploying Oracle
Applications has with a party.
* Stores details about the Financial relationship between a Party and your business.
* A Party may have one or more Customer Accounts.
8] Customer Account Site:
A Customer Account Site is a party site that is used by a customer account, for example, for billing or
shipping purposes.
9] Customer Account Contacts:
A party contact that is used as a means of contacting the customer regarding his/her account.
Parties vs. Accounts
* From an application perspective, one of the most important things to understand about the TCA
model is that the concept of customer is separated into two layers: The Party layer and the Account
* When CRM applications refer to Customer they are referring to the Party Layer.

* On the other hand, when ERP applications refer to Customer they are referring to the Account
New Trading Entities in R12
Below are the new entities that are merged in TCA architecture in R12.
* Banks & Bank Branches
* Suppliers
* Legal Entity
TCA Terminologies

o The concept of Party enables the Customer Model to treat all business entities equally,
regardless of type. It easily handles B2B, B2C.
Parties of type Group allow for the grouping of any number of other parties into a single entity
which enable modeling of households and buying consortiums.
o Parties of type Relationship allow for the relationship between two parties to be viewed as a
party in its own right
o Party - A Party is an entity that can enter into a business relationship and can be of four types.
+ Person - A unique individual (dead or alive) of interest to the owner of the software.
+ Organization - A legal entity recognized by some government authority.
+ Group - a combination of two or more people, organizations or groups of created for the use
of the owner of the software.
+ Relationship - The association between an individual person and an organization. Usually a
contact at an organization or group.
o Account - Is a financial roll-up point to track the monitory portion of a customers purchases and
payments. Stores details about a customer relationship between a Party and your business.
+ This Represents selling-buying relationship such as billing and shipping events
+ Accounts required for a transaction
+ A account cannot exist without a party
o A Party may have one or more Customer Accounts
+ Account Role - The relationship that a Party has in regard to controlling or using an account.
+ Customer Account Site is a Party Site that is used within the context of a Customer Account
(e.g., for billing or shipping purposes).
+ A Customer Account Contact is a Party Contact that is used in the context of a Customer
A customer account represents the business relationship that a party can enter in to with another
party. The account has information about the terms and conditions of doing business with the party. For
example, you could open a commercial account for purchases to be made by Vision Distribution for its
internal use and a reseller account for purchases made by Vision Distribution for sales of your products to
end-users .
You can also define contact people, bank accounts, payment methods, telephone numbers, and
relationships for each customer account.
You can also maintain multiple customer accounts for a customer that transacts business with more
than one line of business in your organization. You maintain separate customer profiles, addresses, and
contacts for each customer account.
A party site is the location where a particular party is physically located. Every party has only one
identifying address, but a party can have multiple party sites.

A customer address is a party site used in the context of a customer account for billing, shipping, or
other purposes.
A contact communicates for or acts on behalf of a party or customer account. A contact can exist for a
customer at the account or address level. A person usually acts as a contact for an organization, but can
also be a contact for another person. For example, an administrative assistant could be the contact for an
* Locations/site :A Location is a point in geographical space described by an address. A party site is a
* Party Relationship :Any relationship between two parties of the above type (person and organization)
that needs to be stored as its. own record. Data that directly corresponds to this relationship (contact info
etc.) is stored as well. Relationships are stored in the HZ_PARTY_RELATIONSHIPS table.

TCA Setup Considerations

When you are doing TCA customer Modeling, keep these things in mind;
* Party be any real Person or Organization.
* Party sites are locations for Party or Organization.
* Relationships are generally used to construct hierarchical structure of Organizations.
* Party becomes a Customer/Account, once a selling relationship is established.
* An account should typically have at least one active bill_to site. It helps for accounting and reporting
* When creating Parties, what all party sites can be or should be created as Parties.
* Generally, if you want to see activities for site level separately from your parent level party, you
should create that Site as a separate Party/Entity.
* An account is a separate entity. Create account only where you have selling relationship i.e. only for
customers. It identifies selling attributes e.g.payment terms, shipping and billing preferences etc. of the
* You can have multiple accounts, for each relationship between external party and your business
entity. It enables you to have multiple
sets of selling attributes e.g. payment terms etc.
* You can build relationship between accounts and have one account to pay for another.
* If transaction needs to be segregated within a party to perform granular analysis based on selling or
business relation,separate accounts with a party should be created.
dgreybarrowTCA Integration with Other Oracle Products
This is how TCA data is tighten with other Oracle products.

TCA Technical Tables

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

TCA - Suppliers
Here are Technical details for R12 Supplier in TCA. You can also refer old post for more details.

And Final Model


Похожие интересы