Fältet Utleveransdatum beräknas felaktigt när du har angett i fältet Begärt leveransdatum i en försäljningsorder i Microsoft Dynamics NAV

Gilt für: Dynamics NAV 2009Microsoft Dynamics NAV 5.0

Den här artikeln gäller för Microsoft Dynamics NAV för alla länder och språkversioner.

Symptom


Tänk dig följande situation i Microsoft Dynamics NAV:
  • Har du en fungerande Veckokalender anges, t ex från måndag till fredag.
  • Du har fältet Leveranstid och fältet Speditörkod anges i en försäljningsorder.
  • Du anger fältet Begärt leveransdatum i försäljningsordern.
I det här fallet är fältet Utleveransdatum i försäljningsordernberäknas felaktigt.
Det här problemet uppstår i följande produkter:
  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 servicepack 1 (SP1)
  • Microsoft Dynamics NAV 5.0 servicepack 1 (SP1)

Lösning


Information om snabbkorrigeringen

En snabbkorrigering är nu tillgänglig från Microsoft. Den är endast avsedd att åtgärda det problem som beskrivs i denna artikel. Använd den bara på datorer där detta problem uppstår. Snabbkorrigeringen kan komma att testas igen. Om inte störs alltför mycket av detta problem rekommenderar vi att du väntar på Nästa service pack-versionen för Microsoft Dynamics NAV 2009 eller nästa Microsoft Dynamics NAV-version som innehåller den här snabbkorrigeringen.

Obs! I särskilda fall, de avgifter som är normalt för support vara avgiftsfri om en supporttekniker för Microsoft Dynamics och relaterade produkter som bestämmer att en särskild uppdatering kan lösa ditt problem. De vanliga supportkostnaderna gäller för övriga supportfrågor och problem som inte berör den särskilda uppdateringen.


Installationsinformation

Microsoft tillhandahåller programmeringsexempel endast utan garanti varken uttryckliga eller underförstådda. Detta inkluderar men är inte begränsat till, underförstådda garantier om säljbarhet eller lämplighet för ett särskilt ändamål. Den här artikeln förutsätter att du är bekant med det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan hjälpa till med att förklara funktionen hos en viss procedur, men kan inte ändra dessa exempel för att ge ytterligare funktioner eller skapa procedurer som motsvarar dina speciella behov.

Obs! Innan du installerar den här snabbkorrigeringen måste du kontrollera att alla användare av Microsoft Navision-klient har loggat ut. Detta inkluderar Microsoft Navision Application Services (NAS) klientanvändare. Du ska endast klientanvändare som är inloggad när du implementerar den här snabbkorrigeringen.

Om du vill genomföra den här snabbkorrigeringen måste du ha en utvecklarlicens.

Vi rekommenderar att tilldelas användarkontot i fönstret Windows-inloggningar eller i fönstret databasinloggningar ”SUPER” roll-ID. Om användarkontot inte kan tilldelas ”SUPER” roll-ID måste du kontrollera att användarkontot har följande behörigheter:
  • Ändra behörighet för objektet ändras.
  • Körbehörighet för systemet objektet ID 5210 objektet och objektet System objektet ID 9015 .


Obs! Du har inte behörighet för datalager inte data reparation.

Kod ändras

