Oracle Trading Community Architecture(Oracle TCA)简介

来源:互联网 发布:雷巴的冒险修改数据 编辑:程序博客网 时间:2024/06/08 18:32

Oracle Trading Community Architecture(Oracle TCA)简介


介绍

Oracle Trading Community Architecture (简称TCA) 是一数据模型,用于管理关于商业环境中的复杂的Party或者客户(customer)信息,包括组织(Organization)、地址(Location)、和它们间的关系组成的网络。

 

这些信息通过TCARegistry维护。对于OracleE-Business Suite 应用来讲, TCA Registry是tradingcommunity 信息的唯一来源。这些应用,也包括TCA自己,提供交互界面、批量数据导入和其他功能。通过这些功能,你能查看、创建和更新Registry中的信息。

 

Oracle Trading Community Architecture 不仅是Oracle E-Business Suite的基础,也是产品族Oracle 客户数据管理(OracleCustomer Data Management,CDM)的基础,CDM包括:

 

1.      OracleCustomers Online (OCO)

允许你查看、创建、维护和丰富客户数据中心数据库。

 

2.      OracleCustomer Data Librarian (CDL)

允许你创建和维护准确的,不重复和完整的客户数据库。这个应用包括了OCO的特性。

 

3.      OracleCustomer Data Hub (CDH)

允许你把各种源系统的客户数据集中到一处,提供单一的视图。源系统和Hub间的联系是面向操作层面和实时的。CDH包括了TCA的所有特性,比如维护源系统、清理和丰富数据,也包括了OCO。



概念数据模型

结构图




实体描述

在TCA中,“客户(Customer)”是“PartyLayer(Party 层)”和“Account Layer(帐户层)”的结合;前者与买卖关系无关,后者必须是Party有销售关系时才存在。


Party Layer(Party层)


Party

Party 是能产生商业关系的实体,分四大类:

1.      Person(个人)

2.      Organization(组织)

经政府认证的合法的实体。

3.      Group(团体)

是两个或者更多人的组成的群体。

4.      Relationship(关系)

两个Party 之间的联系。例如,Organization和group的联络人(contact)。为什么某些关系会被处理成Party,看后续关于RelationshipType 和Relationship的解释。这是TCA最晦涩难懂的一部分。

 

Party 具有以下重要的属性:

1.      Party ID

Party 的标识。

2.      Party Type

Party的类型,可以是Person,Organization, Group 或者Relationship。

3.      Party Name

Party的名称,比如:团体名称,组织名称和人名。

 

HZ_PARTIES 和Profile 表

表HZ_PARTIES存储Party的基本信息。主键是PARTY_ID。

 

TCA用两个表HZ_PERSON_PROFILES和 HZ_ORGANIZATION_PROFILES,存储与Person和Organization的特定的详细信息。

 

对于Group没有Profile信息。

 

出于性能优化和UI原因,表 HZ_PARTIES 还会保存来自以下表的反规范化(de-normalized)信息:

l  HZ_LOCATIONS

l  HZ_PERSON_PROFILES

l  HZ_CONTACT_POINTS

l  HZ_ORGANIZATION_PROFILES

l  HZ_PERSON_LANGUAGE

l  HZ_CODE_ASSIGMENTS

 

Location(位置)

Location 是物理地址,有一个或者多个使用目的,比如通信地址,递送地址和账单地址。PartySite(连接Location)确定这些Location的使用目的。

 

表HZ_LOCATIONS存储Location的信息。

 

Party Site(Party场所)和Party Site Use(场所用途)

Party Site 把Location和Party联系在一起,描述Location的用途,比如邮件地址,账单地址和家庭地址等。通过Party Site和Party Site Use,一个Party 可以与多个Location关联,一个Location可设置多个用途。

 

Party Site的一些重要属性如下:

1.      ID: 唯一标识。

2.      Name:名称。

3.      Party:关联的Party。

3.      Location:关联的Location。

 

表HZ_PAETY_SITES存储关于Party Site的信息。

 

