[Gelöst] RTC & "Amount Rounding Precision" = 0

30. Januar 2013 12:00

Hallo zusammen,

ich habe eine alte native Datenbank auf SQL und NAV 2009 R2 angehoben.
Alles okay soweit, man kann im CC und RTC arbeiten.

Ein kleines Problem ist aber aufgetreten. Wenn ich im CC eine Buchung über ein Journal mache, funktioniert dies einwandfrei.
Mache ich dasselbe aber über den RTC erhalte ich immer eine Fehlermeldung "the supplied value is invalid". Im RTC Debugger
habe ich den Fehler identifizieren können. Es ist ein ROUND in der CU 12 und es geht um das Feld "Amount Rounding Precision":

// IF "Additional-Currency Posting" = "Additional-Currency Posting"::"0" THEN BEGIN
if(( (NavOption)(genJnlLine.Target.GetFieldValueSafe(95, NavType.Option)) )==0)
{
// IF Amount <> ROUND(Amount,Currency."Amount Rounding Precision") THEN
if(genJnlLine.Target.GetFieldValueSafe(13, NavType.Decimal).ToDecimal()!=ALSystemNumeric.ALRound(genJnlLine.Target.GetFieldValueSafe(13, NavType.Decimal).ToDecimal(), currency.Target.GetFieldValueSafe(13, NavType.Decimal).ToDecimal()))
{
// STRSUBSTNO(Text000,Amount));
genJnlLine.Target.ALFieldError(13, ALSystemString.ALStrSubstNo(text000, ALCompiler.ToNavValue(genJnlLine.Target.GetFieldValueSafe(13, NavType.Decimal).ToDecimal())));
}

// IF "Amount (LCY)" <> ROUND("Amount (LCY)") THEN
if(genJnlLine.Target.GetFieldValueSafe(16, NavType.Decimal).ToDecimal()!=ALSystemNumeric.ALRound(genJnlLine.Target.GetFieldValueSafe(16, NavType.Decimal).ToDecimal()))
{
// STRSUBSTNO(Text000,"Amount (LCY)"));
genJnlLine.Target.ALFieldError(16, ALSystemString.ALStrSubstNo(text000, ALCompiler.ToNavValue(genJnlLine.Target.GetFieldValueSafe(16, NavType.Decimal).ToDecimal())));
}

Ebenfalls habe ich unter Mibuso einen Eintrag betreffend "the supplied value is invalid" gefunden. Die Lösung passt eigentlich zu meinem Problem.
Das Feld "Amount Rounding Precision" in der Tabelle 98 General Ledger Setup enthält den Wert 0. Wenn ich diesen Wert auf 0.01 abändere,
dann kann ich auch über den RTC buchen. Dabei muss ich aber die Warnung (es gibt schon Buchungen/Posten) ignorieren, um den Wert zu setzen.

Soweit so gut.

Mich würde aber interessieren, wieso dies ("Amount Rounding Precision" = 0) mit dem CC problemlos funktionierte, aber mit dem RTC überhaupt nicht?

Vielen Dank,Beno