Brzo objavljeni članci pružaju informacije direktno iz organizacije Microsoft podrške. Informacije koje se nalaze u ovom dokumentu kreirane su kao odgovor na nove ili jedinstvene teme ili su namenjene kao dopuna drugim informacijama iz baze znanja.
Microsoft Business Solutions-Navision 4.0 i Microsoft Navision 4.0 sada su deo usluge Microsoft Dynamics NAV 4.0. Sve reference na Microsoft Business Solutions-Navision ili Microsoft Navision 4.0 odnose se na Microsoft Dynamics NAV.
Ovaj članak se odnosi na Microsoft Dynamics NAV za sve regione.
Simptomi
Uzmite u obzir sledeću situaciju:
- U dijalogu " Redovi za praćenje stavki " kreirate dva reda za praćenje stavke koji imaju navedene serijske brojeve za SNALL stavku.
- Promenite redni broj u redu tako da bude isti kao serijski broj u drugom redu.
- Zatvarate dijalog "Redovi za praćenje stavki" bez napuštanja polja "Serijski broj".
U ovom scenariju, Microsoft Dynamics NAV prihvata duplirani serijski broj, a količina za serijski broj se menja na dva. Zato se kreira više količina za stavku u glavnoj knjizi.
Ovaj problem se javlja u sledećim proizvodima:
- Microsoft Dynamics NAV 2009 servisni paket 1 (SP1)
- Microsoft Dynamics NAV 5.0 servisni paket 1 (SP1)
- Microsoft Dynamics NAV 4.0 servisni paket 3 (SP3)
Rešenje
Informacije o hitnim ispravkama
Podržana hitna ispravka je sada dostupna od korporacije Microsoft. Međutim, namena je samo za rešavanje problema koji je opisan u ovom članku. Primenite je samo na sisteme koji imaju ovaj određeni problem. Ova hitna ispravka može proći dodatno testiranje. Stoga, ako ovaj problem ne utiče ozbiljno, preporučujemo da sačekate sledeći servisni paket za Microsoft Dynamics NAV ili sledeću verziju programa Microsoft Dynamics NAV koja sadrži ovu hitnu ispravku.
Napomena: U posebnim slučajevima, troškovi koji se obično nastaju za pozive podršci mogu biti otkazani ako stručnjak za tehničku podršku za Microsoft Dynamics i srodne proizvode utvrdi da će određena ispravka rešiti problem. Uobičajeni troškovi podrške primenjivaće se na dodatna pitanja podrške i probleme koji ne ispunjavaju uslove za određenu ispravku u pitanju.
Informacije o instalaciji
Microsoft pruža primere programiranja samo za ilustraciju, bez izričite ili podrazumevane garancije. Ovo uključuje, ali nije ograničeno na, podrazumevane garancije o podesnosti za prodaju ili o podesnosti za određenu namenu. U ovom članku se pretpostavlja da ste upoznati sa programskim jezikom koji se demonstrira i sa alatkama koje se koriste za kreiranje procedura i otklanjanje grešaka. Inženjeri Microsoft podrške mogu da vam objasne funkcionalnost određene procedure, ali neće izmeniti ove primere da bi obezbedili dodatnu funkcionalnost ili konstruisali procedure koje ispunjavaju vaše određene zahteve.
Napomena: Pre nego što instalirate ovu hitnu ispravku, proverite da li su svi korisnici Microsoft Navision klijenta odjavljeni iz sistema. To uključuje korisnike Microsoft Navision Application Services (NAS) klijenta. Vi bi trebalo da budete jedini korisnik klijenta koji je prijavljen kada primenjujete ovu hitnu ispravku.
Da biste primenili ovu hitnu ispravku, morate imati licencu za projektante.
Preporučujemo da se korisničkom nalogu u prozoru "Prijavljivanje u operativni sistem Windows" ili u prozoru "Prijavljivanje u bazu podataka" dodeli ID uloge "SUPER". Ako korisničkom nalogu nije moguće dodeliti ID uloge "SUPER", morate da proverite da li korisnički nalog ima sledeće dozvole:
- Dozvola "Izmeni" za objekat koji ćete menjati.
- Dozvola za izvršavanje za objekat sistema ID 5210 i za objekat sistema ID 9015.
Napomena: Ne morate da imate prava na skladišta podataka osim ako ne morate da izvršite popravku podataka.
Promene kodova
Napomena: Popravke kodova uvek testirajte u kontrolisanom okruženju pre nego što ih primenite na računare proizvodnje.
Da biste rešili ovaj problem u sistemu Microsoft Dynamics NAV 2009 SP1, promenite kôd u okidaču OnModifyRecord u obrascu "Linija za praćenje stavki" (6510) i na stranici "Redovi za praćenje stavki" (6510) na sledeći način:
Postojeći kôd
...
// Delete the following line.
IF NOT TestTempSpecificationExists THEN
MODIFY;
IF (xRec."Lot No." <> "Lot No.") OR (xRec."Serial No." <> "Serial No.") THEN BEGIN
xTempTrackingSpec := xRec;
ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
xTempTrackingSpec,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,2);
END;
IF TempItemTrackLineModify.GET("Entry No.") THEN
TempItemTrackLineModify.DELETE;
IF TempItemTrackLineInsert.GET("Entry No.") THEN BEGIN
TempItemTrackLineInsert.TRANSFERFIELDS(Rec);
TempItemTrackLineInsert.MODIFY;
ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
TempItemTrackLineInsert,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
END ELSE BEGIN
TempItemTrackLineModify.TRANSFERFIELDS(Rec);
TempItemTrackLineModify.INSERT;
ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
TempItemTrackLineModify,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
END;
CalculateSums;
...
Kôd za zamenu
...
// Add the following line.
IF NOT TestTempSpecificationExists THEN BEGIN
MODIFY;
IF (xRec."Lot No." <> "Lot No.") OR (xRec."Serial No." <> "Serial No.") THEN BEGIN
xTempTrackingSpec := xRec;
ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
xTempTrackingSpec,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,2);
END;
IF TempItemTrackLineModify.GET("Entry No.") THEN
TempItemTrackLineModify.DELETE;
IF TempItemTrackLineInsert.GET("Entry No.") THEN BEGIN
TempItemTrackLineInsert.TRANSFERFIELDS(Rec);
TempItemTrackLineInsert.MODIFY;
ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
TempItemTrackLineInsert,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
END ELSE BEGIN
TempItemTrackLineModify.TRANSFERFIELDS(Rec);
TempItemTrackLineModify.INSERT;
ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
TempItemTrackLineModify,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
END;
// Add the following line.
END;
// Tab over two space to the left for the following line.
CalculateSums;
...
Da biste rešili ovaj problem u softveru Microsoft Dynamics NAV 5.0 SP1, promenite kôd u okidaču OnModifyRecord u obrascu "Linija za praćenje stavki" (6510) na sledeći način:
Postojeći kôd
...
// Delete the following line.
IF NOT TestTempSpecificationExists THEN
MODIFY;
IF (xRec."Lot No." <> "Lot No.") OR (xRec."Serial No." <> "Serial No.") THEN BEGIN
xTempTrackingSpec := xRec;
ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
xTempTrackingSpec,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,2);
END;
IF TempItemTrackLineModify.GET("Entry No.") THEN
TempItemTrackLineModify.DELETE;
IF TempItemTrackLineInsert.GET("Entry No.") THEN BEGIN
TempItemTrackLineInsert.TRANSFERFIELDS(Rec);
TempItemTrackLineInsert.MODIFY;
ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
TempItemTrackLineInsert,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
END ELSE BEGIN
TempItemTrackLineModify.TRANSFERFIELDS(Rec);
TempItemTrackLineModify.INSERT;
ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
TempItemTrackLineModify,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
END;
CalculateSums;
...
Kôd za zamenu
...
// Add the following line.
IF NOT TestTempSpecificationExists THEN BEGIN
MODIFY;
IF (xRec."Lot No." <> "Lot No.") OR (xRec."Serial No." <> "Serial No.") THEN BEGIN
xTempTrackingSpec := xRec;
ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
xTempTrackingSpec,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,2);
END;
IF TempItemTrackLineModify.GET("Entry No.") THEN
TempItemTrackLineModify.DELETE;
IF TempItemTrackLineInsert.GET("Entry No.") THEN BEGIN
TempItemTrackLineInsert.TRANSFERFIELDS(Rec);
TempItemTrackLineInsert.MODIFY;
ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
TempItemTrackLineInsert,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
END ELSE BEGIN
TempItemTrackLineModify.TRANSFERFIELDS(Rec);
TempItemTrackLineModify.INSERT;
ItemTrackingDataCollection.UpdateLotSNDataSetWithChange(
TempItemTrackLineModify,CurrentSignFactor * SourceQuantityArray[1] < 0,CurrentSignFactor,1);
END;
// Add the following line.
END;
// Tab over two space to the left for the following line.
CalculateSums;
...
Da biste rešili ovaj problem u softveru Microsoft Dynamics NAV 4.0 SP3, promenite kôd u okidaču OnModifyRecord u obrascu "Linija za praćenje stavki" (6510) na sledeći način:
Postojeći kôd
...
// Delete the following line.
IF NOT TestTempSpecificationExists THEN
TempTrackingSpec.MODIFY;
IF TempItemTrackLineModify.GET(TempTrackingSpec."Entry No.") THEN
TempItemTrackLineModify.DELETE;
IF TempItemTrackLineInsert.GET(TempTrackingSpec."Entry No.") THEN BEGIN
TempItemTrackLineInsert.TRANSFERFIELDS(TempTrackingSpec);
TempItemTrackLineInsert.MODIFY;
END ELSE BEGIN
TempItemTrackLineModify.TRANSFERFIELDS(TempTrackingSpec);
TempItemTrackLineModify.INSERT;
END;
CalculateSums;
...
Kôd za zamenu
...
// Add the following line.
IF NOT TestTempSpecificationExists THEN BEGIN
TempTrackingSpec.MODIFY;
// Tab over two spaces for the following lines.
IF TempItemTrackLineModify.GET(TempTrackingSpec."Entry No.") THEN
TempItemTrackLineModify.DELETE;
IF TempItemTrackLineInsert.GET(TempTrackingSpec."Entry No.") THEN BEGIN
TempItemTrackLineInsert.TRANSFERFIELDS(TempTrackingSpec);
TempItemTrackLineInsert.MODIFY;
END ELSE BEGIN
TempItemTrackLineModify.TRANSFERFIELDS(TempTrackingSpec);
TempItemTrackLineModify.INSERT;
END;
// End of the lines.
// Add the following line.
END;
CalculateSums;
...
Preduslovi
Morate da imate instaliran jedan od sledećih proizvoda da biste primenili ovu hitnu ispravku:
- Microsoft Dynamics NAV 2009 servisni paket 1
- Microsoft Dynamics NAV 5.0 servisni paket 1
- Microsoft Dynamics NAV 4.0 servisni paket 3
Informacije o uklanjanju
Ne možete da uklonite ovu hitnu ispravku.
Status
Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku „Odnosi se na“.
KORPORACIJA MICROSOFT I/ILI NJENI DOBAVLJAČI NE DAJU NIKAKVE IZJAVE NITI GARANCIJE U VEZI SA PODESNOŠĆU, POUZDANOŠĆU ILI TAČNOŠĆU INFORMACIJA KOJE SE NALAZE U DOKUMENTIMA I SRODNOJ GRAFICI OBJAVLJENOJ NA OVOM VEB SAJTU ("MATERIJALI") U BILO KOJE SVRHE.
MATERIJALI MOGU DA SADRŽE TEHNIČKE NETAČNOSTI ILI TIPOGRAFSKE GREŠKE I MOGU SE KORIGOVATI U BILO KOM TRENUTKU BEZ PRETHODNOG OBAVEŠTENJA. U NAJVEĆOJ MERI U KOJOJ TO DOZVOLJAVA PRIMENLJIVI ZAKON, KORPORACIJA MICROSOFT I/ILI NJENI DOBAVLJAČI ODRIČU SE I ISKLJUČUJU SVE IZJAVE, GARANCIJE I USLOVE, BILO IZRIČITE, IMPLICIRANE ILI ZAKONSKE, UKLJUČUJUĆI, ALI NE OGRANIČAVAJUĆI SE NA, IZJAVE, GARANCIJE ILI USLOVE VLASNIŠTVA, NEKRŠENJA PRAVA, ZADOVOLJAVAJUĆEG STANJA ILI KVALITETA, PODESNOSTI ZA PRODAJU I PODESNOSTI ZA ODREĐENU NAMENU, U VEZI SA MATERIJALIMA.