用 CDS Association 打通值帮助关系,深入理解 SAP Fiori Elements 的 Value Help Via Association
最近在检查一个 SAP Fiori Elements 订舱页面时,页面上的CustomerID字段看起来很普通,右侧却带着一个值帮助入口。点击图标后,系统能够列出客户编号、客户名称以及其他客户信息。选中某条记录,客户编号又会自动回填到订舱数据中。表面上看,这只是一个输入框弹出选择列表的交互。可是在后端 CDS 数据模型里,它涉及三个彼此关联的问题。CustomerID存储在哪个业务实体中。候选客户数据由哪个 CDS View 提供。订舱记录里的客户编号与客户主数据里的客户编号怎样对应。当值帮助提供者已经通过 CDS Association 与当前实体建立关系时,再在@Consumption.valueHelpDefinition中重新声明提供者实体和映射字段,会产生明显的重复。Value Help Via Association正是为了解决这种重复,它允许值帮助注解直接引用现有 Association,把字段绑定关系交给 Association 的ON条件。SAP 官方文档给出的核心结论很清楚。当值帮助提供者已经与源实体建立 Association 时,可以通过@Consumption.valueHelpDefinition.association引用该 Association,而不必再次通过entity.name和entity.element描述值帮助提供者。绑定条件已经包含在 Association 的ON