5. März 2015 18:20
Wir nutzen Navision 2009 NAV 6 Sp1 und haben ein Problem bei der Lagerregulierung von gefertigten Artikeln.
Bei der Ausführung des Report 795 erhalten wir die Meldung Kapazitätsposten lfd. Nr nicht gefunden.
Die Meldung stammt aus der Codeunit 22 Funktion PostOutput()
..
...
IF "Item Shpt. Entry No." <> 0 THEN
CapLedgEntry.GET("Item Shpt. Entry No.")
...
..
Im Feld "Item Shpt. Entry No." wurde in Codeunit 5895 auf den Artikelposten lfd. Nummer gesetzt.
(Codeunit 5895: Funktion PostItemJnlLine(ItemJnlLine,OrigValueEntry,NewAdjustedCost,NewAdjustedCostACY)
..
...
IF ItemJnlLine."Value Entry Type" = ItemJnlLine."Value Entry Type"::"Direct Cost" THEN
ItemJnlLine."Item Shpt. Entry No." := "Item Ledger Entry No."
ELSE
ItemJnlLine."Applies-to Entry" := "Item Ledger Entry No.";
...
..
Hier wird der Wert auf ItemJnlLine."Item Shpt. Entry No." := "Item Ledger Entry No." gesetzt. Die Funktion muss zwangsläufig auf einen Fehler fallen, da die Artikelposten lfd. Nummer nicht identisch mit der Kapazitätsposten lfd. Nummer für die Istmeldung ist. Leider finde ich aber keinen Anhaltspunkt wo die Ursache für dieses Verhalten liegt.
Die Lagerregulierung bei Zukaufteilen funktioniert einwandfrei. Lediglich bei der Regulierung von beendeten Fertigungsaufträgen kommt es zu dieser Meldung. Dies umfasst dabei auch alle beendeten Fertigungsaufträge. Ist hier ggf. eine Grundeinrichtung fehlerhaft?
Hat hier jemand einen Hinweis für mich.
Besten dank für die Unterstützung.
5. März 2015 21:55
Herzlich Willkommen im Forum!
Für diese Version sind 2 Costing Update Rollups (Hotfixsammlung) erschienen. Sind die implementiert worden?
http://www.msdynamics.de/viewtopic.php?f=40&t=26058&#p107949
13. März 2015 08:36
Hallo Kowa,
sorry für die etwas verspätete Rückmeldung. Die Rollups waren noch nicht im System implementiert und das musste ich erst nachholen.
Leider ohne Erfolg. Weiterhin habe ich die Fehlermeldung: Kapazitätsposten Lfd. Nr. existiert nicht.
Die Meldung stammt aus der Codeunit 22: PostOutput
IF "Item Shpt. Entry No." <> 0 THEN
CapLedgEntry.GET("Item Shpt. Entry No.")
ELSE BEGIN
ProdOrder.GET(ProdOrder.Status::Freigegeben,"Prod. Order No.");
In Codeunit 5895 wird in der Funktion CalcMfgCostAndUpdOutputEntries(ProdOrderLine) der CostElemntBuffer gesetzt.
CostElementBuf.AddActualCost(
CostElementBuf.Type::"EK-Preis",CostElementBuf."Variance Type"::" ",
MfgDirCost,MfgDirCostACY);
Hier nach wird in Codeunit 5895 in der Funktion PostItemJnlLine(ItemJnlLine,OrigValueEntry,NewAdjustedCost,NewAdjustedCostACY) die Artikelpostennummer in das Feld Item Shpt. Entry No. übergeben.
ItemJnlLine."Job Task No." := "Job Task No.";
IF ItemJnlLine."Value Entry Type" = ItemJnlLine."Value Entry Type"::"EK-Preis" THEN
ItemJnlLine."Item Shpt. Entry No." := "Item Ledger Entry No."
ELSE
Was mich dann irritiert, ist dass auf dieses Feld anschließend in der Codeunit 22 ein CapLedgEntry.GET("Item Shpt. Entry No.") gemacht wird.
Es betrifft dabei nur die Regulierung von Artikeln mit beendeten Fertigungsaufträgen. Wir verwenden als Lagerabgangsmethode Fifo.
Vielen Dank schon mal für die Unterstützung.
Gruß Jens