Поделиться через


Максимальное число десятичных разрядов для единицы хранения акций — 0

Симптомы

При попытке опубликовать транзакцию инвентаризации или резервирование инвентаризации вы получите следующее сообщение об ошибке:

Максимальное число десятичных разрядов для единицы хранения акций равно 0.

Эта проблема возникает, когда количество транзакций инвентаризации указывается как десятичное значение, которое ниже уровня точности, которую поддерживает поле. Например, для транзакции инвентаризации указано количество 0,5 , но поддерживаются только целые числа. Поэтому значение должно иметь значение 1 вместо 0,5.

Решение

  1. Выполните следующий скрипт в экземпляре SQL Server, чтобы округлить количество в транзакциях инвентаризации. Этот скрипт исправит значения в таблице inventTrans .

    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)
    
  2. Запустите проверку согласованности , в которой включен параметр ошибки исправления . Эта проверка исправит значения в таблице inventSum .

Внимание

Настоятельно рекомендуется тщательно редактировать скрипт по мере необходимости в среде тестирования, тестировать его в тестовой среде, а затем проверять полученные данные перед запуском скрипта в рабочей среде.