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繼承
- UML-類圖-Composition(組合)和Aggregation(聚合)的區別
- SAP UI5 ManagedObject 的 Association 講解UIObject
- SAP S/4HANA Customer Management(CRM)模組的Partner模型設計模型
- SAP CRM OData multiple origin Composition的測試
- OData服務在SAP CRM,Cloud for Customer和S/4HANA上的實現比較Cloud
- Document flow API in SAP CRM and C4CAPI
- SAP CRM WebUI, CRM Fiori和C4C裡的Direct NavigationWebUINavigation
- SAP S/4HANA key user tool extensibility原理
- SAP S/4HANA 2020安裝實錄
- SAP S/4HANA OData Mock Service 介紹Mock
- 如何修復 SAP UI5 aggregation with cardinality 0..1 相關的錯誤訊息UI
- CRM, C4C和Hybris的後臺作業
- SAP S/4HANA Cross Selling機制介紹ROS
- S/4HANA中的銷售計劃管理
- SAP HANA,S/4HANA 和 SAP BTP 的辨析
- SAP S/4HANA Cloud SDK 入門介紹Cloud
- SAP S/4HANA中的採購簡化
- 關於 SAP UI5 Container 控制元件 aggregation 的深入分析試讀版UIAI控制元件
- CRM, C4C和Hybris的工作流簡介
- 使用BAPISDORDER_GETDETAILEDLIST建立S/4HANA的Outbound DeliveryAPIAI
- SAP S/4HANA extensibility擴充套件原理介紹套件
- SAP Cloud for Customer 如何直接消費S/4HANA APICloudAPI
- 打通C/4HANA和S/4HANA的一個原型開發:智慧服務創新案例原型
- 檢視SAP CRM和C4C的UI technical資訊UI
- CRM和C4C裡的組織架構 - Organizational Structure架構Struct
- 使用ABAP程式碼建立S/4HANA裡的Sales Order
- S/4HANA服務訂單Service Order的批量建立
- SAP S/4HANA New Simplified Data Model (NSDM) 模型介紹模型
- Generate Distribution Model from SAP ERP to SAP EWM in SAP S/4Hana
- CRM, C4C和SAP Hybris的資料庫層設計資料庫
- S/4HANA for Customer Management裡的搜尋分頁處理
- 結合S/4HANA和雲遷移:企業如何受益
- 給某個 SAP S/4HANA 使用者分配 Business Role
- ROS2--CompositionROS
- Internationalization(i18n) support in SAP CRM,UI5 and HybrisUI
- [20220121]Hash Aggregation.txt
- MongoDB 新手入門 - AggregationMongoDB