Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den,
Vyberte jiný účet.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.

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ádá, že máte deníku projektů, který má více řádků pro zboží v produktu Microsoft Dynamics NAV 2009 sledování zboží. Při zaúčtování položky v deníku projektů do přihrádky položky skladu pouze aktualizován poslední řádek, který je zadán sledování zboží. Je tedy nerovnováha mezi skladu a položky zboží položky.
K tomuto problému dochází v následujících produktů:

  • Aplikace Microsoft Dynamics NAV 2009 R2

  • Aplikace Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)


Ř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 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: Vytvořte následující místní proměnné:

  1. Přidat novou globální proměnnou v tabulce Řádek deníku projektů (210) a potom zadejte proměnné takto:

    • Název: WMSManagement

    • Datový typ: procedura

    • Podtyp: Správa WMS (7302)

  2. Odstranit následující kód do vlastnosti TableRelation Kód přihrádky pole (5403) v tabulce Řádek deníku projektů (210):

    Bin.Code WHERE (Location Code=FIELD(Location Code));
  3. Změnit kód v aktivační událost OnValidate pro kód přihrádky pole (5403) v tabulce Řádek deníku projektů (210) následujícím způsobem:
    Existující kód

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

    Změněný kód

    ...// 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. Přidat novou místní proměnnou v triggerin OnLookup Kód přihrádky - v tabulce Řádek deníku projektů (210) a potom zadejte proměnné takto:

    • Název: BinCode

    • Datový typ: kód

    • Délka: 20

  5. V OnLookup aktivační Kód přihrádky - v tabulce Řádek deníku projektů (210) přidejte následující kód:

    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. Změňte hodnotu v vlastnost řetězec možností Zdrojového dokumentu pole (25) v tabulce Řádek deníku skladu (7311) následující:
    Řetězec možností= S., objednávka, faktura S., S. dobropis, prod.objednávka,prod.faktura,prod.dobropis,obj.prod.vratky,nák.objednávka,nák.faktura,nák.dobropis,obj.nák.vratky,vstupní, P. objednávky, faktury P., P. dobropis, objednávku vratky P., Deník kusovníků,serv.zakázka. V přenos Outb. Převod výr. Inventury spotřeby položky deníku. Fin.deníku, Deník přeřazení. Fin.deníku, Spotřeba deníku. výstup fin.deníku, Kusovníku fin.deníku, servisní zakázce, úloha deníku.

  7. Změňte hodnotu v vlastnost řetězec možností Odkaz na dokument pole (60) v tabulce Řádek deníku skladu (7311) následující:
    Řetězec možností= , Účtovaná fakt P., Účtovaná nák.faktura,Účtovaná P. dobropis, Účtovaná dodávka, Účtovaná fakt S., Účtovaná nák.faktura,Účtovaná dodávka, Účtovaná S. dobropis, příjemka, dodávka, položky deníku, výroba, zaskladnění, vyskladnění, přesun, deník Kusovníků, deník projektů

  8. Změňte hodnotu v vlastnost řetězec možností zdrojového dokumentu pole (25) v tabulce Položka skladu (7312) následujícím způsobem:
    Řetězec možností= S., objednávka, faktura S., S. dobropis, prod.objednávka,prod.faktura,prod.dobropis,obj.prod.vratky,nák.objednávka,nák.faktura,nák.dobropis,obj.nák.vratky,vstupní, P. objednávky, faktury P., P. dobropis, objednávku vratky P., Deník kusovníků,serv.zakázka. V přenos Outb. Převod výr. Inventury spotřeby položky deníku. Fin.deníku, Deník přeřazení. Fin.deníku, Spotřeba deníku. výstup fin.deníku, Kusovníku deníku. servisní zakázky, projektu, deníku.

  9. Změňte hodnotu v vlastnost řetězec možností odkaz na dokument pole (60) v tabulce Položka skladu (7312) následujícím způsobem:
    Řetězec možností= , Účtovaná fakt P., Účtovaná nák.faktura,Účtovaná P. dobropis, Účtovaná dodávka, Účtovaná fakt S., Účtovaná nák.faktura,Účtovaná dodávka, Účtovaná S. dobropis, příjemka, dodávka, položky deníku, výroba, zaskladnění, vyskladnění, přesun, deník Kusovníků, deník projektů

  10. Změňte vlastnost Visible ovládacího prvku kód lokace (60) ve formuláři deníku projektu (201) takto:
    Existující kód

    Visible = Yes

    Změněný kód

    Visible = No
  11. Přidat až pole Kód typu práce z pole Kód lokace pole Kód přihrádky v deníku projektů formuláře (201) a potom zadejte pole jako postupujte podle:

    ...{ 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. Přidat novou globální proměnnou v úloha deníku.-Post řádku procedura (1012) a potom zadejte proměnné takto:

    • Název: umístění

    • Datový typ: záznam

    • Podtyp: umístění (14)

  13. Vytvořit novou funkci GetLocation v deníku práce.-Post řádku procedura (1012) takto:

    LOCAL PROCEDURE GetLocation@25(LocationCode@1000 : Code[10]);
  14. Přidejte následující kód ve funkci GetLocation v úloha deníku.-Post řádku procedura (1012):

    IF LocationCode = '' THENCLEAR(Location)
    ELSE
    IF Location.Code <> LocationCode THEN
    Location.GET(LocationCode);
  15. Vytvořit novou funkci PostWhseJnlLine v deníku práce.-Post řádku procedura (1012) takto:

    LOCAL PROCEDURE PostWhseJnlLine@24(ItemJnlLine@1000 : Record 83;OriginalQuantity@1001 : Decimal;OriginalQuantityBase@1002 : Decimal;VAR TempTrackingSpecification@1003 : TEMPORARY Record 336);
  16. Vytvořit následující místní proměnné ve funkci PostWhseJnlLine v projektu deníku.-Post řádku procedura (1012):

    1. Přidat místní proměnné ve funkci PostWhseJnlLine v projektu deníku.-Post řádku procedura (1012) a potom zadejte proměnné takto:

      • Název: WarehouseJournalLine

      • Datový typ: záznam

      • Podtyp: řádek deníku skladu (7311)

    2. Přidat místní proměnné ve funkci PostWhseJnlLine v projektu deníku.-Post řádku procedura (1012) a potom zadejte proměnné takto:

      • Název: TempWarehouseJournalLine

      • Datový typ: dočasný záznam

      • Podtyp: řádek deníku skladu (7311)

    3. Přidat místní proměnné ve funkci PostWhseJnlLine v projektu deníku.-Post řádku procedura (1012) a potom zadejte proměnné takto:

      • Název: ItemTrackingManagement

      • Datový typ: procedura

      • Podtyp: Správa sledování zboží (6500)

    4. Přidat místní proměnné ve funkci PostWhseJnlLine v projektu deníku.-Post řádku procedura (1012) a potom zadejte proměnné takto:

      • Název: WMSManagement

      • Datový typ: procedura

      • Podtyp: Správa WMS (7302)

    5. Přidat místní proměnné ve funkci PostWhseJnlLine v projektu deníku.-Post řádku procedura (1012) a potom zadejte proměnné takto:

      • Název: WhseJnlRegisterLine

      • Datový typ: procedura

      • Podtyp: skladu. Deník-evidování řádku (7301)

  17. Přidejte následující kód ve funkci PostWhseJnlLine v projektu deníku.-Post řádku procedura (1012) takto:

    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. Přidat novou místní proměnnou ve funkci kódu v projektu deníku.-Post řádku procedura (1012) a potom zadejte proměnné takto:

    • Název: TempTrackingSpecification

    • Datový typ: dočasný záznam

    • Podtyp: Specifikace sledování (336)

  19. Přidat novou místní proměnnou ve funkci kódu v projektu deníku.-Post řádku procedura (1012) a potom zadejte proměnné takto:

    • Název: ItemJnlLine2

    • Datový typ: záznam

    • Podtyp: řádek deníku zboží (83)

  20. Změňte kód ve funkci kódu v projektu deníku.-Post řádku procedura (1012) následujícím způsobem:
    Existující kód 1

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

    Změněný kód 1

    ...ItemJnlLine.INIT;

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

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

    Existující kód 2

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

    Náhradní kód 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. Změňte hodnotu v vlastnost řetězec možností dokumentu Referenční parametr ve funkci GetSourceDocument v interní zaskladnění. Správy procedura (5775) takto:
    Řetězec možností= S., objednávka, faktura S., S. dobropis, prod.objednávka,prod.faktura,prod.dobropis,obj.prod.vratky,nák.objednávka,nák.faktura,nák.dobropis,obj.nák.vratky,vstupní, P. objednávky, faktury P., P. dobropis, objednávku vratky P., Deník kusovníků,serv.zakázka. V přenos Outb. Převod výr. Inventury spotřeby položky deníku. Fin.deníku, Deník přeřazení. Fin.deníku, Spotřeba deníku. výstup fin.deníku, Kusovníku deníku. servisní zakázky, projektu, deníku.

  22. Změňte kód ve funkci GetSourceDocument v interní zaskladnění. Správy procedura (5775) následujícím způsobem:
    Existující kód

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

    Změněný kód

    ...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. Změňte kód ve funkci CreateWhseJnlLine v procedura Správa WMS (7302) jako postupujte podle:
    Existující kód

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

    Změněný kód

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

Předpoklady

Musí mít jednu z následujících produktů nainstalovali tuto opravu hotfix:

  • Aplikace Microsoft Dynamics NAV 2009 R2

  • Aplikace Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

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.

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?
Po stisknutí tlačítka pro odeslání se vaše zpětná vazba použije k vylepšování produktů a služeb Microsoftu. Váš správce IT bude moci tato data shromažďovat. Prohlášení o zásadách ochrany osobních údajů.

Děkujeme vám za zpětnou vazbu.

×