首页 > 解决方案 > 如何使用 SAP Cloud SDK 执行深度更新

问题描述

目前,出于性能原因,我们正在尝试使用 SAP Cloud SDK 对作为 OData 服务公开的实体结构执行深度更新。根据我们对更新请求使用 replaceEntity() 策略的理解,我们希望将完整的结构发送到 OData 服务,类似于此处对深度插入用例的描述:

https://blogs.sap.com/2017/12/07/step-20-with-s4hana-cloud-sdk-create-and-deep-insert-with-the-virtual-data-model-for-odata/

但是,这样做时,我们注意到仅发送实体字段,而没有发送任何导航属性。通过 SDK 调试/浏览后,这似乎是预期的行为,如以下方法所示:

com.sap.cloud.sdk.s4hana.datamodel.odata.helper.FluentHelperUpdate.getQueryBuilder() {
    [...]
    final Map<String, Object> fieldsForUpdate = getFieldsForUpdate(); // does not include navigations
    [...]
}

请求进行深度更新时是否有一些配置选项?还是应该退回到后端的批处理请求?如果这不是一个支持的评论,是否在路线图上也将不胜感激!

标签: odatasap-cloud-sdk

解决方案


在撰写本文时,SAP Cloud SDK for Java 不提供“深度更新”功能。如果涵盖此功能,我将更新此答案。


推荐阅读