表HZ_PARTIES_SITE_USES存储关于Party Site Use的信息. 一个partysite 会有多个用途,比如‘bill to(账单)’or ‘ship to(递送)’,每个用途均有一条专门的记录。

 

Relationship Type(关系类型)

Relationship Type 是关系的分类。

 

Relationship Types 有以下主要属性:

1.      Relationship Type

标识编码,例如CONTACT(联络人)

2.      Hierarchical(允许有层次)

Yes 或者no. 确定这类关系是否能组织成层次结构。

3.      Circular(允许环路)

Yes 或者no. 确定这类关系是否允许产生环路。

4.      Subject Type(主实体类型)

关系中第一个Party的类型。

5.      Subject Role(主实体角色)

关系中第一个Party担任的角色。

6.      Subject Phrase(主实体描述短语)

描述第一个Party的短语。

7.      Object Type(从实体类型)

第二个Party的类型。

8.      Object Role

第二个Party担任的角色。

9.      Object Phrase

描述第二个Party的短语。

 

例如“雇佣(employment)”关系定义如下:

l  RelationshipType: EMPLOYMENT

l  Hierarchical:No

l  Circular:Yes

l  SubjectType: Person

l  SubjectRole: Employee Of

l  Subjectphrase: Employees

l  Objecttype: Organization

l  Objectrole: Employer of

l  ObjectPhrase: Employers

 

TCA预先定义了一些RelationshipType,但是如有需要,管理员可以创建新的类型。

HZ_RELATIONSHIP_TYPES

Relationship Type 的信息存储在HZ_RELATIONSHIP_TYPES表中,有以下重要的字段:

 

1.      create_party_flag

YES/NO. 决定此类型的关系创建后,是否会创建PartyType是“PARTY_RELATIONSHIP”的Party记录。例如,CONTACT类型的关系的create_party_flag 是TRUE。如果JohnSmith 是ABC公司的联络人,Party表会包含三条记录:JohnSmith, ABC公司和“在ABC公司的John Smith”。

 

2.      forward_rel_code 和 backward_rel_code

标记关系的正向和反向的编码。例如 “CONTACT_OF” 和 “CONTACT” 便是CONTACT关系类型的两个编码。如果这两个编码是一样的,主实体(Subject)和从实体(Object)的类型肯定是一样的。

 

3.      direction_code

一个编码,说明关系的方向性。“P”是上级,“C”是下级,“N”表示没有方向性。

 

一个无方向性的关系类型由单一的一条记录保存,其中forward_rel_code和 backward_rel_code是一样的。一个有方向性的关系类型需要由两条记录保存:一条保存上级的(direction_code= P)另外一条保存下级的(direction_code= C);两条记录有一样的RelationshipType编码,但是第一条的SubjectType,SubjectRole,ObjectType,ObjectRole 正好与第二条相反。

 

字段relationshiptype, forward relationship code, backward relationship code, subject type, 和 object type 的组合在HZ_RELATIONSHIP_TYPES 表中是唯一的。

 

Relationship(关系)

Relationship 实体允许你记录现实世界中实体间的复杂的关系。你不仅可以分析直接的relationship(比如:你与竞争对手之间的关系),而且可以分析间接的关系,例如你的客户的客户。你也能管理具有层次化特征的Relationship,例如管理Organization的结构。

 

一个relationship是任意两个party间的联系。下面是Relationship的一些主要的属性:

 

1.      Relationship ID

唯一标识。

2.      Relationship Type

关系类型,例如CONTACT。

3.      Subject party

主Party

4.      Object party

从Party

5.      Start and end date

Relationship开始生效的日期和结束的日期。

6.      Party ID

内部标志,是对应类型是“PARTY_RELATIONSHIP”的Party 的ID。

 

HZ_RELATIONSHIPS

表HZ_RELATIONSHIPS表存储了所有的Relationship的信息。每个Relationship均用两条记录表示,它们有相同的Relationship ID和 Relationship Type。Subject Party和Object Party 两条记录中是互反的,这代表一个关系的两个方向。

 

例如,如果JohnSmith 是 ABC 公司的联络人,表HZ_RELATIONSHIPS 会包含以下记录:

 

