自Cloud SDK 2.0.0版更新以来,我们现在遇到了向请求添加字段的问题。它主要是关于流程步骤"计算实际库存凭证项目"。这里,项目的手动设置属性不会发送到请求中。
这些是我们实际设置并发送到S4系统的属性:
这些是查询中嵌入的属性:
答案 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()