You are on page 1of 13

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_CODE_ASSIGNMENTS

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.

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


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

1. What could be difference between customer and party? Give some examples.
2. What could be difference between customer, customer accounts and customer account sites?
3. What could be difference between site and location?
4. What could be difference between contacts and contact points?
5. What could be difference between addresses and address uses?
6. What could be difference between contacts and contact roles?
7. Which information store in table hz_relationships?
8. How TCA help client and programmer explain with one example?
9. 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 stores.

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

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, competitors).

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 relationships).
* Support all business models, industries, and geographies.

TCA Data Model Components:

1] Party:



<!--[endif]-->
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.



<!--[endif]-->
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 Parties.

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

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 layer.
* 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 Layer.


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

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

Account
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 Account.
*
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 executive.

* Locations/site :A Location is a point in geographical space described by an address. A party site is a location.
* 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 purposes.
* 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 relationship.
* 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.





<!--[endif]-->
TCA - Suppliers

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





<!--[endif]-->
And Final Model
Posted 14th January by kranthi juvva
Location: Ganapati Temple, Pashan, Pune, Maharashtra, India

You might also like