Applies ToDynamics NAV 2009

Acest articol se aplică la Microsoft Dynamics NAV pentru toate limbi regionale.

Simptome

În Microsoft Dynamics NAV, atunci când utilizați aprovizionării foaia de lucru pentru a crea o comandă de cumpărare sau când creați manual o comandă de cumpărare, livrări și comenzi speciale nu ia în considerare definite informațiile de pe comanda de vânzare asociate. De aceea, descriere, descriere 2 și adresa de expediere din antet comenzilor de vânzări și linii nu urmeze legată achiziționat ordine.Această problemă se produce în următoarele produse:

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

  • Microsoft Dynamics NAV 2009 R2

Rezolvare

Informații despre remedierea rapidă

Un hotfix acceptat este acum disponibil de la Microsoft. Cu toate acestea, acesta este destinat numai corectării problemei descrise în acest articol. Aplicați-o numai pe sistemele care întâmpină această problemă anume. Această remediere rapidă poate să necesite testare suplimentară. De aceea, dacă nu sunteți grav afectat de această problemă, vă recomandăm să așteptați următorul pachet service pack Microsoft Dynamics NAV 2009 sau versiunea Microsoft Dynamics NAV următoare, care conține această remediere rapidă.Notă În cazuri speciale, costurile implicate de obicei pentru asistență apeluri pot fi anulate dacă un specialist în asistență tehnică pentru Microsoft Dynamics și produse asociate stabilește că o anumită actualizare va rezolva problema. Se vor aplica costurile uzuale de asistenţă pentru întrebări suplimentare de asistenţă şi pentru probleme ce nu fac obiectul actualizării în cauză.

Informaţii despre instalare

Microsoft furnizează exemple de programare scop ilustrativ, fără nicio garanţie explicită sau implicită. Aceasta include, dar nu se limitează la, garanţiile implicite de vandabilitate sau de potrivire pentru un anumit scop. Acest articol presupune că sunteţi familiarizat cu limbajul de programare care este prezentat şi cu instrumentele utilizate pentru a crea şi a depana proceduri. Specialiștii în asistență Microsoft pot ajuta la explicarea funcționalității unei anumite proceduri, dar nu vor modifica aceste exemple pentru a furniza funcționalitate suplimentară sau pentru a construi proceduri pentru a răspunde cerințelor dvs. specifice.Notă Înainte de a instala această remediere rapidă, Verificați că toate Microsoft Navision client utilizatorii au făcut Log off sistemul. Aceasta include utilizatorii de client Microsoft Navision Application Services (NAS). Ar trebui să fie singurul client utilizatorului care este conectat când implementați această remediere rapidă.Pentru a implementa această remediere rapidă, trebuie să aveți o licență de dezvoltare.Vă recomandăm că contul de utilizator în fereastra Conectări Windows sau în fereastra Conectări bază de date se atribuie "SUPER" rolul ID-ul. În cazul în care contul de utilizator nu poate fi atribuit ID-ul "SUPER" rolul, trebuie să verificați că contul de utilizator are următoarele permisiuni:

  • Modify permisiunea pentru obiectul care se va schimba.

  • Permisiunea de executare pentru obiectul de sistem obiect ID 5210 și pentru obiectul de sistem obiect ID 9015 .

Notă Nu trebuie să aveți drepturi de la magazine de date decât dacă trebuie să efectuați o reparare de date.

Modificări de cod

