Šablóna: CPR - Navision kód opraviť šablóny

BUG #: 140208 (údržby)

Tento článok sa vzťahuje na Microsoft Dynamics NAV pre všetky krajiny a všetky jazykové locales.

Príznaky

Predpokladajme, že úloha denníka, ktorý má viac ako jednu položku riadky pre položku Microsoft Dynamics NAV 2009 sledovania. Pri účtovaní položky v denníku projektu bin, skladové položky len aktualizovaný s poslednou položkou Sledovanie riadok, ktorý je zadaný. Preto existuje prinesie položky skladu a položky tovaru.
Tento problém sa vyskytuje v nasledovných produktov:

  • Microsoft Dynamics NAV 2009 R2

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)


Riešenie

Informácie o rýchlej oprave

Rýchla oprava je k dispozícii od spoločnosti Microsoft. Je však určená iba opraviť problém popísaný v tomto článku. Použite ju iba v počítačoch s týmto konkrétnym problémom. Môže, že táto rýchla oprava bude ďalej testovaná. Ak vám nespôsobuje tento problém, odporúčame vám počkať na ďalší balík service pack pre Microsoft Dynamics NAV alebo ďalšej verzii Microsoft Dynamics NAV, ktorá obsahuje túto rýchlu opravu.

Poznámka: V špeciálnych prípadoch sa poplatky, ktoré sú telefonickú podporu nemusia účtovať ak technickú podporu Professional pre Microsoft Dynamics a súvisiace produkty zistí, že táto konkrétna aktualizácia vyrieši váš problém. Ďalšie otázky a žiadosti o technickú podporu, ktoré sa netýkajú tejto špecifickej aktualizácie, podliehajú bežným sadzbám za poskytovanie technickej podpory.

Ak táto rýchla oprava nie je verejne prístupná na prevzatie (čo znamená, v tomto článku sa neuvádza verejná adresa URL pre túto rýchlu opravu), distribúcia vyžaduje technické vedenie, členom eskalačného tímu alebo nadriadeným a platí nasledovné:

  • Získať rýchlu opravu, musí zákazníkov vyskytujú chyby, ktoré je spomenuté v časti "Príznaky".

  • Musíte sledovať zákazníkov to Odoslať a dodať im najnovší balík service pack po sprístupnení (v prípade, že takýto balík vydaný).

Táto rýchla oprava sa neplánuje ako súčasť balíka service pack pre systém Microsoft Dynamics NAV 2009.



Informácie o inštalácii

Spoločnosť Microsoft poskytuje príklady programovacieho kódu len ako názornú ukážku bez vyjadrených či predpokladaných záruk. Tie okrem iného zahŕňajú predpokladané záruky obchodovateľnosti alebo vhodnosti na konkrétny účel. Tento článok predpokladá, že ovládate predvádzaný programovací jazyk a nástroje, ktoré sa používajú na vytváranie a ladenie procedúr. Pracovníci technickej podpory spoločnosti Microsoft vám môžu vysvetliť fungovanie konkrétneho postupu, ale neupravia tieto príklady s cieľom poskytnutia pridanej funkčnosti ani nevytvoria procedúry zohľadňujúce vaše konkrétne požiadavky.

Poznámka: Pred inštaláciou tejto rýchlej opravy sa overiť, že všetky Microsoft Navision klienta používatelia odhlásení systému. Toto zahŕňa používateľov klienta Microsoft Navision aplikácie služby (NAS). Mali by ste byť iba klient prihláseného používateľa je pri implementácii túto rýchlu opravu.

Vykonávať túto rýchlu opravu, musíte mať licencie pre vývojárov.

Odporúčame, aby používateľského konta v okne prihlásenia systému Windows alebo v okne prihlásenia do databázy pridelí "SUPER" úlohu ID. Ak používateľské konto nemožno priradiť úlohu ID "SUPER", musíte overiť, že používateľské konto má nasledujúce povolenia:

  • Zmeniť povolenia pre objekt, ktorý sa zmení.

  • Povolenia na vykonanie systému objekt ID 5210 a systém objekt ID 9015 objektu.



Poznámka: Nemusíte mať práva ukladá údaje, pokiaľ budete musieť vykonať opravy údajov.

Zmeny kódu

