Feld "Menge" ist nicht leer, wenn Sie eine gebuchte Eingang/Lieferung in Microsoft Dynamics NAV 2009 rückgängig machen

Gilt für: Dynamics NAV 2009

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

Problembeschreibung


Davon ausgehen, dass Sie die zu liefern Menge Standard / Rcv. Feld im Dialogfeld Kreditoren & Einkauf Einrichtung in Microsoft Dynamics NAV 2009 leer. Wenn Sie eine gebuchte Eingang/Lieferung rückgängig machen, ist das Feld Menge nicht leer. Beim Wiederherstellen des ursprünglichen Verkaufs oder Einkaufszeile wird mit die verbleibende Menge zu liefern/Menge Lief/Wert aktualisiert. Dieses Problem tritt in den folgenden Produkten auf:
  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Servicepack 1

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-Supporttechniker helfen der Erläuterung der Funktionalität bestimmter Prozeduren. Allerdings werden sie diese Beispiele nicht ändern, um zusätzliche Funktionalität bereitzustellen oder Prozeduren erstellen, die Ihren spezifischen Bedürfnisse erfüllen.

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 UpdatePurchLine in der Codeunit buchen Management Rückgängig (5817) wie folgt:
    Vorhandener Code 1
    ...      PROCEDURE UpdatePurchLine@16(PurchLine@1000 : Record 39;UndoQty@1002 : Decimal;UndoQtyBase@1005 : Decimal;VAR TempUndoneItemLedgEntry@1001 : TEMPORARY Record 32);
    VAR
    xPurchLine@1004 : Record 39;
    ReservePurchLine@1003 : Codeunit 99000834;
    BEGIN
    WITH PurchLine DO BEGIN
    xPurchLine := PurchLine;
    CASE "Document Type" OF
    "Document Type"::"Return Order":
    ...

    Neuer Code 1
    ...      PROCEDURE UpdatePurchLine@16(PurchLine@1000 : Record 39;UndoQty@1002 : Decimal;UndoQtyBase@1005 : Decimal;VAR TempUndoneItemLedgEntry@1001 : TEMPORARY Record 32);
    VAR
    xPurchLine@1004 : Record 39;
    ReservePurchLine@1003 : Codeunit 99000834;

    // Add the following line.
    PurchSetup@1020 : Record 312;

    BEGIN
    WITH PurchLine DO BEGIN
    xPurchLine := PurchLine;
    CASE "Document Type" OF
    "Document Type"::"Return Order":
    ...

    Vorhandener Code 2
    ...            "Document Type"::Order:
    BEGIN
    "Quantity Received" := "Quantity Received" - UndoQty;
    "Qty. Received (Base)" := "Qty. Received (Base)" - UndoQtyBase;
    InitOutstanding;

    // Delete the following line.
    InitQtyToReceive;

    END;
    ELSE
    FIELDERROR("Document Type");
    END;
    MODIFY;
    ...

    Neuer Code 2
    ...            "Document Type"::Order:
    BEGIN
    "Quantity Received" := "Quantity Received" - UndoQty;
    "Qty. Received (Base)" := "Qty. Received (Base)" - UndoQtyBase;
    InitOutstanding;

    // Add the following lines.
    PurchSetup.GET;
    IF PurchSetup."Default Qty. to Ship/Rcv." = PurchSetup."Default Qty. to Ship/Rcv."::Blank THEN
    PurchLine."Qty. to Receive" := 0
    ELSE
    InitQtyToReceive;
    // End of the lines.

    END;
    ELSE
    FIELDERROR("Document Type");
    END;
    MODIFY;
    ...

  2. Ändern Sie den Code in der Funktion UpdateSalesLine in der Codeunit buchen Management Rückgängig (5817) wie folgt:
    Vorhandener Code 1
    ...      PROCEDURE UpdateSalesLine@15(SalesLine@1000 : Record 37;UndoQty@1002 : Decimal;UndoQtyBase@1005 : Decimal;VAR TempUndoneItemLedgEntry@1001 : TEMPORARY Record 32);
    VAR
    xSalesLine@1004 : Record 37;
    ReserveSalesLine@1003 : Codeunit 99000832;
    BEGIN
    WITH SalesLine DO BEGIN
    xSalesLine := SalesLine;
    CASE "Document Type" OF
    "Document Type"::"Return Order":
    BEGIN
    ...

    Neuer Code 1
    ...      PROCEDURE UpdateSalesLine@15(SalesLine@1000 : Record 37;UndoQty@1002 : Decimal;UndoQtyBase@1005 : Decimal;VAR TempUndoneItemLedgEntry@1001 : TEMPORARY Record 32);
    VAR
    xSalesLine@1004 : Record 37;
    ReserveSalesLine@1003 : Codeunit 99000832;

    // Add the following line.
    SalesSetup@1020 : Record 311;

    BEGIN

    // Add the following line.
    SalesSetup.GET;

    WITH SalesLine DO BEGIN
    xSalesLine := SalesLine;
    CASE "Document Type" OF
    "Document Type"::"Return Order":
    BEGIN
    ...

    Vorhandener Code 2
    ...            "Document Type"::"Return Order":
    BEGIN
    "Return Qty. Received" := "Return Qty. Received" - UndoQty;
    "Return Qty. Received (Base)" := "Return Qty. Received (Base)" - UndoQtyBase;
    InitOutstanding;

    // Delete the following line.
    InitQtyToReceive;

    END;
    "Document Type"::Order:
    BEGIN
    "Quantity Shipped" := "Quantity Shipped" - UndoQty;
    "Qty. Shipped (Base)" := "Qty. Shipped (Base)" - UndoQtyBase;
    ...

    Neuer Code 2
    ...            "Document Type"::"Return Order":
    BEGIN
    "Return Qty. Received" := "Return Qty. Received" - UndoQty;
    "Return Qty. Received (Base)" := "Return Qty. Received (Base)" - UndoQtyBase;
    InitOutstanding;

    // Add the following lines.
    IF SalesSetup."Default Quantity to Ship" = SalesSetup."Default Quantity to Ship"::Blank THEN
    "Qty. to Ship" := 0
    ELSE
    InitQtyToReceive;
    // End of the lines.

    END;
    "Document Type"::Order:
    BEGIN
    "Quantity Shipped" := "Quantity Shipped" - UndoQty;
    "Qty. Shipped (Base)" := "Qty. Shipped (Base)" - UndoQtyBase;
    ...

    Vorhandenen Code 3
    ...            "Document Type"::Order:
    BEGIN
    "Quantity Shipped" := "Quantity Shipped" - UndoQty;
    "Qty. Shipped (Base)" := "Qty. Shipped (Base)" - UndoQtyBase;
    InitOutstanding;

    // Delete the following line.
    InitQtyToShip;

    END;
    ELSE
    FIELDERROR("Document Type");
    END;
    MODIFY;
    ...

    Neuer Code 3
    ...            "Document Type"::Order:
    BEGIN
    "Quantity Shipped" := "Quantity Shipped" - UndoQty;
    "Qty. Shipped (Base)" := "Qty. Shipped (Base)" - UndoQtyBase;
    InitOutstanding;

    // Add the following lines.
    IF SalesSetup."Default Quantity to Ship" = SalesSetup."Default Quantity to Ship"::Blank THEN
    "Qty. to Ship" := 0
    ELSE
    InitQtyToShip;
    // End of the lines.

    END;
    ELSE
    FIELDERROR("Document Type");
    END;
    MODIFY;
    ...

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

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 .