Sunday, October 1, 2023

Ein falscher Lagerbewegungsvorschlag wird erstellt, wenn in der Bewegung in Microsoft Dynamics NAV 5.0 eine Maßeinheitenumrechnung vorhanden ist – Microsoft-Support

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

Betrachten Sie das folgende Szenario in Microsoft Dynamics NAV 5.0:

  • Sie haben einen Lagerplatz, in dem sich ein Artikel befindet, der eine andere Maßeinheit (ME) verwendet.

  • Es findet eine Umrechnung zwischen den beiden UoM statt.

  • Sie verschieben den Artikel vom Lagerplatz in einen anderen Lagerplatz.

  • In der Bewegung ist eine UoM-Umrechnung notwendig.

  • Sie führen die Lagerbewegungsfunktion im Dialogfeld „Bewegungsarbeitsblätter" für den Artikel aus.

In diesem Szenario werden die ME-Umrechnungszeilen im Lagerbewegungsvorschlag falsch erstellt.

Symptome

Hotfix-Informationen

Ein unterstützter Hotfix ist jetzt von Microsoft verfügbar. Es dient jedoch lediglich der Behebung des in diesem Artikel beschriebenen Problems. Wenden Sie es nur auf Systeme an, bei denen dieses spezielle Problem auftritt. Dieser Hotfix wird möglicherweise weiteren Tests unterzogen. Wenn Sie von diesem Problem nicht schwerwiegend betroffen sind, empfehlen wir Ihnen daher, auf das nächste Microsoft Dynamics NAV 2009 Service Pack oder die nächste Microsoft Dynamics NAV-Version zu warten, die diesen Hotfix enthält.

Hinweis: In besonderen Fällen können die Gebühren, die normalerweise für Supportanrufe anfallen, storniert werden, wenn ein Mitarbeiter des technischen Supports für Microsoft Dynamics und verwandte Produkte feststellt, dass ein bestimmtes Update Ihr Problem lösen wird. Für zusätzliche Supportfragen und Probleme, die für das jeweilige Update nicht in Frage kommen, fallen die üblichen Supportkosten an.

Auflösung



Installationsinformationen

Microsoft stellt Programmierbeispiele nur zur Veranschaulichung zur Verfügung, ohne ausdrückliche oder stillschweigende Gewährleistung. Dazu gehören unter anderem stillschweigende Garantien der Marktgängigkeit oder Eignung für einen bestimmten Zweck. In diesem Artikel wird davon ausgegangen, dass Sie mit der demonstrierten Programmiersprache und den Tools vertraut sind, die zum Erstellen und Debuggen von Prozeduren verwendet werden. Microsoft-Supporttechniker können dabei helfen, die Funktionalität einer bestimmten Prozedur zu erläutern, sie werden diese Beispiele jedoch nicht ändern, um zusätzliche Funktionalität bereitzustellen oder Prozeduren zu erstellen, die Ihren spezifischen Anforderungen entsprechen.

Hinweis Bevor Sie diesen Hotfix installieren, stellen Sie sicher, dass alle Benutzer des Microsoft Navision-Clients vom System abgemeldet sind. Dazu gehören Clientbenutzer von Microsoft Navision Application Services (NAS). Sie sollten der einzige Clientbenutzer sein, der angemeldet ist, wenn Sie diesen Hotfix implementieren.

Um diesen Hotfix zu implementieren, benötigen Sie eine Entwicklerlizenz.

Wir empfehlen, dem Benutzerkonto im Fenster „Windows-Anmeldungen" oder im Fenster „Datenbank-Anmeldungen" die Rollen-ID „SUPER" zuzuweisen. Wenn dem Benutzerkonto nicht die Rollen-ID „SUPER" zugewiesen werden kann, müssen Sie überprüfen, ob das Benutzerkonto über die folgenden Berechtigungen verfügt:

  • Die Änderungsberechtigung für das Objekt, das Sie ändern möchten.

  • Die Ausführungsberechtigung für das Systemobjekt-ID-5210-Objekt und für das Systemobjekt-ID-9015-Objekt.



Hinweis Sie müssen keine Rechte an den Datenspeichern haben, es sei denn, Sie müssen eine Datenreparatur durchführen.

Codeänderungen