Relationship ID

 

Relationship Type

Subject

 

Object

 

Relationship_code

Directional_flag

501

CONTACT

John Smith

ABC

CONTACT_OF

F

502

CONTACT

ABC

John Smith

CONTACT

B

 

最后两列解释如下:

l  Relationship_code: Relationship Type的正向或者反向编码。

 

l  Directional_Flag:标志着是一个有方向性的关系,比如上下级或者母公司和分公司的关系。F是正向关系,B是反向关系。

 

类型是RELATIONSHIP_TYPE的Party

如果一个Relationship的关系类型的create_party_flag =TRUE, 它会在Party表中有条对应的类型是”RELATIONSHIP_TYPE”的记录。

 

例如,如果JohnSmith 是ABC公司的联络人,除了HZ_RELATIONSHIPS表中有记录外,表HZ_PARTIES也会包含一条记录:“ABC 公司的联络人JohnSmith”。

 

这个机制有点像Silverston的PARTY ROLE [2],但是晦涩难懂。普通的Party(group,person和Organization)存储实体的自然属性,一般不会变化很频繁。” RELATIONSHIP_TYPE”的Party则允许企业维护与Relationship相关的信息(相当于一个PARTY ROLE)。

Contact Person(联络人)

Contact Person是一个人,与Organization和Person有联络人关系。从技术角度看,ContactPerson 实体是一特化的Relationship(子类)。它提供了更加详尽的联络人信息,例如部门、头衔和联络过程中承担角色(contactrole,可以是多个)。

 

表HZ_ORG_CONTACT存储Contact Person的信息,表HZ_ORG_CONTACT_ROLES存储角色的信息。一个Contact Person可以有多个角色。

 

Contact Point(联络点)

一个联络点是联系某个Party的途径(除了邮政地址),例如, 电话,电子邮件,网站,传真和移动电话。联络点可用于:

 

l  Party(person, organization, group or relationship)

l  Site(场所) 或者 Location(位置)

l  在某个场所和位置的Party。

一个实体可以有一个或者多个联络点。

 

表HZ_CONTACT_POINTS存储联络点的信息,有两个重要的信息:

1.      OWNER_TABLE_NAME

联络点归属人的数据表。

2.      OWNER_TABLE_ID

OWNER_TABLE_NAME中标识联络点的归属人的ID。

 



Account Layer(账户层)

帐号层不能脱离Party层存在。打个比方:如果信用卡是Account, 如果没有对应的人,信用卡是不可能存在的;然而没有信用卡,人也可独立存在。

 

如果整个E-BusinessSuite全部使用,Party层的记录会先在CRM中创建,然后在必要的情况下再添加账户层的记录。在很多情况下,当某个Party想下单的时候,才会在帐号层添加记录。当一个Account创建后,必须连接到唯一的一个Party,它是Account的所有人。

 

Customer Account(客户账户)

出于很多原因考虑,TCA的Relationship 实体不包括“Selling”关系类型。TCA用Customer Account实体表示这种关系。

 

Customer Account 实体保存公司与各种客户(个人和组织)之间的销售关系,跟踪客户的购买和支付信息。

 

一个Party能有一个或者多个Customer Account,Customer Account不能离开Party独立存在。

 

例如:

1.      John Smith 在美国银行的储蓄存款账户。

2.      John Smith 在美国银行的投资账户。

 

Customer Account 的一些重要属性如下:

1.      Account ID

账户唯一标识。

2.      Account Number

账户编号,自动生成或者手工输入。

3.      Account Name

账户名,不是Party的名称。

4.      Customer Type

客户类型,I:内部客户 R: 外部客户。

5.      Party

拥有此账户的Party。

 

HZ_CUST_ACCOUNTS 和 HZ_CUSTOMER_PROFILES

表HZ_CUST_ACCOUNTS存储Customer Account的基本信息,表HZ_CUSTOMER_PROFILES 表存储关于客户的更加详细的信息,例如信用特征。

Customer Account Site(客户账户场所)

Customer Account Site是一有特定用途的Party Site,适用于Customer Account,例如“ship-to”和”bill-to”。一个Customer Account可以有多个场所。

 

