问题描述
我对 SAP Cloud SDK 有疑问。 首先,我需要说这是一个非常好的消费 OData 服务的库,我只是想指出你做得很好!关于生成 VDM 和其他内容的教程简直太棒了!
进入问题。如何从客户端调用绑定函数或操作?我搜索/观看了视频,唯一发现的是,在 2020 年 5 月 5 日的视频 SAP Cloud SDK:SAP 社区的更新呼叫中,您说尚不支持绑定函数。那是什么状态,我如何使用绑定函数实现客户端?
希望你能帮助我。 马蒂亚
附言Get All、Get By Key、Post、Patch、Delete、Unbound Functions 和 Actions 工作完美
解决方法
截至 version 3.46.0,SAP Cloud SDK for Java 已内置对 bound functions and actions 的支持。
这允许直接从 VDM 构建请求。实体类将在 API 上公开与其绑定的所有函数和操作。查看 documentation 了解如何使用 API。
,感谢您对 SDK 的美言!这对团队来说是一个很大的鼓励。
我们目前正在积极支持OData v4 bound functions/actions。应该很快发布对这些操作的类型安全支持。初步你可以在 3 月底和 4 月初之间期待它,但不能保证。我们将通过我们的 release notes 进行沟通。
作为一种解决方法,您可以利用我们的 generic OData client,它已经提供了对绑定函数和操作调用的支持。
这是进行此类调用的通用代码片段:
// this code will build the following URL:
// "/service/Entity(key1='foo%2Fbar',key2=123)/Model.Function(param1='foo%2Fbar',param2=123)"
ODataEntityKey key = new ODataEntityKey(ODataProtocol.V4)
.addKeyProperty("key1","foo/bar")
.addKeyProperty("key2",123);
ODataFunctionParameters params = new ODataFunctionParameters(ODataProtocol.V4)
.addKeyProperty("param1","foo/bar")
.addKeyProperty("param2",123);
ODataResourcePath functionPath =
new ODataResourcePath()
.addSegment("Entity",key)
.addSegment("Model.Function",params);
ODataRequestFunction request =
new ODataRequestFunction("/service",functionPath,null,ODataProtocol.V4);
我们希望它有帮助!如果我们有任何其他帮助,请告诉我们。