SAP Cloud SDK PATCH MaterialBomItem:触发 material 可变大小项目清单中 quantityVariableSizeItem 的重新计算
SAP Cloud SDK PATCH MaterialBomItem: Trigger recalculation of quantityVariableSizeItem in bill of material variable-size item
根据 SAP Cloud SDK 的文档,在更改影响此 属性 的字段后,需要重新计算 material 清单中可变尺寸项目的数量(例如 size1, size2, size3, formulaKey).
为此,应删除 quantityVariableSizeItem 的内容。如何实现?
我尝试了几个值来使用 MaterialBomItemRequestBuilder 更新现有的可变大小项目。update 方法(导致 PATCH 请求):
const item = MaterialBomItem.builder()
/*request fails with error message: Property 'QuantityVariableSizeItem' at offset '[...]' has invalid value '-Infinity'*/
//.quantityVariableSizeItem(new BigNumber('-Infinity))
/*request fails with error message: Property 'QuantityVariableSizeItem' at offset '[...]' has invalid value 'NaN'*/
//.quantityVariableSizeItem(new BigNumber(NaN))
/*TypeScript error before request is sent: Argument of type 'null' is not assignable to parameter of type 'Value'.*/
//.quantityVariableSizeItem(null)
/*TypeScript error before request is sent: Argument of type 'undefined' is not assignable to parameter of type 'Value'.*/
//.quantityVariableSizeItem(undefined)
.billOfMaterialItemNodeNumber(<value>)
.billOfMaterial(<value>)
.material(<value>)
.billOfMaterialCategory(<value>)
.billOfMaterialVariant(<value>)
.billOfMaterialVersion(<value>)
.headerChangeDocument(<value>)
.plant(<value>)
.build();
const result = await MaterialBomItem.requestBuilder()
.update(item)
.withCustomHeaders(<headers>)
.execute(<destination>);
提前致谢,
ujj
传递给方法billOfMaterialItemNodeNumber()
的参数类型是BigNumber
,很难为undefined
。我们将考虑对此用例进行适当的修复。
目前,您可以尝试使用如下变通方法:
const item = MaterialBomItem.builder()
// this is not possible
//.quantityVariableSizeItem(undefined)
.billOfMaterialItemNodeNumber(<value>)
.billOfMaterial(<value>)
.material(<value>)
.billOfMaterialCategory(<value>)
.billOfMaterialVariant(<value>)
.billOfMaterialVersion(<value>)
.headerChangeDocument(<value>)
.plant(<value>)
.build();
// work around
item.quantityVariableSizeItem = undefined;
const result = await MaterialBomItem.requestBuilder()
.update(item)
.withCustomHeaders(<headers>)
.execute(<destination>);
@sap-cloud-sdk/core 和@sap/cloud-sdk-vdm-bill-of-material-v2-service 的 1.30.0 版本解决了这个问题。
根据 SAP Cloud SDK 的文档,在更改影响此 属性 的字段后,需要重新计算 material 清单中可变尺寸项目的数量(例如 size1, size2, size3, formulaKey).
为此,应删除 quantityVariableSizeItem 的内容。如何实现?
我尝试了几个值来使用 MaterialBomItemRequestBuilder 更新现有的可变大小项目。update 方法(导致 PATCH 请求):
const item = MaterialBomItem.builder()
/*request fails with error message: Property 'QuantityVariableSizeItem' at offset '[...]' has invalid value '-Infinity'*/
//.quantityVariableSizeItem(new BigNumber('-Infinity))
/*request fails with error message: Property 'QuantityVariableSizeItem' at offset '[...]' has invalid value 'NaN'*/
//.quantityVariableSizeItem(new BigNumber(NaN))
/*TypeScript error before request is sent: Argument of type 'null' is not assignable to parameter of type 'Value'.*/
//.quantityVariableSizeItem(null)
/*TypeScript error before request is sent: Argument of type 'undefined' is not assignable to parameter of type 'Value'.*/
//.quantityVariableSizeItem(undefined)
.billOfMaterialItemNodeNumber(<value>)
.billOfMaterial(<value>)
.material(<value>)
.billOfMaterialCategory(<value>)
.billOfMaterialVariant(<value>)
.billOfMaterialVersion(<value>)
.headerChangeDocument(<value>)
.plant(<value>)
.build();
const result = await MaterialBomItem.requestBuilder()
.update(item)
.withCustomHeaders(<headers>)
.execute(<destination>);
提前致谢,
ujj
传递给方法billOfMaterialItemNodeNumber()
的参数类型是BigNumber
,很难为undefined
。我们将考虑对此用例进行适当的修复。
目前,您可以尝试使用如下变通方法:
const item = MaterialBomItem.builder()
// this is not possible
//.quantityVariableSizeItem(undefined)
.billOfMaterialItemNodeNumber(<value>)
.billOfMaterial(<value>)
.material(<value>)
.billOfMaterialCategory(<value>)
.billOfMaterialVariant(<value>)
.billOfMaterialVersion(<value>)
.headerChangeDocument(<value>)
.plant(<value>)
.build();
// work around
item.quantityVariableSizeItem = undefined;
const result = await MaterialBomItem.requestBuilder()
.update(item)
.withCustomHeaders(<headers>)
.execute(<destination>);
@sap-cloud-sdk/core 和@sap/cloud-sdk-vdm-bill-of-material-v2-service 的 1.30.0 版本解决了这个问题。