Dist.lager transaktioner inte har uppdaterats med alla artikelspårningsraderna i en projektjournal när du bokför en artikel i projektjournalen på en lagerplats i Microsoft Dynamics NAV 2009

Mall: CPR - Navision koden Fix mall

PROGRAMFEL #: 140208 (Innehållsunderhåll)

Den här artikeln gäller för Microsoft Dynamics NAV för alla länder och språkversioner.

Symptom

Anta att du har en projektjournal som har mer än en Artikelspårningsrader för ett objekt i Microsoft Dynamics NAV 2009. När du bokför artikeln i projektjournalen till en lagerplats, uppdateras endast dist.lager transaktioner med den senaste artikelspårningsrad som anges. Det finns därför en obalans för artikeln mellan lagret och artikeltransaktioner.
Det här problemet uppstår i följande produkter:

  • Microsoft Dynamics NAV 2009 R2

  • Microsoft Dynamics NAV 2009 servicepack 1 (SP1)


Lösning

Information om snabbkorrigeringen

En snabbkorrigering är nu tillgänglig från Microsoft. Den är endast avsedd att åtgärda det problem som beskrivs i denna artikel. Använd den bara på datorer där detta problem uppstår. Snabbkorrigeringen kan komma att testas igen. Om inte störs alltför mycket av detta problem rekommenderar vi att du väntar på Nästa service pack-versionen för Microsoft Dynamics NAV eller nästa Microsoft Dynamics NAV-version som innehåller den här snabbkorrigeringen.

Obs! I särskilda fall, de avgifter som är normalt för support vara avgiftsfri om en supporttekniker för Microsoft Dynamics och relaterade produkter som bestämmer att en särskild uppdatering kan lösa ditt problem. De vanliga supportkostnaderna gäller för övriga supportfrågor och problem som inte berör den särskilda uppdateringen.

Om den här snabbkorrigeringen inte har bokförts för offentlig hämtning (vilket innebär att en offentlig URL för den här snabbkorrigeringen inte är tillgänglig i den här artikeln), distribution kräver tekniskt ansvarig, eskalering gruppmedlem eller godkännande av projektledaren och följande information gäller:

  • För att erhålla snabbkorrigeringen måste kunden ha drabbats programfel som beskrivs i avsnittet "Symptom".

  • Du måste följa de kunder du skickar korrigeringen till och förse dem med nästa service Pack-versionen när den blir tillgänglig (om ett service pack släpps).

Den här snabbkorrigeringen kommer att ingå i ett service pack för Microsoft Dynamics NAV 2009.



Installationsinformation

Microsoft tillhandahåller programmeringsexempel endast utan garanti varken uttryckliga eller underförstådda. Detta inkluderar men är inte begränsat till, underförstådda garantier om säljbarhet eller lämplighet för ett särskilt ändamål. Den här artikeln förutsätter att du är bekant med det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan hjälpa till med att förklara funktionen hos en viss procedur, men kan inte ändra dessa exempel för att ge ytterligare funktioner eller skapa procedurer som motsvarar dina speciella behov.

Obs! Innan du installerar den här snabbkorrigeringen måste du kontrollera att alla användare av Microsoft Navision-klient har loggat ut. Detta inkluderar Microsoft Navision Application Services (NAS) klientanvändare. Du ska endast klientanvändare som är inloggad när du implementerar den här snabbkorrigeringen.

Om du vill genomföra den här snabbkorrigeringen måste du ha en utvecklarlicens.

Vi rekommenderar att tilldelas användarkontot i fönstret Windows-inloggningar eller i fönstret databasinloggningar "SUPER" roll-ID. Om användarkontot inte kan tilldelas "SUPER" roll-ID måste du kontrollera att användarkontot har följande behörigheter:

  • Ändra behörighet för objektet ändras.

  • Körbehörighet för systemet objektet ID 5210 objektet och objektet System objektet ID 9015 .



Obs! Du har inte behörighet för datalager inte data reparation.

Kod ändras

