"Max. Das Niveau der Stücklistenstruktur auf 50 ist zu hoch. Aktuelle Artikel-Nr. [BOM_Number]. Endstücklistenkopf-Nr. [BOM_Number]. Level [BOM_level]" Fehlermeldung beim Ausführen der Funktion "Niedrigen Code berechnen" 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 Gebietsschemas.

Symptome

Stellen Sie sich folgendes Szenario in Microsoft Dynamics NAV 2009 vor:

  • Das Kontrollkästchen "Dynamischer Code auf niedriger Ebene" ist im Dialogfeld Fertigungseinstellungen nicht aktiviert.
  • Sie legen eine Produktionsstücklistenversion für eine bestimmte Produktionsstückliste an.
  • Sie setzen das Statusfeld für die Produktionsstücklistenversion auf Geschlossen .
  • Sie führen die Funktion "Low-Level Code berechnen " aus.

In diesem Szenario wird die folgende Fehlermeldung angezeigt:

Hinweis

Max. Das Niveau der Stücklistenstruktur auf 50 ist zu hoch. Aktuelle Artikel-Nr. BOM_Number. Endstücklistenkopf-Nr. BOM_Number. Ebene BOM_level.

Das System sollte jedoch die Produktionsstückliste von einer Low-Level-Berechnung ausschließen, wenn Sie ihren Versions-Status auf Geschlossen setzen.
Dieses Problem tritt bei den folgenden Produkten auf:

  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 2009

      

Lösung

Hotfixinformationen

Ein Hotfix zur Behebung des Problems ist jetzt von Microsoft erhältlich. Es ist jedoch nur zur Behebung des in diesem Artikel beschriebenen Problems vorgesehen. Wenden Sie sie nur auf Systeme an, bei denen dieses spezifische Problem auftritt. Der Hotfix wird unter Umständen zu einem späteren Zeitpunkt weiteren Tests unterzogen. Wenn Ihr System durch dieses Problem nicht schwerwiegend beeinträchtigt ist, empfehlen wir, 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 werden Gebühren, die normalerweise für Supportanrufe anfallen, storniert, wenn ein Mitarbeiter des technischen Supports für Microsoft Dynamics und verwandte Produkte feststellt, dass das Problem durch ein bestimmtes Update behoben wird. PLEASE DO NOT TRANSLATE. DOES NOT APPLY TO GERMAN.

          

Informationen zur Installation

Microsoft stellt Programmierbeispiele nur zur Veranschaulichung zur Verfügung, ohne ausdrückliche oder stillschweigende Garantie. Dies schließt die stillschweigende Gewährleistung der Marktgängigkeit oder der Eignung für einen bestimmten Zweck ein, ist aber nicht darauf beschränkt. In diesem Artikel wird davon ausgegangen, dass Sie mit der vorgestellten Programmiersprache und den Werkzeugen zum Erstellen und Debuggen von Prozeduren vertraut sind. Die Support-Techniker von Microsoft können Ihnen die Funktionalität eines bestimmten Verfahrens erklären. Sie werden diese Beispiele jedoch nicht ändern, um zusätzliche Funktionen bereitzustellen oder Verfahren zu konstruieren, die Ihren speziellen Anforderungen entsprechen.

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

Um diesen Hotfix implementieren zu können, müssen Sie über eine Entwicklerlizenz verfügen.

Es wird empfohlen, dem Benutzerkonto im Fenster "Windows-Anmeldungen" oder im Fenster "Datenbankanmeldungen" 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 Berechtigung "Ändern" für das Objekt, das Sie ändern möchten.
  • Die Ausführungsberechtigung für das Objekt mit der Systemobjekt-ID 5210 und das Objekt mit der Systemobjekt-ID 9015.

Hinweis: Sie müssen keine Rechte für die Datenspeicher haben, es sei denn, Sie müssen eine Datenreparatur durchführen.

Codeänderungen

