Symptom
When using API "Supplier Invoice - Create (A2A, Inbound, Asynchronous)" to create supplier invoice you get error BM034 "No measurement unit is assigned to ISO code &".
Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental.
Environment
SAP S/4HANA Cloud
Reproducing the Issue
The payload you are sending has the unitCode at the item level, for example:
<QuantityInPurchaseOrderUnit unitCode="BAG">1000</QuantityInPurchaseOrderUnit>
Cause
The error is caused because unitCode is not an ISO code.
As mentioned in the SAP Help Documentation you can use either the ISO Code or the SAP internal code:
You can find settings related to units of measurement in SSCUI 102179 "Check Units of Measurement".
Considering the example above, we are using unit BAG, and the respective ISO code is BG:
Resolution
As mentioned in the SAP Help Documentation you can use either the ISO Code or the SAP code. So it is expected to have, for example, one of the following lines in your payload:
<QuantityInPurchaseOrderUnit unitCode="BG">1000</QuantityInPurchaseOrderUnit>
or
<QuantityInPurchaseOrderUnit_SAPUnitCode unitCode="BAG">1000</QuantityInPurchaseOrderUnit_SAPUnitCode >
Keywords
SupplierInvoiceS4Request_In, SAP_COM_0240, BM034, QuantityInPurchaseOrderUnit, QuantityInPurchaseOrderUnit_SAPUnitCode, ISO code, unitCode, measurement unit , KBA , MM-FIO-IV , Fiori UI for Invoice Verification , Problem