Vorlage: CPR - Navision Fix-Vorlage

FEHLER #: 165973 (Content Maintenance)

Dieser Artikel gilt für Microsoft Dynamics NAV für alle Länder und alle Gebietsschemas.

Problembeschreibung

Wenn mit der Option Nur Posten mit fälligen Beträgen in Microsoft Dynamics NAV 2009 Mahnwesen schlägt Mahnungszeilen Funktion nicht Mahnungszeilen wie erwartet. Nicht alle fälligen Posten vorgeschlagen.
Dieses Problem tritt in den folgenden Produkten auf:

  • Microsoft Dynamics NAV 2009 R2

  • Microsoft Dynamics NAV 2009 Servicepack 1 (SP1)


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.

Dieser Hotfix nicht öffentlich zum Download (d. h. eine öffentliche URL für diesen Hotfix nicht in diesem Artikel bereitgestellt wird) gebucht, Verteilung erfordert technische Eskalation Teammitglied oder Genehmigung eines Managers und Folgendes gilt:

  • Um den Hotfix zu erhalten, müssen Kunden den Fehler, der im Abschnitt "Symptome" genannt.

  • Sie müssen die Kunden aufzeichnen zu senden und sie mit dem nächsten Servicepack angeben, wenn es verfügbar wird (wenn ein Servicepack veröffentlicht wird).

Dieser Hotfix wird nicht in einem Microsoft Dynamics NAV Servicepack enthalten sein.

VSTF DynamicsNAVSE: 242550



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 keinen Datenspeicher Rechte nur Daten zu reparieren.

