Denne artikkelen gjelder for Microsoft Dynamics NAV for alle land og alle språkinnstillingene.
Symptomer
Anta at du kjører funksjonen Hent bokførte dokumentlinjer som skal tilbakeføres i ordreretur-siden i Microsoft Dynamics NAV 2009. Når du angir et filter for en vare, får du følgende feilmelding:
Fakturalinje for salg: Det er ingen Salg faktura-linje i filteret. Filtre Bilagsnr.:X, Nei: @Y
Obs! X -plassholder erstatter bilagsnummeret fra linjen der markøren er plassert, og Y plassholderen erstattes nummeret du angav i filteret.
Dette problemet oppstår i følgende produkter:
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 Service Pack 1
Oppløsning
Informasjon om hurtigreparasjon
En støttet hurtigreparasjon er nå tilgjengelig fra Microsoft. Det er imidlertid bare ment å løse problemet som er beskrevet i denne artikkelen. Bruk den bare på systemer som har dette bestemte problemet. Denne hurtigreparasjonen kan gjennomgå ytterligere testing. Hvis du ikke er alvorlig påvirket av dette problemet, anbefaler vi derfor at du venter på neste oppdateringspakke for Microsoft Dynamics NAV 2009 eller den neste versjonen av Microsoft Dynamics NAV som inneholder denne hurtigreparasjonen.
Obs! I spesielle tilfeller avgifter som vanligvis påløper for støtte samtaler kan avbrytes hvis en kundestøttemedarbeider for Microsoft Dynamics og beslektede produkter avgjør at en bestemt oppdatering løser problemet. Vanlige kundestøttekostnader gjelder for ytterligere kundestøttespørsmål og problemer som ikke dekkes av den gjeldende oppdateringen.
Installasjonsinformasjon
Microsoft bruker ment som eksempler, uten garanti, verken direkte eller indirekte. Dette inkluderer, men er ikke begrenset til, eventuelle stilltiende garantier om salgbarhet eller anvendelighet for særskilte formål. Denne artikkelen forutsetter at du er kjent med programmeringsspråket som anvendes, og verktøyene som brukes til å opprette og feilsøke prosedyrer. Microsofts kundestøtteteknikere kan hjelpe deg med å forklare funksjonaliteten til en bestemt prosedyre. De endrer imidlertid ikke disse eksemplene for å lage forbedret funksjonalitet eller lage prosedyrer som dekker dine spesifikke behov.
Obs! Før du installerer denne hurtigreparasjonen, må du kontrollere at alle brukere av Microsoft Navision-klienten er logget av systemet. Dette inkluderer Microsoft Navision Application tjenester (NAS) client-brukere. Du skal bare klient-brukeren som er logget på når du implementerer denne hurtigreparasjonen.
Hvis du vil implementere denne hurtigreparasjonen, må du ha en utviklerlisens.
Vi anbefaler at kontoen i vinduet Windows-pålogging eller i vinduet Database-pålogging være tildelt "SUPER" rolle-ID. Hvis brukerkontoen ikke kan tilordnes "SUPER" rolle-IDen, må du kontrollere at brukerkontoen har følgende tillatelser:
-
Endre-tillatelse for objektet du vil endre.
-
Tilgangsnivået for systemet objekt-IDen til 5210 objektet og systemet objekt-ID-9015 -objekt.
Obs! Du har ikke tilgangsrettigheter til datalagre med mindre du har til å utføre data reparasjon.
Kodeendringer
Obs! Alltid løser teste koden i et kontrollert miljø før du installerer hurtigreparasjoner til produksjonsdatamaskiner for.
Hvis du vil løse dette problemet, gjør du følgende:
-
Endre koden i IsFirstDocLine -funksjonen i Hent bokføringsdokument - servicefølgeseddellinje-subform siden (5851) som følger:
Eksisterende kode... RevUnitCostLCY2 := RevUnitCostLCY;
SalesShptLine2.COPYFILTERS(Rec);
SalesShptLine2.SETRANGE("Document No.","Document No.");
SalesShptLine2.FINDSET;
REPEAT
ShowRec := IsShowRec(SalesShptLine2);
IF ShowRec THEN BEGIN
...Ny kode
... RevUnitCostLCY2 := RevUnitCostLCY;
SalesShptLine2.COPYFILTERS(Rec);
SalesShptLine2.SETRANGE("Document No.","Document No.");
IF NOT SalesShptLine2.FINDSET THEN
EXIT(FALSE);
REPEAT
ShowRec := IsShowRec(SalesShptLine2);
IF ShowRec THEN BEGIN -
Endre koden i IsFirstDocLine -funksjonen i Hent bokføringsdokument - S.InvLn-delskjema siden (5852) som følger:
Eksisterende kode... RevUnitCostLCY2 := RevUnitCostLCY;
SalesInvLine2.COPYFILTERS(Rec);
SalesInvLine2.SETRANGE("Document No.","Document No.");
SalesInvLine2.FINDSET;
REPEAT
ShowRec := IsShowRec(SalesInvLine2);
IF ShowRec THEN BEGIN
...Ny kode
... RevUnitCostLCY2 := RevUnitCostLCY;
SalesInvLine2.COPYFILTERS(Rec);
SalesInvLine2.SETRANGE("Document No.","Document No.");
IF NOT SalesInvLine2.FINDSET THEN
EXIT(FALSE);
REPEAT
ShowRec := IsShowRec(SalesInvLine2);
IF ShowRec THEN BEGIN -
Endre koden i IsFirstDocLine -funksjonen i Hent bokføringsdokument - mottakslinje-subform siden (5856) som følger:
Eksisterende kode... RevUnitCostLCY2 := RevUnitCostLCY;
PurchRcptLine2.COPYFILTERS(Rec);
PurchRcptLine2.SETRANGE("Document No.","Document No.");
PurchRcptLine2.FINDSET;
REPEAT
ShowRec := IsShowRec(PurchRcptLine2);
IF ShowRec THEN BEGIN
...Ny kode
... RevUnitCostLCY2 := RevUnitCostLCY;
PurchRcptLine2.COPYFILTERS(Rec);
PurchRcptLine2.SETRANGE("Document No.","Document No.");
IF NOT PurchRcptLine2.FINDSET THEN
EXIT(FALSE);
REPEAT
ShowRec := IsShowRec(PurchRcptLine2);
IF ShowRec THEN BEGIN -
Endre koden i IsFirstDocLine -funksjonen i Hent bokføringsdokument - Kjøpsfakturalinje-Subform siden (5857) som følger:
Eksisterende kode... RevUnitCostLCY2 := RevUnitCostLCY;
PurchInvLine2.COPYFILTERS(Rec);
PurchInvLine2.SETRANGE("Document No.","Document No.");
PurchInvLine2.FINDSET;
REPEAT
ShowRec := IsShowRec(PurchInvLine2);
IF ShowRec THEN BEGIN
...Ny kode
... RevUnitCostLCY2 := RevUnitCostLCY;
PurchInvLine2.COPYFILTERS(Rec);
PurchInvLine2.SETRANGE("Document No.","Document No.");
IF NOT PurchInvLine2.FINDSET THEN
EXIT(FALSE);
REPEAT
ShowRec := IsShowRec(PurchInvLine2);
IF ShowRec THEN BEGIN -
Endre koden i funksjonen IsFirstDocLine i tabellen Utg. Mottak linjer-skjemaet (5806) som følger:
Eksisterende kode... FILTERGROUP(2);
PurchRcptLine.COPYFILTERS(Rec);
FILTERGROUP(0);
PurchRcptLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
PurchRcptLine.FIND('-');
TempPurchRcptLine := PurchRcptLine;
TempPurchRcptLine.INSERT;
END;
IF "Line No." = TempPurchRcptLine."Line No." THEN
...Ny kode
... FILTERGROUP(2);
PurchRcptLine.COPYFILTERS(Rec);
FILTERGROUP(0);
PurchRcptLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT PurchRcptLine.FINDFIRST THEN
EXIT(FALSE);
// End of the lines.
TempPurchRcptLine := PurchRcptLine;
TempPurchRcptLine.INSERT;
END;
IF "Line No." = TempPurchRcptLine."Line No." THEN -
Endre koden i IsFirstDocLine -funksjonen i skjemaet får bokføringsdokument-returmottakslinje-delskjema (5853) som følger:
Eksisterende kode... TempReturnRcptLine.SETRANGE("Document No.","Document No.");
IF NOT TempReturnRcptLine.FINDFIRST THEN BEGIN
ReturnRcptLine.COPYFILTERS(Rec);
ReturnRcptLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ReturnRcptLine.FINDSET;
TempReturnRcptLine := ReturnRcptLine;
TempReturnRcptLine.INSERT;
END;
...Ny kode
... TempReturnRcptLine.SETRANGE("Document No.","Document No.");
IF NOT TempReturnRcptLine.FINDFIRST THEN BEGIN
ReturnRcptLine.COPYFILTERS(Rec);
ReturnRcptLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ReturnRcptLine.FINDSET THEN
EXIT(FALSE);
// End of the lines.
TempReturnRcptLine := ReturnRcptLine;
TempReturnRcptLine.INSERT;
END; -
Endre koden i IsFirstDocLine -funksjonen i skjemaet får bokføringsdokument-S.Cr.MemoLn-subform (5854) som følger:
Eksisterende kode... TempSalesCrMemoLine.SETRANGE("Document No.","Document No.");
IF NOT TempSalesCrMemoLine.FINDFIRST THEN BEGIN
SalesCrMemoLine.COPYFILTERS(Rec);
SalesCrMemoLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
SalesCrMemoLine.FIND('-');
TempSalesCrMemoLine := SalesCrMemoLine;
TempSalesCrMemoLine.INSERT;
END;
...Ny kode
... TempSalesCrMemoLine.SETRANGE("Document No.","Document No.");
IF NOT TempSalesCrMemoLine.FINDFIRST THEN BEGIN
SalesCrMemoLine.COPYFILTERS(Rec);
SalesCrMemoLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT SalesCrMemoLine.FINDFIRST THEN
EXIT(FALSE);
// End of the lines.
TempSalesCrMemoLine := SalesCrMemoLine;
TempSalesCrMemoLine.INSERT;
END; -
Endre koden i IsFirstDocLine -funksjonen i skjemaet får bokføringsdokument-returseddellinje-delskjema (5858) som følger:
Eksisterende kode... TempReturnShptLine.SETRANGE("Document No.","Document No.");
IF NOT TempReturnShptLine.FINDFIRST THEN BEGIN
ReturnShptLine.COPYFILTERS(Rec);
ReturnShptLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ReturnShptLine.FINDSET;
TempReturnShptLine := ReturnShptLine;
TempReturnShptLine.INSERT;
END;
...Ny kode
... TempReturnShptLine.SETRANGE("Document No.","Document No.");
IF NOT TempReturnShptLine.FINDFIRST THEN BEGIN
ReturnShptLine.COPYFILTERS(Rec);
ReturnShptLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ReturnShptLine.FINDSET THEN
EXIT(FALSE);
// End of the lines.
TempReturnShptLine := ReturnShptLine;
TempReturnShptLine.INSERT;
END; -
Endre koden i IsFirstDocLine -funksjonen i skjemaet får bokføringsdokument-Kjøpskreditnotalinje-subform (5859) som følger:
Eksisterende kode... TempPurchCrMemoLine.SETRANGE("Document No.","Document No.");
IF NOT TempPurchCrMemoLine.FINDFIRST THEN BEGIN
PurchCrMemoLine.COPYFILTERS(Rec);
PurchCrMemoLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
PurchCrMemoLine.FINDSET;
TempPurchCrMemoLine := PurchCrMemoLine;
TempPurchCrMemoLine.INSERT;
END;
...Ny kode
... TempPurchCrMemoLine.SETRANGE("Document No.","Document No.");
IF NOT TempPurchCrMemoLine.FINDFIRST THEN BEGIN
PurchCrMemoLine.COPYFILTERS(Rec);
PurchCrMemoLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT PurchCrMemoLine.FINDSET THEN
EXIT(FALSE);
// End of the lines.
TempPurchCrMemoLine := PurchCrMemoLine;
TempPurchCrMemoLine.INSERT;
END; -
Endre koden i IsFirstDocLine -funksjonen i skjemaet Hent følgeseddellinjer Service (5994) som følger:
Eksisterende kode... TempServiceShptLine.SETRANGE("Document No.","Document No.");
IF NOT TempServiceShptLine.FIND('-') THEN BEGIN
ServiceShptLine.COPYFILTERS(Rec);
ServiceShptLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ServiceShptLine.FIND('-');
TempServiceShptLine := ServiceShptLine;
TempServiceShptLine.INSERT;
END;
IF "Line No." = TempServiceShptLine."Line No." THEN
...Ny kode
... TempServiceShptLine.SETRANGE("Document No.","Document No.");
IF NOT TempServiceShptLine.FIND('-') THEN BEGIN
ServiceShptLine.COPYFILTERS(Rec);
ServiceShptLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ServiceShptLine.FINDFIRST THEN
EXIT(FALSE);
// End of the lines.
TempServiceShptLine := ServiceShptLine;
TempServiceShptLine.INSERT;
END;
IF "Line No." = TempServiceShptLine."Line No." THEN -
Endre koden i IsFirstDocLine -funksjonen i skjemaet Service-delskjema (6036 til) som følger:
Eksisterende kode... IF NOT TempServLine.FIND('-') THEN BEGIN
ServLine.COPYFILTERS(Rec);
ServLine.SETRANGE("Document Type","Document Type");
ServLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ServLine.FIND('-');
TempServLine := ServLine;
TempServLine.INSERT;
END;
IF "Line No." = TempServLine."Line No." THEN
IF "Line No." = TempServiceShptLine."Line No." THEN
...Ny kode
... IF NOT TempServLine.FIND('-') THEN BEGIN
ServLine.COPYFILTERS(Rec);
ServLine.SETRANGE("Document Type","Document Type");
ServLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ServLine.FINDFIRST THEN
EXIT(FALSE);
// End of the lines.
TempServLine := ServLine;
TempServLine.INSERT;
END;
IF "Line No." = TempServLine."Line No." THEN -
Endre koden i IsFirstDocLine -funksjonen i skjemaet Service følgeseddellinjer-delskjema (6037) som følger:
Eksisterende kode... TempServShptLine.SETRANGE("Document No.","Document No.");
IF NOT TempServShptLine.FIND('-') THEN BEGIN
ServShptLine.COPYFILTERS(Rec);
ServShptLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ServShptLine.FIND('-');
TempServShptLine := ServShptLine;
TempServShptLine.INSERT;
END;
IF "Line No." = TempServShptLine."Line No." THEN
...Ny kode
... TempServShptLine.SETRANGE("Document No.","Document No.");
IF NOT TempServShptLine.FIND('-') THEN BEGIN
ServShptLine.COPYFILTERS(Rec);
ServShptLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ServShptLine.FINDFIRST THEN
EXIT(FALSE);
// End of the lines.
TempServShptLine := ServShptLine;
TempServShptLine.INSERT;
END;
IF "Line No." = TempServShptLine."Line No." THEN -
Endre koden i IsFirstDocLine -funksjonen i skjemaet Service Fakturalinjer-delskjema (6038) som følger:
Eksisterende kode... TempServInvLine.SETRANGE("Document No.","Document No.");
IF NOT TempServInvLine.FIND('-') THEN BEGIN
ServInvLine.COPYFILTERS(Rec);
ServInvLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ServInvLine.FIND('-');
TempServInvLine := ServInvLine;
TempServInvLine.INSERT;
END;
EXIT("Line No." = TempServInvLine."Line No.");
...Ny kode
... TempServInvLine.SETRANGE("Document No.","Document No.");
IF NOT TempServInvLine.FIND('-') THEN BEGIN
ServInvLine.COPYFILTERS(Rec);
ServInvLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ServInvLine.FINDFIRST THEN
EXIT(FALSE);
// End of the lines.
TempServInvLine := ServInvLine;
TempServInvLine.INSERT;
END;
EXIT("Line No." = TempServInvLine."Line No."); -
Endre koden i IsFirstDocLine -funksjonen i skjemaet Service salgskreditnota-linjer delskjema (6039) som følger:
Eksisterende kode... TempServCrMemoLine.SETRANGE("Document No.","Document No.");
IF NOT TempServCrMemoLine.FIND('-') THEN BEGIN
ServCrMemoLine.COPYFILTERS(Rec);
ServCrMemoLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ServCrMemoLine.FIND('-');
TempServCrMemoLine := ServCrMemoLine;
TempServCrMemoLine.INSERT;
END;
EXIT("Line No." = TempServCrMemoLine."Line No.");
...Ny kode
... TempServCrMemoLine.SETRANGE("Document No.","Document No.");
IF NOT TempServCrMemoLine.FIND('-') THEN BEGIN
ServCrMemoLine.COPYFILTERS(Rec);
ServCrMemoLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ServCrMemoLine.FINDFIRST THEN
EXIT(FALSE);
// End of the lines.
TempServCrMemoLine := ServCrMemoLine;
TempServCrMemoLine.INSERT;
END;
EXIT("Line No." = TempServCrMemoLine."Line No."); -
Endre koden i IsFirstDocLine -funksjonen i Hent returmottakslinjer form (6638) som følger:
Eksisterende kode... TempReturnRcptLine.SETRANGE("Document No.","Document No.");
IF NOT TempReturnRcptLine.FIND('-') THEN BEGIN
ReturnRcptLine.COPYFILTERS(Rec);
ReturnRcptLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ReturnRcptLine.FIND('-');
TempReturnRcptLine := ReturnRcptLine;
TempReturnRcptLine.INSERT;
END;
IF "Line No." = TempReturnRcptLine."Line No." THEN
...Ny kode
... TempReturnRcptLine.SETRANGE("Document No.","Document No.");
IF NOT TempReturnRcptLine.FIND('-') THEN BEGIN
ReturnRcptLine.COPYFILTERS(Rec);
ReturnRcptLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ReturnRcptLine.FINDFIRST THEN
EXIT(FALSE);
// End of the lines.
TempReturnRcptLine := ReturnRcptLine;
TempReturnRcptLine.INSERT;
END;
IF "Line No." = TempReturnRcptLine."Line No." THEN -
Endre koden i IsFirstDocLine -funksjonen i Hent returseddellinjer form (6648) som følger:
Eksisterende kode... TempReturnShptLine.SETRANGE("Document No.","Document No.");
IF NOT TempReturnShptLine.FIND('-') THEN BEGIN
ReturnShptLine.COPYFILTERS(Rec);
ReturnShptLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ReturnShptLine.FIND('-');
TempReturnShptLine := ReturnShptLine;
TempReturnShptLine.INSERT;
END;
IF "Line No." = TempReturnShptLine."Line No." THEN
...Ny kode
... TempReturnShptLine.SETRANGE("Document No.","Document No.");
IF NOT TempReturnShptLine.FIND('-') THEN BEGIN
ReturnShptLine.COPYFILTERS(Rec);
ReturnShptLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ReturnShptLine.FINDFIRST THEN
EXIT(FALSE);
// End of the lines.
TempReturnShptLine := ReturnShptLine;
TempReturnShptLine.INSERT;
END;
IF "Line No." = TempReturnShptLine."Line No." THEN
Forutsetninger
Du må ha én av de følgende programmene installert for å bruke denne hurtigreparasjonen:
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 Service Pack 1
Informasjon om fjerning
Du kan ikke fjerne denne hurtigreparasjonen.
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".
Obs! Dette er en "RASKT PUBLISERE" artikkel opprettet direkte fra innenfor organisasjonen Microsoft Kundestøtte. Informasjonen i dette dokumentet tilbys som-er som svar på nye problemer. Som et resultat av hastigheten i å gjøre den tilgjengelig materialene kan inkludere typografiske feil, og den kunne bli revidert når som helst uten varsel. Se Vilkårene for Bruk for andre hensyn.