Odata 如何使用SAP Cloud SDK执行深度更新

Odata 如何使用SAP Cloud SDK执行深度更新,odata,sap-cloud-sdk,Odata,Sap Cloud Sdk,出于性能原因,我们目前正在尝试使用SAP Cloud SDK对作为OData服务公开的实体结构执行深度更新。根据我们对更新请求使用replacingEntity()策略的理解,我们希望将完整的结构向下发送到OData服务,类似于此处针对深度插入用例所描述的内容: 但是,在执行此操作时,我们注意到只发送实体字段,没有任何导航属性。通过SDK进行调试/浏览后,这似乎是预期的行为,如以下方法所示: com.sap.cloud.sdk.s4hana.datamodel.odata.helper.Flu

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

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

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

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

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

您好,Tim,您正确地发现SAP Cloud SDK目前不支持此“深度更新”。您希望与哪种OData服务集成:哪种OData版本?哪个系统会暴露它(CAP、S/4HANA等)?你有没有试过和邮递员一起做这个“深度更新”?那么,您确定目标系统/服务确实支持此“深度更新”吗?您好,Emdee,是的,我们可以断言他会工作,因为这是一个自定义实现的OData服务。但是,OData服务是在SCp上实现的。但是,我们也可以在S/4HANA端为发布的API目前还不支持的用例提供这样的定制服务,因此问题是这是否是将来会支持的,或者这是否需要具体系统使用的明确用例。