Hinweis Testen Sie Codefixes stets in einer kontrollierten Umgebung, bevor Sie sie auf Ihre Produktionscomputer anwenden.
Um dieses Problem zu beheben, ändern Sie den Code in der Codeeinheit "Berechnen Low-Level Code" (99000793). Führen Sie hierzu die folgenden Schritte aus:

  1. Ändern Sie den Code in der CalcLevels-Funktion. Führen Sie hierzu die folgenden Schritte aus:

    1. Fügen Sie eine neue lokale Variable hinzu, und geben Sie die Variable wie folgt an:

      • Name: ProductionBOMVersion
      • DataType: Datensatz 99000779
    2. Fügen Sie eine neue lokale Variable hinzu, und geben Sie die Variable wie folgt an:

      • Name: CalculateDeeperLevel
      • DataType: Boolean
    3. Ändern Sie den Code wie folgt:
      Vorhandener Code

      ...
      50,Item."No.",BomHeaderNo,Level);
      
      
      // Delete the following line.
      IF ProdBOMHeader.Status = ProdBOMHeader.Status::Certified THEN BEGIN
      
      ProdBOMHeader."Low-Level Code" :=
      ...
      

      Ersatzcode

      ...
      50,Item."No.",BomHeaderNo,Level);
      
      // Add the following lines.
      IF ProdBomComponent."Version Code" <> '' THEN BEGIN 
      ProductionBOMVersion.GET(ProdBomComponent."Production BOM No.",ProdBomComponent."Version Code"); 
      CalculateDeeperLevel := ProductionBOMVersion.Status = ProductionBOMVersion.Status::Certified; 
      END ELSE 
      CalculateDeeperLevel := ProdBOMHeader.Status = ProdBOMHeader.Status::Certified;
      
      IF CalculateDeeperLevel THEN BEGIN 
      // End of the added lines.
      
      ProdBOMHeader."Low-Level Code" :=
      ...
      
  2. Ändern Sie den Code in der RecalcLowerLevels-Funktion. Führen Sie hierzu die folgenden Schritte aus:

    1. Fügen Sie eine neue lokale Variable hinzu, und geben Sie die Variable wie folgt an:

      • Name: ProductionBOMVersion
      • DataType: Datensatz 99000779
    2. Fügen Sie eine neue lokale Variable hinzu, und geben Sie die Variable wie folgt an:

      • Name: CalculateDeeperLevel
      • DataType: Boolean
    3. Ändern Sie den Code wie folgt:
      Vorhandener Code

      ...
      REPEAT
      // add 2 spaces for alignment to next lines
      CASE ProdBOMLine.Type OF
      ProdBOMLine.Type::Item:
      BEGIN
      EntityPresent := CompItem.GET(ProdBOMLine."No.");
      IF EntityPresent OR (NOT IgnoreMissingItemsOrBOMs) THEN
      SetRecursiveLevelsOnItem(CompItem,LowLevelCode,IgnoreMissingItemsOrBOMs);
      END;
      ProdBOMLine.Type::"Production BOM":
      BEGIN
      EntityPresent := CompBOM.GET(ProdBOMLine."No.");
      IF EntityPresent OR (NOT IgnoreMissingItemsOrBOMs) THEN
      SetRecursiveLevelsOnBOM(CompBOM,LowLevelCode,IgnoreMissingItemsOrBOMs);
      END
      END;
      // end of adding 2 spaces
      UNTIL ProdBOMLine.NEXT = 0;
      ...
      

      Ersatzcode

      ...
      REPEAT
      
      // Add the following lines.
      IF ProdBOMLine."Version Code" <> '' THEN BEGIN 
      ProductionBOMVersion.GET(ProdBOMLine."Production BOM No.",ProdBOMLine."Version Code"); 
      CalculateDeeperLevel := ProductionBOMVersion.Status <> ProductionBOMVersion.Status::Closed; 
      END ELSE BEGIN 
      CompBOM.GET(ProdBOMLine."Production BOM No."); 
      CalculateDeeperLevel := CompBOM.Status <> CompBOM.Status::Closed; 
      END; 
      
      // closed BOMs are skipped
      IF CalculateDeeperLevel THEN 
      // End of the added lines.
      
      CASE ProdBOMLine.Type OF
      ProdBOMLine.Type::Item:
      BEGIN
      EntityPresent := CompItem.GET(ProdBOMLine."No.");
      IF EntityPresent OR (NOT IgnoreMissingItemsOrBOMs) THEN
      SetRecursiveLevelsOnItem(CompItem,LowLevelCode,IgnoreMissingItemsOrBOMs);
      END;
      ProdBOMLine.Type::"Production BOM":
      BEGIN
      EntityPresent := CompBOM.GET(ProdBOMLine."No.");
      IF EntityPresent OR (NOT IgnoreMissingItemsOrBOMs) THEN
      SetRecursiveLevelsOnBOM(CompBOM,LowLevelCode,IgnoreMissingItemsOrBOMs);
      END
      END;
      UNTIL ProdBOMLine.NEXT = 0;
      ...
      

Voraussetzungen

Auf dem Computer muss eines der folgenden Produkte installiert sein, damit Sie diesen Hotfix anwenden können:

  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack 1
  • Microsoft Dynamics NAV 2009

Informationen zur Deinstallation

Nach der Installation kann dieser Hotfix nicht mehr entfernt werden.

Status

Microsoft hat bestätigt, dass dies ein Problem bei den Microsoft-Produkten ist, die im Abschnitt „Gilt für“ aufgeführt sind.

Hinweis: Dies ist ein Artikel vom Typ "SCHNELL VERÖFFENTLICHEN", der direkt in der Microsoft-Supportorganisation erstellt wurde. Die Informationen in diesem Artikel werden ohne Gewähr als Reaktion auf auftretende Probleme bereitgestellt. Aufgrund ihrer schnellen Bereitstellung können sie typografische Fehler enthalten und jederzeit ohne vorherige Ankündigung geändert werden. Andere Überlegungen finden Sie unter Nutzungsbedingungen.