Isporuka i posebna narudžba ne uzimaju u obzir definirane podatke u prodajnoj narudžbi kada koristite radni list sa zahtjevom za stvaranje narudžbenice ili kada ručno stvarate narudžbenicu u sustavu Microsoft Dynamics NAV

Primjenjuje se na
Dynamics NAV 2009

Ovaj se članak odnosi na Microsoft Dynamics NAV za sve jezične regionalne sheme.

Simptomi

Kada u sustavu Microsoft Dynamics NAV koristite radni list sa zahtjevom za stvaranje narudžbenice ili kada ručno stvarate narudžbenicu, isporuka i posebne narudžbe ne uzimaju u obzir definirane podatke u povezanoj prodajnoj narudžbi. Zbog toga opis, opis 2 te adresa za otpremu iz zaglavlja i redaka prodajnog naloga ne dolaze preko vezane kupljene narudžbe.
Taj se problem pojavljuje u sljedećim proizvodima:

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 2009 R2

Rješenje

Informacije o hitnom popravku

Microsoft sada nudi podržani hitni popravak. No njegova je namjena samo ispravljanje problema opisanog u ovom članku. Primijenite ga samo na sustave koji imaju taj specifični problem. Ovaj hitni popravak može proći dodatna testiranja. Stoga, ako se ovaj problem ne odnosi ozbiljno, preporučujemo da pričekate sljedeći servisni paket za Microsoft Dynamics NAV 2009 ili sljedeću verziju sustava Microsoft Dynamics NAV koja sadrži ovaj hitni popravak.

Napomena: U posebnim slučajevima, ako stručnjak tehničke podrške za Microsoft Dynamics i povezane proizvode utvrdi da određeno ažuriranje može riješiti problem, poziv službi podrške može biti besplatan. Uobičajene cijene poziva službi za podršku primjenjuju se na dodatna pitanja i probleme koje nemaju veze s pripadnom nadopunom.

            
          

Informacije o instalaciji

Microsoft daje primjere programiranja samo za ilustraciju, bez jamstva, bilo izričitog ili prešutnog. To uključuje, bez ograničenja, implicitna jamstva utrživosti ili prikladnosti za određenu svrhu. U članku se podrazumijeva da ste upoznati s programskim jezikom koji se pokazuje te s alatima koji se koriste za stvaranje i ispravljanje pogrešaka procedura. Microsoftovi inženjeri za podršku mogu vam pomoći objasniti funkcionalnost određene procedure, no neće mijenjati te primjere radi pružanja dodatne funkcionalnosti ili konstruirati procedure koji zadovoljavaju vaše specifične zahtjeve.

Napomena Prije nego što instalirate ovaj hitni popravak, provjerite jesu li svi korisnici Microsoft Navision klijenta odjavljeni sa sustava. To obuhvaća korisnike klijentskih usluga Microsoft Navision Application Services (NAS). Trebali biste biti jedini klijentski korisnik prijavljen na vrijeme implementacije ovog hitnog popravka.

Da biste implementirali ovaj hitni popravak, morate imati licencu za razvojne inženjere.

Preporučujemo da se korisničkom računu u prozoru Prijave u sustav Windows ili u prozoru Prijave u bazu podataka dodijeli ID uloge "SUPER". Ako korisničkom računu nije moguće dodijeliti ID uloge "SUPER", morate provjeriti ima li korisnički račun sljedeće dozvole:

  • Dozvola za izmjenu objekta koji ćete mijenjati.
  • Dozvola za izvršavanje za objekt System Object ID 5210 i za objekt System Object ID 9015

                
Napomena: nemate pravo na spremišta podataka, osim ako morate popraviti podatke.

Promjene koda