Obs! Alltid åtgärdas testa koden i en kontrollerad miljö innan du installerar korrigeringar för produktionsdatorer.
Lös problemet så här:
  1. Lägg till en global variabel i tabellen Försäljningsrad (37) och ange variabeln enligt följande:
    • Namn: RequestedPromisedDateCalulated
    • Datatyp: boolesk
  2. Ändra koden i utlösaren Begärt leveransdatum - OnValidate i tabellen Försäljningsrad (37) enligt följande:
    Befintlig kod
    ...
    IF ("Requested Delivery Date" <> xRec."Requested Delivery Date") AND
    ("Promised Delivery Date" <> 0D)
    THEN
    ERROR(
    Text028,
    FIELDCAPTION("Requested Delivery Date"),
    FIELDCAPTION("Promised Delivery Date"));
    IF "Requested Delivery Date" <> 0D THEN
    VALIDATE("Planned Delivery Date","Requested Delivery Date")
    ELSE BEGIN
    GetSalesHeader;
    VALIDATE("Shipment Date",SalesHeader."Shipment Date");
    END;
    END;
    }
    { 5791; ;Promised Delivery Date;Date ;OnValidate=BEGIN
    TestStatusOpen;
    IF "Promised Delivery Date" <> 0D THEN
    VALIDATE("Planned Delivery Date","Promised Delivery Date")
    ELSE
    ...
    Ersättningskod
    ...
    IF ("Requested Delivery Date" <> xRec."Requested Delivery Date") AND
    ("Promised Delivery Date" <> 0D)
    THEN
    ERROR(
    Text028,
    FIELDCAPTION("Requested Delivery Date"),
    FIELDCAPTION("Promised Delivery Date"));

    RequestedPromisedDateCalulated := "Requested Delivery Date" <> 0D;
    IF "Requested Delivery Date" <> 0D THEN
    VALIDATE("Planned Delivery Date","Requested Delivery Date")
    ELSE BEGIN
    GetSalesHeader;
    VALIDATE("Shipment Date",SalesHeader."Shipment Date");
    END;
    END;
    }
    { 5791; ;Promised Delivery Date;Date ;OnValidate=BEGIN
    TestStatusOpen;
    RequestedPromisedDateCalulated := "Promised Delivery Date" <> 0D;
    IF "Promised Delivery Date" <> 0D THEN
    VALIDATE("Planned Delivery Date","Promised Delivery Date")
    ELSE
    ...
  3. Ändra koden i utlösaren Planerat leveransdatum - OnValidate i tabellen Försäljningsrad (37) enligt följande:
    Befintlig kod
    ...
    IF FORMAT("Shipping Time") <> '' THEN
    VALIDATE(
    "Planned Shipment Date",
    CalendarMgmt.CalcDateBOC2(
    FORMAT("Shipping Time"),
    "Planned Delivery Date",
    CalChange."Source Type"::"Shipping Agent",
    "Shipping Agent Code",
    "Shipping Agent Service Code",
    CalChange."Source Type"::Customer,
    "Sell-to Customer No.",
    '',
    TRUE))
    ELSE
    VALIDATE(
    "Planned Shipment Date",
    CalendarMgmt.CalcDateBOC(
    FORMAT(''),
    "Planned Delivery Date",
    CalChange."Source Type"::"Shipping Agent",
    "Shipping Agent Code",
    "Shipping Agent Service Code",
    CalChange."Source Type"::Customer,
    "Sell-to Customer No.",
    '',
    TRUE));

    IF "Planned Shipment Date" > "Planned Delivery Date" THEN
    ...
    Ersättningskod
    ...
    IF FORMAT("Shipping Time") <> '' THEN
    VALIDATE(
    "Planned Shipment Date",
    CalendarMgmt.CalcDateBOC2(
    FORMAT("Shipping Time"),
    "Planned Delivery Date",
    CalChange."Source Type"::"Shipping Agent",
    "Shipping Agent Code",
    "Shipping Agent Service Code",
    CalChange."Source Type"::Customer,
    "Sell-to Customer No.",
    '',
    NOT RequestedPromisedDateCalulated))
    ELSE
    VALIDATE(
    "Planned Shipment Date",
    CalendarMgmt.CalcDateBOC(
    FORMAT(''),
    "Planned Delivery Date",
    CalChange."Source Type"::"Shipping Agent",
    "Shipping Agent Code",
    "Shipping Agent Service Code",
    CalChange."Source Type"::Customer,
    "Sell-to Customer No.",
    '',
    NOT RequestedPromisedDateCalulated));

    IF "Planned Shipment Date" > "Planned Delivery Date" THEN
    ...

Förutsättningar

Du måste ha någon av följande produkter som har installerat den här snabbkorrigeringen:
  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 servicepack 1 (SP1)
  • Microsoft Dynamics NAV 5.0 servicepack 1 (SP1)

Information om borttagning

Du kan inte ta bort den här snabbkorrigeringen.

Status


Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet ”gäller”.
Obs! Detta är en "SNABBPUBLICERING"-artikel skapad direkt från Microsoft support-organisationen. Informationen häri tillhandahålls i befintligt skick som svar på nya problem. Till följd av hastigheten för att göra det tillgängligt kan materialet innehålla typografiska fel och kan ändras när som helst utan föregående meddelande. Se Villkoren för användning för andra överväganden.