Uygulandığı Öğe
Dynamics NAV 2009 Service Pack 1 Microsoft Dynamics NAV 2009 R2

Bu makale Microsoft Dynamics NAV'a tüm ülkeler ve tüm dil yerel ayarları için geçerlidir.

Belirtiler

Microsoft Dynamics 2009 satış teklifine dışında beklenmedik biçimde olması engellenen bir madde için bir satış siparişi oluşturabilirsiniz. Satış siparişini deftere naklettiğinizde, aşağıdaki hata iletisini alırsınız:

İlişkili paket siparişteki miktar sevk edilmiş miktarı satış satırındaki Belge Türü'den büyük olmamalıdır = 'Paket sipariş', Belge No 'Sayı1', Satır No ='sayı2'.

Bu sorun aşağıdaki ürünlerde oluşur:

  • Microsoft Dynamics NAV 2009 Service Pack 1

  • Microsoft Dynamics NAV 2009 R2

Çözüm

Düzeltme bilgileri

Artık Microsoft tarafından desteklenen bir düzeltme sağlanmaktadır. Ancak bunun yalnızca bu makalede anlatılan sorunu düzeltmesi amaçlanmıştır. Yalnızca bu özel sorunla karşılaşmış olan sistemlere uygulayın. Bu düzeltme ek sınama uygulanabilir. Bu nedenle, bu sorundan ciddi bir şekilde etkilenmiyorsanız, Microsoft Dynamics NAV 2009 sonraki hizmet paketini veya, bu düzeltmeyi içeren bir sonraki Microsoft Dynamics NAV sürümü için beklemek öneririz.Not: Özel durumlarda, destek aramaları teknik destek uzmanı Microsoft Dynamics ve ilgili ürünlere yönelik iptal edilebilir çözeceğini giderleri belirleyen belirli bir güncelleştirmenin sorununuzu. Ek destek sorularına ve söz konusu güncelleştirme için geçerli olmayan sorunlara normal destek ücretleri uygulanır.

Yükleme bilgileri

Microsoft, programlama örneklerini yalnızca gösterim amacıyla zımni veya açık garanti olmadan sağlar. Bu, satılabilirlik veya belirli bir amaca uygunluk açısından zımni garantileri içerir ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini, yordamları oluşturmak ve yordamlardan hata ayıklamak için kullanılan araçları bildiğinizi varsayar. Microsoft destek mühendisleri belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir. Ancak, işlevsellik sağlamak veya yordamlar, belirli gereksinimlerinizi karşılayacak şekilde geliştirmek amacıyla bu örnekleri değiştirmezler.Not: Bu düzeltmeyi yüklemeden önce tüm Microsoft Dynamics NAV istemci kullanıcıların sistem kaydedildiğini doğrulayın. Bu, Microsoft Dynamics NAV uygulama sunucusu (NAS) hizmetleri içerir. Bu düzeltmeyi uyguladığınızda yalnızca istemci kullanıcının oturum açmış olması gerekir.Bu düzeltmeyi uygulamak için bir geliştirici lisansı olması gerekir.Kullanıcı hesabının Windows oturumu açma penceresini veya veritabanı oturumu açma penceresi "Süper" rol kimliği atanması öneririz Kullanıcı hesabı "Süper" rol Kimliği atanamaz, kullanıcı hesabı aşağıdaki izinlere sahip olduğunu doğrulamanız gerekir:

  • Nesnenin, değiştirme değişiklik yapma izni.

  • Sistem nesne kimliği 9015 ve Sistem nesnesi kimliği 5210 nesne için Execute izninesne.

Not: Veri onarım gerçekleştirmek zorunda sürece veri depoları haklarına sahip olmanız gerekmez.

Kod değişiklikleri

