Association, Composition and Aggregation in UI5, CRM, S/4HANA and C4C
UI5
UI5使用Association和Aggregation描述控制元件之間的關係。
Aggregation:parent和子控制元件在lifecycle上存在依賴關係:
When a ManagedObject is destroyed, all aggregated objects are destroyed as well and the object itself is removed from its parent. That is, aggregations won't contain destroyed objects or null/undefined.
比如UI5的轉盤控制元件Carousel: 一旦轉盤被析構,裡面顯示的page當然也沒有繼續存在的意義了,需要跟著被析構。
而Association描述了在lifecycle層面的一種soft dependency關係:
Managed associations also form a relationship between objects, but they don't define a lifecycle for the associated objects. They even can 'break' in the sense that an associated object might have been destroyed already although it is still referenced in an association.
最明顯的例子就是控制元件和其label的關係,比如button和label:技術上來說,可以彼此分開獨立存在。
CRM
CRM的Genil model存在三種型別的relation,可以在doman CRM_RELATION_KIND裡檢視:
區別:
-
Association: Link between any kind of objects. Can also be defined across components with root or access object as target. 依賴關係最為loose的一種relation,可以用來連線跨model之間的節點。
-
Aggregation: Binds child objects to a root object. Only access and dependent objects can be aggregated. 只適用於同一模型的節點之間的關聯。
-
Composition: Like an aggregation, but composed child objects always exist. 特殊型別的Aggregation。目標節點的Cardinality為1或者1..n
S/4HANA
只有兩種:association或者composition。Composition的含義同CRM裡的aggregation,而association的含義同UI5和CRM中的association一致。
C4C
只有兩種: association或者composition。C4C的這兩種relation多了一個限制:relation的目標BO必須和源BO在同一個部署單元Deployment Unit,或者目標BO位於Foundation部署單元內。
Association的語法如下圖:
association的multiplicity只支援[0,1]或者[1,1], 如果不顯式指定,預設為[1,1].
C4C relation的一個特色是,一旦申明瞭一個子節點之後,系統會預設生成一個對應的composition。
下圖第4行程式碼會自動生成一個[0,n]的從root節點到Item節點的composition。
要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2152635/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [轉載]繼承(Generalization),組合(Composition),聚合(Aggregation),關聯(Association),依賴(Dependency),實現(Realization繼承
- SAP UI5 ManagedObject 的 Association 講解UIObject
- SAP S/4HANA Customer Management(CRM)模組的Partner模型設計模型
- UML-類圖-Composition(組合)和Aggregation(聚合)的區別
- SAP CRM OData multiple origin Composition的測試
- Document flow API in SAP CRM and C4CAPI
- SAP CRM WebUI, CRM Fiori和C4C裡的Direct NavigationWebUINavigation
- OData服務在SAP CRM,Cloud for Customer和S/4HANA上的實現比較Cloud
- SAP S/4HANA OData Mock Service 介紹Mock
- SAP S/4HANA key user tool extensibility原理
- SAP S/4HANA Cloud SDK 入門介紹Cloud
- SAP S/4HANA FINANCE New Transaction CodesNaN
- CRM, C4C和Hybris的工作流簡介
- 檢視SAP CRM和C4C的UI technical資訊UI
- CRM和C4C裡的組織架構 - Organizational Structure架構Struct
- 打通C/4HANA和S/4HANA的一個原型開發:智慧服務創新案例原型
- 如何修復 SAP UI5 aggregation with cardinality 0..1 相關的錯誤訊息UI
- CRM, C4C和SAP Hybris的資料庫層設計資料庫
- S/4HANA服務訂單Service Order的批量建立
- SAP S/4HANA extensibility擴充套件原理介紹套件
- 使用BAPISDORDER_GETDETAILEDLIST建立S/4HANA的Outbound DeliveryAPIAI
- 使用ABAP程式碼建立S/4HANA裡的Sales Order
- SAP S/4HANA 2020安裝實錄
- SAP S/4HANA New Simplified Data Model (NSDM) 模型介紹模型
- 關於 SAP UI5 Container 控制元件 aggregation 的深入分析試讀版UIAI控制元件
- SAP CRM和C4C的產品主資料price維護
- 如何將Twitter的內容匯入到SAP CRM和C4C
- SAP Cloud for Customer 如何直接消費S/4HANA APICloudAPI
- SAP S/4HANA Cross Selling機制介紹ROS
- 結合S/4HANA和雲遷移:企業如何受益
- Internationalization(i18n) support in SAP CRM,UI5 and HybrisUI
- CRM和C4C product category hierarchy的可編輯性控制邏輯Go
- SAP S/4HANA裡extension include view和extension view的區別View
- 如何使用Key User Tool擴充套件SAP S/4HANA Fiori UI套件UI
- SAP S/4HANA Material Fiori應用的搜尋實現原理
- Generate Distribution Model from SAP ERP to SAP EWM in SAP S/4Hana
- SAP S/4HANA: 一條程式碼線,許多種選擇
- 哲訊分享:你不知道的SAP S/4HANA Cloud功能!Cloud