写点什么

SAP UI5, CRM, S/4HANA 和 C4C 里的 Association, Composition and Aggregation

用户头像
Jerry Wang
关注
发布于: 2021 年 05 月 23 日
SAP UI5, CRM, S/4HANA 和 C4C里的Association, Composition and Aggregation

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 的原创技术文章,请关注公众号"汪子熙":



发布于: 2021 年 05 月 23 日阅读数: 6
用户头像

Jerry Wang

关注

个人微信公众号:汪子熙 2017.12.03 加入

SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使。

评论

发布
暂无评论
SAP UI5, CRM, S/4HANA 和 C4C里的Association, Composition and Aggregation