Du opplever treg ytelse når du kjører kjørselen "Juster kost for vareposter" i Microsoft Dynamics NAV


Denne artikkelen gjelder for Microsoft Dynamics NAV for alle land og alle språkinnstillingene.

Symptomer


Når du kjører kjørselen "Juster kost for vareposter", vil du oppleve treg ytelse når varer som bruker lagermetoden Gjennomsnitt og hyppig bruk av overføringer er justert. Dette problemet oppstår i følgende produkter:
  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack 1
  • Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 5.0 Service Pack 1

Oppløsning


Informasjon om hurtigreparasjon

En støttet hurtigreparasjon er nå tilgjengelig fra Microsoft. Det er imidlertid bare ment å løse problemet som er beskrevet i denne artikkelen. Bruk den bare på systemer som har dette bestemte problemet. Denne hurtigreparasjonen kan gjennomgå ytterligere testing. Hvis du ikke er alvorlig påvirket av dette problemet, anbefaler vi derfor at du venter på neste oppdateringspakke for Microsoft Dynamics NAV 2009 eller den neste versjonen av Microsoft Dynamics NAV som inneholder denne hurtigreparasjonen.

Obs! I spesielle tilfeller avgifter som vanligvis påløper for støtte samtaler kan avbrytes hvis en kundestøttemedarbeider for Microsoft Dynamics og beslektede produkter avgjør at en bestemt oppdatering løser problemet. Vanlige kundestøttekostnader gjelder for ytterligere kundestøttespørsmål og problemer som ikke dekkes av den gjeldende oppdateringen.


Installasjonsinformasjon

Microsoft bruker ment som eksempler, uten garanti, verken direkte eller indirekte. Dette inkluderer, men er ikke begrenset til, eventuelle stilltiende garantier om salgbarhet eller anvendelighet for særskilte formål. Denne artikkelen forutsetter at du er kjent med programmeringsspråket som anvendes, og verktøyene som brukes til å opprette og feilsøke prosedyrer. Microsofts kundestøtteteknikere kan hjelpe deg med å forklare funksjonaliteten til en bestemt prosedyre, men de endrer ikke disse eksemplene for å lage forbedret funksjonalitet eller lage prosedyrer som dekker dine spesifikke behov.

Obs! Før du installerer denne hurtigreparasjonen, må du kontrollere at alle brukere av Microsoft Navision-klienten er logget av systemet. Dette inkluderer Microsoft Navision Application tjenester (NAS) client-brukere. Du skal bare klient-brukeren som er logget på når du implementerer denne hurtigreparasjonen.

Hvis du vil implementere denne hurtigreparasjonen, må du ha en utviklerlisens.

Vi anbefaler at kontoen i vinduet Windows-pålogging eller i vinduet Database-pålogging være tildelt "SUPER" rolle-ID. Hvis brukerkontoen ikke kan tilordnes "SUPER" rolle-IDen, må du kontrollere at brukerkontoen har følgende tillatelser:
  • Endre-tillatelse for objektet du vil endre.
  • Tilgangsnivået for systemet objekt-IDen til 5210 objektet og systemet objekt-ID-9015 -objekt.


Obs! Du har ikke tilgangsrettigheter til datalagre med mindre du har til å utføre data reparasjon.

Kodeendringer

Obs! Alltid løser teste koden i et kontrollert miljø før du installerer hurtigreparasjoner til produksjonsdatamaskiner for.
Hvis du vil løse dette problemet, gjør du følgende:
  1. Legg til følgende lokale variabler i IsAvgCostException -funksjonen i verdi tabellen (5802):
    • ItemLedgEntry@1002: Registrere 32.
    • xItemLedgEntry@1003: post 32.
    • TempItemLedgEntry@1005: Midlertidig post 32.
    • GoThroughChain@1004: Boolsk;
  2. Endre koden i funksjonen IsAvgCostException i tabellen verdien post (5802) som følger:
    Eksisterende kode
    ...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);
    ...

    Ny kode
    ...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. Legg til følgende global variabel i lagerjustering kodeenheten (5895):
    • RevaluationPoint@1022: Midlertidig post 2000000026;
  4. Legg til følgende lokale variabler i AvgValueEntriesToAdjustExist -funksjonen i lagerjustering kodeenheten (5895):
    • CurrIsException@1009: Boolsk;
    • NextIsException@1010: Boolsk;
  5. Endre koden i AvgValueEntriesToAdjustExist -funksjonen i lagerjustering kodeenheten (5895) som følger:
    Eksisterende kode
    ...    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
    ...

    Ny kode
    ...    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. Endre koden i IsExcludeEntryFromAvgCostCalc -funksjonen i lagerjustering kodeenheten (5895) som følger:
    Eksisterende kode
    ...WITH ValueEntry DO BEGIN
    IF "Partial Revaluation" THEN
    ...

    Ny kode
    ...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
    ...

Forutsetninger

Du må ha én av de følgende programmene installert for å bruke denne hurtigreparasjonen:
  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack 1
  • Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 5.0 Service Pack 1
I tillegg må hurtigreparasjonen 2481793 installert for å bruke denne hurtigreparasjonen.
Hvis du vil ha mer informasjon, kan du klikke følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:
2481793 enhetskosten for elementer blir negativt når du kjører revalueringen på varer som bruker lagermetoden Gjennomsnitt i Microsoft Dynamics NAV

Informasjon om fjerning

Du kan ikke fjerne denne hurtigreparasjonen.

Status


Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".
Obs! Dette er en "RASKT PUBLISERE" artikkel opprettet direkte fra innenfor organisasjonen Microsoft Kundestøtte. Informasjonen i dette dokumentet tilbys som-er som svar på nye problemer. Som et resultat av hastigheten i å gjøre den tilgjengelig materialene kan inkludere typografiske feil, og den kunne bli revidert når som helst uten varsel. Se Vilkårene for Bruk for andre hensyn.