一些重要属性描述如下:

1.      ID: 主键

2.      Customer Account:账户

3.      Party Site:对应的Party Site

4.      BILL_TO_FLAG: 账单地址标记

5.       SHIP_TO_FLAG:递送地址标记

6.       MARKET_FLAG:市场营销标记。

 

HZ_CUST_ACCT_SITES_ALL 和HZ_CUST_ACCT_SITES

表HZ_CUST_ACCT_SITES_ALL存储所有的CustomerAccount Site

表HZ_CUST_ACCT_SITES是HZ_CUST_ACCT_SITES_ALL的别名。

 

Account Site Use(账户场所用途)

一个AccountSite Use 是赋予某个CustomerAccount Site的一个商业用途(例如bill-to)。每个CustomerAccount Site 能有一个或者多个商业用途。

 

一些重要的属性描述如下:

1.      Party Site Use

对应的Party的场所用途。

2.      Customer Account Site

对应的Customer Account 场所。

3.      SITE_USE_CODE:

用途编码。比如:Bill-To和 Market

 

表HZ_CUST_SITE_USES_ALL存储关于此实体的所有信息。表HZ_CUST_SITE_USES是HZ_CUST_SITE_USES_ALL的别名。

 

Customer Account Role(账户角色)

Customer Account Role 是Party在控制和使用账户方面承担的角色,比如:归属人,授权用户或者联络人。

 

有以下重要的属性:

1.      ID

2.      Role Type:角色类型。

3.      Customer Account:对应的账户。

4.      Party:对应的Party

5.      Customer Account Site: 与场所相关的可选属性。

6.      Primary Flag:主标记。

 

 

表HZ_CUST_ACCOUNT_ROLES存储此实体的信息。

 

Role Responsibilities(角色职责)

作为一个CustomerAccount Role,Party需要承担的职责。

 

例如,Jack是Hub Corp的第一联络人,对应的角色职责是First Contact。

 

有以下重要的属性:

1.      ID

2.      Responsibility Type:职责类型

3.      Customer Account Role:对应的角色

4.      Primary Flag:主标记。

 

表HZ_ROLE_RESPONSIBILITY存储此实体的信息。

 

Customer Account Relationship(账户关系)

Customer Account Relationship是两个账户之间的联系。常见的例子是:某个客户为一位客户支付账单(母公司支付子公司的账单),这两个客户的账户之间就需要建立一个Customer Account Relationship。此实体有两个重要的属性:

 

1.      Relationship type: 关系类型,比如:上级

2.      Reciprocal flag: 双向关系标记。

 

表HZ_CUST_ACCT_RELATE_ALL存储这个实体的信息。

 

附录A. Oracle E-BusinessSuite

 

 

Oracle 公司的E-BusinessSuite (也称为EB-Suite/EBS)包括了收购或者开发的覆盖ERP,CRM和SCM(供应链管理)的各种应用。此系统基于Oracle的关系数据库管理系统。E-BusinessSuite (最近版本是12.1)包含了多个产品线:OracleCRM, Oracle Financials和 Oracle HRMS 等。

 

A Note on Oracle Application Journey

http://www.oracleappshub.com/news/a-note-on-oracle-application-journey/

 

Product homepage:

http://www.oracle.com/us/products/applications/ebusiness/overview/index.html

 

Online technical documents(12.1):

http://docs.oracle.com/cd/B53825_08/current/html/homeset.html

 

References

1.      Oracle Trading Community Architecture ReferenceGuide, Release 12.1, Part No. E13569-04.

2.      Oracle Trading Community Architecture TechnicalImplementation Guide, Release 12.1, E13662-04.

3.      Oracle Trading Community Architecture AdministrationGuide, Release 12.1, Part No. E13568-04.

4.      Len Silverston, The Data Model ResourceBook Revised Edition Volume 1, A Library of Universal Data Models for AllEnterprises, John Wiley & Sons.

5.      Sri Ganesh, Oracle Apps TCA Tables,  

http://www.club-oracle.com/articles/oracle-apps-tca-tables-809/