Bu makale, tüm ülkelerde ve tüm dil yerel ayarlarında Microsoft Dynamics NAV için geçerlidir.
Belirtiler
Microsoft Dynamics NAV 2009'da Üretim İlkesi alanı Siparişe Göre Yap olarak ayarlanmış bir madde için satış siparişi oluşturduğunuzu varsayalım. Create Prod.Ord işlevini kullanarak satış siparişi için bir üretim emri oluşturursunuz ve ardından üretim emrinin durumunu Kesin Planlı olarak değiştirirsiniz. Bu durumda, Üretim İlkesiSiparişe Göre Yap olarak ayarlanmış bir bileşeni üretim emrinden silmeye çalıştığınızda, aşağıdaki hata iletisini alırsınız:
Not
Başka bir kullanıcı, veritabanından aldıktan sonra bu Ürün Sipariş Bileşeninin kaydını değiştirdi.
Güncelleştirilen pencerede değişikliklerinizi yeniden girin veya kesintiye uğrayan etkinliği yeniden başlatın.
Tanımlama alanları ve değerleri:
Durum='Kesin Planlı',Üretim Sipariş No.='üretim siparişnumarası',Üretim Sipariş Satırı
No.='üretimemri satır numarası',Satır No.='satır numarası'
Bu sorun aşağıdaki ürünlerde oluşur:
- Microsoft Dynamics NAV 2009 R2
- Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
Çözüm
Düzeltme bilgileri
Artık Microsoft, desteklenen bir düzeltme sunmaktadır. Ancak, yalnızca bu makalede açıklanan sorunu düzeltmeye yöneliktir. Bunu yalnızca bu özel sorunun yaşandığı sistemlere uygulayın. Bu düzeltme için ek sınamalar gerekebilir. Bu nedenle, bu sorundan ciddi bir şekilde etkilenmiyorsanız, bir sonraki Microsoft Dynamics NAV 2009 hizmet paketini veya bu düzeltmeyi içeren bir sonraki Microsoft Dynamics NAV sürümünü beklemenizi öneririz.
Not Özel durumlarda, Microsoft Dynamics ve ilgili ürünler için bir Teknik Destek Uzmanı belirli bir güncelleştirmenin sorunu çözeceğini belirlerse, normalde destek aramaları için yapılan ücretler iptal edilebilir. Ek destek soruları ve söz konusu güncelleştirme için uygun olmayan sorunlara normal destek ücretleri uygulanır.
Yükleme bilgileri
Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; açık veya zımni hiçbir garanti vermez. Bu, satılabilirlik veya belirli bir amaca uygunluk ile ilgili zımni garantileri içerir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama diline ve prosedürler oluşturmak ve prosedürlerde hata ayıklamak için kullanılan araçlara aşina olduğunuzu varsaymaktadır. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğini açıklamaya yardımcı olabilir. Ancak, ek işlevsellik sağlamak veya özel gereksinimlerinizi karşılamak için prosedürler oluşturmak için bu örnekleri değiştirmeyeceklerdir.
Not Bu düzeltmeyi yüklemeden önce, tüm Microsoft Navision istemcisi kullanıcılarının sistem oturumunu kapattığını doğrulayın. Bu, Microsoft Navision Application Services (NAS) istemci kullanıcılarını içerir. Bu düzeltmeyi uyguladığınızda oturum açan tek istemci kullanıcı siz olmalısınız.
Bu düzeltmeyi uygulamak için bir geliştirici lisansınız olmalıdır.
Windows Oturum Açma veya Veritabanı Oturum Açma penceresindeki kullanıcı hesabına "SUPER" rol kimliğinin atanmasını öneririz. Kullanıcı hesabına "SUPER" rol kimliği atanamıyorsa, kullanıcı hesabının aşağıdaki izinlere sahip olduğunu doğrulamanız gerekir:
- Değiştireceğiniz nesnenin Değiştirme izni.
- Sistem Nesne Kimliği 5210 nesnesi ve Sistem Nesne Kimliği 9015 nesnesi için Yürütme izni.
Not: Veri onarımı gerçekleştirmeniz gerekmediği sürece, veri depoları üzerinde haklarınız olması gerekmez.
Kod değişiklikleri
Not: Kod düzeltmelerini üretim bilgisayarlarınıza uygulamadan önce her zaman denetimli bir ortamda sınayın.
Bu sorunu gidermek için aşağıdaki adımları izleyin:
Sipariş Satırı tablosundaki (5406) kodu değiştirin. Bunu yapmak için aşağıdaki adımları izleyin:
Yeni bir genel değişken ekleyin ve değişkeni aşağıdaki gibi belirtin:
- Adı: CalledFromComponent@1025
- Veri Türü: Boolean
Aşağıdaki gibi yeni bir işlev oluşturun:
PROCEDURE SetCalledFromComponent@3(NewCalledFromComponent@1000 : Boolean); CalledFromComponent := NewCalledFromComponent;DeleteRelations işlevindeki kodu aşağıdaki gibi değiştirin:
Mevcut kod... ProdOrderComp.DELETEALL(TRUE); ProdOrderComp.SETRANGE("Prod. Order Line No."); ProdOrderComp.SETRANGE("Supplied-by Line No.","Line No."); IF ProdOrderComp.FIND('-') THEN REPEAT ProdOrderComp."Supplied-by Line No." := 0; ProdOrderComp.MODIFY; UNTIL ProdOrderComp.NEXT = 0; WhseOutputProdRelease.DeleteLine(Rec); ...Değişim kodu
... ProdOrderComp.DELETEALL(TRUE); // Add the following line. IF NOT CalledFromComponent THEN BEGIN ProdOrderComp.SETRANGE("Prod. Order Line No."); ProdOrderComp.SETRANGE("Supplied-by Line No.","Line No."); IF ProdOrderComp.FIND('-') THEN REPEAT ProdOrderComp."Supplied-by Line No." := 0; ProdOrderComp.MODIFY; UNTIL ProdOrderComp.NEXT = 0; // Add the following line. END; WhseOutputProdRelease.DeleteLine(Rec); ...
Üretim Sipariş Bileşeni tablosundaki (5407) kodu değiştirin. Bunu yapmak için aşağıdaki adımları izleyin:
OnDelete tetikleyicisine yeni bir yerel değişken ekleyin ve ardından değişkeni aşağıdaki gibi belirtin:
- Adı: NewQuantity@1003
- Veri Türü: Ondalık
OnDelete tetikleyicisindeki kodu aşağıdaki gibi değiştirin:
Mevcut kod... IF ProdOrderLine.GET(Status,"Prod. Order No.","Supplied-by Line No.") THEN BEGIN // Delete the following lines. ProdOrderLine.VALIDATE(Quantity,ProdOrderLine.Quantity - "Expected Quantity"); IF ProdOrderLine.Quantity = 0 THEN BEGIN // End of the lines. ProdOrderLine.BlockDynamicTracking(TRUE); ProdOrderLine.DELETE(TRUE); // Delete the following line. END ELSE ProdOrderLine.MODIFY; END; ...Değişim kodu
... IF ProdOrderLine.GET(Status,"Prod. Order No.","Supplied-by Line No.") THEN BEGIN // Add the following lines. NewQuantity := ProdOrderLine.Quantity - "Expected Quantity"; IF NewQuantity = 0 THEN BEGIN // End of the lines. ProdOrderLine.BlockDynamicTracking(TRUE); // Add the following line. ProdOrderLine.SetCalledFromComponent(TRUE); ProdOrderLine.DELETE(TRUE); // Add the following lines. END ELSE BEGIN ProdOrderLine.VALIDATE(Quantity,NewQuantity); // End of the lines. ProdOrderLine.MODIFY; // add the following line. END; END; ...
Önkoşullar
Bu düzeltmeyi uygulamak için aşağıdaki ürünlerden birini yüklemiş olmanız gerekir:
- Microsoft Dynamics NAV 2009 R2
- Microsoft Dynamics NAV 2009 Service Pack 1
Kaldırma bilgileri
Bu düzeltmeyi kaldıramazsınız.
Durum
Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.
Not: Bu, doğrudan Microsoft destek kuruluşu tarafından hazırlanmış bir "HIZLI YAYIMLAMA" makalesidir. Burada yer alan bilgiler acil sorunlar karşısında bu şekliyle verilir. Kullanıma sunma hızının bir sonucu olarak, materyaller yazım hataları içerebilir ve herhangi bir zamanda önceden haber verilmeksizin revize edilebilir. Göz önünde bulundurulması gereken diğer hususlar için Kullanım Koşulları'na bakın.