Schnell Informationen veröffentlicht Artikel direkt in der Microsoft Support-Organisation. Der hierin enthaltenen Informationen auf neue oder eindeutige Themen erstellt oder anderen Knowledge Base-Informationen ergänzen soll.
Dieser Artikel gilt für Microsoft Dynamics NAV 2009 für alle Länder und alle Gebietsschemas.
Problembeschreibung
Saldo für Kreditor in Service Pack 1 für Microsoft Dynamics NAV 2009 negativ ist, schlägt der Bericht "Zahlungsvorschlag" (393) negativer Saldo als Zahlung vor.
Problemlösung
Hotfix-Informationen
Ein unterstützter Hotfix ist inzwischen von Microsoft erhältlich. Allerdings ist es lediglich zur Behebung dieses Problems. Wenden Sie es nur auf Systeme an, bei denen dieses spezielle Problem auftritt. Dieser Hotfix wird möglicherweise noch getestet. Wenn Ihr System durch dieses Problem nicht schwerwiegend beeinträchtigt ist, empfehlen wir, dass Sie warten auf das nächste Servicepack für Microsoft Dynamics NAV 2009 oder die nächste Microsoft Dynamics NAV-Version, die diesen Hotfix enthält.
Hinweis In besonderen Fällen bestimmt Gebühren fallen normalerweise Support aufrufen Wenn Experte Support für Microsoft Dynamics und zugehörige Produkte storniert werden können, dass ein bestimmtes Update Ihr Problem behebt. Die normalen Supportkosten gilt für zusätzliche Supportfragen und Probleme, die nicht für das betreffende Update qualifizieren.
Informationen zur Installation
Microsoft bietet Programmierbeispiele lediglich zur Veranschaulichung, ohne ausdrückliche oder konkludente Gewährleistung. Dies beinhaltet, ist jedoch nicht beschränkt auf, konkludente Gewährleistungen der Tauglichkeit oder Eignung für einen bestimmten Zweck. Dieser Artikel setzt voraus, dass Sie mit der von Beispielen verwendeten Programmiersprache und den Tools, die zum Erstellen und Debuggen von Prozeduren verwendet werden, vertraut sind. Microsoft-Supportmitarbeiter können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, sie werden jedoch diese Beispiele nicht verändern um eine erweiterte Funktionalität aufzuzeigen oder Prozeduren entwickeln, die Ihren Anforderungen entsprechen.
Hinweis Bevor Sie diesen Hotfix installieren, stellen Sie sicher, dass alle Microsoft Navision-Clientbenutzer vom System abgemeldet werden. Dies gilt auch für Clientbenutzer der Microsoft Navision Application Services (NAS). Sie sollte nur-Client-Benutzers, der angemeldet ist, wenn Sie diesen Hotfix installieren.
Muss eine Entwicklerlizenz verfügen, um diesen Hotfix installieren können.
Es wird empfohlen, das Benutzerkonto im Fenster Windows-Benutzernamen oder im Fenster Datenbank-Anmeldenamen "SUPER" Rollen-ID zugewiesen werden Wenn das Benutzerkonto die Rollen-ID "SUPER" nicht zugeordnet werden kann, müssen Sie sicherstellen, dass das Benutzerkonto die folgenden Berechtigungen verfügt:
-
Änderungsberechtigung für das Objekt, das Sie ändern.
-
Ausführungsberechtigung für System Object ID 5210 und System Object ID 9015 -Objekt.
Hinweis Sie müssen keine Rechte für die Datenspeicher haben, es sei denn, Sie müssen eine Datenreparatur durchführen.
Ändern von Code
Hinweis Testen Sie Programmcodeverbesserungen generell erst in einem Testsytem, bevor Sie sie im Produktionssystem verwenden.
Gehen Sie folgendermaßen vor, um dieses Problem zu beheben:
-
Ändern Sie den Code im Trigger Kreditor - OnPostDataItem im Bericht "Zahlungsvorschlag" (393) folgendermaßen:
Vorhandener code... IF FIND('-') THEN
REPEAT
Window.UPDATE(1,"No.");
PayableVendLedgEntry.SETRANGE("Vendor No.","No.");
GetVendLedgEntries(TRUE,TRUE);
GetVendLedgEntries(FALSE,TRUE);
CheckAmounts(TRUE);
UNTIL (NEXT = 0) OR StopPayments;
END;
ClearNegative;
JnlLineDim.LOCKTABLE;
...Neuer code
... IF FIND('-') THEN
REPEAT
Window.UPDATE(1,"No.");
PayableVendLedgEntry.SETRANGE("Vendor No.","No.");
GetVendLedgEntries(TRUE,TRUE);
GetVendLedgEntries(FALSE,TRUE);
CheckAmounts(TRUE);
ClearNegative;
UNTIL (NEXT = 0) OR StopPayments;
END ELSE
IF FIND('-') THEN
REPEAT
ClearNegative;
UNTIL NEXT = 0;
JnlLineDim.LOCKTABLE;
... -
Ändern Sie den Code in der GetVendLedgEntries -Prozedur im Bericht "Zahlungsvorschlag" (393) folgendermaßen:
Vorhandener code... VendLedgEntry.RESET;
VendLedgEntry.SETCURRENTKEY("Vendor No.",Open,Positive,"Due Date");
VendLedgEntry.SETRANGE("Vendor No.",Vendor."No.");
VendLedgEntry.SETRANGE(Open,TRUE);
VendLedgEntry.SETRANGE(Positive,Positive);
IF Future THEN BEGIN
...Neuer code
... VendLedgEntry.RESET;
VendLedgEntry.SETCURRENTKEY("Vendor No.",Open,Positive,"Due Date");
VendLedgEntry.SETRANGE("Vendor No.",Vendor."No.");
VendLedgEntry.SETRANGE(Open,TRUE);
VendLedgEntry.SETRANGE(Positive,Positive);
VendLedgEntry.SETRANGE("Applies-to ID",'');
IF Future THEN BEGIN
... -
Ändern Sie den Code in der MakeGenJnlLines -Prozedur im Bericht "Zahlungsvorschlag" (393) folgendermaßen:
Vorhandener code... Window.UPDATE(1,VendLedgEntry."Vendor No.");
TempPaymentBuffer.INSERT;
END;
VendLedgEntry.TESTFIELD("Applies-to ID",'');
VendLedgEntry."Applies-to ID" := TempPaymentBuffer."Document No.";
END ELSE BEGIN
...Neuer code
... Window.UPDATE(1,VendLedgEntry."Vendor No.");
TempPaymentBuffer.INSERT;
END;
VendLedgEntry."Applies-to ID" := TempPaymentBuffer."Document No.";
END ELSE BEGIN
... -
Ändern Sie den Code in der ClearNegative -Prozedur im Bericht "Zahlungsvorschlag" (393) folgendermaßen:
Vorhandener code... WHILE PayableVendLedgEntry.NEXT <> 0 DO BEGIN
TempCurrency.Code := PayableVendLedgEntry."Currency Code";
CurrencyBalance := 0;
PayableVendLedgEntry2 := PayableVendLedgEntry;
IF TempCurrency.INSERT THEN BEGIN
PayableVendLedgEntry.SETRANGE("Currency Code",PayableVendLedgEntry."Currency Code");
REPEAT
CurrencyBalance := CurrencyBalance + PayableVendLedgEntry."Amount (LCY)"
UNTIL PayableVendLedgEntry.NEXT = 0;
IF CurrencyBalance < 0 THEN
PayableVendLedgEntry.DELETEALL;
END;
PayableVendLedgEntry.SETRANGE("Currency Code");
PayableVendLedgEntry := PayableVendLedgEntry2;
END;
...Neuer code
... WHILE PayableVendLedgEntry.NEXT <> 0 DO BEGIN
TempCurrency.Code := PayableVendLedgEntry."Currency Code";
CurrencyBalance := 0;
IF TempCurrency.INSERT THEN BEGIN
PayableVendLedgEntry2 := PayableVendLedgEntry;
PayableVendLedgEntry.SETRANGE("Currency Code",PayableVendLedgEntry."Currency Code");
REPEAT
CurrencyBalance := CurrencyBalance + PayableVendLedgEntry."Amount (LCY)"
UNTIL PayableVendLedgEntry.NEXT = 0;
IF CurrencyBalance < 0 THEN
PayableVendLedgEntry.DELETEALL;
PayableVendLedgEntry.SETRANGE("Currency Code");
PayableVendLedgEntry := PayableVendLedgEntry2;
END;
END;
...
Voraussetzungen
Sie müssen Microsoft Dynamics NAV 2009 Service Pack 1 installiert, um diesen Hotfix anwenden.
Informationen zur Deinstallation
Dieser Hotfix kann nicht entfernt werden.
Status
Microsoft hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt „Eigenschaften“ aufgeführt sind.
MICROSOFT UND SEINE LIEFERANTEN STELLEN KEINE HAFTUNG ODER GEWÄHRLEISTUNG FÜR DIE EIGNUNG, ZUVERLÄSSIGKEIT ODER GENAUIGKEIT DER INFORMATIONEN IN DEN DOKUMENTEN UND DIE GRAFIKEN AUF DIESER WEBSITE (DIE "MATERIALIEN") ZWECKEN.
DIE MATERIALIEN ENTHALTEN MÖGLICHERWEISE UNGENAUE ANGABEN ODER TYPOGRAFISCHE FEHLER UND KÖNNEN JEDERZEIT OHNE VORANKÜNDIGUNG GEÄNDERT WERDEN. GESETZLICH GESTATTETEN MICROSOFT UND/ODER DEREN LIEFERANTEN SCHLIESSEN UND SCHLIEßEN ALLE DARSTELLUNGEN, GARANTIEN UND ZUSAGEN, OB DARSTELLUNGEN, GARANTIEN ODER TITEL, NICHT-VERLETZUNG, ZUFRIEDENSTELLENDEN ZUSTAND ODER QUALITÄT, MARKTGÄNGIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK, DIE MATERIALIEN EXPRESS, SEI SIE AUSDRÜCKLICH ODER KONKLUDENT, EINSCHLIEßLICH, ABER NICHT BESCHRÄNKT.