0

在我们的应用程序中,我们使用 S4Hana SDK 来使用 S4Hana 的服务。

对于对 S4 的更新调用,我们使用 PATCH 请求类型。这样做时发现我们无法在更新(PATCH)期间设置空值。

例如:

--batch_A
Content-Type: multipart/mixed; boundary=changeset_176b-5a0d-cdab

--changeset_B
Content-Type: application/http
Content-Transfer-Encoding: binary

MERGE RequisitionItems(PurchaseRequisition='',PurchaseRequisitionItem='00000',DraftUUID=guid'00163e4e-c788-1eea-81bd-ddd3e2c48bf2',IsActiveEntity=false) HTTP/1.1
Plant: 0001
Currency: EUR
PurchaseOrg: 0001
CompanyCode: 0001
sap-contextid-accept: header
Accept: application/json
Accept-Language: en-GB
DataServiceVersion: 2.0
MaxDataServiceVersion: 2.0
Content-Type: application/json
Content-Length: 106

{"ExtPurgOrgForPurg":"0001","PurchasingGroup":"001",**"ExtPlantForPurg":null,**"ExtCompanyCodeForPurg":"0001"}
--changeset_B--
--batch_A--

在这里,我试图将 ExtPlantForPurg 设置为 null,但是实体没有得到相同的更新,而调试发现更新请求正文不只包含这个字段(它被忽略,因为它包含 null)

让我知道是否有任何方法可以使用 PATCH 请求更新属性的空值。

4

1 回答 1

0

您可以使用该includingFields()功能专门列出应更新的字段,无论其内容是否已更改。

于 2020-08-11T15:59:04.243 回答