Condividi tramite


Il numero massimo di decimali per l'unità di mantenimento delle scorte è 0

Sintomi

Quando si tenta di pubblicare una transazione di inventario o una prenotazione di inventario, viene visualizzato il messaggio di errore seguente:

Il numero massimo di decimali per l'unità di mantenimento delle scorte è 0.

Questo problema si verifica quando la quantità della transazione di inventario viene specificata come valore decimale inferiore al livello di precisione supportato dal campo. Ad esempio, è stata specificata una quantità di 0,5 per una transazione di inventario, ma sono supportate solo le quantità integer. Pertanto, il valore deve essere 1 anziché 0,5.

Risoluzione

  1. Eseguire lo script seguente nell'istanza di SQL Server per arrotondare le quantità nelle transazioni di inventario. Questo script correggerà i valori nella tabella 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. Eseguire un controllo di coerenza manuale in cui è attivata l'opzione di correzione dell'errore . Questo controllo correggerà i valori nella tabella inventSum .

Importante

È consigliabile modificare attentamente lo script in base alle esigenze dell'ambiente, testarlo in un ambiente di test e quindi controllare i dati risultanti prima di eseguire lo script in un ambiente di produzione.