Lagerplatzposten werden nicht mit allen Artikelverfolgungszeilen in einem Projektbuchungsblatt beim Buchen eines Elements in das Projektbuchungsblatt ein Lagerplatz in Microsoft Dynamics NAV 2009

Gilt für: Dynamics NAV 2009

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

Problembeschreibung


Angenommen Sie, Sie einem Projektbuchungsblatt haben, mehrere Artikelverfolgungszeilen für ein Element in Microsoft Dynamics NAV 2009. Beim Buchen des Artikels Erf.-Journals in einem Lagerplatz werden die Lagerplatzposten nur mit der letzten Artikelverfolgungszeile, die eingegeben werden. Daher ist ein Ungleichgewicht des Elements zwischen Lager und Artikelposten.
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 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.
Um dieses Problem zu beheben, gehen Sie folgendermaßen vor: Erstellen Sie die folgenden lokalen Variablen:
  1. Fügen Sie eine neue globale Variable in der Tabelle Projekt Buch.-Blattzeile (210), und geben Sie die Variable wie folgt:
    • Name: WMSManagement
    • Datentyp: Modul
    • Untertyp: WMS Management (7302)
  2. Löschen Sie der folgende Code in die TableRelation -Eigenschaft den Lagerplatzcode Feld (5403) in der Tabelle Projekt Buch.-Blattzeile (210):
    Bin.Code WHERE (Location Code=FIELD(Location Code));
  3. Ändern Sie der Code im Trigger "OnValidate" für Lagerplatzcode Feld (5403) in der Tabelle Projekt Buch.-Blattzeile (210) wie folgt:
    Vorhandener code
    ...// Delete the following lines.
    TESTFIELD("Location Code");
    CheckItemAvailable;
    // End of the lines.
    ...
    Neuer code
    ...// Add the following lines.
    TESTFIELD("Location Code");
    IF "Bin Code" <> '' THEN BEGIN
    GetLocation("Location Code");
    Location.TESTFIELD("Bin Mandatory");
    END;
    TESTFIELD(Type,Type::Item);
    CheckItemAvailable;
    WMSManagement.FindBinContent("Location Code","Bin Code","No.","Variant Code",'')
    // End of the lines.
    ...
  4. Fügen Sie eine neue lokale Variable in der Lagerplatzcode - OnLookup -Triggerin der Tabelle Projekt Buch.-Blattzeile (210), und geben Sie die Variable wie folgt:
    • Name: BinCode
    • Datentyp: Code
    • Länge: 20
  5. Fügen Sie den folgenden Code in den Lagerplatzcode - OnLookup -Trigger in der Tabelle Projekt Buch.-Blattzeile (210):
    TESTFIELD("Location Code");TESTFIELD(Type,Type::Item);
    BinCode := WMSManagement.BinContentLookUp("Location Code","No.","Variant Code",'',"Bin Code");
    IF BinCode <> '' THEN
    VALIDATE("Bin Code",BinCode);
  6. Ändern Sie den Wert in der OptionString -Eigenschaft des Quelldokuments Feld (25) in der Logistik Buch.-Blattzeile Tabelle (7311) wie folgt:
    OptionString=, S. Reihenfolge S. Rechnung S. Gutschrift, S. Reklamation, s. Reihenfolge, s. Rechnung, s. Gutschrift, s. Reklamation, Inb. Übertragung Outb. Umlagerung, FA-Zeile. Verbrauch, Artikel Erf.-Inventurauftrag. Buch: Umbuch. Jnl. Verbrauchs Buch, Jnl. Stückliste Buch, Serv Abgangsauftrag Projekt Erf.
  7. Ändern Sie den Wert in der Eigenschaft OptionString Verweis Feld (60) in der Logistik Buch.-Blattzeile Tabelle (7311) wie folgt:
    OptionString= ,., s. Inv gebucht-Lieferung gebucht, ret...,-Lieferung, gebuchte s. Gutschrift, Geb. Lieferung, Geb. S. gebuchter ret. Versand, S. Gutschrift, Geb. Lieferung t, t Lieferung gebucht gebucht gebucht Artikel Buch.-Blatt, FA, Einlagerung, Kommissionierung, Bewegung, Stückliste Buch.-Blatt, Projekt Buch.-
  8. Ändern Sie den Wert in der OptionString -Eigenschaft des Quelldokuments Feld (25) in der Tabelle Lagerplatzposten (7312) wie folgt:
    OptionString=, S. Reihenfolge S. Rechnung S. Gutschrift, S. Reklamation, s. Reihenfolge, s. Rechnung, s. Gutschrift, s. Reklamation, Inb. Übertragung Outb. Umlagerung, FA-Zeile. Verbrauch, Artikel Erf.-Inventurauftrag. Buch: Umbuch. Jnl. Verbrauchs Buch, Jnl. Stückliste Buch, Serv Abgangsauftrag Projekt Erf.
  9. Ändern Sie den Wert in der Eigenschaft OptionString Verweis Feld (60) in der Tabelle Lagerplatzposten (7312) wie folgt:
    OptionString= ,., s. Inv gebucht-Lieferung gebucht, ret...,-Lieferung, gebuchte s. Gutschrift, Geb. Lieferung, Geb. S. gebuchter ret. Versand, S. Gutschrift, Geb. Lieferung t, t Lieferung gebucht gebucht gebucht Artikel Buch.-Blatt, FA, Einlagerung, Kommissionierung, Bewegung, Stückliste Buch.-Blatt, Projekt Buch.-
  10. Ändern Sie die Visible-Eigenschaft des Steuerelements Lagerortcode (60) im Formular Auftrag Journal (201) wie folgt:
    Vorhandener code
    Visible = Yes
    Neuer code
    Visible = No
  11. Fügen Sie einer Lagerplatzcode zwischen den Lagerortcode und Arbeitstypencode Projektbuchungsblatt hinzu (201), und geben Sie das Feld wie folgt:
    ...{ 61 ;Label ;0 ;0 ;0 ;0 ;ParentControl=60;
    InColumnHeading=Yes }

    // Add the following lines.
    { 102 ;TextBox ;35507;1650 ;1700 ;440 ;ParentControl=1;
    InColumn=Yes;
    SourceExpr="Bin Code" }
    { 103 ;Label ;0 ;0 ;0 ;0 ;ParentControl=102;
    InColumnHeading=Yes }
    // End of the lines.

    { 48 ;TextBox ;11430;2530 ;1650 ;440 ;ParentControl=1;
    ...
  12. Fügen Sie eine neue globale Variable im Projekt Buch.-Post Line Codeunit (1012), und geben Sie die Variable wie folgt:
    • Name: Ort
    • Datentyp: Datensatz
    • Untertyp: Speicherort (14)
  13. Erstellen Sie eine neue GetLocation -Funktion im Projekt Buch.-Post Line Codeunit (1012) wie folgt:
    LOCAL PROCEDURE GetLocation@25(LocationCode@1000 : Code[10]);
  14. Fügen Sie folgenden Code in der Funktion GetLocation im Projekt Buch.-Post Line Codeunit (1012):
    IF LocationCode = '' THENCLEAR(Location)
    ELSE
    IF Location.Code <> LocationCode THEN
    Location.GET(LocationCode);
  15. Erstellen Sie eine neue PostWhseJnlLine -Funktion im Projekt Buch.-Post Line Codeunit (1012) wie folgt:
    LOCAL PROCEDURE PostWhseJnlLine@24(ItemJnlLine@1000 : Record 83;OriginalQuantity@1001 : Decimal;OriginalQuantityBase@1002 : Decimal;VAR TempTrackingSpecification@1003 : TEMPORARY Record 336);
  16. Erstellen Sie die folgenden lokalen Variablen in der Funktion PostWhseJnlLine in der Projekt Buch.-Post Line Codeunit (1012):
    1. Fügen Sie eine lokale Variable in der Funktion PostWhseJnlLine in der Projekt Buch.-Post Line Codeunit (1012), und geben Sie die Variable wie folgt:
      • Name: WarehouseJournalLine
      • Datentyp: Datensatz
      • Untertyp: Logistik Buch.-Blattzeile (7311)
    2. Fügen Sie eine lokale Variable in der Funktion PostWhseJnlLine in der Projekt Buch.-Post Line Codeunit (1012), und geben Sie die Variable wie folgt:
      • Name: TempWarehouseJournalLine
      • Datentyp: TEMPORÄRER Datensatz
      • Untertyp: Logistik Buch.-Blattzeile (7311)
    3. Fügen Sie eine lokale Variable in der Funktion PostWhseJnlLine in der Projekt Buch.-Post Line Codeunit (1012), und geben Sie die Variable wie folgt:
      • Name: ItemTrackingManagement
      • Datentyp: Modul
      • Untertyp: Artikelverfolgungsnummern Management (6500)
    4. Fügen Sie eine lokale Variable in der Funktion PostWhseJnlLine in der Projekt Buch.-Post Line Codeunit (1012), und geben Sie die Variable wie folgt:
      • Name: WMSManagement
      • Datentyp: Modul
      • Untertyp: WMS Management (7302)
    5. Fügen Sie eine lokale Variable in der Funktion PostWhseJnlLine in der Projekt Buch.-Post Line Codeunit (1012), und geben Sie die Variable wie folgt:
      • Name: WhseJnlRegisterLine
      • Datentyp: Modul
      • Untertyp: Logistik. Buch.-Blatt-Zeile registriert (7301)
  17. Fügen Sie folgenden Code in der Funktion PostWhseJnlLine in der Projekt Buch.-Post Line Codeunit (1012) wie folgt:
    WITH ItemJnlLine DO BEGINIF "Entry Type" IN ["Entry Type"::Consumption,"Entry Type"::Output] THEN
    EXIT;
    Quantity := OriginalQuantity;
    "Quantity (Base)" := OriginalQuantityBase;
    GetLocation("Location Code");
    IF Location."Bin Mandatory" THEN
    IF WMSManagement.CreateWhseJnlLine(ItemJnlLine,0,WarehouseJournalLine,FALSE,FALSE) THEN BEGIN
    TempTrackingSpecification.MODIFYALL("Source Type",DATABASE::"Job Journal Line");
    ItemTrackingManagement.SplitWhseJnlLine(WarehouseJournalLine,TempWarehouseJournalLine,TempTrackingSpecification,FALSE);
    IF TempWarehouseJournalLine.FIND('-') THEN
    REPEAT
    WMSManagement.CheckWhseJnlLine(TempWarehouseJournalLine,1,0,FALSE);
    WhseJnlRegisterLine.RUN(TempWarehouseJournalLine);
    UNTIL TempWarehouseJournalLine.NEXT = 0;
    END;
    END;
  18. Fügen Sie eine neue lokale Variable in der Funktion Code im Projekt Buch.-Post Line Codeunit (1012), und geben Sie die Variable wie folgt:
    • Name: TempTrackingSpecification
    • Datentyp: TEMPORÄRER Datensatz
    • Untertyp: Verfolgungsspezifikation (336)
  19. Fügen Sie eine neue lokale Variable in der Funktion Code im Projekt Buch.-Post Line Codeunit (1012), und geben Sie die Variable wie folgt:
    • Name: ItemJnlLine2
    • Datentyp: Datensatz
    • Untertyp: Artikel Buch.-Blattzeile (83)
  20. Ändern Sie den Code in der Funktion Code im Projekt Buch.-Post Line Codeunit (1012) wie folgt:
    Vorhandener Code 1
    ...ItemJnlLine.INIT;
    ItemJnlLine."Item No." := JobJnlLine2."No.";
    ...

    Neuer Code 1
    ...ItemJnlLine.INIT;

    // Add the following line.
    ItemJnlLine."Line No." := "Line No.";

    ItemJnlLine."Item No." := JobJnlLine2."No.";
    ...
    Vorhandener Code 2
    ...ItemLedgEntry.LOCKTABLE;
    ItemJnlPostLine.RunWithCheck(ItemJnlLine,TempJnlLineDim);
    END;
    ...
    Neuer Code 2
    ...ItemLedgEntry.LOCKTABLE;

    // Add the following line.
    ItemJnlLine2 := ItemJnlLine;

    ItemJnlPostLine.RunWithCheck(ItemJnlLine,TempJnlLineDim);

    // Add the following lines.
    ItemJnlPostLine.CollectTrackingSpecification(TempTrackingSpecification);
    PostWhseJnlLine(ItemJnlLine2,ItemJnlLine2.Quantity,ItemJnlLine2."Quantity (Base)",TempTrackingSpecification);
    // End of the lines.
    ...
  21. Ändern Sie den Wert in der OptionString -Eigenschaft des Parameters Dokument in der Funktion GetSourceDocument Logistik. Management-Codeunit (5775) wie folgt:
    OptionString=, S. Reihenfolge S. Rechnung S. Gutschrift, S. Reklamation, s. Reihenfolge, s. Rechnung, s. Gutschrift, s. Reklamation, Inb. Übertragung Outb. Umlagerung, FA-Zeile. Verbrauch, Artikel Erf.-Inventurauftrag. Buch: Umbuch. Jnl. Verbrauchs Buch, Jnl. Stückliste Buch, Serv Abgangsauftrag Projekt Erf.
  22. Ändern Sie den Code in der Funktion GetSourceDocument Logistik. Management-Codeunit (5775) wie folgt:
    Vorhandener code
    ...EXIT;
    END;
    END;
    ERROR(Text000);
    ...
    Neuer code
    ...EXIT;
    END;

    // Add the following lines.
    DATABASE::"Job Journal Line":
    BEGIN
    SourceDocument := SourceDocument::"Job Jnl.";
    EXIT;
    END;
    // End of the lines.

    END;
    ERROR(Text000);
    ...
  23. Ändern Sie den Code in der Funktion CreateWhseJnlLine in der Codeunit "WMS Management" (7302) wie folgt:
    Vorhandener code
    ...WhseJnlLine."Source Line No." := "Line No.";
    END;
    WhseJnlLine."Source Code" := "Source Code";
    WhseJnlLine."Reason Code" := "Reason Code";
    WhseJnlLine."Registering No. Series" := "Posting No. Series";
    WhseJnlLine."Whse. Document Type" := WhseJnlLine."Whse. Document Type"::" ";

    // Delete the following line.
    WhseJnlLine."Reference Document" := WhseJnlLine."Reference Document"::"Item Journal";

    WhseJnlLine."Reference No." := "Document No.";
    ...
    Neuer code
    ...WhseJnlLine."Source Line No." := "Line No.";

    // Add the following lines.
    END ELSE
    IF "Job No." <> '' THEN BEGIN
    WhseJnlLine."Source Type" := DATABASE::"Job Journal Line";
    WhseJnlLine."Source Subtype" := ItemJnlTemplateType;
    WhseMgt.GetSourceDocument(WhseJnlLine."Source Document",WhseJnlLine."Source Type",WhseJnlLine."Source Subtype");
    WhseJnlLine."Source No." := "Document No.";
    WhseJnlLine."Source Line No." := "Line No.";
    // End of the lines.
    END;WhseJnlLine."Source Code" := "Source Code";
    WhseJnlLine."Reason Code" := "Reason Code";
    WhseJnlLine."Registering No. Series" := "Posting No. Series";
    WhseJnlLine."Whse. Document Type" := WhseJnlLine."Whse. Document Type"::" ";

    // Add the following lines.
    IF "Job No." = '' THEN
    WhseJnlLine."Reference Document" := WhseJnlLine."Reference Document"::"Item Journal"
    ELSE
    WhseJnlLine."Reference Document" := WhseJnlLine."Reference Document"::"Job Journal";
    // End of the lines.

    WhseJnlLine."Reference No." := "Document No.";
    ...ine."Source Code" := "Source Code";
    WhseJnlLine."Reason Code" := "Reason Code";
    WhseJnlLine."Registering No. Series" := "Posting No. Series";
    WhseJnlLine."Whse. Document Type" := WhseJnlLine."Whse. Document Type"::" ";

    // Add the following lines.
    IF "Job No." = '' THEN
    WhseJnlLine."Reference Document" := WhseJnlLine."Reference Document"::"Item Journal"
    ELSE
    WhseJnlLine."Reference Document" := WhseJnlLine."Reference Document"::"Job Journal";
    // End of the lines.

    WhseJnlLine."Reference No." := "Document No.";
    ...

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 .