Šis straipsnis taikomas Microsoft Dynamics NAV visų kalbų aplinkos.
Požymiai
Užsakymų planavimo funkcija apskaičiuoja neteisingą "Kiekis tvarka" pasiūlymus padaryti užsakymą aplinkoje naudojant Microsoft Dynamics NAV Ši problema kyla, jei naudojate kelių lygių Komplektavimo specifikacija (KS).
Ši problema iškyla faile šiems produktams:
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 1 pakeitimų paketas (SP1)
-
Microsoft Dynamics NAV 2009
-
Microsoft Dynamics NAV 5.0 1 pakeitimų paketas (SP1)
Priežastis
Sistema naudoja rekursinė funkcija, kuri visada pakeičia kiekis rasti elemento (KS sukuria "tree", kai kai kurie elementai gali atsirasti vieną arba kelis kartus). Tačiau tai yra neteisinga funkcija, nes visi vaikai atnaujintų elemento turėtų būti panaikinti arba atnaujinti.
Sprendimas
Karštųjų pataisų informacija
Palaikomą naujausią pataisą dabar yra Microsoft. Tačiau jos skirtos tik šiame straipsnyje aprašytai problemai spręsti. Taikyti ją tik sistemoms, kuriose kyla ši konkreti problema. Šios karštosios pataisos gali būti papildomai išbandoma. Todėl, jei jums nelabai trukdo Ši problema, rekomenduojame palaukti kito "Microsoft Dynamics NAV 2009" pakeitimų paketo arba kitą versiją Microsoft Dynamics NAV, kuriame bus šios karštosios pataisos.
Pastaba. Konkrečiais atvejais už palaikymo skambučius gali būti atšaukti, jei techninės pagalbos specialistas Microsoft Dynamics ir susijusių produktų taikomi įprasti mokesčiai nustato, kad jūsų problemą galima išspręsti naudojant konkretų naujinimą. Į įprastos kainos už palaikymą taikomos papildomos palaikymo klausimams ir problemoms, kurių negalima išspręsti naudojant minėtą naujinimą.
Diegimo informacija
Microsoft pateikia programavimo pavyzdžius tik, tačiau nesuteikia jokių aiškių arba numanomų garantijų. Tai apima, bet neapsiribojant, numanomas garantijas dėl perkamumo ir tinkamumo konkrečiam tikslui. Šis straipsnis parašytas galvojant, kad esate susipažinę su pateikta programavimo kalba ir įrankiais, kurie yra naudojami procedūroms kurti ir derinti. "Microsoft" palaikymo inžinieriai gali padėti paaiškindami tam tikros procedūros funkcinę galimybę, tačiau jie nekeis šių pavyzdžių, kad numatytų papildomą funkcinę galimybę arba sukurtų konkrečius jūsų reikalavimus atitinkančias procedūras.
Pastaba. Prieš diegdami šias karštąsias pataisas, patikrinkite, kad visi Microsoft Navision klientas vartotojai išsiregistravę sistema. Tai reiškia, kad Microsoft Navision programos paslaugos (NAS) kliento naudotojai. Jums turėtų būti tik kliento vartotojo, kuris yra prisijungęs, kai atliekate šias karštąsias pataisas.
Norint pritaikyti šią karštąją pataisą, turite programų kūrėjo licencijos.
Rekomenduojame, kad vartotojo abonemento Windows registravimosi lange arba duomenų bazės prisijungimų langas priskirti "SUPER" vaidmenį ID. Jei vartotojo abonementas negali būti priskirta "SUPER" ID., turi patikrinti, kad vartotojo abonementas turi šias teises:
-
Keisti teisės objektas, kuris bus pakeisti.
-
Teisės vykdyti sistemos objekto ID 5210 objekto ir sistemos objekto ID 9015 objekto.
Pastaba. Jūs neturite turėti teisių į duomenų parduotuvių, nebent jūs turite atlikti duomenų atkūrimo.
Pastaba.
Pastaba. Visada bandymas kodas nustato kontroliuojamoje aplinkoje prieš taikydami nustato savo gamybos kompiuteriams.
Norėdami išspręsti šią problemą, atlikite šiuos veiksmus:
-
Sukurkite vietinį funkcija UpdateRelatedComponent Kodinys (99000809):
...LOCAL PROCEDURE UpdateRelatedComponent@15(ParentReqLine@1000 : Record 246);
WITH PlanningComponent DO BEGIN
SETCURRENTKEY("Worksheet Template Name","Worksheet Batch Name","Worksheet Line No.","Item No.");
SETRANGE("Worksheet Line No.",ParentReqLine."Line No.");
SETFILTER("Item No.",'<>%1','');
SETFILTER("Expected Quantity",'<>0');
SETFILTER("Planning Level Code",'<>0');
IF FIND('-') THEN
REPEAT
IF LineHasBeenCreated(ChildReqLine,PlanningComponent) THEN BEGIN
UpdateRelatedComponent(ChildReqLine);
IF ChildReqLine.Quantity <> "Expected Quantity" THEN BEGIN
// qty has to be updated, there is a new need of component
ChildReqLine.BlockDynamicTracking(Blocked);
ChildReqLine.VALIDATE(Quantity,ChildReqLine.Quantity - "Expected Quantity");
ChildReqLine.MODIFY;
// updating qty of component for parent
VALIDATE("Quantity per","Quantity per");
MODIFY;
END ELSE
// line will be recreated
ChildReqLine.DELETE(TRUE);
END;
UNTIL NEXT = 0;
END;
...
Funkcija įtraukti šiuos parametrus:-
Pavadinimas: PlanningComponent; Duomenų tipas: Įrašas (99000829)
-
Pavadinimas: ChildReqLine; Duomenų tipas: Įrašas (246)
-
-
Sukurkite vietinį funkcija LineHasBeenCreated Kodinys (99000829):
...LOCAL PROCEDURE LineHasBeenCreated@18(VAR ChildReqLine@1000 : Record 246;PlanningComponent@1001 : Record 99000829) : Boolean;
WITH ChildReqLine DO BEGIN
SETCURRENTKEY("Worksheet Template Name","Journal Batch Name",Type,"No.");
SETRANGE("Worksheet Template Name",PlanningComponent."Worksheet Template Name");
SETRANGE("Journal Batch Name",PlanningComponent."Worksheet Batch Name");
SETRANGE(Type,Type::Item);
SETRANGE("No.",PlanningComponent."Item No.");
SETRANGE("Variant Code",PlanningComponent."Variant Code");
SETRANGE("Ref. Order Type","Ref. Order Type"::"Prod. Order");
SETRANGE("Ref. Order Status",PlanningComponent."Ref. Order Status");
SETRANGE("Ref. Order No.",PlanningComponent."Ref. Order No.");
SETFILTER("Planning Level",'>%1',0);
EXIT(FINDFIRST);
END;
... -
Pakeisti InsertPlanningLine funkcija, Kodinys (99000809):
Esamas kodas... IF ReqLine2."Planning Level" < ReqLine."Planning Level" THEN
ReqLine2."Planning Level" := ReqLine."Planning Level";
ReqLine2.MODIFY;
...Pastaba.
... IF ReqLine2."Planning Level" <ReqLine."Planning Level" THEN
ReqLine2."Planning Level" := ReqLine."Planning Level";
// the ReqLine2 can have children which has to be delete or updated
// Add the following line.
UpdateRelatedComponent(ReqLine2);
ReqLine2.MODIFY;
...
Būtinosios sąlygos
Turi būti viena iš toliau nurodytų produktų, norint taikyti šias karštąsias pataisas:
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 1 pakeitimų paketas (SP1)
-
Microsoft Dynamics NAV 2009
-
Microsoft Dynamics NAV 5.0 1 pakeitimų paketas (SP1)
Pašalinimo informacija
Jūs negalite pašalinti šias karštąsias pataisas.
Būsena
„Microsoft“ patvirtino, kad tai yra „Microsoft“ produktų, išvardytų skyriuje „Taikoma“, problema.
Pastaba. Tai yra "GREITAI PUBLIKUOJAMAS" straipsnis, sukurtas tiesiogiai Microsoft palaikymo tarnybos. Čia pateikta informacija yra atsakas į kylančius klausimus. Dėl greito publikavimo medžiagoje gali būti spausdinimo klaidų ir ji gali būti peržiūrima bet kuriuo metu be įspėjimo. Naudojimo ieškokite kitų priežasčių.