【问题标题】:How to provide OData service via the SAP Cloud SDK for an entity with a DateTime in its key?如何通过 SAP Cloud SDK 为密钥中包含 DateTime 的实体提供 OData 服务?
【发布时间】:2019-09-12 09:08:24
【问题描述】:

我们目前正在努力为实体提供 OData 服务,该实体的键的一部分是 DateTime 类型的属性。此键属性不是 SAP Cloud Provisioning SDK 提供的 OData 请求中的键映射的一部分。这似乎是由于 com.sap.cloud.sdk.service.prov.v2.data.provider.CXSDataProvider.getKeys(List) 方法中的请求解析存在错误:

if (type.toString().equals("Edm.Date")) {
  Date value = type.valueOfString(keyPredicate.getLiteral(), EdmLiteralKind.DEFAULT, property.getFacets(), Date.class);
  keys.put(property.getName(), value);
}

由于 OData 标准中没有 Edm.Date 类型,我的猜测是以下内容应该是正确的:

if (type.toString().startsWith("Edm.Date")) {
  [s. above]
}

这是正确的还是我们在这里做错了什么?此外,方法本身上有一个 TODO 标记,指出当前仅支持 EDM 类型的子集作为键。是否有计划修复此 TODO?

【问题讨论】:

  • 嗨蒂姆,我已经在内部重定向了你的问题,一旦我知道更多,我会及时通知你。 BR,弗洛里安
  • 嗨,蒂姆,您使用的是哪个版本的 SDK?这是一个有效的问题,可以在您的版本中提供修复。
  • 嗨,谢谢,我们将不胜感激!我们的版本是 2.17.0。
  • 嗨 Tim,我想知道 com.sap.cloud.servicesdk.provodatav2-prov 的版本。必须在 1.**
  • 好的,抱歉,这是 1.29.0

标签: sap-cloud-sdk


【解决方案1】:

正如 mumanoj 所评论的,该问题应在 <groupId>com.sap.cloud.servicesdk.prov</groupId><artifactId>odatav2-prov</artifactId> 的 1.29.5 版中得到解决。感谢您的报告。

【讨论】:

  • 谢谢弗洛里安,我们会检查这个。但是,我们注意到在 1.32.0 中,这是新需要的 Cloud SDK 2.21.0 的版本,此修复不是其中的一部分。是否计划在下一个版本中包含它?
  • 请注意,这些是最新的四个版本:1.34.11.29.51.33.01.32.5。如您所见,1.29.5 已在1.32.0 之后发布,尽管数量众多。
猜你喜欢
  • 2020-01-14
  • 1970-01-01
  • 2020-04-27
  • 2021-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-02
相关资源
最近更新 更多