Ä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:

  1. Ändern Sie den Code in der Funktion MakeReminder "Reminder-Make" Codeunit (392) wie folgt:
    Vorhandener Code 1

    ...FilterCustLedgEntries(ReminderLevel);
    IF CustLedgEntry.FIND('-') THEN
    REPEAT
    IF CustLedgEntry."On Hold" = '' THEN BEGIN
    SetReminderLine(LineLevel,ReminderLevel."No.",ReminderDueDate);

    // Delete the following line.
    IF (CALCDATE(ReminderLevel."Grace Period",ReminderDueDate) < ReminderHeaderReq."Document Date") AND

    ((LineLevel <= ReminderTerms."Max. No. of Reminders") OR (ReminderTerms."Max. No. of Reminders" = 0))
    THEN BEGIN
    CustLedgEntry.MARK(TRUE);
    ReminderLevel.MARK(TRUE);
    IF (ReminderLevel."No." > MaxReminderLevel) AND
    ...

    Neuer Code 1

    ...FilterCustLedgEntries(ReminderLevel);
    IF CustLedgEntry.FIND('-') THEN
    REPEAT
    IF CustLedgEntry."On Hold" = '' THEN BEGIN
    SetReminderLine(LineLevel,ReminderLevel."No.",ReminderDueDate);

    // Add the following line.
    IF (ReminderDueDate < ReminderHeaderReq."Document Date") AND

    ((LineLevel <= ReminderTerms."Max. No. of Reminders") OR (ReminderTerms."Max. No. of Reminders" = 0))
    THEN BEGIN
    CustLedgEntry.MARK(TRUE);
    ReminderLevel.MARK(TRUE);
    IF (ReminderLevel."No." > MaxReminderLevel) AND
    ...

    Vorhandener Code 2

    ...IF CustLedgEntry.Positive AND
    (CALCDATE(ReminderLevel."Grace Period",ReminderDueDate) < ReminderHeaderReq."Document Date")
    THEN
    MakeDoc := TRUE;
    END ELSE

    // Delete the following line.
    IF (CustLedgEntry."Due Date" >= ReminderHeaderReq."Document Date") AND

    (NOT OverdueEntriesOnly)
    THEN BEGIN
    CustLedgEntry.MARK(TRUE);
    ReminderLevel.MARK(TRUE);
    END;
    ...

    Neuer Code 2

    ...IF CustLedgEntry.Positive AND
    (CALCDATE(ReminderLevel."Grace Period",ReminderDueDate) < ReminderHeaderReq."Document Date")
    THEN
    MakeDoc := TRUE;
    END ELSE

    // Add the following line.
    IF (ReminderDueDate >= ReminderHeaderReq."Document Date") AND

    (NOT OverdueEntriesOnly)
    THEN BEGIN
    CustLedgEntry.MARK(TRUE);
    ReminderLevel.MARK(TRUE);
    END;
    ...

    Vorhandenen Code 3

    ...ReminderHeader.InsertLines;
    ReminderLine.SETRANGE("Reminder No.",ReminderHeader."No.");
    ReminderLine.FIND('+');
    NextLineNo := ReminderLine."Line No.";
    IF (NOT OverdueEntriesOnly) THEN BEGIN

    // Delete the following lines.
    IF CustLedgEntry.FIND('-') THEN BEGIN
    REPEAT
    IF CustLedgEntry."Due Date" >= ReminderHeaderReq."Document Date" THEN BEGIN
    // End of the lines.

    IF NOT AmountsNotDueLineInserted THEN BEGIN
    ReminderLine.INIT;
    NextLineNo := NextLineNo + 10000;
    ReminderLine."Reminder No." := ReminderHeader."No.";
    ReminderLine."Line No." := NextLineNo;
    ...

    Neuer Code 3

    ...ReminderHeader.InsertLines;
    ReminderLine.SETRANGE("Reminder No.",ReminderHeader."No.");
    ReminderLine.FIND('+');
    NextLineNo := ReminderLine."Line No.";
    IF (NOT OverdueEntriesOnly) THEN BEGIN

    // Add the following lines.
    CustLedgEntry.SETRANGE("Last Issued Reminder Level");
    IF CustLedgEntry.FIND('-') THEN BEGIN
    REPEAT
    SetReminderLine(LineLevel,ReminderLevel."No.",ReminderDueDate);
    IF ReminderDueDate >= ReminderHeaderReq."Document Date" THEN BEGIN
    // End of the lines.

    IF NOT AmountsNotDueLineInserted THEN BEGIN
    ReminderLine.INIT;
    NextLineNo := NextLineNo + 10000;
    ReminderLine."Reminder No." := ReminderHeader."No.";
    ReminderLine."Line No." := NextLineNo;
    ...
  2. Ändern Sie den Code in der Funktion SetReminderLine "Reminder-Make" Codeunit (392) wie folgt:
    Vorhandener code

    ...// Delete the following lines.
    IF Level > 1 THEN BEGIN
    ReminderEntry.SETCURRENTKEY("Customer Entry No.",Type);
    ReminderEntry.SETRANGE("Customer Entry No.",CustLedgEntry."Entry No.");
    ReminderEntry.SETRANGE(Type,ReminderEntry.Type::Reminder);
    ReminderEntry.SETRANGE("Reminder Level", CustLedgEntry."Last Issued Reminder Level");
    ReminderEntry.FIND('+');
    ReminderDueDate2 := ReminderEntry."Due Date";
    LineLevel2 := ReminderEntry."Reminder Level" +1
    END ELSE BEGIN
    ReminderDueDate2 := CustLedgEntry."Due Date";
    LineLevel2 := 1;
    END;
    // End of the lines.
    ...

    Neuer code

    ...// Add the following lines.
    IF CustLedgEntry."Last Issued Reminder Level" > 0 THEN BEGIN
    ReminderEntry.SETCURRENTKEY("Customer Entry No.",Type);
    ReminderEntry.SETRANGE("Customer Entry No.",CustLedgEntry."Entry No.");
    ReminderEntry.SETRANGE(Type,ReminderEntry.Type::Reminder);
    ReminderEntry.SETRANGE("Reminder Level", CustLedgEntry."Last Issued Reminder Level");
    IF ReminderEntry.FINDLAST THEN BEGIN
    ReminderDueDate2 := ReminderEntry."Due Date";
    LineLevel2 := ReminderEntry."Reminder Level" +1;
    EXIT;
    END
    END;
    ReminderDueDate2 := CustLedgEntry."Due Date";
    LineLevel2 := 1;
    // End of the lines.
    ...

Voraussetzungen

Sie müssen eines der folgenden Produkte verfügen, um diesen Hotfix installieren:

  • Microsoft Dynamics NAV 2009 R2

  • Microsoft Dynamics NAV 2009 Servicepack 1 (SP1)


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.

Hinweis Dies ist ein im Schnellverfahren veröffentlichter Artikel, der direkt in der Microsoft Support-Organisation erstellt wurde. Die hierin enthaltenen Informationen werden ohne Mängelgewähr in Reaktion auf neue Probleme bereitgestellt. Aufgrund der schnellen Bereitstellung kann das Material möglicherweise typografische Fehler enthalten und jederzeit ohne vorherige Ankündigung geändert werden. Weitere Hinweise finden Sie unter Geschäftsbedingungen .

Autor: Michalk
Ersteller: V-zhipen
Technische Überprüfung: Michalk
Redaktion:

Benötigen Sie weitere Hilfe?

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Microsoft Insider beitreten

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Übersetzungsqualität?
Was hat Ihre Erfahrung beeinflusst?

Vielen Dank für Ihr Feedback!

×