Raskt gi publiserte artikler informasjonen direkte i organisasjonen Microsoft Kundestøtte. Informasjonen som finnes her, er opprettet som svar på nye eller unike emner, eller er ment å supplere annen informasjon i Knowledge Base.
Denne artikkelen gjelder for alle land og alle språkinnstillingene for Microsoft Dynamics NAV 2009.
Symptomer
Hvis en saldo på leverandør er negativt i Microsoft Dynamics NAV 2009 Service Pack 1, foreslår rapporten "Betalingsforslag-leverandør" (393) negativ saldo som en betaling.
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, men de endrer 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 Leverandør - OnPostDataItem -utløser i rapporten "Betalingsforslag-leverandør" (393) som følger:
Eksisterende kode... IF FIND('-') THEN
REPEAT
Window.UPDATE(1,"No.");
PayableVendLedgEntry.SETRANGE("Vendor No.","No.");
GetVendLedgEntries(TRUE,TRUE);
GetVendLedgEntries(FALSE,TRUE);
CheckAmounts(TRUE);
UNTIL (NEXT = 0) OR StopPayments;
END;
ClearNegative;
JnlLineDim.LOCKTABLE;
...Ny kode
... IF FIND('-') THEN
REPEAT
Window.UPDATE(1,"No.");
PayableVendLedgEntry.SETRANGE("Vendor No.","No.");
GetVendLedgEntries(TRUE,TRUE);
GetVendLedgEntries(FALSE,TRUE);
CheckAmounts(TRUE);
ClearNegative;
UNTIL (NEXT = 0) OR StopPayments;
END ELSE
IF FIND('-') THEN
REPEAT
ClearNegative;
UNTIL NEXT = 0;
JnlLineDim.LOCKTABLE;
... -
Endre koden i GetVendLedgEntries -prosedyren i rapporten "Betalingsforslag-leverandør" (393) som følger:
Eksisterende kode... VendLedgEntry.RESET;
VendLedgEntry.SETCURRENTKEY("Vendor No.",Open,Positive,"Due Date");
VendLedgEntry.SETRANGE("Vendor No.",Vendor."No.");
VendLedgEntry.SETRANGE(Open,TRUE);
VendLedgEntry.SETRANGE(Positive,Positive);
IF Future THEN BEGIN
...Ny kode
... VendLedgEntry.RESET;
VendLedgEntry.SETCURRENTKEY("Vendor No.",Open,Positive,"Due Date");
VendLedgEntry.SETRANGE("Vendor No.",Vendor."No.");
VendLedgEntry.SETRANGE(Open,TRUE);
VendLedgEntry.SETRANGE(Positive,Positive);
VendLedgEntry.SETRANGE("Applies-to ID",'');
IF Future THEN BEGIN
... -
Endre koden i MakeGenJnlLines -prosedyren i rapporten "Betalingsforslag-leverandør" (393) som følger:
Eksisterende kode... Window.UPDATE(1,VendLedgEntry."Vendor No.");
TempPaymentBuffer.INSERT;
END;
VendLedgEntry.TESTFIELD("Applies-to ID",'');
VendLedgEntry."Applies-to ID" := TempPaymentBuffer."Document No.";
END ELSE BEGIN
...Ny kode
... Window.UPDATE(1,VendLedgEntry."Vendor No.");
TempPaymentBuffer.INSERT;
END;
VendLedgEntry."Applies-to ID" := TempPaymentBuffer."Document No.";
END ELSE BEGIN
... -
Endre koden i ClearNegative -prosedyren i rapporten "Betalingsforslag-leverandør" (393) som følger:
Eksisterende kode... WHILE PayableVendLedgEntry.NEXT <> 0 DO BEGIN
TempCurrency.Code := PayableVendLedgEntry."Currency Code";
CurrencyBalance := 0;
PayableVendLedgEntry2 := PayableVendLedgEntry;
IF TempCurrency.INSERT THEN BEGIN
PayableVendLedgEntry.SETRANGE("Currency Code",PayableVendLedgEntry."Currency Code");
REPEAT
CurrencyBalance := CurrencyBalance + PayableVendLedgEntry."Amount (LCY)"
UNTIL PayableVendLedgEntry.NEXT = 0;
IF CurrencyBalance < 0 THEN
PayableVendLedgEntry.DELETEALL;
END;
PayableVendLedgEntry.SETRANGE("Currency Code");
PayableVendLedgEntry := PayableVendLedgEntry2;
END;
...Ny kode
... WHILE PayableVendLedgEntry.NEXT <> 0 DO BEGIN
TempCurrency.Code := PayableVendLedgEntry."Currency Code";
CurrencyBalance := 0;
IF TempCurrency.INSERT THEN BEGIN
PayableVendLedgEntry2 := PayableVendLedgEntry;
PayableVendLedgEntry.SETRANGE("Currency Code",PayableVendLedgEntry."Currency Code");
REPEAT
CurrencyBalance := CurrencyBalance + PayableVendLedgEntry."Amount (LCY)"
UNTIL PayableVendLedgEntry.NEXT = 0;
IF CurrencyBalance < 0 THEN
PayableVendLedgEntry.DELETEALL;
PayableVendLedgEntry.SETRANGE("Currency Code");
PayableVendLedgEntry := PayableVendLedgEntry2;
END;
END;
...
Forutsetninger
Du må ha Microsoft Dynamics NAV 2009 Service Pack 1 installert for å bruke denne hurtigreparasjonen.
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".
MICROSOFT OG/ELLER DETS LEVERANDØRER GJØR INGEN REPRESENTASJONER ELLER GARANTIER OM EGNETHETEN, PÅLITELIGHET ELLER NØYAKTIGHETEN AV INFORMASJONEN SOM FINNES I DOKUMENTENE OG RELATERT GRAFIKK PUBLISERT PÅ DETTE WEBOMRÅDET ("MATERIELL") TIL NOE FORMÅL.
MATERIALENE KAN INNEHOLDE TEKNISKE UNØYAKTIGHETER ELLER TYPOGRAFISKE FEIL, OG DEN KUNNE BLI REVIDERT NÅR SOM HELST UTEN VARSEL. MICROSOFT OG/ELLER DETS LEVERANDØRER FRASKRIVE SEG GRAD IKKE ANNET FØLGER AV UFRAVIKELIG LOVGIVNING, OG UTELATE ALLE REPRESENTASJONER, GARANTIER OG BETINGELSER OM UTTRYKTE, UNDERFORSTÅTTE ELLER LOVFESTET, INKLUDERT MEN IKKE BEGRENSET TIL, REPRESENTASJONER, GARANTIER ELLER BETINGELSER FOR TITTEL, OVERHOLDELSE, TILFREDSSTILLENDE TILSTAND ELLER KVALITET, SALGBARHET OG ANVENDELIGHET FOR SÆRSKILTE FORMÅL, NÅR DET GJELDER MATERIALET.