Notă Întotdeauna de testare codul remediază într-un mediu controlat înainte de a aplica remedieri pentru computerele de producție.Pentru a rezolva această problemă, urmați acești pași:Notă Citiți când accesați codeunit (333), deoarece este diferit pentru versiunea W1 din America de Nord. Ambele sunt aici cu etichete pentru start și stop de fiecare versiune.

  1. Modificați codul din tabelul Antet de cumpărare (38) după cum urmează:

    1. Adăugați următorul global text Constanta:Text051@1091: TextConst ' ENU = %1 din comanda de cumpărare %2 trebuie să fie la fel ca pe vânzări comanda %3.';

    2. Adăugați următoarele variabile globale:

      • Nume: NameAddressDetails; Tip de date: Text [512];

      • Nume: NameAddressDetails2; Tip de date: Text [512];

    3. Adăugați următoarea funcţie:CheckAndAddShipToAdd@46 (SalesHeader@1000: înregistra 36; ShowError@1001: Boolean): Boolean;VAR PurchLine2@1002: Înregistrare 39;Adăugaţi următorul cod pentru funcția:

      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. Adăugați următoarea funcţie:DropShptSplOrderExists@48 (SalesHeader@1000: înregistra 36): Boolean;VAR SalesLine2@1001: Înregistrare 37;Adăugaţi următorul cod pentru funcția:

      // 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. Modificați codul din funcția InsertReqWkshLine din raportul de Comenzi vânzări obțineți (698) după cum urmează:Cod existent

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

    Cod de înlocuire

    ...        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. Modificați codul din funcția de cod în cump.-obțineți Drop livrare codeunit (76) după cum urmează:Cod existent

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

    Cod de înlocuire

    ...   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. Modificați codul din funcția GetDescriptionAndRcptName în codeunit ReqJnlManagement (330) după cum urmează:Cod existent

    ...       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 := ''        ...

    Cod de înlocuire

    ...         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. Notă Codeunit (333) are cod diferit în lume versiune vs versiunea din America de Nord. Utilizați secțiunea corectă pentru instalarea.Pentru versiunea din America de Nord începe codeunit (333), modificați codul din foaie de lucru aprov.-face comenzile după cum urmează:

    1. Adăugați următoarele global variabila:

      • Nume: DropShptSpecialOrderExists;

      • Tip de date: Boolean;

    2. Adăugați următoarele variabile locale în funcția InsertPurchOrderLine:

      • Nume: SalesHeader; Tip de date: Înregistrare (36);

      • Nume: DropShptSplOrderDiffAddress; Tip de date: Boolean;

      • Nume: CreateNewRecord; Tip de date: Boolean;

    3. Modificați codul din funcția InsertPurchOrderLinedupă cum urmează:Cod existent

      ...// 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);       ...

      Cod de înlocuire

      ...// 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. Modificați codul din funcția InsertHeader după cum urmează:Adăugați următoarele variabila locale:

      • Nume: SalesHeader;

      • Tip de date: Înregistrare (36);

      Cod existent

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

      Cod de înlocuire

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

    Pentru a începe W1 versiune codeunit (333), modificați codul din foaie de lucru aprov.-face ordine după cum urmează:

    1. Adăugați următoarele global variabila:

      • Nume: DropShptSpecialOrderExists;

      • Tip de date: Boolean;

    2. Adăugați următoarele variabile locale în funcția InsertPurchOrderLine:

      • Nume: SalesHeader; Tip de date: Înregistrare (36);

      • Nume: DropShptSplOrderDiffAddress; Tip de date: Boolean;

    3. Modificați codul din funcția InsertPurchOrderLinedupă cum urmează:Cod existent

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

      Cod de înlocuire

      ...  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. Modificați codul din funcția InsertHeader după cum urmează:Adăugați următoarele variabila locale:

      • Nume: SalesHeader;

      • Tip de date: Înregistrare (36);

      Cod existent

      ...    END ELSE BEGIN    PurchOrderHeader.VALIDATE("Location Code",ReqLine2."Location Code");    PurchOrderHeader.SetShipToForSpecOrder;  END;  PurchOrderHeader.MODIFY;  COMMIT;  IF RECORDLEVELLOCKING THEN    LOCKTABLE;  PurchOrderHeader.MARK(TRUE);END;      ...

      Cod de înlocuire

      ... 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. Modificați codul din funcția EnterPurchaseItemCrossRef în codeunit Dist. integrare (5702) după cum urmează:Cod existent

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

    Cod de înlocuire

    ...       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. Modificați codul din funcția GetSpecialOrders în codeunit Dist. integrare (5702) după cum urmează:Cod existent

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

    Cod de înlocuire

    ...    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. Modificați codul din funcția TransfldsFromSalesToPurchLine în codeunit Copia documentului Mgt. (6620) după cum urmează:Cod existent

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

    Cod de înlocuire

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

Cerințe preliminare

Trebuie să aveți unul dintre următoarele produse instalate pentru a aplica această remediere rapidă:

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

  • Microsoft Dynamics NAV 2009 R2

Eliminare informaţii

Nu se poate elimina această remediere rapidă.

Stare

Microsoft a confirmat că aceasta este o problemă cu produsele Microsoft enumerate în secţiunea „Se aplică la".

Referințe

VSTF DynamicsNAV SE: 238210

Notă Acesta este un articol "rapid publicat" creat direct în cadrul organizației de asistență Microsoft. Informațiile conținute în acest document sunt furnizate ca răspuns la problemele care apar. Ca rezultat al vitezei în a-l face disponibil, materialele pot include erori tipografice și pot fi revizuite în orice moment, fără notificare. Consultați Termenii de utilizare pentru alte considerații.

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.