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里的一個擴展性非常強的數據模型的一個例子。

轉載于:https://www.cnblogs.com/tdskee/p/6510441.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372770.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372770.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372770.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

NetBeans可用性提示

的Java IDE都來了,因為在很長的路要走天的JBuilder的 (盡管JBuilder中似乎是一個值得歡迎提前在時間)。 當今的Java IDE(例如NetBeans , Eclipse , IntelliJ IDEA和JDeveloper )是非常先進的工具…

一個JVM進程啟動后里面有幾個線程

在寫Java程序時,通常我們管只有一個main函數(而沒有別的Thread或Runnable的程序)叫單線程程序。但是我們寫的這個所謂的單線程程序只是JVM這個程序中的一個線程,JVM本身是一個多線程的程序,至少得有一個垃圾收集器線程…

WPF 反編譯后錯誤處理

1. 首先,手動創建一個WPF工程(WpfApplicationReflectorDemo) 2. 把生成的WpfApplicationReflectorDemo.exe 拖到ILSpy里 3.點擊 File -> Save Code...: 相應的代碼會生成到指定地方。 4. 打開應用程序,并且編譯它,此…

JavaFX 2 GameTutorial第1部分

介紹 我相信大多數軟件開發人員可能會在年輕人(年輕人)一生中的某一時刻被迫創建游戲來幫助他們學習編程語言(我知道我確實做到了)。 以前,我的第一臺計算機實際上是Franklin Ace 1000 ,后來是Apple [] 。 …

虛擬現實-VR-UE4-認識UE4

VR的火熱,讓每個人都想參與一下, 公司在展會上面搞了一個VR的Demo,關注度超出預期,使得公司高層決定來個VR項目 所以 關于UE4 百度百科地址:http://baike.baidu.com/link?urlmEmbwOcqEuqtkfdu9lNdxVtWAkv0Q6UHZ4VgIHr…

java concurrent 例子_[Java Concurrent] 并發訪問共享資源的簡單案例

EvenGenerator 是一個偶數生成器,每調用一個 next() 就會加 2 并返回疊加后結果。在本案例中,充當被共享的資源。EvenChecker 實現了 Runnable 接口,可以啟動新的線程執行 run() 任務,用于檢測所指向的偶數生成器是否每次都返回偶…

OSGI實戰第一章

第一章 解開OSGI的面紗 OSGI是什么?是Java平臺的一個模塊化層。模塊化:軟件應用程序的代碼被分割為表示獨立內容的邏輯單元,可簡化開發,可通過強化邏輯模塊的界限來提高可維護性。Java模塊化的不足a) Java使用訪問…

輕松完成Birt報告

這是使用Birt插件在Eclipse中構建報告的完整指南。 Birt或Business Intelligence and Reporting工具是一種無需編寫太多Java代碼即可生成報告的工具。 如果您使用的是ireport,那么您知道我在說什么:)(晶體報告..毫無意義&#xff…

MySQL 的 RowNum 實現

MySQL 下面沒有RowNum,排序后序號卻無法得到,比較麻煩! SELECT rownum:rownum1 rownum, CollectSn From(SELECT rownum:0,bbgmain.* FROM qbdb.bbgmain WHERE collectsn! ORDER BY collectsn limit 10) t轉載于:https://www.cnblogs.com/hym-…

java jdbc事務管理_hibernate事務管理 (jdbc jta)

評論# re: hibernate事務管理 (jdbc jta)2007-07-29 10:18pigJTA事務的開始Transaction tx session.beginTransaction();應該不是這樣吧,應該是從容器中獲得。 回復 更多評論# re: hibernate事務管理 (jdbc jta)2007-07-29 12:35slxpig建議看看hibernate referen…

@Resource VS @Autowired

Resource 和 Autowired 均是用于bean注入的注解,都可以寫在字段和setter方法上,如果都寫在字段上,就無需寫setter方法。 Autowired 由Spring的org.springframework.beans.factory.annotation.Autowired提供 默認byType方式注入,并且對象不能為…

用于Spring應用程序的Gradle原型

我發布了Gradle原型,可用于基于Springframework創建Java / Groovy應用程序。 當然,它不是一個真正的原型,因為這樣的創作是不可能的 。不過,你可以創建,編輯和部署應用服務器很少的步驟。 對于可部署的軟件項目而言&am…

java tm無響應_Java(TM) Platform SE binary 未響應 是怎么個情況?

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓988098 [Thread-10] INFO sound.oo0O - Creating streaming player for music with id [faction_pirate_encounter_02_hostile.ogg]988099 [Thread-10] INFO sound.OooO - Playing music with id [faction_pirate_encounter_02_hos…

ROS and PCL install

ROS hydro安裝指南: http://wiki.ros.org/cn/hydro/Installation/Ubuntu (加ppa源后直接安裝) Linux OpenCV安裝指南:http://blog.sciencenet.cn/blog-571755-694742.html (從源代碼編譯) PCL:…

揭開Python科學計算的面紗

春牛春杖。無限春風來海上。便與春工。染得桃紅似肉紅。 春幡春勝。一陣春風吹酒醒。不似天涯。卷起楊花似雪花。 標準的Python中用列表保存一組值,可以當做數組使用,但是由于其值類型任意,所以列表中保存的是指針,這樣的話保存一…

FXML:使用BuilderFactory的自定義組件

當您想使用FXML時,您將需要能夠添加自己的組件。 這很容易,您只需要添加一個import語句。 FXML文件中以大寫字母開頭的元素將被解釋為實例,如果它們是Java Bean,則最重要:如果它們具有無參數的標準構造函數&#xff0c…

Excel 一鍵上傳到數據庫

<a class"edit" id"batchImport"> 批量導入 </a> js代碼彈窗&#xff1a; $("#batchImport").click(function(){ //彈窗彈窗下列內容 var html<form id"execlForm" method"post" enctype&quo…

SQL——實例記錄(對查詢結果排行號)

select 訂單編號, DENSE_RANK() over(order by 訂單編號) from test 排序結果&#xff1a; 55678-0-1 1 55678-0-1 1 33454-0-1 2 33454-0-1 2 33454-0-1 2 這種是按照訂單不同的順序依次往后排 當然也可以在 over后面加上你想要的起始號 例&#xff1a;DE…

TeamCity構建依賴項

介紹 構建依存關系的主題既不重要也不是次要的。 各種構建工具從不同的角度處理此主題&#xff0c;從而提供各種解決方案&#xff0c;每種解決方案都有其優點和缺點。 熟悉發行版和快照依賴項的Maven和Gradle用戶可能不了解TeamCity快照依賴項&#xff0c;或者認為他們與Maven…

復選框操作checked選中為true,反之為False,也可以賦值為true,false

轉載于:https://www.cnblogs.com/shiluoliming/p/6518236.html