Napomena: uvijek testirajte popravke koda u kontroliranom okruženju prije primjene popravaka na proizvodnim računalima.
Da biste riješili taj problem, učinite sljedeće:
Napomena Pročitajte kada pristupite codeunit (333) jer je drugačija za sjevernoameričku verziju W1. Obje su ovdje s oznakama za početak i kraj svake verzije.

  1. Promijenite kod u tablici Zaglavlje kupnje (38) na sljedeći način:

    1. Dodajte sljedeću konstantu globalnog teksta:
      Text051@1091 : TextConst 'ENU=Polje %1 na narudžbenici %2 mora biti isto kao na prodajnoj narudžbi %3.';

    2. Dodajte sljedeće globalne varijable:

      • Name: NameAddressDetails; DataType: Text[512];
      • Ime: NameAddressDetails2; DataType: Text[512];
    3. Dodajte sljedeću funkciju:
      CheckAndAddShipToAdd@46(SalesHeader@1000 : Zapis 36; ShowError@1001 : Boolean) : Boolean;

      VAR PurchLine2@1002 : Zapis 39;
      Dodajte sljedeći kod funkcije:

      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. Dodajte sljedeću funkciju:
      DropShptSplOrderExists@48(SalesHeader@1000 : Zapis 36) : Boolean;

      VAR SalesLine2@1001 : Zapis 37;

      Dodajte sljedeći kod funkcije:

      // returns TRUE if sales is either Drop Shipment of Special Order
      SalesLine2.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. Promijenite kod u funkciji InsertReqWkshLine u izvješću Dohvaćanje prodajnih narudžbi (698) na sljedeći način:
    Postojeći 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;  
    ...
    

    Zamjenski kôd

    ...
            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. Promijenite kod u funkciji Code u jedinici koda Purch.-Get Drop Shpt. (76) na sljedeći način:
    Postojeći 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");    
    ...
    

    Zamjenski kôd

    ...
       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. Promijenite kod u funkciji GetDescriptionAndRcptName u jedinici koda ReqJnlManagement (330) na sljedeći način:
    Postojeći 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 := ''        
    ...
    

    Zamjenski kôd

    ...
             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. NAPOMENA: Codeunit (333) ima drugačiji kod u svjetskoj i sjevernoameričkoj verziji. Za instalaciju koristite odgovarajući odjeljak.

    Za jedinicu koda BEGIN North American (333) promijenite kod u odjeljku Req. Wksh.-Make Orders na sljedeći način:

    1. Dodajte sljedeću globalnu varijablu:

      • Naziv: DropShptSpecialOrderExists;
      • DataType: Booleov;
    2. Dodajte sljedeće lokalne varijable u funkciju InsertPurchOrderLine:

      • Naziv: SalesHeader; DataType: Record (36);
      • Naziv: DropShptSplOrderDiffAddress; DataType: Booleov;
      • Naziv: CreateNewRecord; DataType: Booleov;
    3. Promijenite kod u funkciji InsertPurchOrderLine na sljedeći način:
      Postojeći 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);       
      ...
      

      Zamjenski kôd

      ...
      // 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. Kod u funkciji InsertHeader promijenite na sljedeći način:
      Dodajte sljedeću lokalnu varijablu:

      • Naziv: SalesHeader;
      • DataType: Record (36);

      Postojeći 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;      
      ...
      

      Zamjenski kôd

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

    Za jedinicu kodne jedinice verzije BEGIN W1 (333) promijenite kod u redoslijedu Zahtjev. Wksh.-Make na sljedeći način:

    1. Dodajte sljedeću globalnu varijablu:

      • Naziv: DropShptSpecialOrderExists;
      • DataType: Booleov;
    2. Dodajte sljedeće lokalne varijable u funkciju InsertPurchOrderLine:

      • Naziv: SalesHeader; DataType: Record (36);
      • Naziv: DropShptSplOrderDiffAddress; DataType: Booleov;
    3. Promijenite kod u funkciji InsertPurchOrderLine na sljedeći način:
      Postojeći 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; 
      ...
      

      Zamjenski kôd

      ...
        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. Kod u funkciji InsertHeader promijenite na sljedeći način:
      Dodajte sljedeću lokalnu varijablu:

      • Naziv: SalesHeader;
      • DataType: Record (36);

      Postojeći 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;      
      ...
      

      Zamjenski kôd

      ...
       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. Promijenite kod u funkciji EnterPurchaseItemCrossRef u Dist. integracijskoj kodnoj jedinici (5702) na sljedeći način:
    Postojeći 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;         
    ...
    

    Zamjenski kôd

    ...
           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. Promijenite kod u funkciji GetSpecialOrders u Dist. integracijskoj jedinici koda (5702) na sljedeći način:
    Postojeći 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;       
    ...
    

    Zamjenski kôd

    ...
        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. Promijenite kod u funkciji TransfldsFromSalesToPurchLine u jedinici kodne jedinice Mgt. za kopiranje dokumenta (6620) na sljedeći način:
    Postojeći 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;     
    ...
    

    Zamjenski kôd

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

          

Preduvjeti

Da biste primijenili ovaj hitni popravak, morate imati instaliran neki od sljedećih proizvoda:

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 2009 R2

                
              

Podaci o uklanjanju

Ovaj hitni popravak ne možete ukloniti.

Status

Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku „Odnosi se na“.

Reference

VSTF DynamicsNAV SE: 238210

Napomena: Ovo je članak "FAST PUBLISH" stvoren izravno u Microsoftovoj ustanovi za podršku. Ovdje sadržane informacije pružaju se takve kakve jesu kao odgovor na nove probleme. Kao rezultat brzine stavljanja na raspolaganje, materijali mogu sadržavati tipografske pogreške i mogu se revidirati u bilo kojem trenutku bez prethodne najave. Dodatne napomene potražite u Uvjetima korištenja .