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

N.K*_*ryl 8 sap s4sdk

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

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

Java编码

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

请求S4

Hen*_*ter 1

快速回答

includingFields(PhysInventoryDocItem.MATERIAL, ...)在update fluent helper上调用该方法.

更长的解释

SAP S/4HANA Cloud SDK的1.11.1版略微更改了更新请求期间Java虚拟数据模型(VDM)的行为.该发行说明状态:

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

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

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

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

service.updatePhysInventoryDocItem(itemToUpdate)
    .includingFields(PhysInventoryDocItem.MATERIAL,
                     PhysInventoryDocItem.UNIT_OF_ENTRY)
    .execute()
Run Code Online (Sandbox Code Playgroud)