Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
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)
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.