Siebel应用架构的一个成功的地方就是在应用里引入了BC,BO的概念,从而使得几千张关系数据表能够按照业务的含义组织成业务对象,对于业务人员而言具有了业务上的含义,而不仅仅是从技术人员的观点来对待数据(就是关系表而已)。

Link:BC之间的关系
对于关系表之间的关系,如主外键关系,从业务的BO观点来看则是BC之间的关系(请注意,不是严格的一对一,并非是一个关系表的外键一定会组成BC间的关系)。因为一个BO总是由一个主要的BC以及和它相关的一些BC组成,而主要的BC总是以一定的关系和附属的BC关联,这种关系就称之为Link,如下图:

我们已经交代过一个View展现的就是一个BO,而BO是由一个Master BC和相关的一些子BC组成,如果不存在Link,则子BC的所有数据都会展现出来,而建立了Link之后,就只有和Master BC选定的记录相关联的数据才会展现出来。这些关系可能是:

1:1关系:一对一的关系很多是用在Extension表上,Extension表的后缀名通常为_X(Extension表是Siebel里常见的一种表,一般Siebel业务的基础数据存储在Base表中,然后把一些扩展的数据和一些可以客户化的字段(attribute字段)放在Extension表中,从而给不同行业,不同场景提供了一个扩充性很强的数据模型。)

1:M关系:一对多的BC关系一般用于Master-Detail的业务场景,比如一个Account以及该Account已经购买的产品就是一个Master-Detail关系。这种关系类似于关系表的主键外键关系,这种关系在Extension表上也存在,通常后缀名称是_XM。

M:M关系:多对多的关系是通过一个叫做交集表(Intersection Table)体现出来的,两个BC之间没有主外键关系,但是每个BC和该交集表有主外键关系,如下图:

多对多的关系通常表达的是值对(value pair)的关系,比如公司-行业的值对组合。
Party Business Component
Party BC大概是Siebel里最基础的BC了,Party BC包含了个人相关实体,组织相关的实体,以及访问控制组等为了一定的目的建立起来的一些组织。如下图:

Party
BC基表是S_Party,但是和一般的BC不一样的是,作为基表的S_Party本身存储很少的数据,主要是Party的名称,Party的类型(是contact,employee还是account等),而更多Party相关的数据都存储在Extension表里,如S_CONTACT,S_USER等(比较特殊的是这些Extension表的结尾并不是使用*_X来命名);此外,这些extension表的extension表(如S_CONTACT_X)本身也算是S_PARTY的Extension表,这个也是Party
BC的一些特殊的地方。下图是一个很好的表达了Party的访问控制组的图:

rowid为1的行的party类型是User
List,所以这一行数据相关的信息应该存储在S_USERLIST extension表里;而rowid为2的行的类型是Access
Group,所以该行数据的额外信息应该是在表S_PARTY_GROUP
extension表里等等。这个就是一个Siebel里的一个扩展性非常强的数据模型的一个例子。

Business Component(BC)和Business Object(BO)的更多相关文章

  1. ‘ActiveX component can’t create object解决方法

    Event Type:    WarningEvent Source:    Health Service ScriptEvent Category:    NoneEvent ID:    1Dat ...

  2. 问题分享:ActiveX component can't create object: "MSComDlg.CommonDialog"

    问题描述: 修改一个前辈的代码,在我自己电脑上面运行的很好,但是放到要用户电脑(win7 x64)上面却跑不了,报个如题的错误. 查了下是COMDLG32.OCX的问题,用到控件的地方是: Dim o ...

  3. ABAP术语-Business Components

    Business Components 原文:http://www.cnblogs.com/qiangsheng/archive/2007/12/26/1015254.html Group of re ...

  4. Siebel应用数据结构层次

    在Siebel应用里数据在多个层次上使用了不同的定义方式,每一个层次侧重于数据的不同的特征,主要分为数据用户界面层定义(UI),业务逻辑层定义(Business Layer,可以是业务含义层)以及数据 ...

  5. Siebel 开发规范

    Siebel Configuration and Development Guideline 1 2 2.1 2.2 2.3 11. 2.4 2.5 3 3.1 3.2 3.2.1 3.2.2 3.3 ...

  6. Developing RIA Web Applications with Oracle ADF

      Developing RIA Web Applications with Oracle ADF Purpose This tutorial shows you how to build a ric ...

  7. MVG配置

    MVG的配置:(前提是一个表的字段包含多值字段,一般是1:M或M:M的关系) 想要在学生界面显示多个教师的名称. 1.首先在一个Project中,建两张表学生表和教师表T_Stu与T_Tea和一张中间 ...

  8. ABAP术语-Business Object

    Business Object 原文:http://www.cnblogs.com/qiangsheng/archive/2008/01/07/1028364.html Represents a ce ...

  9. vCard : a file format standard for electronic business cards

    http://zh.wikipedia.org/wiki/VCard vCard是电子名片的文件格式标准.它一般附加在电子邮件之后,但也可以用于其它场合(如在互联网上相互交换). vCard可包含的信 ...

随机推荐

  1. paraview plot over line

  2. Luogu P1272 重建道路 树形DP

    刚才瞅了半天自己当初写的,终于瞅出来了...QWQ 设f[i][j]表示以i为根的子树,包含j个节点所需砍掉的最小边数 那么可知f[u][1]=u的度: 方程:f[u][j]=min(f[u][j], ...

  3. Python RabbitMQ 消息队列

    RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息队列(MQ)是一种应用程序 ...

  4. Filezilla 错误

    一般来说,只要网站能访问,FTP就应该能连接的,之前好长一段时间一直遇到连接不上香港主机的问题,还以为是宽带出口线路不好,原来是自己学识浅薄,在同事的指点下才明白所以然,下面总结一下FTP连接中的常见 ...

  5. for( in ) IE下兼容问题

    在JS 中 for in 常用于遍历对象的可枚举属性,包括原型链上的属性.然而for_in在IE < 9下可能会出现问题. for_in要出现问题必须满足两个条件:  1:IE < 9; ...

  6. python中变量,常量

    1.变量 变量的作用:一个变化的值 把程序运算的中间结果临时存到内存里,以备后面的代码继续调用,这几个名字的学名就叫做“变量“ 查看变量在内存中的位置用id(name) 变量定义规则: 变量名只能是 ...

  7. JDK安装以及maven部署

    JDK安装 检查原有JDK rpm -qa|grep jdk 假如原环境安装有JDK,卸载,命令举例: yum -y remove java--openjdk-headless-.b17.el7.x8 ...

  8. windows 系统C盘暴增

    系统: Windows Server 2012R2 问题: C盘200G的空间,暴增剩余3G.但是查看仅有69G的空间占用. 根源:Windows的虚拟文件,驱动器分页. 解决方案: 我的电脑-> ...

  9. pytorch 安装

    安装pytorch时,官网不能选择版本.原以为是浏览器问题,换了几个浏览器都不行. 后来FQ之后,就能选择版本了. sudo pip install torch torchvision

  10. innosetup卸载软件后,删除定时任务schedule task

    代码如下: //innosetup自带的方法,当卸载软件时,根据卸载的状态改变时而触发 procedure CurUninstallStepChanged(CurUninstallStep: TUni ...