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

Association, Composition and Aggregation in UI5, CRM, S/4HANA and C4C相关推荐

  1. SAP UI5 CRM Reuse Fiori应用 note.js代码审查结果

    目录 1. Unused require statement Line4 could be deleted. 2. Unused code _dateBound = true Is this _dat ...

  2. 关于SAP UI5 CRM Reuse Fiori应用的代码审查

    目录 1. Question about maven build output If we open the target folder: What is exactly the usage of t ...

  3. Association, Aggregation, Composition, Abstraction, Generalization, Realization, Dependency

    Association, Aggregation, Composition, Abstraction, Generalization, Realization, Dependency 转自:http: ...

  4. 如何将Twitter的内容导入到SAP CRM和C4C

    2019独角兽企业重金招聘Python工程师标准>>> Twitter的内容导入SAP CRM Interaction Center呼叫中心 具体步骤查看我的博客Twitter(al ...

  5. Pricing in SAP CRM and Cloud for Customer

    CRM的price determination C4C C4C的price分Internal Pricing和External Pricing两种. Internal Pricing涉及到的工作中心: ...

  6. Markdown使用文档

    Markdown使用文档 快捷键 Markdown 快捷键 撤销 Ctrl /⌘+Z 重做 Ctrl /⌘+Y 加粗 Ctrl /⌘+B 斜体 Ctrl /⌘+I 标题 Ctrl /⌘+Shift + ...

  7. 区分 UML 类图中的几种关系

    区分 UML 类图中的几种关系   2010-12-23 作者:fnw 来源:网络      区分 UML 类图中的几种关系  UML 类图中的 "关联关系(association) &qu ...

  8. 详解:面向对象与面向过程的比较 类之间的关系:泛化、实现、依赖、关联、聚合、组合

    文章目录 1.面向对象程序设计概述 1.1 面向对象程序设计 1.2 传统结构化程序设计 1.3 面向对象与面向过程举例 2.类之间的关系 2.1 泛化/继承 2.2 实现 2.3 依赖 2.4 关联 ...

  9. Atlas元数据存储模型分析

    导语:Atlas 是一个可扩展的核心基础治理服务集 - 使企业能够有效地和高效地满足 Hadoop 中的合规性要求,并允许与整个企业数据生态系统的集成.该项目用于管理共享元数据.数据分级.审计.安全性 ...

最新文章

  1. 被小扎誉为整个科技界的愿景,元宇宙到底是什么?
  2. java_AWT.内存监控
  3. Windows 技术篇-LDSGameMaster文件夹有什么用,删除方法
  4. Boost:使用类array <>的简单示例
  5. 「Apollo」Cyber RT 学习笔记
  6. 同步Android与PC的时间
  7. Pytorch(5)-梯度反向传播
  8. linux 查看进程_Linux怎么查看和监控每个进程的实时流量
  9. python2版本异常_Python to.exe引发异常:此项目的版本控制需要sdisttarb
  10. 南阳理工ACM111
  11. mysql关联查询关键字_MySQL数据高级查询之连接查询、联合查询、子查询
  12. 大创和互联网加_大创?科研立项?互联网+大赛?创业大赛?……你还在纠结吗?...
  13. 软件项目管理1:开发计划和版本计划举例
  14. 越想越气(拍拍购物过程)
  15. html透明背景字体不透明,css3背景透明,文字不透明
  16. 基于 mini2440 电阻式触摸屏(一):电阻式触摸屏工作原理
  17. webbrowser点击网页内部链接阻止从IE打开
  18. Java校招面经_小米java校招面经,面试题整理(一面)
  19. “算法即芯片”有点扯,互联网公司为何热衷造概念?
  20. 洛谷-P3392 涂国旗

热门文章

  1. pyecharts学习(part4)--pyecharts饼图
  2. 今日代码(20201003)--简单爬虫
  3. 投资学习网课笔记(part7)--基金第七课
  4. 第三次学JAVA再学不好就吃翔(part94)--HashMap嵌套HashMap
  5. vmos切换安卓版本_安卓之中还能运行安卓!神奇的安卓虚拟机App
  6. 读书笔记 —《钱从哪里来》
  7. Sklearn参数详解—Adaboost
  8. python 关于excelcsv与cookie的部分笔记
  9. 如何在 SAP 电商云 Spartacus UI 里访问 CMS Component data 数据
  10. 如何配置 SAP BTP Integration Suite 测试帐号的环境