更新请求不再将所有字段发送到SAP S / 4 HANA系统

时间:2018-05-30 07:26:18

标签: sap s4sdk

自Cloud SDK 2.0.0版更新以来,我们现在遇到了向请求添加字段的问题。它主要是关于流程步骤"计算实际库存凭证项目"。这里,项目的手动设置属性不会发送到请求中。

这些是我们实际设置并发送到S4系统的属性:

Java Coding

这些是查询中嵌入的属性:

Request in S4

1 个答案:

答案 0 :(得分:7)

快速回答

在更新流利助手上调用方法includingFields(PhysInventoryDocItem.MATERIAL, ...)

更长的解释

SAP S / 4HANA Cloud SDK的1.11.1版略微更改了更新请求期间Java虚拟数据模型(VDM)的行为。 release notes州:

  

使用Java虚拟数据模型(VDM)更新请求不再将所有非空字段发送到SAP S / 4HANA系统,而只是更改字段。您可能需要调整代码中的逻辑以使用实体类的setter显式更改字段,或使用includeFields方法手动指定要包含的字段。

因此,在您的情况下,默认情况下,只发送具有与按键获取的OData请求返回的结果不同的值的字段,这通常是PATCH个请求所期望的。例如,字段材料的值可能没有变化,因为它之前是"MAT_KONSI_APP1"

由于有些情况需要始终发送一些必填字段,因此SAP S / 4HANA Cloud SDK允许您控制始终发送的字段。在VDM的更新流畅帮助程序上使用includingFields方法指定在任何情况下都应发送的字段,如果它们的值没有更改,也可以。

在您的情况下,如果您要发送材料条目字段(可能是必需属性),则需要以下代码:

service.updatePhysInventoryDocItem(itemToUpdate)
    .includingFields(PhysInventoryDocItem.MATERIAL,
                     PhysInventoryDocItem.UNIT_OF_ENTRY)
    .execute()