我正在尝试使用 SAP Cloud SDK JavaScript(版本 1.12.0)更新/删除物料清单项目。该项目属于一个组 BOM,即属性“工厂”是一个空字符串。
这会导致以下不言自明的错误消息(PATCH 请求的示例):
Error: OData update request failed!
...
Caused by:
Error: patch request to https://<host>:<port>/sap/opu/odata/sap/API_BILL_OF_MATERIAL_SRV;v=0002 $failed!
...
Caused by:
Error: The value: of the key: Plant is not nullable, please set the value.
...
此行为与MaterialBOMItem
服务实体的文档API_BILL_OF_MATERIAL_SRV (Version 2)
( https://api.sap.com/api/API_BILL_OF_MATERIAL_SRV_0002/resource ) 一致,其中更新和删除 MaterialBOMItem 的实体需要“Plant”和一些其他字段。
详细地说,这会影响需要这些属性的路径 PATCH 和 DELETE:BillOfMaterial、BillOfMaterialCategory、BillOfMaterialVariant、BillOfMaterialVersion、BillOfMaterialItemNodeNumber、HeaderChangeDocument、Material、Plant。
对于其中的一些,空值可能是有效的(例如,组 BOM 的空工厂)。
但是,尽管“工厂”被标记为必需,但在使用 API_BILL_OF_MATERIAL_SRV 的 PATCH/UPDATE 端点时可以将其留空。这样我可以更新/删除一个组 BOM 项目。
SDK 是否也应该支持这种行为?