für folgendes Problem benötige ich eure Unterstützung.
Beim Statusändern eines Fert.-Auftrag erhalte ich folgende Fehlermeldung:
"Die max. Ebene in der Stückl.-Struktur darf nicht größer als 50 sein. Aktuelle Artiklnr. . Letzte Stückl.-Kopfnr. F100 Ebene 25."
Mir ist klar, was mir NAV damit sagen will aber ich bekomme es einfach nicht, diesen Fehler zu beheben.
Bin mir unsicher, ob es an einem Verständnis- oder/und Handlingproblem liegt. Seht selbst..
Was wollte ich umsetzen:
Artikel A100 mit Artikelstückliste S100 soll eine Fert.Stückliste F100 hinterlegt bekommen, welche in den Fert.-Komponenten, die Artikel auflistet, die hinter der Art.-Stückliste S100 stecken. Da diese teilweise noch produziert werden müssen bzw. ein Arbeitsplan (ist beim Artikel A100 auch hinterlegt) noch mit einkalkuliert werden muss.
Meine Eingabe:
Fert.Stückliste F100 neu erstellt
als Komponent habe ich nur A100 angegeben
Überprüfung:
Fert.Stückliste F100
Komponente --> Verwendung: A100 wird angezeigt
Stückliste --> Verwendung: F100
Will ich hier den Status von "in Entwicklung" auf "Zertifiziert" umstellen, erhalte ich die oben genannte Fehlermeldung.
Google half mir soweit, dass ich herausgefunden habe, dass MS für NAV 2009 für diesen Fehler einen Hotfix anbietet:
http://support.microsoft.com/kb/2589758/de
Wir nutzen Nav 4.0 und daher habe ich testweise versucht den Hotfix manuell in die Codeunit 99000793 einzubauen. Hat aber leider nichts geholfen, Fehler bleibt trotzdem.
Funktion CalcLevels:
- Code: Alles auswählen
REPEAT
IF ProdBOMHeader.GET(ProdBomComponent."Production BOM No.") THEN
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
ProdBOMHeader."Low-Level Code" :=
CalcLevels(Type::"Production BOM",ProdBomComponent."Production BOM No.",Level,LevelDepth + 1) - Level;
ActLevel := ProdBOMHeader."Low-Level Code" + Level;
IF ActLevel > TotalLevels THEN
TotalLevels := ActLevel;
END;
UNTIL ProdBomComponent.NEXT = 0;
bzw. Funktion RecalcLowerLevels:
- Code: Alles auswählen
IF ProdBOMComponent.FIND('-') THEN
REPEAT
IF ProdBOMComponent."Version Code" <> '' THEN BEGIN
ProductionBOMVersion.GET(ProdBOMComponent."Production BOM No.",ProdBOMComponent."Version Code");
CalculateDeeperLevel := ProductionBOMVersion.Status <> ProductionBOMVersion.Status::Closed;
END ELSE BEGIN
ProdBOMHeader.GET(ProdBOMComponent."Production BOM No.");
CalculateDeeperLevel := ProdBOMHeader.Status <> ProdBOMHeader.Status::Closed;
END;
CASE ProdBOMComponent.Type OF
ProdBOMComponent.Type::Item:
BEGIN
CompItem.GET(ProdBOMComponent."No.");
IF (CompItem."Low-Level Code" - 1) <> LowLevelCode THEN BEGIN
xLowLevelCode := CompItem."Low-Level Code";
CompItem."Low-Level Code" :=
CalcLevels(ProdBOMComponent.Type::Item,ProdBOMComponent."No.",0,0);
IF CompItem."Low-Level Code" <> xLowLevelCode THEN BEGIN
CompItem.MODIFY;
RecalcLowerLevels(CompItem."Production BOM No.",CompItem."Low-Level Code");
END;
END;
END;
ProdBOMComponent.Type::"Production BOM":
BEGIN
ProdBOMHeader.GET(ProdBOMComponent."No.");
IF (ProdBOMHeader."Low-Level Code" - 1) <> LowLevelCode THEN BEGIN
xLowLevelCode := ProdBOMHeader."Low-Level Code";
ProdBOMHeader."Low-Level Code" :=
CalcLevels(ProdBOMComponent.Type::"Production BOM",ProdBOMComponent."No.",0,0);
IF ProdBOMHeader."Low-Level Code" <> xLowLevelCode THEN BEGIN
ProdBOMHeader.MODIFY;
RecalcLowerLevels(ProdBOMHeader."No.",ProdBOMHeader."Low-Level Code" - 1);
END;
END;
END;
END;
UNTIL ProdBOMComponent.NEXT = 0;
Wenn das zu wenig Codeschnipsel sein sollte, gebt mir bitte Bescheid.
Keine Sorge, bin hier nicht im Echt System. Habe alles in der Test eingegeben, geändert, getestet usw.
Der Stand jetzt ist der, dass ich die Codeunit 99000793 wieder auf den Orginalstand (ohne Hotfix) gesetzt habe.
Würde mich sehr freuen, wenn ihr mir weiter helfen könnt.
Merci,
vG AlphaWeibchen