Hinweis: Testen Sie Codekorrekturen immer in einer kontrollierten Umgebung, bevor Sie die Korrekturen auf Ihren Produktionscomputern anwenden.
Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus:

  1. Ändern Sie den Code in der Funktion „CreateTempLine2" in der Codeeinheit „Auswahl erstellen" (7312) wie folgt:
    Vorhandener Code 1

     ...

    WENN QtytoPick > 0, DANN BEGINNEN

    QtytoPick :=

    QtytoPick -

    RUNDEN(

    CalcPickQtyAssigned(

    //Löschen Sie die folgende Zeile.
    LocationCode,ItemNo,VariantCode,'',TempWhseItemTrkgLine)


    ...

    Ersatzcode 1

     ...

    WENN QtytoPick > 0, DANN BEGINNEN

    QtytoPick :=

    QtytoPick -

    RUNDEN(

    CalcPickQtyAssigned(

    //Folgende Zeile hinzufügen.
    LocationCode,ItemNo,VariantCode,UnitofMeasureCode,'',TempWhseItemTrkgLine)

    ...

    Vorhandener Code 2

     ...

    WENN QtytoPick > 0, DANN BEGINNEN

    QtytoPick :=

    QtytoPick -

    RUNDEN(

    CalcPickQtyAssigned(

    //Löschen Sie die folgende Zeile.
    LocationCode,ItemNo,VariantCode,'',TempWhseItemTrkgLine)


    ...

    Ersatzcode 2

     ...

    WENN QtytoPick > 0, DANN BEGINNEN

    QtytoPick :=

    QtytoPick -

    RUNDEN(

    CalcPickQtyAssigned(

    //Folgende Zeile hinzufügen.
    LocationCode,ItemNo,VariantCode,UnitofMeasureCode,'',TempWhseItemTrkgLine)

    ...

    Vorhandener Code 3

     ...

    QtyPerUnitofMeasure,0.00001);

    QtytoPickBase := QtytoPickBase -

    CalcPickQtyAssigned(

    //Löschen Sie die folgende Zeile.
    LocationCode,ItemNo,VariantCode,'',TempWhseItemTrkgLine);


    ...

    Ersatzcode 3

     ...

    QtyPerUnitofMeasure,0.00001);

    QtytoPickBase := QtytoPickBase -

    CalcPickQtyAssigned(

    //Folgende Zeile hinzufügen.
    LocationCode,ItemNo,VariantCode,UnitofMeasureCode,'',TempWhseItemTrkgLine);

    ...
  2. Ändern Sie den Code in der Funktion „InsertTmpActLnFromMovWkshLine" in der Codeeinheit „Auswahl erstellen" (7312) wie folgt:
    Vorhandener Code

     ...

    LocationCode,FromBinCode,ItemNo,VariantCode,WhseWkshLine."From Unit of Measure Code");

    FromBinContent.CALCFIELDS(Quantity,"Pick Qty.","Neg. Adjmt. Qty.");

    PickQtyAssigned :=

    RUNDEN(

    CalcPickQtyAssigned(

    //Löschen Sie die folgende Zeile.
    LocationCode,ItemNo,VariantCode,WhseWkshLine."From Bin Code",TempWhseItemTrkgLine)

    ...

    Ersatzcode

     ...

    LocationCode,FromBinCode,ItemNo,VariantCode,WhseWkshLine."From Unit of Measure Code");

    FromBinContent.CALCFIELDS(Quantity,"Pick Qty.","Neg. Adjmt. Qty.");

    PickQtyAssigned :=

    RUNDEN(

    CalcPickQtyAssigned(

    //Folgende Zeilen hinzufügen.
    Standortcode, Artikel-Nr., Variantencode,

    WhseWkshLine."Von Maßeinheitscode",

    WhseWkshLine."From Bin Code",TempWhseItemTrkgLine)
    //Ende der Zeilen.
    ...
  3. Ändern Sie den Code in der FindBWPickBin-Funktion in der Codeunit „Create Pick" (7312) wie folgt:
    Vorhandener Code

     ...

    WENN QtyToPickBase > 0, DANN BEGINNEN

    QtyToPickBase :=

    QtyToPickBase -

    RUNDEN(

    CalcPickQtyAssigned(

    //Löschen Sie die folgende Zeile.
    LocationCode,ItemNo,VariantCode,"Bin Code",TempWhseItemTrkgLine)

    ...

    Ersatzcode

     ...

    WENN QtyToPickBase > 0, DANN BEGINNEN

    QtyToPickBase :=

    QtyToPickBase -

    RUNDEN(

    CalcPickQtyAssigned(

    //Folgende Zeilen hinzufügen.
    LocationCode,ItemNo,VariantCode,"Bin Code","Maßeinheitscode",

    TempWhseItemTrkgLine)
    //Ende der Zeilen.
    ...
  4. Fügen Sie eine neue lokale Variable in der Funktion CalcPickQtyAssigned in der Codeunit „Create Pick" (7312) hinzu und geben Sie die Variable wie folgt an:

    • Name : UOMCode@1004

    • Datentyp : Code

    • Länge : 10

  5. Ändern Sie den Code in der Funktion CalcPickQtyAssigned in der Codeeinheit „Auswahl erstellen" (7312) wie folgt:

     ...

    ENDE SONST BEGINNEN

    SETRANGE("Action Type","Action Type"::" ");

    SETRANGE("Bin-Code",'');

    ENDE;

    SETRANGE("Variant Code",VariantCode);

    //Folgende Zeilen hinzufügen.
    WENN UOMCode <> '' DANN

    SETRANGE("Maßeinheitscode",UOMCode);
    //Ende der Zeilen.
    ...
  6. Ändern Sie den Code in der Funktion CalcTotalAvailQtyToPick in der Codeunit „Auswahl erstellen" (7312) wie folgt:
    Vorhandener Code

     ...

    QtyAssignedPick :=

    //Löschen Sie die folgende Zeile.
    CalcPickQtyAssigned(LocationCode,ItemNo,VariantCode,'',TempWhseItemTrkgLine2);

    Ersatzcode

     ...

    QtyAssignedPick :=

    //Folgende Zeile hinzufügen.
    CalcPickQtyAssigned(LocationCode,ItemNo,VariantCode,'','',TempWhseItemTrkgLine2);

Voraussetzungen

Sie müssen Microsoft Dynamics NAV 5.0 installiert haben, um diesen Hotfix anwenden zu können.

Informationen zum Entfernen

Sie können diesen Hotfix nicht entfernen.

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt „Gilt für" aufgeführt sind.

Status

Hinweis Dies ist ein „FAST PUBLISH"-Artikel, der direkt von der Microsoft-Supportorganisation erstellt wurde. Die hierin enthaltenen Informationen werden unverändert als Reaktion auf neu auftretende Probleme bereitgestellt. Aufgrund der schnellen Bereitstellung können die Materialien Tippfehler enthalten und jederzeit ohne Vorankündigung überarbeitet werden. Weitere Hinweise finden Sie in den Nutzungsbedingungen .

No comments:

Post a Comment