如何使用 SAP Cloud SDK 在 Java 客户端中调用绑定函数/操作?

问题描述

我对 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);

我们希望它有帮助!如果我们有任何其他帮助,请告诉我们。