(1001) státy ocenění zásob zprávu, že zboží množství je nula v době, kdy je částka hodnoty zboží není nula nesprávně v některých scénářích použití Metoda průměrného ocenění pro zboží v aplikaci Microsoft Dynamics 5.0 Service Pack 1

Platí pro: Microsoft Dynamics NAV 5.0

Tento článek se týká aplikace Microsoft Dynamics NAV ve všech zemích a všechna národní prostředí jazyka.

Příznaky


Předpokládejme, že používáte průměrné nákladové metody pro položku v aplikaci Microsoft Dynamics 5.0 Service Pack 1 (SP1). Ručně použít vstupní položky zboží odchozí položky a potom přecenit vstupní položky. V takovém případě průměrné náklady na ostatní odchozí položky vypočteny nesprávně. V některých scénářích zprávu ocenění zásob (1001) států, že množství zboží nula když částka hodnoty zboží není nula nesprávně.

Řešení


Informace o opravě hotfix

Podporovaná oprava hotfix je nyní k dispozici od společnosti Microsoft. Však je určena pouze k odstranění problému popsaného v tomto článku. Použijte ji pouze u systémů, ve kterých dochází k tomuto konkrétnímu problému. Tato oprava hotfix může být dále testována. Proto pokud jste závažně tento problém, doporučujeme počkat na další aktualizaci service pack produktu Microsoft Dynamics NAV 2009 nebo další verze produktu Microsoft Dynamics NAV, která obsahuje tuto opravu hotfix.

Poznámka: Ve zvláštních případech poplatky, které jsou třeba obvykle zaplatit za telefonní hovory mohou být stornovány, jestliže pracovník technické podpory společnosti Microsoft Dynamics a souvisejících produktů Určuje, že konkrétní aktualizace odstraní váš problém. Výdaje na technickou podporu použije dalších otázek a problémů, které nelze vyřešit konkrétní aktualizací.

Informace o instalaci

Společnost Microsoft poskytuje ukázky programování pouze pro ilustraci bez žádné záruky výslovně uvedené nebo odvozené. To zahrnuje, ale není omezen pouze na předpokládané záruky obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že jste obeznámeni s programovacím jazykem, který je předmětem ukázky a s nástroji, které slouží k vytvoření a ladění skriptu. Pracovníci podpory společnosti Microsoft mohou pomoci vysvětlit funkce určitého postupu, nemohou však následující příklady rozšířit o další funkce nebo vytvářet postupy podle vašich konkrétních požadavků.

Poznámka: Před instalací této opravy hotfix ověřte, že všichni uživatelé klienta Microsoft Navision odhlášeni systému. To zahrnuje uživatele klienta Microsoft Navision Application Services (NAS). Je třeba klienta pouze uživatel přihlášený při implementaci opravy hotfix.

Chcete-li implementovat tuto opravu hotfix, musí mít licenci vývojáře.

Doporučujeme, aby uživatelský účet v okně přihlášení systému Windows nebo v okně přihlášení databáze přidělí "SUPER" ID role. Pokud uživatelský účet nelze přiřadit ID role "SUPER", musíte ověřit, že uživatelský účet má následující oprávnění:
  • Změnit oprávnění pro objekt, který budete měnit.
  • Oprávnění ke spuštění pro System Object ID 5210 objekt a System Object ID 9015 objekt.


Poznámka: Nemáte práva k úložištím dat. Pokud nebudete provádět opravu dat.

Změny kódu