Not: Her zaman, uygulamadan önce test kodu denetimli bir ortamda üretim bilgisayarlarınıza düzeltmeler giderir.Bu sorunu gidermek için şu adımları izleyin:

  1. Satış teklifi özelliklerinde kodu sipariş kod birimi (86) şu şekilde değiştirin:Varolan kodu 1

    ...Opp@1004 : Record 5092;              OpportunityEntry@1006 : Record 5093;              TempOpportunityEntry@1005 : TEMPORARY Record 5093;              Cust@1008 : Record 18;            BEGIN              TESTFIELD("Document Type","Document Type"::Quote);              Cust.GET("Sell-to Customer No.");              Cust.CheckBlockedCustOnDocs(Cust,"Document Type"::Order,TRUE,FALSE);...

    Değiştirme kodu 2

    ...Opp@1004 : Record 5092;              OpportunityEntry@1006 : Record 5093;              TempOpportunityEntry@1005 : TEMPORARY Record 5093;              Cust@1008 : Record 18;// Add the following line.          Item@1010 : Record 27; // End of the added line.            BEGIN              TESTFIELD("Document Type","Document Type"::Quote);              Cust.GET("Sell-to Customer No.");              Cust.CheckBlockedCustOnDocs(Cust,"Document Type"::Order,TRUE,FALSE);...

    Varolan kodu 2

    ...SalesQuoteLine.SETRANGE(Type,SalesQuoteLine.Type::Item);              SalesQuoteLine.SETFILTER("No.",'<>%1','');              IF SalesQuoteLine.FINDSET THEN                REPEAT                  IF (SalesQuoteLine."Outstanding Quantity" > 0) THEN BEGIN                    SalesLine := SalesQuoteLine;                    SalesLine.VALIDATE("Reserved Qty. (Base)",0);                    SalesLine."Line No." := 0;...

    Değiştirme kodu 2

    ...SalesQuoteLine.SETRANGE(Type,SalesQuoteLine.Type::Item);              SalesQuoteLine.SETFILTER("No.",'<>%1','');              IF SalesQuoteLine.FINDSET THEN                REPEAT                 IF Item.GET(SalesQuoteLine."No.") THEN         //add line// Add the following line.               Item.TESTFIELD(Blocked,FALSE);  // End of the added line.                  IF (SalesQuoteLine."Outstanding Quantity" > 0) THEN BEGIN                    SalesLine := SalesQuoteLine;                    SalesLine.VALIDATE("Reserved Qty. (Base)",0);                    SalesLine."Line No." := 0;...
  2. Kod özelliklerinde paket satış siparişi sipariş kod birimi (87) aşağıdaki gibi değiştirin:Varolan kodu 1

    ...Cust@1001 : Record 18;              TempSalesLine@1002 : TEMPORARY Record 37;              Reservation@1005 : Form 498;              PrepmtMgt@1004 : Codeunit 441;            BEGIN              TESTFIELD("Document Type","Document Type"::"Blanket Order");              Cust.GET("Sell-to Customer No.");              Cust.CheckBlockedCustOnDocs(Cust,"Document Type"::Order,TRUE,FALSE);...

    Değiştirme kodu 1

    ...Cust@1001 : Record 18;              TempSalesLine@1002 : TEMPORARY Record 37;              Reservation@1005 : Form 498;              PrepmtMgt@1004 : Codeunit 441;// Add the following line.              Item@1006 : Record 27;                  // End of the added line.            BEGIN              TESTFIELD("Document Type","Document Type"::"Blanket Order");              Cust.GET("Sell-to Customer No.");              Cust.CheckBlockedCustOnDocs(Cust,"Document Type"::Order,TRUE,FALSE);...

    Varolan kodu 2

    ...SalesLine.SETRANGE("Blanket Order Line No.",BlanketOrderSalesLine."Line No.");                  QuantityOnOrders := 0;                  IF SalesLine.FINDSET THEN                    REPEAT                      IF SalesLine."Document Type" IN                          [SalesLine."Document Type"::"Return Order",                           SalesLine."Document Type"::"Credit Memo"]                      THEN...

    Değiştirme kodu 2

    ...SalesLine.SETRANGE("Blanket Order Line No.",BlanketOrderSalesLine."Line No.");                  QuantityOnOrders := 0;                  IF SalesLine.FINDSET THEN                    REPEAT// Add the following lines.                      IF Item.GET(SalesLine."No.") THEN                                             Item.TESTFIELD(Blocked,FALSE);// End of the added lines.                                        IF SalesLine."Document Type" IN                          [SalesLine."Document Type"::"Return Order",                           SalesLine."Document Type"::"Credit Memo"]                      THEN...

    Varolan kodu 3

    ...TempSalesLine.DELETEALL;                REPEAT                  SalesLine.SETCURRENTKEY("Document Type","Blanket Order No.","Blanket Order Line No.");                  SalesLine.SETRANGE("Blanket Order No.",BlanketOrderSalesLine."Document No.");                  SalesLine.SETRANGE("Blanket Order Line No.",BlanketOrderSalesLine."Line No.");// Delete the following lines.                  SalesLine.SETFILTER(                                           "Document Type",'<>%1 & <>%2',SalesLine."Document Type"::Invoice,SalesLine."Document Type"::"Credit Memo");// End of the deleted lines.                  QuantityOnOrders := 0;                  IF SalesLine.FINDSET THEN                    REPEAT                      IF Item.GET(SalesLine."No.") THEN                        Item.TESTFIELD(Blocked,FALSE);...

    Değiştirme kodu 3

    ...TempSalesLine.DELETEALL;                REPEAT                  SalesLine.SETCURRENTKEY("Document Type","Blanket Order No.","Blanket Order Line No.");                  SalesLine.SETRANGE("Blanket Order No.",BlanketOrderSalesLine."Document No.");                  SalesLine.SETRANGE("Blanket Order Line No.",BlanketOrderSalesLine."Line No.");                  QuantityOnOrders := 0;                  IF SalesLine.FINDSET THEN                    REPEAT                      IF Item.GET(SalesLine."No.") THEN                        Item.TESTFIELD(Blocked,FALSE);...

    Varolan kodu 4

    ...QuantityOnOrders := 0;                  IF SalesLine.FINDSET THEN                    REPEAT                      IF Item.GET(SalesLine."No.") THEN                        Item.TESTFIELD(Blocked,FALSE);// Delete the following lines.                      IF SalesLine."Document Type" = SalesLine."Document Type"::"Return Order" THEN                            QuantityOnOrders := QuantityOnOrders - SalesLine."Outstanding Qty. (Base)"                                 ELSE                                                                                                                                               //Remove line                              QuantityOnOrders := QuantityOnOrders + SalesLine."Outstanding Qty. (Base)";        // End of the deleted lines.                    UNTIL SalesLine.NEXT = 0;                  IF (ABS(BlanketOrderSalesLine."Qty. to Ship (Base)" + QuantityOnOrders +                          BlanketOrderSalesLine."Qty. Shipped (Base)") >                      ABS(BlanketOrderSalesLine."Quantity (Base)")) OR                     (BlanketOrderSalesLine."Quantity (Base)" * BlanketOrderSalesLine."Outstanding Qty. (Base)" < 0)...

    Değiştirme kodu 4

    ...QuantityOnOrders := 0;                  IF SalesLine.FINDSET THEN                    REPEAT                      IF Item.GET(SalesLine."No.") THEN                        Item.TESTFIELD(Blocked,FALSE);// Add the following lines.                      IF (SalesLine."Document Type" = SalesLine."Document Type"::"Return Order") OR                         ((SalesLine."Document Type" = SalesLine."Document Type"::"Credit Memo") AND                          (SalesLine."Return Receipt No." = ''))                      THEN                        QuantityOnOrders := QuantityOnOrders - SalesLine."Outstanding Qty. (Base)"                      ELSE                        IF (SalesLine."Document Type" = SalesLine."Document Type"::Order) OR                           ((SalesLine."Document Type" = SalesLine."Document Type"::Invoice) AND                            (SalesLine."Shipment No." = ''))                        THEN                          QuantityOnOrders := QuantityOnOrders + SalesLine."Outstanding Qty. (Base)";// End of the added lines.                    UNTIL SalesLine.NEXT = 0;                  IF (ABS(BlanketOrderSalesLine."Qty. to Ship (Base)" + QuantityOnOrders +                          BlanketOrderSalesLine."Qty. Shipped (Base)") >                      ABS(BlanketOrderSalesLine."Quantity (Base)")) OR                     (BlanketOrderSalesLine."Quantity (Base)" * BlanketOrderSalesLine."Outstanding Qty. (Base)" < 0)...
  3. Satınalma. özelliklerinde kodunu değiştirmek-sipariş kod birimi (96) gibi teklif:Varolan kodu 1

    ...OldPurchCommentLine@1001 : Record 43;              FromDocDim@1000 : Record 357;              ToDocDim@1003 : Record 357;              Vend@1002 : Record 23;            BEGIN              TESTFIELD("Document Type","Document Type"::Quote);              Vend.GET("Buy-from Vendor No.");              Vend.CheckBlockedVendOnDocs(Vend,FALSE);...

    Değiştirme kodu 1

    ...OldPurchCommentLine@1001 : Record 43;              FromDocDim@1000 : Record 357;              ToDocDim@1003 : Record 357;              Vend@1002 : Record 23;// Add the following line.              Item@1004 : Record 27;           // End of the added line.            BEGIN              TESTFIELD("Document Type","Document Type"::Quote);              Vend.GET("Buy-from Vendor No.");              Vend.CheckBlockedVendOnDocs(Vend,FALSE);

    Varolan kodu 2

    ...ToDocDim.SETRANGE("Table ID",DATABASE::"Purchase Line");              IF PurchQuoteLine.FINDSET THEN                REPEAT                  PurchOrderLine := PurchQuoteLine;                  PurchOrderLine."Document Type" := PurchOrderHeader."Document Type";                  PurchOrderLine."Document No." := PurchOrderHeader."No.";                  ReservePurchLine.TransferPurchLineToPurchLine(...

    Değiştirme kodu 2

    ...ToDocDim.SETRANGE("Table ID",DATABASE::"Purchase Line");              IF PurchQuoteLine.FINDSET THEN                REPEAT// Add the following lines.                  IF Item.GET(PurchQuoteLine."No.") THEN                       Item.TESTFIELD(Blocked,FALSE);                 // End of the added lines.                  PurchOrderLine := PurchQuoteLine;                  PurchOrderLine."Document Type" := PurchOrderHeader."Document Type";                  PurchOrderLine."Document No." := PurchOrderHeader."No.";                  ReservePurchLine.TransferPurchLineToPurchLine(...
  4. Paket satınalma özelliklerinde kodu değiştirin. Sipariş kod birimi (97) aşağıdaki şekilde sipariş edebilirsiniz:Varolan kodu 1

    ...FromDocDim@1000 : Record 357;              ToDocDim@1002 : Record 357;              Vend@1001 : Record 23;              PrepmtMgt@1003 : Codeunit 441;            BEGIN              TESTFIELD("Document Type","Document Type"::"Blanket Order");              Vend.GET("Buy-from Vendor No.");              Vend.CheckBlockedVendOnDocs(Vend,FALSE);...

    Değiştirme kodu 1

    ...FromDocDim@1000 : Record 357;              ToDocDim@1002 : Record 357;              Vend@1001 : Record 23;              PrepmtMgt@1003 : Codeunit 441;// Add the following line.              Item@1004 : Record 27;                     // End of the added line.            BEGIN              TESTFIELD("Document Type","Document Type"::"Blanket Order");              Vend.GET("Buy-from Vendor No.");              Vend.CheckBlockedVendOnDocs(Vend,FALSE);...

    Varolan kodu 2

    ...PurchLine.SETRANGE("Blanket Order Line No.",PurchBlanketOrderLine."Line No.");                  QuantityOnOrders := 0;                  IF PurchLine.FINDSET THEN                    REPEAT                      IF PurchLine."Document Type" IN                          [PurchLine."Document Type"::"Return Order",                           PurchLine."Document Type"::"Credit Memo"] THEN                        QuantityOnOrders := QuantityOnOrders - PurchLine."Outstanding Qty. (Base)"...

    Değiştirme kodu 2

    ...PurchLine.SETRANGE("Blanket Order Line No.",PurchBlanketOrderLine."Line No.");                  QuantityOnOrders := 0;                  IF PurchLine.FINDSET THEN                    REPEAT// Add the following lines.                      IF Item.GET(PurchLine."No.") THEN                            Item.TESTFIELD(Blocked,FALSE);       // End of the added lines.                      IF PurchLine."Document Type" IN                          [PurchLine."Document Type"::"Return Order",                           PurchLine."Document Type"::"Credit Memo"] THEN                        QuantityOnOrders := QuantityOnOrders - PurchLine."Outstanding Qty. (Base)"...

    Varolan kodu 3

    ...IF PurchBlanketOrderLine.FINDSET THEN                REPEAT                  PurchLine.SETCURRENTKEY("Document Type","Blanket Order No.","Blanket Order Line No.");                  PurchLine.SETRANGE("Blanket Order No.",PurchBlanketOrderLine."Document No.");                  PurchLine.SETRANGE("Blanket Order Line No.",PurchBlanketOrderLine."Line No.");// Delete the following lines.                  PurchLine.SETFILTER(                    "Document Type",'<>%1 & <>%2',PurchLine."Document Type"::Invoice,PurchLine."Document Type"::"Credit Memo");// End of the deleted lines.                  QuantityOnOrders := 0;                  IF PurchLine.FINDSET THEN                    REPEAT                      IF Item.GET(PurchLine."No.") THEN                        Item.TESTFIELD(Blocked,FALSE);...

    Değiştirme kodu 3

    ...IF PurchBlanketOrderLine.FINDSET THEN                REPEAT                  PurchLine.SETCURRENTKEY("Document Type","Blanket Order No.","Blanket Order Line No.");                  PurchLine.SETRANGE("Blanket Order No.",PurchBlanketOrderLine."Document No.");                  PurchLine.SETRANGE("Blanket Order Line No.",PurchBlanketOrderLine."Line No.");                  QuantityOnOrders := 0;                  IF PurchLine.FINDSET THEN                    REPEAT                      IF Item.GET(PurchLine."No.") THEN                        Item.TESTFIELD(Blocked,FALSE);...

    Varolan kodu 4

    ...QuantityOnOrders := 0;                  IF PurchLine.FINDSET THEN                    REPEAT                      IF Item.GET(PurchLine."No.") THEN                        Item.TESTFIELD(Blocked,FALSE);// Delete the following lines.                      IF PurchLine."Document Type" = PurchLine."Document Type"::"Return Order" THEN                        QuantityOnOrders := QuantityOnOrders - PurchLine."Outstanding Qty. (Base)"                      ELSE                        QuantityOnOrders := QuantityOnOrders + PurchLine."Outstanding Qty. (Base)";// End of the deleted lines.                    UNTIL PurchLine.NEXT = 0;                  IF (ABS(PurchBlanketOrderLine."Qty. to Receive (Base)" + QuantityOnOrders +                          PurchBlanketOrderLine."Qty. Received (Base)") >                      ABS(PurchBlanketOrderLine."Quantity (Base)")) OR                     (PurchBlanketOrderLine."Quantity (Base)" * PurchBlanketOrderLine."Outstanding Qty. (Base)" < 0)...

    Değiştirme kodu 4

    ...QuantityOnOrders := 0;                  IF PurchLine.FINDSET THEN                    REPEAT                      IF Item.GET(PurchLine."No.") THEN                        Item.TESTFIELD(Blocked,FALSE);// Add the following lines.                      IF (PurchLine."Document Type" = PurchLine."Document Type"::"Return Order") OR                         ((PurchLine."Document Type" = PurchLine."Document Type"::"Credit Memo") AND                          (PurchLine."Return Shipment No." = ''))                      THEN                        QuantityOnOrders := QuantityOnOrders - PurchLine."Outstanding Qty. (Base)"                      ELSE                        IF (PurchLine."Document Type" = PurchLine."Document Type"::Order) OR                           ((PurchLine."Document Type" = PurchLine."Document Type"::Invoice) AND                            (PurchLine."Receipt No." = ''))                        THEN                          QuantityOnOrders := QuantityOnOrders + PurchLine."Outstanding Qty. (Base)";// End of the added lines.                    UNTIL PurchLine.NEXT = 0;                  IF (ABS(PurchBlanketOrderLine."Qty. to Receive (Base)" + QuantityOnOrders +                          PurchBlanketOrderLine."Qty. Received (Base)") >                      ABS(PurchBlanketOrderLine."Quantity (Base)")) OR                     (PurchBlanketOrderLine."Quantity (Base)" * PurchBlanketOrderLine."Outstanding Qty. (Base)" < 0)...

Önkoşullar

Aşağıdaki güncelleştirmeyi ve bu düzeltmeyi uygulamak için aşağıdaki ürünlerden birine sahip olmalıdır:

  • Microsoft Dynamics NAV 2009 Service Pack 1

  • Microsoft Dynamics NAV 2009 R2

  • 2642368 bir paket sipariş oluşturmaya çalıştığınızda "Sevk Edilecek Mkt. (Temel) öğenin Satır No [Line_Number] [Item_Number] [sayı] değerinden fazla olamaz" hata iletisini Microsoft Dynamics NAV sipariş

Kaldırma bilgileri

Bu düzeltmeyi kaldıramazsınız.

Durum

Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.

Not: Bu, doğrudan Microsoft destek kuruluşu bünyesinde oluşturulan bir "HIZLI YAYIN" makalesidir. Burada yer alan bilgiler, oluşan sorunlara yanıt olarak olduğu gibi sağlanmıştır. Makale hızla kullanıma sunulduğu için materyallerde yazım hataları olabilir ve materyaller bildirilmeksizin herhangi bir zamanda revize edilebilir. Kullanım koşullarıdiğer konular için bkz.

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.