Poznámka: Vždy skúšobný opravy v prostredí kontrolované pred použitím opravy výroby počítačov.
Ak chcete vyriešiť tento problém, postupujte nasledovne: vytvoriť nasledujúce lokálne premenné:

  1. Pridanie novej globálnej premennej v tabuľke Riadok denníka projektu (210) a potom zadajte premennej takto:

    • Meno: WMSManagement

    • Údajový typ: procedúra

    • Podtyp: WMS Management (7302)

  2. Odstrániť nasledujúci kód vlastnosť TableRelation Kód priehradky polí (5403) v tabuľke Riadok denníka projektu (210):

    Bin.Code WHERE (Location Code=FIELD(Location Code));
  3. Zmena kódu v overovaniespúšť pre kód priehradky polí (5403) v tabuľke Riadok denníka projektu (210) nasledovne:
    Existujúci kód

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

    Nahradenie kódu

    ...// 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. Pridať nový lokálne premenné v Kód priehradky - OnLookup triggerin v tabuľke Riadok denníka projektu (210) a potom zadajte premennej takto:

    • Meno: BinCode

    • Údajový typ: kód

    • Dĺžka: 20

  5. Pridajte nasledovný kód do spúšťací Kód priehradky - OnLookup v tabuľke Riadok denníka projektu (210):

    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. Zmeňte hodnotu OptionString vlastnosť poľa Zdroj dokumentu (25) v tabuľke Riadok denníka skladu (7311) takto:
    OptionString=, S. poradí S. faktúry S. dobropis, S. vrátiť poradie, P. objednávky, P. faktúry, P. dobropis, P. návrat poradí, Inb. Prenos Outb. Prenos Prod. Spotreba, položka denníka, fyz.inventúry. Denníka, preradenia. Denníka, spotreba denníka, výstup denníka, Kusovník denníka, Serv objednávky, práca denníkov.

  7. Zmeňte hodnotu OptionString vlastnosť Názov poľa (60) v tabuľke Riadok denníka skladu (7311) takto:
    OptionString= , Publikované tovaru P. faktúry, Publikované príj.návratky,účtovaný tovaru P. dobropisu, Účtovaná dodávka, účtovaná Publikované príj.návratky,účtovaný zásielku Publikované príj.transferu,účtovaná Publikované T. príjem, Účtovaná dodávka T., položka denníka, výroba, naskladnenie, vyskladnenie, pohyb, Kusovník denníka projektov

  8. Zmeňte hodnotu OptionString vlastnosť poľa zdroj dokumentu (25) v tabuľke Položka skladu (7312) takto:
    OptionString=, S. poradí S. faktúry S. dobropis, S. vrátiť poradie, P. objednávky, P. faktúry, P. dobropis, P. návrat poradí, Inb. Prenos Outb. Prenos Prod. Spotreba, položka denníka, fyz.inventúry. Denníka, preradenia. Denníka, spotreba denníkov. výstup denníka, Kusovník denníka, servisnej objednávky, práca denníkov.

  9. Zmeňte hodnotu OptionString vlastnosť názov poľa (60) v tabuľke Položka skladu (7312) takto:
    OptionString= , Publikované tovaru P. faktúry, Publikované príj.návratky,účtovaný tovaru P. dobropisu, Účtovaná dodávka, účtovaná Publikované príj.návratky,účtovaný zásielku Publikované príj.transferu,účtovaná Publikované T. príjem, Účtovaná dodávka T., položka denníka, výroba, naskladnenie, vyskladnenie, pohyb, Kusovník denníka projektov

  10. Zmeniť vlastnosť ovládacieho prvku kód miesta (60) vo formulári denníkom (201):
    Existujúci kód

    Visible = Yes

    Nahradenie kódu

    Visible = No
  11. Pridanie poľa Kód priehradky v poli Umiestnenie kód a pole Kód typu práce formou denníkom (201) a potom zadajte pole takto:

    ...{ 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. Pridať novú globálnu premennú prácu denníkov.-Post riadok procedúra (1012), a potom zadajte premennej takto:

    • Meno: umiestnenie

    • Údajový typ: záznam

    • Podtyp: umiestnenie (14)

  13. Vytvorte novú funkciu GetLocation prácu denníkov.-Post riadok procedúra (1012) takto:

    LOCAL PROCEDURE GetLocation@25(LocationCode@1000 : Code[10]);
  14. Pridajte nasledujúci kód vo funkcii GetLocation prácu denníkov.-Post riadok procedúra (1012):

    IF LocationCode = '' THENCLEAR(Location)
    ELSE
    IF Location.Code <> LocationCode THEN
    Location.GET(LocationCode);
  15. Vytvorte novú funkciu PostWhseJnlLine prácu denníkov.-Post riadok procedúra (1012) takto:

    LOCAL PROCEDURE PostWhseJnlLine@24(ItemJnlLine@1000 : Record 83;OriginalQuantity@1001 : Decimal;OriginalQuantityBase@1002 : Decimal;VAR TempTrackingSpecification@1003 : TEMPORARY Record 336);
  16. Vytvoriť nasledujúce lokálne premenné funkcie PostWhseJnlLine prácu denníkov.-Post riadok procedúra (1012):

    1. Pridať lokálnu premennú PostWhseJnlLine funkcie na prácu denníkov.-Post riadok procedúra (1012), a potom zadajte premennej takto:

      • Meno: WarehouseJournalLine

      • Údajový typ: záznam

      • Podtyp: riadka denníka skladu (7311)

    2. Pridať lokálnu premennú PostWhseJnlLine funkcie na prácu denníkov.-Post riadok procedúra (1012), a potom zadajte premennej takto:

      • Meno: TempWarehouseJournalLine

      • Údajový typ: Dočasný záznam

      • Podtyp: riadka denníka skladu (7311)

    3. Pridať lokálnu premennú PostWhseJnlLine funkcie na prácu denníkov.-Post riadok procedúra (1012), a potom zadajte premennej takto:

      • Meno: ItemTrackingManagement

      • Údajový typ: procedúra

      • Podtyp: položka sledovania správy (6500)

    4. Pridať lokálnu premennú PostWhseJnlLine funkcie na prácu denníkov.-Post riadok procedúra (1012), a potom zadajte premennej takto:

      • Meno: WMSManagement

      • Údajový typ: procedúra

      • Podtyp: WMS Management (7302)

    5. Pridať lokálnu premennú PostWhseJnlLine funkcie na prácu denníkov.-Post riadok procedúra (1012), a potom zadajte premennej takto:

      • Meno: WhseJnlRegisterLine

      • Údajový typ: procedúra

      • Podtyp: skladu. Denník-registrovať riadok (7301)

  17. Pridajte nasledujúci kód vo funkcii PostWhseJnlLine prácu denníkov.-Post riadok procedúra (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. Pridať nový lokálne premenné funkcie kód úlohy denníkov.-Post riadok procedúra (1012), a potom zadajte premennej takto:

    • Meno: TempTrackingSpecification

    • Údajový typ: Dočasný záznam

    • Podtyp: Špecifikácia sledovania (336)

  19. Pridať nový lokálne premenné funkcie kód úlohy denníkov.-Post riadok procedúra (1012), a potom zadajte premennej takto:

    • Meno: ItemJnlLine2

    • Údajový typ: záznam

    • Podtyp: riadka denníka tovaru (83)

  20. Zmeňte kód v kód funkcia prácu denníkov.-Post riadok procedúra (1012) takto:
    Nahradenie kód 1

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

    Nahradenie kód 1

    ...ItemJnlLine.INIT;

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

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

    Existujúci kód 2

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

    Nahradenie 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. Zmeňte hodnotu OptionString vlastnosť parametra názov funkcie GetSourceDocument v. Správa procedúra (5775) nasledovné:
    OptionString=, S. poradí S. faktúry S. dobropis, S. vrátiť poradie, P. objednávky, P. faktúry, P. dobropis, P. návrat poradí, Inb. Prenos Outb. Prenos Prod. Spotreba, položka denníka, fyz.inventúry. Denníka, preradenia. Denníka, spotreba denníkov. výstup denníka, Kusovník denníka, servisnej objednávky, práca denníkov.

  22. Zmena kódu v GetSourceDocument funkcia v. Správa procedúra (5775) nasledovne:
    Existujúci kód

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

    Nahradenie kódu

    ...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. Zmena kódu v CreateWhseJnlLine funkcia v procedúra WMS Management (7302) takto:
    Existujúci 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.";
    ...

    Nahradenie kódu

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

Požiadavky

Musíte mať jednu z nasledovných produktov nainštalovaný chcete použiť túto rýchlu opravu:

  • Microsoft Dynamics NAV 2009 R2

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Informácie o odstránení

Nemôžete odstrániť túto rýchlu opravu.

Odkazy

VSTF DynamicsNAVSE: 235403

Stav

Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.

Poznámka: To je "Rýchlo publikovať" článok vytvorené priamo v rámci organizácie technickej podpory spoločnosti Microsoft. Uvedené informácie sa poskytuje ako-v reakcii na naliehavé problémy. Rýchlosťou robiť materiály môžu obsahovať typografické chyby a môžu byť kedykoľvek bez predchádzajúceho upozornenia. Prečítajte si Podmienky používania z iných dôvodov.

Autor: nhaman
Writer: v-zhipen
Tech Reviewer: nhaman
Editor:

Potrebujete ďalšiu pomoc?

Rozšírte svoje zručnosti
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pripojiť k Microsoft insiderov chcú

Považujete poskytnuté informácie za užitočné?

Aká je podľa vás kvalita prekladu?
Čo sa vám páčilo a čo nie?

Ďakujem za vaše pripomienky!

×