zl程序教程

您现在的位置是:首页 >  Java

当前栏目

如何通过 ABAP 代码给 SAP OData 元数据增添注解试读版

2023-02-18 16:39:25 时间

笔者的这篇 SAP UI5 开发教程文章,* SAP UI5 应用开发教程之一百二十九 - 如何给 SAP UI5 SmartField 添加 Value Help 功能,有朋友留言:

你好,请教一个问题,请问如何在odata里面通过annotations添加一个自定义注解?

你好,请问可以不可以在odata里面通过什么设置,从而自动给metadata.xml中加上注解,实现value help的功能,还是说每次需要在metadata.xml中修改?

这位朋友实际咨询的就是如何维护 metadata.xml 文件里这种 Annotations 标签。

在 OData 元数据里生成自定义注解的方式有很多种,比如在 CDS view 里维护注解,然后基于 CDS view 生成 OData 服务。对于本系列到目前为止采取 SEGW 事物码开发的 OData 服务来说,我们没有 CDS view 模型,因此可以采取另一种办法,即在 MPC_EXT 类里手动编写 ABAP 代码的方式来维护注解。

我们先看下效果,在 MPC_EXT 类的 DEFINE 方法里编写 ABAP 代码之后,用 Postman 使用 url 访问 OData metadata,在返回的数据里,能看到我们用 ABAP 代码添加的自定义注解。

<Annotations Target="ZJERRY.Book" xmlns="http://docs.oasis-open.org/odata/ns/edm">
                <Annotation Term="UI.HeaderInfo">
                    <Record>
                        <PropertyValue Property="TypeName" String="Book"/>
                        <PropertyValue Property="TypeNamePlural" String="Books"/>
                    </Record>
                </Annotation>
                <Annotation Term="UI.LineItem">
                    <Collection>
                        <Record Type="UI.DataField">
                            <PropertyValue Property="Label" String="Book"/>
                            <PropertyValue Property="Value" Path="Book"/>
                        </Record>
                    </Collection>
                </Annotation>
            </Annotations>

下面是详细的实现步骤讲解。