针对 Edm.DateTime 的 SEGW 警告“潜在数据丢失”

问题描述

是否可以在 SAP Gateway Service Builder 中添加基于 CDS 查看日期源参考的 Edm.DateTime 字段而不会出现警告?

我基于从带有日期字段的 dd07l 中选择创建了简单的 CDS 视图只是为了展示这种情况,创建日期字段的代码直接取自 sap 帮助示例:https://help.sap.com/doc/abapdocu_751_index_htm/7.51/en-us/abencds_f1_date_time_conversions.htm

它工作正常,但在 SAP Gateway Service Builder (segw) 中的项目检查期间,由于缺少 Precision 字段设置而显示警告,但无法在数据源参考的 segw 中手动更改它。

我正在为此寻找一些注释,但没有找到适合它的注释。

@AbapCatalog.sqlViewName: 'ZTEST2_V'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Test'
define view ZTEST2_CDS as select from dd07l as domain
{
    key domain.domname,key domain.domvalue_l,tstmp_to_dats(tstmp_current_utctimestamp(),abap_system_timezone($session.client,'NULL'),$session.client,'NULL') as dat
}

Service warnings

Collection properties

解决方法

很可能在您的 SEGW 服务定义中指定了 OData V2。 OData V2 只有 Edm.DateTime,当将 ABAP DATS 字段转换为 Edm.DateTime 时,您将始终收到此警告。

从 NW 750 开始,您还可以通过具有特殊 Edm.Date 类型的 SEGW 实现 Odata V4 服务,但它会显着影响前端实现。因此,如果您必须坚持使用 Odata V2,我建议您忽略此警告。