Denne artikkelen gjelder for Microsoft Dynamics NAV for alle land og alle språkinnstillingene.
Symptomer
Anta at du aktiverer innstillingen for Nøyaktige kostnader tilbakeføring i dialogboksen Sales & kundeoppsett i Microsoft Dynamics NAV. I så fall får du følgende feilmelding når du kjører funksjonen Kopier dokument på en delvis ordreretur:
Salg levering Shipment_No, linjenr. Line_No er ikke kopiert fordi hele antallet på den bokførte dokumentlinjen brukes allerede manuelt.
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:
-
Slett følgende globale variabler i Kopier dokument Jobbskjemahåndtering kodeenheten (6620):
Text030@1025 : TextConst 'ENU=%1 %2, line no. %3 is not copied because the full quantity on the posted document line is already manually applied.';Text031@1038 : TextConst 'ENU=Return document line contains only the original document line quantity, that is not already manually applied.';
SomeAreFixed@1045 : Boolean;
CopyDimensions@1050 : Boolean; -
Legg til følgende globale variabler i Kopier dokument Jobbskjemahåndtering kodeenheten (6620):
Text030@1025 : TextConst 'ENU=One or more return document lines were not copied. This is because quantities on the posted document line are already fully or partially applied and therefore the Exact Cost Reversing Link could not be created.';Text031@1038 : TextConst 'ENU=Return document line contains only the original document line quantity, that is not already manually applied.';
SomeAreFixed@1045 : Boolean;
CopyDimensions@1050 : Boolean;
WarningDone@1051 : Boolean;
LinesApplied@1052 : Boolean; -
Endre koden i SplitPstdSalesLinesPerILE funksjonen Kopier dokument Jobbskjemahåndtering kodeenheten (6620) som følger:
Eksisterende kode 1... IF "Shipped Qty. Not Returned" = 0 THEN
// Delete the following lines.
ERROR(Text030,"Document Type","Document No.","Document Line No.");
FromSalesLineBuf := FromSalesLine;
IF -"Shipped Qty. Not Returned" < ABS(FromSalesLine."Quantity (Base)") THEN BEGIN
IF FromSalesLine."Quantity (Base)" > 0 THEN
FromSalesLineBuf."Quantity (Base)" := -"Shipped Qty. Not Returned"
ELSE
FromSalesLineBuf."Quantity (Base)" := "Shipped Qty. Not Returned";
IF FromSalesLineBuf."Qty. per Unit of Measure" = 0 THEN
FromSalesLineBuf.Quantity := FromSalesLineBuf."Quantity (Base)"
ELSE
FromSalesLineBuf.Quantity :=
ROUND(FromSalesLineBuf."Quantity (Base)" / FromSalesLineBuf."Qty. per Unit of Measure",0.00001);
END;
FromSalesLine."Quantity (Base)" := FromSalesLine."Quantity (Base)" - FromSalesLineBuf."Quantity (Base)";
FromSalesLine.Quantity := FromSalesLine.Quantity - FromSalesLineBuf.Quantity;
FromSalesLineBuf."Appl.-from Item Entry" := "Entry No.";
FromSalesLineBuf."Line No." := NextLineNo;
NextLineNo := NextLineNo + 1;
FromSalesLineBuf."Document No." := "Document No.";
IF GetSalesDocType(ItemLedgEntry) IN
[FromSalesLineBuf."Document Type"::Order,FromSalesLineBuf."Document Type"::"Return Order"]
THEN
FromSalesLineBuf."Shipment Line No." := 1;
IF NOT FromShptOrRcpt THEN
UpdateRevSalesLineAmount(
FromSalesLineBuf,OrgQtyBase,
FromSalesHeader."Prices Including VAT",ToSalesHeader."Prices Including VAT");
FromSalesLineBuf.INSERT;
// End of the lines.
UNTIL (NEXT = 0) OR (FromSalesLine."Quantity (Base)" = 0);
...Ny kode 1
... IF "Shipped Qty. Not Returned" = 0 THEN
// Add the following lines.
LinesApplied := TRUE;
IF "Shipped Qty. Not Returned" < 0 THEN BEGIN
FromSalesLineBuf := FromSalesLine;
IF -"Shipped Qty. Not Returned" < ABS(FromSalesLine."Quantity (Base)") THEN BEGIN
IF FromSalesLine."Quantity (Base)" > 0 THEN
FromSalesLineBuf."Quantity (Base)" := -"Shipped Qty. Not Returned"
ELSE
FromSalesLineBuf."Quantity (Base)" := "Shipped Qty. Not Returned";
IF FromSalesLineBuf."Qty. per Unit of Measure" = 0 THEN
FromSalesLineBuf.Quantity := FromSalesLineBuf."Quantity (Base)"
ELSE
FromSalesLineBuf.Quantity :=
ROUND(FromSalesLineBuf."Quantity (Base)" / FromSalesLineBuf."Qty. per Unit of Measure",0.00001);
END;
FromSalesLine."Quantity (Base)" := FromSalesLine."Quantity (Base)" - FromSalesLineBuf."Quantity (Base)";
FromSalesLine.Quantity := FromSalesLine.Quantity - FromSalesLineBuf.Quantity;
FromSalesLineBuf."Appl.-from Item Entry" := "Entry No.";
FromSalesLineBuf."Line No." := NextLineNo;
NextLineNo := NextLineNo + 1;
FromSalesLineBuf."Document No." := "Document No.";
IF GetSalesDocType(ItemLedgEntry) IN
[FromSalesLineBuf."Document Type"::Order,FromSalesLineBuf."Document Type"::"Return Order"]
THEN
FromSalesLineBuf."Shipment Line No." := 1;
IF NOT FromShptOrRcpt THEN
UpdateRevSalesLineAmount(
FromSalesLineBuf,OrgQtyBase,
FromSalesHeader."Prices Including VAT",ToSalesHeader."Prices Including VAT");
FromSalesLineBuf.INSERT;
END;
// End of the lines.
UNTIL (NEXT = 0) OR (FromSalesLine."Quantity (Base)" = 0);
...Eksisterende kode 2
... MissingExCostRevLink := TRUE;
END;
...Ny kode 2
... MissingExCostRevLink := TRUE;
// Add the following line.
CheckUnappliedLines(LinesApplied,MissingExCostRevLink);
END;
... -
Endre koden i SplitPstdPurchLinesPerILE funksjonen Kopier dokument Jobbskjemahåndtering kodeenheten (6620) som følger:
Eksisterende kode 1... ApplyRec@1011 : Record 339;
// Delete the following line.
AllAreFixed@1012 : Boolean;
BEGIN
...Ny kode 1
... ApplyRec@1011 : Record 339;
BEGIN
...Eksisterende kode 2
... REPEAT
// Delete the following lines.
IF "Remaining Quantity" = 0 THEN BEGIN
AllAreFixed := TRUE;
ApplyRec.AppliedOutbndEntryExists("Entry No.",FALSE);
IF ApplyRec.FINDFIRST THEN
REPEAT
AllAreFixed := AllAreFixed AND ApplyRec.Fixed;
UNTIL ApplyRec.NEXT = 0;
IF AllAreFixed THEN
ERROR(Text030,"Document Type","Document No.","Document Line No.");
END;
// End of the lines.
IF NOT ApplyFully THEN BEGIN
...Ny kode 2
... REPEAT
IF NOT ApplyFully THEN BEGIN
...Eksisterende kode 3
... END;
...Ny kode 3
... END;
// Add the following line.
CheckUnappliedLines(SkippedLine,MissingExCostRevLink);
... -
Endre koden i CheckUnappliedLines funksjonen Kopier dokument Jobbskjemahåndtering kodeenheten (6620) som følger:
Eksisterende kode... BEGIN
...Ny kode
...
// Add the following lines.
LOCAL PROCEDURE CheckUnappliedLines@86(SkippedLine@1000 : Boolean;VAR MissingExCostRevLink@1001 : Boolean);
BEGIN
IF SkippedLine AND MissingExCostRevLink THEN BEGIN
IF NOT WarningDone THEN
MESSAGE(Text030);
MissingExCostRevLink := FALSE;
WarningDone := TRUE;
END;
END;
// End of the lines.
BEGIN
...
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.