Datorn är långsam när du kör batch-jobbet "Justera kostnaden objekt." i Microsoft Dynamics NAV


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

Symptom


När du kör batch-jobbet "Justera kostnaden objekt." väldigt långsamt när artiklar som använder värderingsprincipen Genomsnitt och frekvent användning av överföringar är justerade. Det här problemet uppstår i följande produkter:
  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 servicepack 1
  • Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 5.0 servicepack 1

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 2009 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.


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:
  1. Lägg till följande lokala variabler i funktionen IsAvgCostException i tabellen Värdetransaktion (5802):
    • ItemLedgEntry@1002: Posten 32.
    • xItemLedgEntry@1003: posten 32.
    • TempItemLedgEntry@1005: Temporär post 32.
    • GoThroughChain@1004: Boolean;
  2. Ändra koden i funktionen IsAvgCostException i tabellen Värdetransaktion (5802) enligt följande:
    Befintlig kod
    ...IF "Partial Revaluation" THEN
    EXIT(TRUE);

    // Delete the following lines.
    IF "Item Ledger Entry Type" = "Item Ledger Entry Type"::Transfer THEN
    EXIT(TRUE);
    IF ItemApplnEntry.AppliedInbndEntryExists("Item Ledger Entry No.",TRUE) THEN
    EXIT(TRUE);
    // End of the lines.

    EXIT(FALSE);
    ...

    Ersättningskod
    ...IF "Partial Revaluation" THEN
    EXIT(TRUE);

    // Add the following lines.
    IF "Item Ledger Entry Type" = "Item Ledger Entry Type"::Consumption THEN
    GoThroughChain := ItemApplnEntry.AppliedFromEntryExists("Item Ledger Entry No.")
    ELSE
    GoThroughChain := ItemApplnEntry.AppliedInbndEntryExists("Item Ledger Entry No.",TRUE);

    IF GoThroughChain THEN
    REPEAT
    IF "Item Ledger Entry Type" = "Item Ledger Entry Type"::Transfer THEN
    ItemLedgEntry.GET(ItemApplnEntry."Inbound Item Entry No.")
    ELSE
    ItemLedgEntry.GET(ItemApplnEntry."Outbound Item Entry No.");
    IF ItemLedgEntry."Entry No." <> xItemLedgEntry."Entry No." THEN BEGIN
    xItemLedgEntry := ItemLedgEntry;
    ItemApplnEntry.GetVisitedEntries(ItemLedgEntry,TempItemLedgEntry);
    TempItemLedgEntry.SETCURRENTKEY("Item No.",Positive,"Location Code","Variant Code");
    TempItemLedgEntry.SETRANGE("Item No.","Item No.");
    TempItemLedgEntry.SETRANGE(Positive,TRUE);
    TempItemLedgEntry.SETRANGE("Location Code","Location Code");
    TempItemLedgEntry.SETRANGE("Variant Code","Variant Code");
    IF NOT TempItemLedgEntry.ISEMPTY THEN
    EXIT(TRUE);
    END;
    UNTIL ItemApplnEntry.NEXT = 0;
    // End of the lines.



    EXIT(FALSE);
    ...

  3. Lägg till den globala variabeln i lagerjustering kodmodul (5895):
    • RevaluationPoint@1022: Temporär post 2000000026;
  4. Lägg till följande lokala variabler i funktionen AvgValueEntriesToAdjustExist i lagerjustering kodmodul (5895):
    • CurrIsException@1009: Boolean;
    • NextIsException@1010: Boolean;
  5. Ändra koden i funktionen AvgValueEntriesToAdjustExist i lagerjustering kodmodul (5895) enligt följande:
    Befintlig kod
    ...    END;

    FINDSET;
    REPEAT
    IF "Valued By Average Cost" AND NOT Adjustment AND ("Valued Quantity" < 0) THEN BEGIN
    OutbndValueEntry := ValueEntry;
    OutbndValueEntry.INSERT;
    FindNextRange := FALSE;
    END;

    // Delete the following lines.
    IF IsAvgCostException THEN BEGIN
    AvgCostExceptionBuf.Number := "Entry No.";
    AvgCostExceptionBuf.INSERT;
    END;
    // End of the lines.

    IF ("Entry Type" = "Entry Type"::Revaluation) OR
    ...

    Ersättningskod
    ...    END;

    CLEAR(RevaluationPoint);
    RevaluationPoint.DELETEALL;



    FINDSET;
    REPEAT

    // Add the following lines.
    IF "Partial Revaluation" THEN BEGIN
    RevaluationPoint.Number := "Entry No.";
    RevaluationPoint.INSERT;
    END;
    // End of the lines.

    IF "Valued By Average Cost" AND NOT Adjustment AND ("Valued Quantity" < 0) THEN BEGIN
    OutbndValueEntry := ValueEntry;
    OutbndValueEntry.INSERT;
    FindNextRange := FALSE;
    END;

    // Add the following lines.
    IF NOT Adjustment THEN BEGIN
    CurrIsException := NextIsException;
    NextIsException := IsAvgCostException;
    IF NextIsException OR CurrIsException THEN BEGIN
    AvgCostExceptionBuf.Number := "Entry No.";
    AvgCostExceptionBuf.INSERT;
    END;
    END;
    // End of the lines.

    IF ("Entry Type" = "Entry Type"::Revaluation) OR
    ...

  6. Ändra koden i funktionen IsExcludeEntryFromAvgCostCalc i lagerjustering kodmodul (5895) enligt följande:
    Befintlig kod
    ...WITH ValueEntry DO BEGIN
    IF "Partial Revaluation" THEN
    ...

    Ersättningskod
    ...WITH ValueEntry DO BEGIN

    // Add the following lines.
    RevaluationPoint.SETRANGE(Number,"Entry No.",OutbndValueEntry."Entry No.");
    IF NOT RevaluationPoint.ISEMPTY THEN
    EXIT(FALSE);
    // End of the lines.


    IF "Partial Revaluation" THEN
    ...

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
  • Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 5.0 servicepack 1
Dessutom måste du ha snabbkorrigering 2481793 installerat för att kunna installera den här snabbkorrigeringen.
För mer information klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
2481793 styckkostnaden för artiklarna blir negativt när du kör omvärderingen på artiklar som använder värderingsprincipen Genomsnitt i Microsoft Dynamics NAV

Information om borttagning

Du kan inte ta bort den här snabbkorrigeringen.

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.