SNABBPUBLICERINGSARTIKLAR INNEHÅLLER INFORMATION DIREKT FRÅN MICROSOFTS SUPPORTORGANISATION. DEN INFORMATION SOM FINNS HÄRI SKAPAS SOM SVAR PÅ FRAMVÄXANDE ELLER UNIKA ÄMNEN, ELLER ÄR AVSEDD ATT KOMPLETTERA ANNAN KUNSKAPSBASINFORMATION.
Den här artikeln gäller Microsoft Dynamics NAV för alla länder och alla språkspråk.
Symptom
Tänk dig följande scenario. Det finns en termkod för betalning för kunden i Microsoft Dynamics NAV 2009. Du skapar en försäljningsorder från kundkortet. I det här scenariot är fältet "Betalningsrabatt %" i rubriken för försäljningsordern noll. Om du bokför försäljningsordern senare beräknas dessutom ingen betalningsrabatt.
Lösning
Snabbkorrigeringsinformation
En snabbkorrigering som stöds är nu tillgänglig från Microsoft. Det är dock bara avsett att åtgärda problemet som beskrivs i den här artikeln. Använd den bara på system som har det här specifika problemet. Den här snabbkorrigeringen kan få ytterligare tester. Om du inte drabbas hårt av det här problemet rekommenderar vi därför att du väntar på nästa Microsoft Dynamics NAV 2009 Service Pack eller nästa Microsoft Dynamics NAV-version som innehåller den här snabbkorrigeringen.
Obs! I särskilda fall kan avgifter som vanligtvis uppkommer för supportsamtal avbrytas om en teknisk supporttekniker för Microsoft Dynamics och relaterade produkter fastställer att en specifik uppdatering löser problemet. De vanliga supportkostnaderna gäller för ytterligare supportfrågor och problem som inte är berättigade till den aktuella uppdateringen.
Installationsinformation
Microsoft tillhandahåller endast programmeringsexempel i visningssyfte, utan att någon form av garanti uttrycks eller är underförstådd. Detta omfattar men är inte begränsat till underförstådda garantier för säljbarhet eller lämplighet för ett visst ändamål. Den här artikeln förutsätter att du är bekant med programmeringsspråket som demonstreras och med de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan hjälpa till att förklara funktionaliteten i en viss procedur, men de ändrar inte de här exemplen för att tillhandahålla ytterligare funktioner eller konstruera procedurer för att uppfylla dina specifika krav.
Obs! Innan du installerar den här snabbkorrigeringen kontrollerar du att alla Microsoft Navision-klientanvändare loggas ut från systemet. Detta omfattar användare av Microsoft Navision Application Services (NAS). Du bör vara den enda klientanvändare som är inloggad när du implementerar snabbkorrigeringen.
Om du vill implementera den här snabbkorrigeringen måste du ha en utvecklarlicens.
Vi rekommenderar att användarkontot i fönstret Windows-inloggningar eller i fönstret Databasinloggningar tilldelas roll-ID:t "SUPER". Om användarkontot inte kan tilldelas superroll-ID måste du kontrollera att användarkontot har följande behörigheter:
- Behörigheten Ändra för det objekt som du kommer att ändra.
- Körbehörigheten för systemobjekt-ID 5210-objektet och för 9015-objektet Systemobjekt-ID.
Obs! Du behöver inte ha rättigheter till datakällorna om du inte behöver utföra datareparation.
Kodändringar
Obs! Testa alltid korrigeringar av kod i en kontrollerad miljö innan du tillämpar korrigeringarna på produktionsdatorerna.
Om du vill installera det här kodfixet ändrar du koden i tabellen Försäljningshuvud (36) och i tabellen Inköpsrubrik (38) enligt följande.
Obs! Följande steg anger ändringar som du måste göra för tabellen Försäljningshuvud (36). Samma ändringar måste göras för tabellen Inköpshuvud (38).
Lägg till en ny global variabel:
Namn: UpdateDocumentDate
Datatyp: BooleskI "Fakturanr till kundnr. - Funktionen OnValidate()" ändrar du koden enligt följande.
Befintlig kod 1
… IF NOT SkipBillToContact THEN "Bill-to Contact" := Cust.Contact; "Payment Terms Code" := Cust."Payment Terms Code"; IF "Document Type" = "Document Type"::"Credit Memo" THEN BEGIN …Ersättningskod 1
… IF NOT SkipBillToContact THEN "Bill-to Contact" := Cust.Contact; "Payment Terms Code" := Cust."Payment Terms Code"; "Prepmt. Payment Terms Code" := Cust."Payment Terms Code"; IF "Document Type" = "Document Type"::"Credit Memo" THEN BEGIN …Befintlig kod 2
… DATABASE::"Customer Template","Bill-to Customer Template Code"); VALIDATE("Payment Terms Code"); VALIDATE("Payment Method Code"); VALIDATE("Currency Code"); IF (xRec."Sell-to Customer No." = "Sell-to Customer No.") AND …Ersättningskod 2
… DATABASE::"Customer Template","Bill-to Customer Template Code"); VALIDATE("Payment Terms Code"); VALIDATE("Prepmt. Payment Terms Code"); VALIDATE("Payment Method Code"); VALIDATE("Currency Code"); IF (xRec."Sell-to Customer No." = "Sell-to Customer No.") AND …I funktionen "Betalningsvillkorskod - OnValidate()" ändrar du koden enligt följande.
Befintlig kod
IF ("Payment Terms Code" <> '') AND ("Document Date" <> 0D) THEN BEGIN PaymentTerms.GET("Payment Terms Code"); IF (("Document Type" IN ["Document Type"::"Return Order","Document Type"::"Credit Memo"]) AND NOT PaymentTerms."Calc. Pmt. Disc. on Cr. Memos") THEN BEGIN VALIDATE("Due Date","Document Date"); VALIDATE("Pmt. Discount Date",0D); VALIDATE("Payment Discount %",0); END ELSE BEGIN "Due Date" := CALCDATE(PaymentTerms."Due Date Calculation","Document Date"); "Pmt. Discount Date" := CALCDATE(PaymentTerms."Discount Date Calculation","Document Date"); IF xRec."Document Date"="Document Date" THEN VALIDATE("Payment Discount %",PaymentTerms."Discount %") END; END ELSE BEGIN VALIDATE("Due Date","Document Date"); IF xRec."Document Date"="Document Date" THEN BEGIN VALIDATE("Pmt. Discount Date",0D); VALIDATE("Payment Discount %",0); END; …Ersättningskod
IF ("Payment Terms Code" <> '') AND ("Document Date" <> 0D) THEN BEGIN PaymentTerms.GET("Payment Terms Code"); IF (("Document Type" IN ["Document Type"::"Return Order","Document Type"::"Credit Memo"]) AND NOT PaymentTerms."Calc. Pmt. Disc. on Cr. Memos") THEN BEGIN VALIDATE("Due Date","Document Date"); VALIDATE("Pmt. Discount Date",0D); VALIDATE("Payment Discount %",0); END ELSE BEGIN "Due Date" := CALCDATE(PaymentTerms."Due Date Calculation","Document Date"); "Pmt. Discount Date" := CALCDATE(PaymentTerms."Discount Date Calculation","Document Date"); IF NOT UpdateDocumentDate THEN VALIDATE("Payment Discount %",PaymentTerms."Discount %") END; END ELSE BEGIN VALIDATE("Due Date","Document Date"); IF NOT UpdateDocumentDate THEN BEGIN VALIDATE("Pmt. Discount Date",0D); VALIDATE("Payment Discount %",0); END; …I funktionen "Dokumentdatum – OnValidate()" ändrar du koden enligt följande.
Befintlig kod
VALIDATE("Payment Terms Code"); VALIDATE("Prepmt. Payment Terms Code");Ersättningskod
IF xRec."Document Date" <> "Document Date" THEN UpdateDocumentDate := TRUE; VALIDATE("Payment Terms Code"); VALIDATE("Prepmt. Payment Terms Code");I "Prepmt. Betalningsvillkorskod – Funktionen OnValidate()" ändrar du koden enligt följande.
Befintlig kod
… END ELSE BEGIN "Prepayment Due Date" := CALCDATE(PaymentTerms."Due Date Calculation","Document Date"); "Prepmt. Pmt. Discount Date" := CALCDATE(PaymentTerms."Discount Date Calculation","Document Date"); VALIDATE("Prepmt. Payment Discount %",PaymentTerms."Discount %") END; END ELSE BEGIN VALIDATE("Prepayment Due Date","Document Date"); VALIDATE("Prepmt. Pmt. Discount Date",0D); VALIDATE("Prepmt. Payment Discount %",0); END;Ersättningskod
… END ELSE BEGIN "Prepayment Due Date" := CALCDATE(PaymentTerms."Due Date Calculation","Document Date"); "Prepmt. Pmt. Discount Date" := CALCDATE(PaymentTerms."Discount Date Calculation","Document Date"); IF NOT UpdateDocumentDate THEN VALIDATE("Prepmt. Payment Discount %",PaymentTerms."Discount %") END; END ELSE BEGIN VALIDATE("Prepayment Due Date","Document Date"); IF NOT UpdateDocumentDate THEN BEGIN VALIDATE("Prepmt. Pmt. Discount Date",0D); VALIDATE("Prepmt. Payment Discount %",0); END; END;
Krav
Om du vill installera det här kodfixet måste du ha någon av följande produkter installerad:
- Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)
- Microsoft Dynamics NAV 2009
- Microsoft Dynamics NAV SP1
Information om omstart
Du behöver inte starta om datorn när du har tillämpat det här kodfixet.
Status
Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".
Mer information
MICROSOFT OCH/ELLER DESS LEVERANTÖRER LÄMNAR INGA UTFÄSTELSER ELLER GARANTIER OM LÄMPLIGHETEN, TILLFÖRLITLIGHETEN ELLER RIKTIGHETEN I DEN INFORMATION SOM FINNS I DOKUMENTEN OCH RELATERAD GRAFIK SOM PUBLICERAS PÅ DENNA WEBBPLATS ("MATERIALET") FÖR NÅGOT ÄNDAMÅL.
MATERIALET KAN INNEHÅLLA TEKNISKA FELAKTIGHETER ELLER TYPOGRAFISKA FEL OCH KAN KOMMA ATT REVIDERAS NÄR SOM HELST UTAN FÖREGÅENDE MEDDELANDE. I DEN UTSTRÄCKNING SOM TILLÅTS ENLIGT TILLÄMPLIG LAG FRISKRIVER SIG MICROSOFT OCH/ELLER DESS LEVERANTÖRER FRÅN OCH UTESLUTER ALLA REPRESENTATIONER, GARANTIER OCH VILLKOR OAVSETT UTTRYCKLIG, UNDERFÖRSTÅDD ELLER LAGSTADGAD, INKLUSIVE MEN INTE BEGRÄNSAT TILL UTFÄSTELSER, GARANTIER ELLER VILLKOR FÖR ÄGANDERÄTT, ICKE-INTRÅNG, TILLFREDSSTÄLLANDE VILLKOR ELLER KVALITET, SÄLJBARHET OCH LÄMPLIGHET FÖR ETT VISST ÄNDAMÅL, MED AVSEENDE PÅ MATERIALET.