SAP Fiori Elements 本地项目的 annotations.xml 文件

举报
汪子熙 发表于 2022/05/21 23:04:55 2022/05/21
【摘要】 SAP Fiori Elements 本地项目里的 Annotations.xml,可以定义一些本地 annotations,来覆盖掉来自后台 OData 服务里的注解。例如:我在 Annotations.xml 里重新定义 List Report 里应该显示的表项: <Annotations Target="SAP.SEPMRA_C_PD_ProductType"> ...

SAP Fiori Elements 本地项目里的 Annotations.xml,可以定义一些本地 annotations,来覆盖掉来自后台 OData 服务里的注解。

例如:我在 Annotations.xml 里重新定义 List Report 里应该显示的表项:

 <Annotations Target="SAP.SEPMRA_C_PD_ProductType">
                <Annotation Term="UI.LineItem">
                    <Collection>
                        <Record Type="UI.DataFieldForAction">
                            <PropertyValue Property="Label" String="点我"/>
                            <PropertyValue Property="Action" String="SEPMRA_PROD_MAN.SEPMRA_PROD_MAN_Entities/SEPMRA_C_PD_ProductCopy"/>
                            <PropertyValue Property="InvocationGrouping" EnumMember="UI.OperationGroupingType/Isolated"/>
                            <Annotation Term="UI.Importance" EnumMember="UI.ImportanceType/High"/>
                        </Record>
                        <Record Type="UI.DataField">
                            <PropertyValue Property="Value" Path="ProductForEdit"/>
                             <PropertyValue Property="Label" String="12345"/>
                            <Annotation Term="UI.Importance" EnumMember="UI.ImportanceType/High"/>
                        </Record>
                        <Record Type="UI.DataField">
                            <PropertyValue Property="Value" Path="MainProductCategory"/>
                            <Annotation Term="UI.Importance" EnumMember="UI.ImportanceType/High"/>
                        </Record>
                       
                        
                    </Collection>
                </Annotation>
            </Annotations>

上面的代码重新定义了 Copy 按钮的标签,同时 List Report 默认只显示两个表项:Product 和 MainProductCategory,同时将 Product 的 Label 更改为 12345,运行时效果:

但是我们仍然可以通过配置的方式,将其他 column 一起显示出来:

如图所示:

正则表达式:

{{foo}}

在 sap.ui.core.Component.js 里,执行 loadManifests 进行加载:

我们的 controller extensions 在这里也能看见:

在 Manifest 构造函数里,执行 _processI18n, 处理 i18n 相关逻辑:

成功加载的文本资源,位于 ResourceBundle 中:

从 Resource Bundle 中,根据 resource key 拿到文本的逻辑,位于方法 getText 里:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。