Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Symptoms
When you try to post an inventory transaction or an inventory reservation, you receive the following error message:
Maximum number of decimals for the stock keeping unit is 0.
This issue occurs when the inventory transaction quantity is specified as a decimal value that is below the level of precision that the field supports. For example, a quantity of 0.5 has been specified for an inventory transaction, but only integer quantities are supported. Therefore, the value should be 1 instead of 0.5.
Resolution
Run the following script on your SQL Server instance to round quantities in the inventory transactions. This script will correct values in the inventTrans table.
update it set it.QTY = round(it.qty, decimalPrecisionValue) from inventtrans it where it.DATAAREAID='XXXX' and it.PARTITION=XXXXXX and it.qty <> round(it.qty, decimalPrecisionValue) and exists (select 'x' from INVENTTABLEMODULE a, unitofmeasure b where a.unitid =b.SYMBOL and a.partition=it.partition and a.PARTITION=b.PARTITION and MODULETYPE =0 and b.DECIMALPRECISION=decimalPrecisionValue and a.DATAAREAID='XXXX' and a.ITEMID =it.ITEMID and it.DATAAREAID=a.DATAAREAID)
Run an on-hand consistency check where the fix error option is turned on. This check will correct values in the inventSum table.
Important
We strongly recommend that you carefully edit the script as required for your environment, test it in a test environment, and then check the resulting data before you run the script in a production environment.