Obs! Alltid åtgärdas testa koden i en kontrollerad miljö innan du installerar korrigeringar för produktionsdatorer.
Lös problemet så här: skapa följande lokala variabler:

  1. Lägg till en ny global variabel i tabellen projektjournalrad (210) och ange variabeln enligt följande:

    • Namn: WMSManagement

    • Datatyp: kodmodul

    • Undertyp: WMS Management (7302)

  2. Ta bort följande kod i TableRelation -egenskap i Lagerplatskod fält (5403) i tabellen projektjournalrad (210):

    Bin.Code WHERE (Location Code=FIELD(Location Code));
  3. Ändra koden i utlösaren för lagerplatskod OnValidate fält (5403) i tabellen projektjournalrad (210) som följer:
    Befintlig kod

    ...// Delete the following lines.
    TESTFIELD("Location Code");
    CheckItemAvailable;
    // End of the lines.
    ...

    Ersättningskod

    ...// 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. Lägg till en ny lokal variabel i Lagerplatskod - OnLookup triggerin tabellen projektjournalrad (210) och ange variabeln enligt följande:

    • Namn: BinCode

    • Datatyp: kod

    • Längd: 20

  5. Lägg till följande kod i utlösaren Lagerplatskod - OnLookup i tabellen projektjournalrad (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. Ändra värdet i egenskapen OptionString i fältet Källdokumentet (25) i tabellen distributionslagerjournalraden (7311) till följande:
    OptionString=, S. Order, S. faktura, S. kreditnotan, S. returorder, s. ordning, s. fakturan, kreditnotan s., s. returorder, intern. Överföring, extern. Överföring, Prod. Livsmedel, objektet konc.int., Inventering artikelval. Konc.int., ursprungliga inköpstransaktionen. Konc.int., förbrukning konc.int., konc.int., Strukturlistan konc.int., Serv. utleveransordern jobbet konc.int.

  7. Ändra värdet i egenskapen OptionString i fältet Referensdokument (60) i tabellen distributionslagerjournalraden (7311) till följande:
    OptionString= , Bokrd inlevns s. fakturarabatt, Bokförd förs.kr.nota,bokförd, bokförda s., kreditnota, Bokförd utleverans, Bokförd faktura S., Bokförd förs.kr.nota,Bokrd utlevns, bokförd, Bokförd T. inleverans, Bokförd utleverans T., artikel returutlevns, artikelinförsel, Plocka, transport, Strukturjournal, projektjournalen

  8. Ändra värdet i egenskapen OptionString i fältet källdokumentet (25) i tabellen Dist.lagertransaktion (7312) till följande:
    OptionString=, S. Order, S. faktura, S. kreditnotan, S. returorder, s. ordning, s. fakturan, kreditnotan s., s. returorder, intern. Överföring, extern. Överföring, Prod. Livsmedel, objektet konc.int., Inventering artikelval. Konc.int., ursprungliga inköpstransaktionen. Konc.int., förbrukning konc.int., konc.int., Strukturlistan konc.int., Serv. utleveransordern jobbet konc.int.

  9. Ändra värdet i egenskapen OptionString i fältet referensdokument (60) i tabellen Dist.lagertransaktion (7312) till följande:
    OptionString= , Bokrd inlevns s. fakturarabatt, Bokförd förs.kr.nota,bokförd, bokförda s., kreditnota, Bokförd utleverans, Bokförd faktura S., Bokförd förs.kr.nota,Bokrd utlevns, bokförd, Bokförd T. inleverans, Bokförd utleverans T., artikel returutlevns, artikelinförsel, Plocka, transport, Strukturjournal, projektjournalen

  10. Ändra egenskapen Visible i kontrollen lagerställekod (60) i formuläret projektjournalen (201) enligt följande:
    Befintlig kod

    Visible = Yes

    Ersättningskod

    Visible = No
  11. Lägg till fältet Lagerplatskod mellan fältet Lagerställekod och fältet Arbetstypkod i formuläret projektjournalen (201) och ange sedan fältet som följer:

    ...{ 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. Lägga till en ny global variabel i jobbet konc.int.-Bokför rad kodmodul (1012) och ange variabeln enligt följande:

    • Namn: plats

    • Datatyp: post

    • Undertyp: plats (14)

  13. Skapa en ny GetLocation funktion i jobbet konc.int.-Bokför rad kodmodul (1012) enligt följande:

    LOCAL PROCEDURE GetLocation@25(LocationCode@1000 : Code[10]);
  14. Lägg till följande kod i funktionen GetLocation i jobbet konc.int.-Bokför rad kodmodul (1012):

    IF LocationCode = '' THENCLEAR(Location)
    ELSE
    IF Location.Code <> LocationCode THEN
    Location.GET(LocationCode);
  15. Skapa en ny PostWhseJnlLine funktion i jobbet konc.int.-Bokför rad kodmodul (1012) enligt följande:

    LOCAL PROCEDURE PostWhseJnlLine@24(ItemJnlLine@1000 : Record 83;OriginalQuantity@1001 : Decimal;OriginalQuantityBase@1002 : Decimal;VAR TempTrackingSpecification@1003 : TEMPORARY Record 336);
  16. Skapa följande lokala variabler i funktionen PostWhseJnlLine i jobbet konc.int.-Bokför rad kodmodul (1012):

    1. Lägga till en lokal variabel i funktionen PostWhseJnlLine i jobbet konc.int.-Bokför rad kodmodul (1012) och ange variabeln enligt följande:

      • Namn: WarehouseJournalLine

      • Datatyp: post

      • Undertyp: distributionslagerjournalraden (7311)

    2. Lägga till en lokal variabel i funktionen PostWhseJnlLine i jobbet konc.int.-Bokför rad kodmodul (1012) och ange variabeln enligt följande:

      • Namn: TempWarehouseJournalLine

      • Datatyp: temporär post

      • Undertyp: distributionslagerjournalraden (7311)

    3. Lägga till en lokal variabel i funktionen PostWhseJnlLine i jobbet konc.int.-Bokför rad kodmodul (1012) och ange variabeln enligt följande:

      • Namn: ItemTrackingManagement

      • Datatyp: kodmodul

      • Undertyp: Artikelspårning Management (6500)

    4. Lägga till en lokal variabel i funktionen PostWhseJnlLine i jobbet konc.int.-Bokför rad kodmodul (1012) och ange variabeln enligt följande:

      • Namn: WMSManagement

      • Datatyp: kodmodul

      • Undertyp: WMS Management (7302)

    5. Lägga till en lokal variabel i funktionen PostWhseJnlLine i jobbet konc.int.-Bokför rad kodmodul (1012) och ange variabeln enligt följande:

      • Namn: WhseJnlRegisterLine

      • Datatyp: kodmodul

      • Undertyp: dist.lager . Artikeljournal-registrera rad (7301)

  17. Lägg till följande kod i funktionen PostWhseJnlLine i jobbet konc.int.-Bokför rad kodmodul (1012) enligt följande:

    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. Lägga till en ny lokal variabel i funktionen kod i jobbet konc.int.-Bokför rad kodmodul (1012) och ange variabeln enligt följande:

    • Namn: TempTrackingSpecification

    • Datatyp: temporär post

    • Undertyp: Spårningsspecifikation (336)

  19. Lägga till en ny lokal variabel i funktionen kod i jobbet konc.int.-Bokför rad kodmodul (1012) och ange variabeln enligt följande:

    • Namn: ItemJnlLine2

    • Datatyp: post

    • Undertyp: artikeljournalraden (83)

  20. Ändra koden i funktionen kod i jobbet konc.int.-Bokför rad kodmodul (1012) som följer:
    Befintlig kod 1

    ...ItemJnlLine.INIT;
    ItemJnlLine."Item No." := JobJnlLine2."No.";
    ...

    Ersättningskod 1

    ...ItemJnlLine.INIT;

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

    ItemJnlLine."Item No." := JobJnlLine2."No.";
    ...

    Befintlig kod 2

    ...ItemLedgEntry.LOCKTABLE;
    ItemJnlPostLine.RunWithCheck(ItemJnlLine,TempJnlLineDim);
    END;
    ...

    Ersättningskod 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. Ändra värdet i egenskapen OptionString i referensdokumentet parameter i funktionen GetSourceDocument i Dist.lager inventeringsjournal. Management kodmodul (5775) till följande:
    OptionString=, S. Order, S. faktura, S. kreditnotan, S. returorder, s. ordning, s. fakturan, kreditnotan s., s. returorder, intern. Överföring, extern. Överföring, Prod. Livsmedel, objektet konc.int., Inventering artikelval. Konc.int., ursprungliga inköpstransaktionen. Konc.int., förbrukning konc.int., konc.int., Strukturlistan konc.int., Serv. utleveransordern jobbet konc.int.

  22. Ändra koden i funktionen GetSourceDocument i Dist.lager inventeringsjournal. Management kodmodul (5775) som följer:
    Befintlig kod

    ...EXIT;
    END;
    END;
    ERROR(Text000);
    ...

    Ersättningskod

    ...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. Ändra koden i funktionen CreateWhseJnlLine i kodmodulen hantering av WMS (7302) som följer:
    Befintlig kod

    ...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.";
    ...

    Ersättningskod

    ...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.";
    ...

Förutsättningar

Du måste ha någon av följande produkter som har installerat den här snabbkorrigeringen:

  • Microsoft Dynamics NAV 2009 R2

  • Microsoft Dynamics NAV 2009 servicepack 1 (SP1)

Information om borttagning

Du kan inte ta bort den här snabbkorrigeringen.

Referenser

VSFT-DynamicsNAVSE: 235403

Status

Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller".

Obs! Detta är en "SNABBPUBLICERING"-artikel skapad direkt från Microsoft support-organisationen. Informationen häri tillhandahålls i befintligt skick som svar på nya problem. Till följd av hastigheten för att göra det tillgängligt kan materialet innehålla typografiska fel och kan ändras när som helst utan föregående meddelande. Se Villkoren för användning för andra överväganden.

Författare: nhaman
Skribent: v-zhipen
Teknisk granskare: nhaman
Redigerare:

Behöver du mer hjälp?

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Microsoft Insiders

Hade du nytta av den här informationen?

Hur nöjd är du med översättningskvaliteten?

Vad påverkade din upplevelse?

Har du ytterligare feedback? (Valfritt)

Tack för din feedback!

×