
在 ADT 里维护 ABAP CDS View Entity 时,多语言文本几乎一定会碰到一个很典型的问题。业务主实体只有一条记录,但对应的文本实体往往同时保存德语、英语、中文、法语等多个语言版本。如果直接沿着 Association 去读取文本字段,一条业务记录就可能对应多条文本记录。可是在很多消费场景里,我们真正需要的并不是全部语言,而只是其中一种语言。ABAP CDS 为这种场景提供了一种非常自然的表达方式,也就是在 Path Expression 中直接附加 Filter Condition。最简化的语法就是下面这样。_Assoc[condition].fieldasAliasName这几个字符看起来很简单,但背后牵涉到 CDS Association、Path Expression、Cardinality、SQL Join,以及业务语义应该放在哪一层的问题。尤其容易产生的误解是,把方括号里的条件理解成类似 SQLWHERE的过滤条件。实际上并不是这样。SAP 官方文档明确说明,Path Expression 中的 Filter Condition 在 CDS DDL 转换成 SAP HANA SQL 时,会成为生成 Join 的