Denne artikkelen gjelder for Microsoft Dynamics NAV for alle land og alle språkinnstillingene.
Symptomer
Etter at du har brukt hurtigreparasjoner 2292157 og 2764340 for Microsoft Dynamics NAV 2009, viser skjemaet Utlign kundeposter og Utlign levrd.poster skjemaet uriktige verdier i Saldo -feltet og Kont.rab. Beløp feltet.
Dette problemet oppstår i følgende produkter:-
Microsoft Dynamics NAV 2009 Service Pack 1
-
Microsoft Dynamics NAV 2009 R2
Hvis du vil ha mer informasjon om hurtigreparasjoner for 2292157 og 2764340, klikker du artikkelnumrene nedenfor for å vise artiklene i Microsoft Knowledge Base:
2292157 feltet "Balanse" og "Kont.rab. Beløp"-feltet i skjemaet Utlign kundeposter og Utlign levrd.poster-skjemaet viser feil verdier hvis du bruker en betaling på flere åpne dokumenter i Microsoft Dynamics NAV
2764340 utligning av leverandørposter, fortsatt er valgt, selv om du har fjernet leverandørposter tidligere i skjemaet "Utlign levrd.poster" i Microsoft Dynamics NAV 2009
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 brukerne i Microsoft Dynamics NAV-klienten er logget av systemet. Dette inkluderer tjenester for Microsoft Dynamics NAV Application Server (NAS). 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
-objektet.
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 HandlChosenEntries -funksjonen i theApply kundeposter skjema (232) som følger:
Eksisterende kode 1...CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -
AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible"; END ELSE IF (ABS(CurrentAmount) = ABS(AppliedCustLedgEntryTemp."Remaining Amount" - AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible")) THEN BEGIN // Delete the following lines. PmtDiscAmount := PmtDiscAmount + AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible" + PossiblePmtDisc; CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" - AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible" - PossiblePmtDisc; PossiblePmtDisc := 0; // End of the deleted lines. AppliedAmount := AppliedAmount + CorrectionAmount; END ELSE IF (FromZeroGenJnl) THEN BEGIN PmtDiscAmount := PmtDiscAmount + AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible"; CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" - AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible"; ...Ny kode 1
...CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -
AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible"; END ELSE IF (ABS(CurrentAmount) = ABS(AppliedCustLedgEntryTemp."Remaining Amount" - AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible")) THEN BEGIN // Add the following lines. PmtDiscAmount := PmtDiscAmount + AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible"; CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" - AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible"; // End of the added lines. AppliedAmount := AppliedAmount + CorrectionAmount; END ELSE IF (FromZeroGenJnl) THEN BEGIN PmtDiscAmount := PmtDiscAmount + AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible"; CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" - AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible"; ...Eksisterende kode 2
...END;
CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" - AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible"; END; END ELSE BEGIN // Delete the following lines. PossiblePmtDisc := AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible"; IF (((CurrentAmount - PossiblePmtDisc + AppliedCustLedgEntryTemp."Amount to Apply") * CurrentAmount) <= 0) THEN BEGIN PmtDiscAmount := PmtDiscAmount + PossiblePmtDisc; CurrentAmount := CurrentAmount - PossiblePmtDisc; PossiblePmtDisc := 0; AppliedAmount := AppliedAmount + CorrectionAmount; END; // End of the deleted lines. CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Amount to Apply"; END; END ELSE BEGIN AppliedCustLedgEntryTemp.SETRANGE(Positive); AppliedCustLedgEntryTemp.FINDFIRST; ...Ny kode 2
...END;
CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" - AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible"; END; END ELSE BEGIN // Add the following lines. IF (((CurrentAmount + AppliedCustLedgEntryTemp."Amount to Apply") * CurrentAmount) <= 0) THEN AppliedAmount := AppliedAmount + CorrectionAmount; // End of the added lines. CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Amount to Apply"; END; END ELSE BEGIN AppliedCustLedgEntryTemp.SETRANGE(Positive); AppliedCustLedgEntryTemp.FINDFIRST; ... -
Endre koden i HandlChosenEntries -funksjonen i Utlign levrd.poster-skjemaet (233) som følger:
Eksisterende kode 1...CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -
AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible"; END ELSE IF (ABS(CurrentAmount) = ABS(AppliedVendLedgEntryTemp."Remaining Amount" - AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible")) THEN BEGIN // Delete the following lines. PmtDiscAmount := PmtDiscAmount + AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible" + PossiblePmtdisc; CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" - AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible" - PossiblePmtdisc; PossiblePmtdisc := 0; // End of the deleted lines. AppliedAmount := AppliedAmount + CorrectionAmount; END ELSE IF FromZeroGenJnl THEN BEGIN PmtDiscAmount := PmtDiscAmount + AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible"; CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" - AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible"; ...Ny kode 1
...CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -
AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible"; END ELSE IF (ABS(CurrentAmount) = ABS(AppliedVendLedgEntryTemp."Remaining Amount" - AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible")) THEN BEGIN // Add the following lines. PmtDiscAmount := PmtDiscAmount + AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible"; CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" - AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible"; // End of the added lines. AppliedAmount := AppliedAmount + CorrectionAmount; END ELSE IF FromZeroGenJnl THEN BEGIN PmtDiscAmount := PmtDiscAmount + AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible"; CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" - AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible"; ...Eksisterende kode 2
...END;
CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" - AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible"; END; END ELSE BEGIN // Delete the following lines. PossiblePmtdisc := AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible"; IF (((CurrentAmount - PossiblePmtdisc + AppliedVendLedgEntryTemp."Amount to Apply") * CurrentAmount) >= 0) THEN BEGIN PmtDiscAmount := PmtDiscAmount + PossiblePmtdisc; CurrentAmount := CurrentAmount - PossiblePmtdisc; PossiblePmtdisc := 0; AppliedAmount := AppliedAmount + CorrectionAmount; END; // End of the deleted lines. CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Amount to Apply"; END; END ELSE BEGIN AppliedVendLedgEntryTemp.SETRANGE(Positive); AppliedVendLedgEntryTemp.FINDFIRST; ...Ny kode 2
...END;
CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" - AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible"; END; END ELSE BEGIN // Add the following lines. IF (((CurrentAmount + AppliedVendLedgEntryTemp."Amount to Apply") * CurrentAmount) >= 0) THEN AppliedAmount := AppliedAmount + CorrectionAmount; // End of the added lines. CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Amount to Apply"; END; END ELSE BEGIN AppliedVendLedgEntryTemp.SETRANGE(Positive); AppliedVendLedgEntryTemp.FINDFIRST; ...
Forutsetninger
Du må ha én av de følgende programmene installert for å bruke denne hurtigreparasjonen:
-
Microsoft Dynamics NAV 2009 Service Pack 1
-
Microsoft Dynamics NAV 2009 R2
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 Brukfor andre hensyn.