Šis straipsnis taikomas "„Microsoft“ Dynamics NAV" visose šalyse ir visų kalbų lokalėse.
Požymiai
Tarkime, kad kuriate pardavimo užsakymą prekei, kurios " „Microsoft“ Dynamics NAV 2009" nustatytas Gamybos strategijos laukas Gaminti pagal užsakymą . Pardavimo užsakymo gamybos užsakymą sukuriate naudodami funkciją Create Prod.Ord , tada pakeičiate gamybos užsakymo būseną į Visiškai suplanuota. Tokiu atveju, kai bandote panaikinti komponentą, kurio gamybos strategija nustatyta kaip Gaminti pagal užsakymą , iš gamybos užsakymo gaunate tokį klaidos pranešimą:
Pastaba
Kitas vartotojas modifikavo šio produkto įrašą. Užsakymo komponentas po to, kai jį nuskaitėte iš duomenų bazės.
Atnaujintame lange dar kartą įveskite keitimus arba iš naujo pradėkite nutrauktą veiklą.
Identifikavimo laukai ir reikšmės:
Status='Tvirtai suplanuota',Prod. Užsakymo Nr.='Gamybos užsakymo numeris',Gam. Užsakymo eilutė
Nr.='gamybos užsakymo eilutės numeris',Eilutės Nr.='eilutės numeris'
Ši problema kyla šiuose produktuose:
- „„Microsoft“ Dynamics NAV 2009 R2‟
- "„Microsoft“ Dynamics NAV 2009" 1 pakeitimų paketas (SP1)
Sprendimas
Karštųjų pataisų informacija
Dabar palaikomas karštąsias pataisas galima gauti iš "„Microsoft“". Tačiau juo siekiama tik išspręsti šiame straipsnyje aprašytą problemą. Taikyti ją tik sistemoms, kuriose kilo ši konkreti problema. Ši karštoji pataisa gali būti papildomai patikrinta. Todėl, jei ši problema jūsų rimtai nepaveikė, rekomenduojame palaukti kito "„Microsoft“ Dynamics NAV 2009" pakeitimų paketo arba kitos "„Microsoft“ Dynamics NAV" versijos, kurioje yra ši karštoji pataisa.
Pastaba Ypatingais atvejais mokesčiai, kurie paprastai taikomi už palaikymo skambučius, gali būti atšaukti, jei "„Microsoft“ Dynamics" ir susijusių produktų techninio palaikymo specialistas nustato, kad konkretus naujinimas išspręs jūsų problemą. Įprastos palaikymo išlaidos bus taikomos papildomiems palaikymo klausimams ir problemoms, kurios neatitinka atitinkamo konkretaus naujinimo reikalavimų.
Diegimo informacija
"„Microsoft“" pateikia programavimo pavyzdžių tik iliustracijai, be išreikštų ar numanomų garantijų. Tai apima, bet neapsiriboja, numanomas tinkamumo parduoti arba tinkamumo konkrečiam tikslui garantijas. Straipsnyje laikomasi nuomonės, kad esate susipažinę su demonstruojama programavimo kalba ir įrankiais, naudojamais kuriant ir derinant procedūras. "„Microsoft“" palaikymo inžinieriai gali padėti paaiškinti konkrečios procedūros funkcionalumą. Tačiau jie nemodifikuos šių pavyzdžių, kad suteiktų papildomų funkcinių galimybių, arba nesukurs procedūrų, atitinkančių jūsų konkrečius reikalavimus.
Pastaba Prieš diegdami šią karštąją pataisą patikrinkite, ar visi "„Microsoft“ Navision" kliento vartotojai yra atsijungę nuo sistemos. Tai apima "„Microsoft“ Navision" programų tarnybų (NAS) kliento vartotojus. Turite būti vienintelis kliento vartotojas, kuris yra prisijungęs, kai įdiegiate šią karštąją pataisą.
Norėdami įdiegti šią karštąją pataisą, privalote turėti kūrėjo licenciją.
Rekomenduojame vartotojo paskyrai "Windows" prisijungimų lange arba duomenų bazės prisijungimų lange priskirti "SUPER" vaidmens ID. Jei vartotojo paskyrai negalima priskirti "SUPER" vaidmens ID, turite patikrinti, ar vartotojo paskyra turi šias teises:
- Objekto, kurį keisite, modifikavimo teisė.
- Sistemos objekto ID 5210 ir sistemos objekto ID 9015 objekto vykdymo teisės.
Pastaba: neturite turėti teisių į duomenų saugyklas, nebent turite atlikti duomenų taisymą.
Kodo keitimai
Pastaba Visada išbandykite kodo pataisas kontroliuojamoje aplinkoje prieš taikydami jas gamybos kompiuteriuose.
Norėdami išspręsti šią problemą, atlikite šiuos veiksmus:
Pakeiskite kodą lentelėje Gaminių užsakymo eilutė (5406). Norėdami tai padaryti, atlikite toliau aprašytus veiksmus.
Įtraukite naują visuotinį kintamąjį, tada nurodyti kintamąjį taip:
- Vardas: CalledFromComponent@1025
- Duomenų tipas: Bulio logika
Sukurkite naują funkciją tokiu būdu:
PROCEDURE SetCalledFromComponent@3(NewCalledFromComponent@1000 : Boolean); CalledFromComponent := NewCalledFromComponent;Pakeiskite funkcijos DeleteRelations kodą taip:
Esamas kodas... ProdOrderComp.DELETEALL(TRUE); ProdOrderComp.SETRANGE("Prod. Order Line No."); ProdOrderComp.SETRANGE("Supplied-by Line No.","Line No."); IF ProdOrderComp.FIND('-') THEN REPEAT ProdOrderComp."Supplied-by Line No." := 0; ProdOrderComp.MODIFY; UNTIL ProdOrderComp.NEXT = 0; WhseOutputProdRelease.DeleteLine(Rec); ...Pakeitimo kodas
... ProdOrderComp.DELETEALL(TRUE); // Add the following line. IF NOT CalledFromComponent THEN BEGIN ProdOrderComp.SETRANGE("Prod. Order Line No."); ProdOrderComp.SETRANGE("Supplied-by Line No.","Line No."); IF ProdOrderComp.FIND('-') THEN REPEAT ProdOrderComp."Supplied-by Line No." := 0; ProdOrderComp.MODIFY; UNTIL ProdOrderComp.NEXT = 0; // Add the following line. END; WhseOutputProdRelease.DeleteLine(Rec); ...
Pakeiskite kodą lentelėje Užsakymo komponentas (5407). Norėdami tai padaryti, atlikite toliau aprašytus veiksmus.
Įtraukite naują vietinį kintamąjį į paleidiklį OnDelete , tada nurodykite kintamąjį taip:
- Vardas: NewQuantity@1003
- Duomenų tipas: dešimtainis
Pakeiskite OnDelete paleidiklio kodą taip:
Esamas kodas... IF ProdOrderLine.GET(Status,"Prod. Order No.","Supplied-by Line No.") THEN BEGIN // Delete the following lines. ProdOrderLine.VALIDATE(Quantity,ProdOrderLine.Quantity - "Expected Quantity"); IF ProdOrderLine.Quantity = 0 THEN BEGIN // End of the lines. ProdOrderLine.BlockDynamicTracking(TRUE); ProdOrderLine.DELETE(TRUE); // Delete the following line. END ELSE ProdOrderLine.MODIFY; END; ...Pakeitimo kodas
... IF ProdOrderLine.GET(Status,"Prod. Order No.","Supplied-by Line No.") THEN BEGIN // Add the following lines. NewQuantity := ProdOrderLine.Quantity - "Expected Quantity"; IF NewQuantity = 0 THEN BEGIN // End of the lines. ProdOrderLine.BlockDynamicTracking(TRUE); // Add the following line. ProdOrderLine.SetCalledFromComponent(TRUE); ProdOrderLine.DELETE(TRUE); // Add the following lines. END ELSE BEGIN ProdOrderLine.VALIDATE(Quantity,NewQuantity); // End of the lines. ProdOrderLine.MODIFY; // add the following line. END; END; ...
Būtinosios sąlygos
Norėdami taikyti šią karštąją pataisą, turite įdiegti vieną iš šių produktų:
- „„Microsoft“ Dynamics NAV 2009 R2‟
- "„Microsoft“ Dynamics NAV 2009" 1 pakeitimų paketas
Pašalinimo informacija
Šios karštosios pataisos pašalinti negalite.
Būsena
„„Microsoft““ patvirtino, kad tai yra „„Microsoft““ produktų, išvardytų dalyje „Taikoma“, problema.
Pastaba: tai "SPARČIOJO PUBLIKAVIMO" straipsnis, sukurtas tiesiogiai iš "„Microsoft“" palaikymo organizacijos. Čia pateikta informacija pateikiama tokia, kokia yra, reaguojant į kylančias problemas. Dėl greito jos pateikimo medžiagoje gali būti spausdinimo klaidų ir ji gali būti peržiūrėta bet kuriuo metu be išankstinio įspėjimo. Dėl kitų aplinkybių žr. Naudojimo sąlygas .