Den här artikeln gäller för Microsoft Dynamics NAV för alla språk.

Symptom

I Microsoft Dynamics NAV, när du skapar en inköpsorder, eller när du manuellt skapar en inköpsorder inköpsförslaget anser direktleveransen och särskilda order informationen som definieras på den kopplade försäljningsordern. Därför, beskrivning, Beskrivning 2 och leveransadressen från försäljningsorderrubriken och rader inte följer via den peggade köpt ordning.
Det här problemet uppstår i följande produkter:

  • Microsoft Dynamics NAV 2009 servicepack 1 (SP1)

  • Microsoft Dynamics NAV 2009 R2

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:
Obs! Läs när du öppnar kodmodul (333), eftersom det är olika för nordamerikanska versionen W1. Båda är här med etiketter för start och stopp av varje version.

  1. Ändra koden i tabellen Inköpshuvud (38) enligt följande:

    1. Lägg till följande global textkonstant:
      Text051@1091: TextConst ' ENU = %1 i fältet på inköpsordern %2 måste vara på samma sätt som på sales order %3.';

    2. Lägg till följande globala variabler:

      • Namn: NameAddressDetails; Datatyp: Text [512]

      • Namn: NameAddressDetails2; Datatyp: Text [512]

    3. Lägg till följande funktion:
      CheckAndAddShipToAdd@46 (SalesHeader@1000: registrera 36. ShowError@1001: Boolean): boolesk;

      VAR PurchLine2@1002: Posten 39.
      Lägg till följande kod för funktionen:

      IF ShowError THEN BEGIN  PurchLine2.RESET;
      PurchLine2.SETRANGE("Document Type","Document Type"::Order);
      PurchLine2.SETRANGE("Document No.","No.");
      IF NOT PurchLine2.ISEMPTY THEN BEGIN
      IF "Ship-to Name" <>SalesHeader."Ship-to Name" THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Name"),"No.",SalesHeader."No.");
      IF "Ship-to Name 2" <>SalesHeader."Ship-to Name 2" THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Name 2"),"No.",SalesHeader."No.");
      IF ("Ship-to Address" <>SalesHeader."Ship-to Address") THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Address"),"No.",SalesHeader."No.");
      IF ("Ship-to Address 2" <> SalesHeader."Ship-to Address 2") THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Address 2"),"No.",SalesHeader."No.");
      IF ("Ship-to Post Code" <>SalesHeader."Ship-to Post Code") THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Post Code"),"No.",SalesHeader."No.");
      IF ("Ship-to City" <>SalesHeader."Ship-to City") THEN
      ERROR(Text051,FIELDCAPTION("Ship-to City"),"No.",SalesHeader."No.");
      IF ("Ship-to Contact" <>SalesHeader."Ship-to Contact") THEN
      ERROR(Text051,FIELDCAPTION("Ship-to Contact"),"No.",SalesHeader."No.");
      END ELSE BEGIN
      // no purchase line exists
      "Ship-to Name" := SalesHeader."Ship-to Name";
      "Ship-to Name 2" := SalesHeader."Ship-to Name 2";
      "Ship-to Address" := SalesHeader."Ship-to Address";
      "Ship-to Address 2" := SalesHeader."Ship-to Address 2";
      "Ship-to Post Code" := SalesHeader."Ship-to Post Code";
      "Ship-to City" := SalesHeader."Ship-to City";
      "Ship-to Contact" := SalesHeader."Ship-to Contact";
      END;
      END ELSE BEGIN
      NameAddressDetails :=
      SalesHeader."Ship-to Name" + SalesHeader."Ship-to Name 2" +
      SalesHeader."Ship-to Address" + SalesHeader."Ship-to Address 2" +
      SalesHeader."Ship-to Post Code" + SalesHeader."Ship-to City" +
      SalesHeader."Ship-to Contact";
      IF NameAddressDetails2 = '' THEN
      NameAddressDetails2 := NameAddressDetails;
      EXIT(NameAddressDetails2 = NameAddressDetails);
      END;

    4. Lägg till följande funktion:
      DropShptSplOrderExists@48 (SalesHeader@1000: registrera 36): boolesk;

      VAR SalesLine2@1001: Posten 37,

      Lägg till följande kod för funktionen:

      // returns TRUE if sales is either Drop Shipment of Special OrderSalesLine2.RESET;
      SalesLine2.SETRANGE("Document Type",SalesLine2."Document Type"::Order);
      SalesLine2.SETRANGE("Document No.",SalesHeader."No.");
      SalesLine2.SETRANGE("Drop Shipment",TRUE);
      IF NOT SalesLine2.ISEMPTY THEN
      EXIT(TRUE);

      SalesLine2.SETRANGE("Drop Shipment");
      SalesLine2.SETRANGE("Special Order",TRUE);
      EXIT(NOT SalesLine2.ISEMPTY);

  2. Ändra koden i funktionen InsertReqWkshLine i rapporten Hämta förs.order (698) enligt följande:
    Befintlig kod

    ...    Quantity,
    ROUND(SalesLine."Outstanding Quantity" * SalesLine."Qty. per Unit of Measure" / "Qty. per Unit of Measure",0.00001));
    "Sales Order No." := SalesLine."Document No.";
    "Sales Order Line No." := SalesLine."Line No.";
    "Sell-to Customer No." := SalesLine."Sell-to Customer No.";
    SalesHeader.GET(1,SalesLine."Document No.");
    IF SpecOrder <>1 THEN
    "Ship-to Code" := SalesHeader."Ship-to Code";
    "Item Category Code" := SalesLine."Item Category Code";
    Nonstock := SalesLine.Nonstock;
    ...

    Ersättningskod

    ...        Quantity,
    ROUND(SalesLine."Outstanding Quantity" * SalesLine."Qty. per Unit of Measure" / "Qty. per Unit of Measure",0.00001));
    "Sales Order No." := SalesLine."Document No.";
    "Sales Order Line No." := SalesLine."Line No.";
    "Sell-to Customer No." := SalesLine."Sell-to Customer No.";

    // Add the following lines.
    Description := SalesLine.Description;
    "Description 2" := SalesLine."Description 2";
    // End of the added lines.

    SalesHeader.GET(1,SalesLine."Document No.");
    IF SpecOrder <>1 THEN
    "Ship-to Code" := SalesHeader."Ship-to Code";
    "Item Category Code" := SalesLine."Item Category Code";
    Nonstock := SalesLine.Nonstock;
    ...
  3. Ändra koden i funktionen kod i den Inköp-få släppa artikelleverans kodmodul (76) enligt följande:
    Befintlig kod

    ...      IF RECORDLEVELLOCKING THEN
    LOCKTABLE;
    SalesHeader.TESTFIELD("Document Type",SalesHeader."Document Type"::Order);
    TESTFIELD("Sell-to Customer No.",SalesHeader."Sell-to Customer No.");
    TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");

    PurchLine.LOCKTABLE;
    IF NOT RECORDLEVELLOCKING THEN
    LOCKTABLE(TRUE,TRUE); // Only version check
    SalesLine.LOCKTABLE;
    ...
    PurchLine."Document Type" := PurchLine."Document Type"::Order;
    PurchLine."Document No." := "No.";
    PurchLine."Line No." := NextLineNo;
    CopyDocMgt.TransfldsFromSalesToPurchLine(SalesLine,PurchLine);
    PurchLine.Description := SalesLine.Description;
    PurchLine."Sales Order No." := SalesLine."Document No.";
    PurchLine."Sales Order Line No." := SalesLine."Line No.";
    PurchLine."Drop Shipment" := TRUE;
    EVALUATE(PurchLine."Inbound Whse. Handling Time",'<0D>');
    PurchLine.VALIDATE("Inbound Whse. Handling Time");
    ...

    Ersättningskod

    ...   IF RECORDLEVELLOCKING THEN
    LOCKTABLE;
    SalesHeader.TESTFIELD("Document Type",SalesHeader."Document Type"::Order);
    TESTFIELD("Sell-to Customer No.",SalesHeader."Sell-to Customer No.");
    TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");

    // Add the following lines.
    IF DropShptSplOrderExists(SalesHeader) THEN
    CheckAndAddShipToAdd(SalesHeader,TRUE);
    // End of the added lines.

    PurchLine.LOCKTABLE;
    IF NOT RECORDLEVELLOCKING THEN
    LOCKTABLE(TRUE,TRUE); // Only version check
    SalesLine.LOCKTABLE;
    ...
    PurchLine."Document Type" := PurchLine."Document Type"::Order;
    PurchLine."Document No." := "No.";
    PurchLine."Line No." := NextLineNo;
    CopyDocMgt.TransfldsFromSalesToPurchLine(SalesLine,PurchLine);
    PurchLine.Description := SalesLine.Description;

    // Add the following line.
    PurchLine."Description 2" := SalesLine."Description 2";
    // End of the added line.

    PurchLine."Sales Order No." := SalesLine."Document No.";
    PurchLine."Sales Order Line No." := SalesLine."Line No.";
    PurchLine."Drop Shipment" := TRUE;
    EVALUATE(PurchLine."Inbound Whse. Handling Time",'<0D>');
    PurchLine.VALIDATE("Inbound Whse. Handling Time");
    ...
  4. Ändra koden i funktionen GetDescriptionAndRcptName i ReqJnlManagement kodmodul (330) enligt följande:
    Befintlig kod

    ...       ReqLine.Type::"G/L Account":
    IF GLAcc.GET(ReqLine."No.") THEN
    Description := GLAcc.Name
    ELSE
    Description := '';

    // Delete the following lines.
    ReqLine.Type::Item:
    IF Item.GET(ReqLine."No.") THEN
    Description := Item.Description
    ELSE
    Description := '';
    // End of the deleted lines.

    END;
    END;

    IF ReqLine."Vendor No." = '' THEN
    BuyFromVendorName := ''
    ...

    Ersättningskod

    ...         ReqLine.Type::"G/L Account":
    IF GLAcc.GET(ReqLine."No.") THEN
    Description := GLAcc.Name
    ELSE
    Description := '';
    END;
    END;

    IF ReqLine."Vendor No." = '' THEN
    BuyFromVendorName := ''
    ...
  5. Obs! Kodmodul (333) har olika kod i hela världen version vs amerikanska versionen. Använd rätt avsnitt för din installation.

    BÖRJA nordamerikanska versionen kodmodul (333), ändra i koden i den Inköpsförslagsnamn-skapa order på följande sätt:

    1. Lägg till den globala variabeln:

      • Namn: DropShptSpecialOrderExists;

      • Datatyp: Boolesk;

    2. Lägg till följande lokala variabler i funktionen InsertPurchOrderLine:

      • Namn: SalesHeader; Datatyp: Post (36).

      • Namn: DropShptSplOrderDiffAddress; Datatyp: Boolesk;

      • Namn: CreateNewRecord; Datatyp: Boolesk;

    3. Ändra koden i funktionen InsertPurchOrderLinepå följande sätt:
      Befintlig kod

      ...// Delete the following lines.
      WITH ReqLine2 DO BEGIN
      IF ("No." = '') OR ("Vendor No." = '') OR (Quantity = 0) THEN
      EXIT;
      IF NOT PurchasingCode.GET("Purchasing Code") THEN
      PurchasingCode."Special Order" := FALSE;
      IF (PurchasingCode."Special Order" AND
      (PurchSetup."Combine Special Orders Default" =
      PurchSetup."Combine Special Orders Default"::"Always Combine") AND
      ((PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR
      (PurchOrderHeader."Location Code" <> "Location Code") OR
      (PurchOrderHeader."Currency Code" <>"Currency Code") OR
      (PrevPurchCode <>"Purchasing Code"))) OR
      (NOT PurchasingCode."Special Order" AND
      ((PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR
      (PurchOrderHeader."Location Code" <>"Location Code") OR
      (PurchOrderHeader."Sell-to Customer No." <>"Sell-to Customer No.") OR
      (PrevShipToCode <>"Ship-to Code") OR
      (PurchOrderHeader."Order Address Code" <> "Order Address Code") OR
      (PurchOrderHeader."Currency Code" <> "Currency Code") OR
      (PrevPurchCode <>"Purchasing Code")))
      THEN BEGIN
      InsertHeader(ReqLine2);
      LineCount := 0;
      NextLineNo := 0;
      PrevPurchCode := "Purchasing Code";
      PrevShipToCode := "Ship-to Code";
      END;
      IF (PurchasingCode."Special Order") AND
      (PurchSetup."Combine Special Orders Default" =
      PurchSetup."Combine Special Orders Default"::"Never Combine") AND
      ((PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR
      (PurchOrderHeader."Location Code" <> "Location Code") OR
      (PurchOrderHeader."Currency Code" <>"Currency Code") OR
      (PrevPurchCode <> "Purchasing Code")) THEN BEGIN
      InsertHeader(ReqLine2);
      END;
      // End of the deleted lines.

      LineCount := LineCount + 1;
      IF NOT PlanningResiliency THEN
      Window.UPDATE(4,LineCount);
      ...

      Ersättningskod

      ...// Add the following lines.
      WITH ReqLine2 DO BEGIN
      IF ("No." = '') OR ("Vendor No." = '') OR (Quantity = 0) THEN
      EXIT;
      DropShptSpecialOrderExists := FALSE;
      IF SalesHeader.GET(SalesHeader."Document Type"::Order,"Sales Order No.") THEN BEGIN
      DropShptSpecialOrderExists := PurchOrderHeader.DropShptSplOrderExists(SalesHeader);
      IF DropShptSpecialOrderExists THEN
      DropShptSplOrderDiffAddress :=
      NOT PurchOrderHeader.CheckAndAddShipToAdd(SalesHeader,FALSE);
      END;
      IF NOT PurchasingCode.GET("Purchasing Code") THEN
      PurchasingCode."Special Order" := FALSE;

      CreateNewRecord :=
      (PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR
      (PurchOrderHeader."Location Code" <> "Location Code") OR
      (PurchOrderHeader."Currency Code" <> "Currency Code") OR
      (PrevPurchCode <>"Purchasing Code") OR
      DropShptSplOrderDiffAddress;

      IF PurchasingCode."Special Order" AND CreateNewRecord THEN BEGIN
      InsertHeader(ReqLine2);
      IF PurchSetup."Combine Special Orders Default" =
      PurchSetup."Combine Special Orders Default"::"Always Combine"
      THEN BEGIN
      LineCount := 0;
      NextLineNo := 0;
      PrevPurchCode := "Purchasing Code";
      PrevShipToCode := "Ship-to Code";
      END;
      END;
      IF NOT PurchasingCode."Special Order" AND
      (CreateNewRecord OR
      (PurchOrderHeader."Sell-to Customer No." <>"Sell-to Customer No.") OR
      (PrevShipToCode <>"Ship-to Code") OR
      (PurchOrderHeader."Order Address Code" <>"Order Address Code"))
      THEN BEGIN
      InsertHeader(ReqLine2);
      LineCount := 0;
      NextLineNo := 0;
      PrevPurchCode := "Purchasing Code";
      PrevShipToCode := "Ship-to Code";
      END;
      // End of the added lines.

      LineCount := LineCount + 1;
      IF NOT PlanningResiliency THEN
      Window.UPDATE(4,LineCount);
      ...
    4. Ändra koden i funktionen InsertHeader på följande sätt:
      Lägg till följande lokala variabeln:

      • Namn: SalesHeader;

      • Datatyp: Post (36).

      Befintlig kod

      ...   WITH ReqLine2 DO BEGIN
      OrderCounter := OrderCounter + 1;
      IF NOT PlanningResiliency THEN
      Window.UPDATE(3,OrderCounter);

      PurchSetup.GET;
      PurchSetup.TESTFIELD("Order Nos.");

      // Delete the following line.
      CLEAR(PurchOrderHeader);
      // End of the deleted line.

      PurchOrderHeader.INIT;
      PurchOrderHeader."Document Type" := PurchOrderHeader."Document Type"::Order;
      PurchOrderHeader."No." := '';
      ...
      PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");
      END ELSE BEGIN
      PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");
      PurchOrderHeader.SetShipToForSpecOrder;
      END;

      PurchOrderHeader.MODIFY;
      COMMIT;
      IF RECORDLEVELLOCKING THEN
      LOCKTABLE;
      PurchOrderHeader.MARK(TRUE);
      END;
      ...

      Ersättningskod

      ...WITH ReqLine2 DO BEGIN
      OrderCounter := OrderCounter + 1;
      IF NOT PlanningResiliency THEN
      Window.UPDATE(3,OrderCounter);

      PurchSetup.GET;
      PurchSetup.TESTFIELD("Order Nos.");
      PurchOrderHeader.INIT;
      PurchOrderHeader."Document Type" := PurchOrderHeader."Document Type"::Order;
      PurchOrderHeader."No." := '';
      ...
      PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");
      END ELSE BEGIN
      PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");
      PurchOrderHeader.SetShipToForSpecOrder;
      END;

      // Add the following lines.
      IF DropShptSpecialOrderExists THEN BEGIN
      SalesHeader.GET(SalesHeader."Document Type"::Order,"Sales Order No.");
      PurchOrderHeader."Ship-to Name" := SalesHeader."Ship-to Name";
      PurchOrderHeader."Ship-to Name 2" := SalesHeader."Ship-to Name 2";
      PurchOrderHeader."Ship-to Address" := SalesHeader."Ship-to Address";
      PurchOrderHeader."Ship-to Address 2" := SalesHeader."Ship-to Address 2";
      PurchOrderHeader."Ship-to Post Code" := SalesHeader."Ship-to Post Code";
      PurchOrderHeader."Ship-to City" := SalesHeader."Ship-to City";
      PurchOrderHeader."Ship-to Contact" := SalesHeader."Ship-to Contact";
      END;
      // End of the added lines.

      PurchOrderHeader.MODIFY;
      COMMIT;
      IF RECORDLEVELLOCKING THEN
      LOCKTABLE;
      PurchOrderHeader.MARK(TRUE);
      END;
      ...

    BÖRJA W1-versionen kodmodul (333), ändra i koden i den Inköpsförslagsnamn-skapa Order på följande sätt:

    1. Lägg till den globala variabeln:

      • Namn: DropShptSpecialOrderExists;

      • Datatyp: Boolesk;

    2. Lägg till följande lokala variabler i funktionen InsertPurchOrderLine:

      • Namn: SalesHeader; Datatyp: Post (36).

      • Namn: DropShptSplOrderDiffAddress; Datatyp: Boolesk;

    3. Ändra koden i funktionen InsertPurchOrderLinepå följande sätt:
      Befintlig kod

      ...   WITH ReqLine2 DO BEGIN
      IF ("No." = '') OR ("Vendor No." = '') OR (Quantity = 0) THEN
      EXIT;

      IF (PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR
      (PurchOrderHeader."Sell-to Customer No."<> "Sell-to Customer No.") OR
      (PrevShipToCode <> "Ship-to Code") OR
      (PurchOrderHeader."Order Address Code" <>"Order Address Code") OR
      (PurchOrderHeader."Currency Code" <>"Currency Code") OR

      // Delete the following line.
      (PrevPurchCode <>"Purchasing Code")
      // End of the deleted line.

      THEN BEGIN
      InsertHeader(ReqLine2);
      LineCount := 0;
      NextLineNo := 0;
      PrevPurchCode := "Purchasing Code";
      PrevShipToCode := "Ship-to Code";
      END;
      ...

      Ersättningskod

      ...  WITH ReqLine2 DO BEGIN
      IF ("No." = '') OR ("Vendor No." = '') OR (Quantity = 0) THEN
      EXIT;
      // Add the following lines.
      DropShptSpecialOrderExists := FALSE;
      IF SalesHeader.GET(SalesHeader."Document Type"::Order,"Sales Order No.") THEN BEGIN
      DropShptSpecialOrderExists := PurchOrderHeader.DropShptSplOrderExists(SalesHeader);
      IF DropShptSpecialOrderExists THEN
      DropShptSplOrderDiffAddress :=
      NOT PurchOrderHeader.CheckAndAddShipToAdd(SalesHeader,FALSE);
      END;
      // End of the added lines.
      IF (PurchOrderHeader."Buy-from Vendor No." <>"Vendor No.") OR
      (PurchOrderHeader."Sell-to Customer No."<> "Sell-to Customer No.") OR
      (PrevShipToCode <> "Ship-to Code") OR
      (PurchOrderHeader."Order Address Code" <>"Order Address Code") OR
      (PurchOrderHeader."Currency Code" <>"Currency Code") OR

      // Add the following lines.
      (PrevPurchCode <> "Purchasing Code") OR
      (DropShptSplOrderDiffAddress)
      // End of the added lines.

      THEN BEGIN
      InsertHeader(ReqLine2);
      LineCount := 0;
      NextLineNo := 0;
      PrevPurchCode := "Purchasing Code";
      PrevShipToCode := "Ship-to Code";
      END;
      ...
    4. Ändra koden i funktionen InsertHeader på följande sätt:
      Lägg till följande lokala variabeln:

      • Namn: SalesHeader;

      • Datatyp: Post (36).

      Befintlig kod

      ...    END ELSE BEGIN
      PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");
      PurchOrderHeader.SetShipToForSpecOrder;
      END;

      PurchOrderHeader.MODIFY;
      COMMIT;
      IF RECORDLEVELLOCKING THEN
      LOCKTABLE;
      PurchOrderHeader.MARK(TRUE);
      END;
      ...

      Ersättningskod

      ... END ELSE BEGIN
      PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");
      PurchOrderHeader.SetShipToForSpecOrder;
      END;
      // Add the following lines.
      IF DropShptSpecialOrderExists THEN BEGIN
      IF SalesHeader.GET(SalesHeader."Document Type"::Order,"Sales Order No.") THEN BEGIN
      PurchOrderHeader."Ship-to Name" := SalesHeader."Ship-to Name";
      PurchOrderHeader."Ship-to Name 2" := SalesHeader."Ship-to Name 2";
      PurchOrderHeader."Ship-to Address" := SalesHeader."Ship-to Address";
      PurchOrderHeader."Ship-to Address 2" := SalesHeader."Ship-to Address 2";
      PurchOrderHeader."Ship-to Post Code" := SalesHeader."Ship-to Post Code";
      PurchOrderHeader."Ship-to City" := SalesHeader."Ship-to City";
      PurchOrderHeader."Ship-to Contact" := SalesHeader."Ship-to Contact";
      END;
      // End of the added lines.

      PurchOrderHeader.MODIFY;
      COMMIT;
      IF RECORDLEVELLOCKING THEN
      LOCKTABLE;
      PurchOrderHeader.MARK(TRUE);
      END;
      ...
  6. Ändra koden i funktionen EnterPurchaseItemCrossRef i kodmodul för Dist. Integration (5702) enligt följande:
    Befintlig kod

    ...   IF Found THEN BEGIN
    "Cross-Reference No." := ItemCrossReference."Cross-Reference No.";
    "Unit of Measure (Cross Ref.)" := ItemCrossReference."Unit of Measure";
    "Cross-Reference Type" := ItemCrossReference."Cross-Reference Type";

    // Delete the following lines.
    IF ItemCrossReference.Description <>'' THEN BEGIN
    Description := ItemCrossReference.Description;
    "Description 2" := '';
    END;
    END ELSE BEGIN
    "Cross-Reference No." := '';
    "Cross-Reference Type" := "Cross-Reference Type"::" ";
    "Cross-Reference Type No." := '';
    IF "Variant Code" <>'' THEN BEGIN
    ItemVariant.GET("No.","Variant Code");
    Description := ItemVariant.Description;
    "Description 2" := ItemVariant."Description 2";
    END ELSE BEGIN
    Item.GET("No.");
    Description := Item.Description;
    "Description 2" := Item."Description 2";
    END;
    // End of the deleted lines.

    GetItemTranslation;
    END;
    END;
    ...

    Ersättningskod

    ...       IF Found THEN BEGIN
    "Cross-Reference No." := ItemCrossReference."Cross-Reference No.";
    "Unit of Measure (Cross Ref.)" := ItemCrossReference."Unit of Measure";
    "Cross-Reference Type" := ItemCrossReference."Cross-Reference Type";

    // Add the following lines.
    "Cross-Reference Type No." := ItemCrossReference."Cross-Reference Type No.";
    END ELSE BEGIN
    "Cross-Reference No." := '';
    "Cross-Reference Type" := "Cross-Reference Type"::" ";
    "Cross-Reference Type No." := '';
    // End of the added lines.

    GetItemTranslation;
    END;
    END;
    ...
  7. Ändra koden i funktionen GetSpecialOrders i kodmodul för Dist. Integration (5702) enligt följande:
    Befintlig kod

    ...    IF RECORDLEVELLOCKING THEN
    LOCKTABLE;
    SalesHeader.TESTFIELD("Document Type",SalesHeader."Document Type"::Order);
    TESTFIELD("Sell-to Customer No.",SalesHeader."Sell-to Customer No.");
    TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");

    // Delete the following line.
    PurchHeader.SetShipToForSpecOrder;
    // End of the deleted line.

    PurchLine.LOCKTABLE;
    IF NOT RECORDLEVELLOCKING THEN
    LOCKTABLE(TRUE,TRUE); // Only version check
    SalesLine.LOCKTABLE;
    ...

    Ersättningskod

    ...    IF RECORDLEVELLOCKING THEN
    LOCKTABLE;
    SalesHeader.TESTFIELD("Document Type",SalesHeader."Document Type"::Order);
    TESTFIELD("Sell-to Customer No.",SalesHeader."Sell-to Customer No.");
    TESTFIELD("Ship-to Code",SalesHeader."Ship-to Code");
    // Add the following lines.
    IF DropShptSplOrderExists(SalesHeader) THEN
    CheckAndAddShipToAdd(SalesHeader,TRUE);
    // End of the added lines.

    PurchLine.LOCKTABLE;
    IF NOT RECORDLEVELLOCKING THEN
    LOCKTABLE(TRUE,TRUE); // Only version check
    SalesLine.LOCKTABLE;
    ...
  8. Ändra koden i funktionen TransfldsFromSalesToPurchLine i kodmodul för Kopiera dokument Mgt. (6620) enligt följande:
    Befintlig kod

    ...  "Expected Receipt Date" := FromSalesLine."Shipment Date";
    "Bin Code" := FromSalesLine."Bin Code";
    VALIDATE(Quantity,FromSalesLine."Outstanding Quantity");
    VALIDATE("Return Reason Code",FromSalesLine."Return Reason Code");
    VALIDATE("Direct Unit Cost");
    END;
    ...

    Ersättningskod

    ...  "Expected Receipt Date" := FromSalesLine."Shipment Date";
    "Bin Code" := FromSalesLine."Bin Code";
    VALIDATE(Quantity,FromSalesLine."Outstanding Quantity");
    VALIDATE("Return Reason Code",FromSalesLine."Return Reason Code");
    VALIDATE("Direct Unit Cost");
    // Add the following lines.
    Description := FromSalesLine.Description;
    "Description 2" := FromSalesLine."Description 2";
    // End of the added lines.
    END;
    ...


Förutsättningar

Du måste ha någon av följande produkter som har installerat den här snabbkorrigeringen:

  • Microsoft Dynamics NAV 2009 servicepack 1 (SP1)

  • Microsoft Dynamics NAV 2009 R2



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".

Referenser

VSFT DynamicsNAV SE: 238210

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.

Behöver du mer hjälp?

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Microsoft Insiders

Hade du nytta av den här informationen?

Hur nöjd är du med översättningskvaliteten?
Vad påverkade din upplevelse?

Tack för din feedback!

×