Быстрый ответ
Вызовите метод includingFields(PhysInventoryDocItem.MATERIAL, ...)
в быстром помощнике обновления.
Более подробное объяснение
Версия 1.11.1 SAP S / 4HANA Cloud SDK немногоизменил поведение виртуальной модели данных Java (VDM) во время запросов на обновление.Состояние примечаний к выпуску :
Запросы на обновление с помощью виртуальной модели данных Java (VDM) больше не отправляют все ненулевые поля в систему SAP S / 4HANA, а только изменяютсяполя.Возможно, вам придется адаптировать логику в вашем коде для явного изменения полей, используя установщики классов сущностей, или использовать метод includesFields, чтобы вручную указать поля для включения.
Таким образом, в вашем случаебудут отправлены только поля по умолчанию, которые имеют другое значение по сравнению с результатом, возвращаемым запросом OData для получения по ключу, как обычно ожидается для PATCH
запросов.Например, значение поля материал , скорее всего, не изменилось, поскольку раньше оно было "MAT_KONSI_APP1"
.
Поскольку существуют случаи, когда требуется обязательная отправка некоторых обязательных полей,SAP S / 4HANA Cloud SDK позволяет контролировать, какие поля всегда отправлять.Используйте метод includingFields
в обновленном свободном помощнике VDM, чтобы указать поля, которые должны быть отправлены в любом случае, даже если их значение не изменилось.
В вашем случае,если вы хотите отправить поля материал и единица ввода , которые могут быть обязательными свойствами, вам потребуется следующий код:
service.updatePhysInventoryDocItem(itemToUpdate)
.includingFields(PhysInventoryDocItem.MATERIAL,
PhysInventoryDocItem.UNIT_OF_ENTRY)
.execute()