Business Component(BC)和Business Object(BO)
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)的更多相关文章
- ‘ActiveX component can’t create object解决方法
Event Type: WarningEvent Source: Health Service ScriptEvent Category: NoneEvent ID: 1Dat ...
- 问题分享:ActiveX component can't create object: "MSComDlg.CommonDialog"
问题描述: 修改一个前辈的代码,在我自己电脑上面运行的很好,但是放到要用户电脑(win7 x64)上面却跑不了,报个如题的错误. 查了下是COMDLG32.OCX的问题,用到控件的地方是: Dim o ...
- ABAP术语-Business Components
Business Components 原文:http://www.cnblogs.com/qiangsheng/archive/2007/12/26/1015254.html Group of re ...
- Siebel应用数据结构层次
在Siebel应用里数据在多个层次上使用了不同的定义方式,每一个层次侧重于数据的不同的特征,主要分为数据用户界面层定义(UI),业务逻辑层定义(Business Layer,可以是业务含义层)以及数据 ...
- 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 ...
- Developing RIA Web Applications with Oracle ADF
Developing RIA Web Applications with Oracle ADF Purpose This tutorial shows you how to build a ric ...
- MVG配置
MVG的配置:(前提是一个表的字段包含多值字段,一般是1:M或M:M的关系) 想要在学生界面显示多个教师的名称. 1.首先在一个Project中,建两张表学生表和教师表T_Stu与T_Tea和一张中间 ...
- ABAP术语-Business Object
Business Object 原文:http://www.cnblogs.com/qiangsheng/archive/2008/01/07/1028364.html Represents a ce ...
- vCard : a file format standard for electronic business cards
http://zh.wikipedia.org/wiki/VCard vCard是电子名片的文件格式标准.它一般附加在电子邮件之后,但也可以用于其它场合(如在互联网上相互交换). vCard可包含的信 ...
随机推荐
- CentOS 7 基础网络配置
基础的网络配置,包括静态IP地址.子网掩码.网关.DNS,使用 nmtui 和 nmcli 工具时必须开启 NetworkManager 服务 文本用户界面工具 nmtui [root@localho ...
- Android 应用资源及R文件的位置
1.介绍 (1)常识 (2)在res目录下新建资源文件(例如数字资源) app--->res,选择res,右击new--->value resource file 2.字符资源(strin ...
- paraview添加vector
https://youtu.be/cygVdhn-kG0 (须自行FQ)
- Python- sort()/sorted()
Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列. sorted(iterable,key=None,revers ...
- codeforces1073d Berland Fair 思维(暴力删除)
题目传送门 题目大意:一圈人围起来卖糖果,标号从1-n,每个位置的糖果都有自己的价格,一个人拿着钱从q开始走,能买则买,不能买则走到下一家,问最多能买多少件物品. 思路:此题的关键是不能买则走到下一家 ...
- Fleury算法求欧拉路径
分析: 小Ho:这种简单的谜题就交给我吧! 小Hi:真的没问题么? <10分钟过去> 小Ho:啊啊啊啊啊!搞不定啊!!!骨牌数量一多就乱了. 小Hi:哎,我就知道你会遇到问题. 小Ho:小 ...
- [转] javascript中的变量和垃圾回收
[From] http://www.imooc.com/article/4585 基本类型和引用类型 js中的变量虽然不区分类型,但是实际上Ecmascript包含两种类型,基本类型和引用类型. 基本 ...
- aoj0121
一.题意:类似于华容道,输入是8个数字,输入虽然是一行,但实际是以两行的方式操作的.0表示空位,别的相邻数字可移动到该位置上.求最少移动步骤得到指定的状态. 二.思路:这题可以用BFS来解决.因为在每 ...
- 转 C#对多个集合和数组的操作(合并,去重,判断)
在开发过程中.数组和集合的处理是最让我们担心.一般会用for or foreach 来处理一些操作.这里介绍一些常用的集合跟数组的操作函数. 首先举例2个集合A,B. List<int> ...
- 文献综述四:基于 UML 技术的客户关系管理系统实现
一.基本信息 标题:基于 UML 技术的客户关系管理系统实现 时间:2015 出版源:电子设计工程 文件分类:uml技术的研究 二.研究背景 使用UML 建模技术和 B/S 架构访问模式,设计出可应用 ...