从 CDS 注解到 List Report 搜索框,Adding a Standard Search Filter 的完整实践 最近做 Fiori Elements List Report 时,经常会遇到一个很典型的问题,页面上到底要不要手写一个搜索框。对于传统 SAP UI5 freestyle 应用来说,开发者往往会想到sap.m.SearchField、Filter、binding.filter、ODataModel.read这些对象和方法,甚至会在 controller 里专门写一段onSearch逻辑。可是到了 Fiori Elements 里,思路就完全不一样了。这里真正推荐的方式不是在前端拼 UI,也不是在 controller extension 里硬塞搜索逻辑,而是把搜索能力放回 CDS 语义模型中,让框架自己把标准搜索框渲染出来。SAP 官方文档对@Search.searchable的定义很清楚,它是一个视图级别的开关,用来标记某个 CDS view 或 CDS entity 是否适用于搜索场景;一旦启用搜索相关注解,至少需要有一个元素被定义为默认搜索字段。SAP HANA 相关文档也说明,@Search.defaultSearchElement用来把某个列定义为 freestyle search column,没有默认搜索元素的视图不支持搜索。(