Poznámka: Vždy otestujte opravy kódu v kontrolovaném prostředí před instalací opravy v provozních počítačích.
Chcete-li vyřešit tento problém, postupujte takto:
  1. Přidejte následující globální proměnné procedura adjustace zásob (5895):
    • RevaluationPoint@1046: DOČASNÝ záznam 2000000026;
    • TempFixApplBuffer@1047: DOČASNÝ záznam 2000000026;
  2. Přidáte nový místní funkce FillFixApplBuffer v procedura adjustace zásob (5895) takto:
    LOCAL PROCEDURE FillFixApplBuffer@84(ItemLedgerEntryNo@1000 : Integer);ItemApplnEntry@1001 : Record 339;


    WITH TempFixApplBuffer DO BEGIN
    IF NOT GET(ItemLedgerEntryNo) THEN BEGIN
    IF ItemApplnEntry.AppliedOutbndEntryExists(ItemLedgerEntryNo,TRUE) THEN BEGIN
    Number := ItemLedgerEntryNo;
    INSERT;
    REPEAT
    // buffer is filled with couple of entries which are applied and contains revaluation
    Number := ItemApplnEntry."Item Ledger Entry No.";
    INSERT;
    UNTIL ItemApplnEntry.NEXT = 0;
    END;
    END;
    END;
  3. Změňte kód ve funkci AdjustItemAvgCost v procedura adjustace zásob (5895) takto:
    Existující kód
    ...UpDateWindow(WindowAdjmtLevel,WindowItem,Text008,WindowFWLevel,WindowEntry);
    WITH AvgCostAdjmtEntryPoint DO
    ...
    Změněný kód
    ...UpDateWindow(WindowAdjmtLevel,WindowItem,Text008,WindowFWLevel,WindowEntry);

    // Add the following lines.
    TempFixApplBuffer.RESET;
    TempFixApplBuffer.DELETEALL;

    RevaluationPoint.RESET;
    RevaluationPoint.DELETEALL;
    // End of the lines.

    WITH AvgCostAdjmtEntryPoint DO
    ...
  4. Změňte kód ve funkci AvgValueEntriesToAdjustExist v procedura adjustace zásob (5895) takto:
    Existující kód
    ...REPEAT
    IF "Valued By Average Cost" AND NOT Adjustment AND ("Valued Quantity" < 0) THEN BEGIN
    ...
    Změněný kód
    ...REPEAT

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

    FillFixApplBuffer("Item Ledger Entry No.");
    END;
    // End of the lines.

    IF "Valued By Average Cost" AND NOT Adjustment AND ("Valued Quantity" < 0) THEN BEGIN
    ...
  5. Změňte kód ve funkci IsExcludeEntryFromAvgCostCalc v procedura adjustace zásob (5895) takto:
    Existující kód
    ...WITH ValueEntry DO BEGIN
    IF "Partial Revaluation" THEN
    EXIT(TRUE);

    IF "Item Ledger Entry No." = OutbndValueEntry."Item Ledger Entry No." THEN
    ...
    Změněný kód
    ...WITH ValueEntry DO BEGIN

    // Add the following lines.
    // fixed application is taken out
    IF TempFixApplBuffer.GET("Item Ledger Entry No.") THEN
    EXIT(FALSE);

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

    IF "Partial Revaluation" THEN
    EXIT(TRUE);

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

    IF "Item Ledger Entry No." = OutbndValueEntry."Item Ledger Entry No." THEN
    ...

Předpoklady

Musí mít tuto opravu hotfix nainstalované následující produkty:
  • Aplikace Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)
  • Opravy hotfix 975251
    Další informace o opravě hotfix 975251 získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
    975251 můžete dojít ke snížení výkonu při provádění dávkové úlohy Adjustace nákladů pro průměrnou cenu produktu Microsoft Dynamics NAV 5.0
  • Opravy hotfix 2483636
    Další informace o opravě hotfix 2483636 získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
    2483636 sestava ocenění zásob je uvedeno, že zboží množství je nula v době, kdy je částka hodnoty zboží není nula v aplikaci Microsoft Dynamics NAV

Informace o odinstalaci

Tato oprava hotfix nelze odebrat.

Stav


Společnost Microsoft potvrdila, že se jedná o problém v produktech společnosti Microsoft, které jsou uvedeny v části "Platí pro".
Poznámka: Toto je článek "Rychlé publikování" vytvářen přímo v rámci odborné pomoci společnosti Microsoft. Informace obsažené v tomto dokumentu jsou poskytovány tak, jak je v reakci na vznikající problémy. V důsledku rychlosti v jeho zpřístupnění materiály, mohou obsahovat typografické chyby a mohou být upraveny kdykoli bez předchozího upozornění. Viz Podmínky použití pro další aspekty.