Lēna veiktspēja ir lēna, palaižot paketes darbu "Koriģēt izmaksu vienumu ierakstus" programmatūrā Microsoft Dynamics NAV

Attiecas uz
Microsoft Dynamics NAV 2009 R2 Dynamics NAV 2009 Service Pack 1 Microsoft Dynamics NAV 5.0 Service Pack 1

Šis raksts attiecas uz Microsoft Dynamics NAV visās valstīs un visu valodu lokalizācijās.

Pazīmes

Palaižot pakešuzdevumu "Koriģēt izmaksu vienumu ierakstus", lēna veiktspēja ir lēna, kad tiek koriģēti krājumi, kas izmanto vidējo izmaksu aprēķināšanas metodi un biežu pārskaitījumu lietojumu. Šī problēma rodas šādos produktos:

  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 1. servisa pakotne
  • Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 5.0 1. servisa pakotne

Risinājums

Informācija par labojumfailu

Atbalstīts labojumfails tagad ir pieejams no Microsoft. Tomēr tas ir paredzēts tikai šajā rakstā aprakstītās problēmas novēršanai. Lietojiet to tikai sistēmām, kurās rodas šī konkrētā problēma. Šim labojumfailam var tikt veiktas papildu pārbaudes. Tāpēc, ja šī problēma jūs nopietni neietekmē, ieteicams gaidīt nākamo Microsoft Dynamics NAV 2009 servisa pakotni vai nākamo Microsoft Dynamics NAV versiju, kurā ir šis labojumfails.

Piezīme Īpašos gadījumos maksa, kas parasti tiek piemērota par atbalsta zvaniem, var tikt atcelta, ja Microsoft Dynamics un saistīto produktu tehniskā atbalsta speciālists nosaka, ka problēma tiks novērsta, instalējot noteiktu atjauninājumu. Parasti atbalsta izmaksas attiecas uz jautājumiem par papildu atbalstu un problēmām, kas neskar specifisko atjauninājumu apspriešanu.

            
          

Informācija par instalāciju

Microsoft sniedz programmēšanas piemērus tikai ilustrācijai, bez tiešas vai netiešas garantijas. Tas ietver, bet neaprobežojas ar netiešām garantijām par piemērotību pārdošanai vai piemērotībai noteiktam mērķim. Šajā rakstā tiek pieņemts, ka pārzināt demonstrējamo programmēšanas valodu un rīkus, kas tiek izmantoti procedūru izveidei un atkļūdošanai. Microsoft atbalsta inženieri var palīdzēt izskaidrot konkrētās procedūras funkcionalitāti, bet viņi šos piemērus nemodificēs, lai nodrošinātu papildu funkcionalitāti vai veidotu procedūras, kas atbilst jūsu specifiskajām prasībām.

Piezīme Pirms šī labojumfaila instalēšanas pārliecinieties, vai visi Microsoft Navision klienta lietotāji ir atteikušies no sistēmas. Tas ietver Microsoft Navision lietojumprogrammu pakalpojumu (NAS) klienta lietotājus. Jūs esat vienīgais klienta lietotājs, kurš ir pieteicies, ieviešot šo labojumfailu.

Lai ieviestu šo labojumfailu, ir nepieciešama izstrādātāja licence.

Iesakām lietotāja kontam logā Windows pieteikšanās vai datu bāzes pieteikšanās logā piešķirt lomas ID "SUPER". Ja lietotāja kontam nevar piešķirt "SUPER" lomas ID, jums ir jāpārbauda, vai lietotāja kontam ir šādas atļaujas:

  • Modificēt objektu, kuru mainīsit.
  • Izpildes atļauja sistēmas objekta ID 5210 un sistēmas objekta ID 9015.

                
Piezīme. Jums nav tiesību uz datu krātuvēm, ja vien jums nav jāveic datu labošana.

Koda izmaiņas

Piezīme Pirms labojumu lietošanas ražošanas datoros vienmēr pārbaudiet koda labojumus kontrolētā vidē.
Lai atrisinātu šo problēmu, veiciet tālāk norādītās darbības.

  1. Pievienojiet tālāk norādītos lokālos mainīgos vērtības ievades tabulas (5802) funkcijai IsAvgCostException:

    • ItemLedgEntry@1002 : 32. ieraksts;
    • xItemLedgEntry@1003 : 32. ieraksts;
    • TempItemLedgEntry@1005 : PAGAIDU ieraksts 32;
    • GoThroughChain@1004 : Boolean;
  2. Mainiet kodu funkcijā IsAvgCostException vērtību ievades tabulā (5802) šādi:
    Esošais kods

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

    Aizstāšanas kods

    ...
    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. Krājumu korekcijas koda vienībai (5895) pievienojiet šādu globālo mainīgo:

    • RevaluationPoint@1022 : PAGAIDU ieraksts 2000000026;
  4. Krājumu korekcijas koda vienībā (5895) funkcijai AvgValueEntriesToAdjustExist pievienojiet šādus lokālos mainīgos:

    • CurrIsException@1009 : Boolean;
    • NextIsException@1010 : Būla vērtība;
  5. Mainiet kodu funkcijā AvgValueEntriesToAdjustExist krājumu pielāgošanas koda vienībā (5895) šādi:
    Esošais kods

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

    Aizstāšanas kods

    ...
        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. Mainiet kodu funkcijā IsExcludeEntryFromAvgCostCalc krājumu pielāgošanas koda vienībā (5895) šādi:
    Esošais kods

    ...
    WITH ValueEntry DO BEGIN
      IF "Partial Revaluation" THEN
    ...
    
    

    Aizstāšanas kods

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

Priekšnosacījumi

Lai lietotu šo labojumfailu, ir jābūt instalētam vienam no šiem produktiem:

  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 1. servisa pakotne
  • Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 5.0 1. servisa pakotne

Turklāt, lai lietotu šo labojumfailu, ir jābūt instalētam labojumfailu 2481793.
  Lai iegūtu papildinformāciju, noklikšķiniet uz tālāk norādītā raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

2481793 Krājumu vienības cena kļūst negatīva pēc pārvērtēšanas veikšanas krājumiem, kuros tiek izmantota vidējās izmaksu aprēķināšanas metode programmā Microsoft Dynamics NAV

Noņemšanas informācija

Šo labojumfailu nevar noņemt.

Statuss

Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".

Piezīme Šis ir "ĀTRĀS PUBLICĒŠANAS" raksts, kas izveidots tieši Microsoft atbalsta organizācijā. Šeit ietvertā informācija tiek sniegta tāda, kāda tā ir, reaģējot uz jauniem jautājumiem. Ātrās pieejamības rezultātā materiālos var būt drukas kļūdas, un tos var pārskatīt jebkurā laikā bez iepriekšēja brīdinājuma. Citus apsvērumus skatiet lietošanas nosacījumos .