Hızlı Yayımlanan makaleler, doğrudan Microsoft destek kuruluşunun içinden bilgi sağlar. Burada yer alan bilgiler, ortaya çıkan veya benzersiz konulara yanıt olarak oluşturulmuştur veya diğer Bilgi Bankası bilgilerini tamamlamayı amaçlamaktadır.
Bu makale, tüm ülkelerde ve tüm dil yerel ayarlarında Microsoft Dynamics NAV 2009 için geçerlidir.
Belirtiler
Microsoft Dynamics NAV 2009'da aşağıdaki senaryoyu düşünün. Stok Değerini Hesapla işlevini bir yeniden değerleme günlüğünde çalıştırıyorsunuz. Bunu yaptığınızda
Stok Değerini Hesapla iletişim kutusundaki Parametre Başına Hesapla alanındaki Öğe Genel Defteri Girişi. Bu senaryoda, Microsoft Dynamics NAV 2009 her zaman öğenin varsayılan boyutunu kullanır. Bu nedenle, maddenin belirli bir boyutu yoksa ve boyutlar içeren bir satınalma siparişi deftere naklederseniz, Stok Değerini Hesapla raporunu çalıştırdığınızda madde genel muhasebe girişi (ILE) boyutu yoksayılır. Maddenin belirtilen bir boyutu varsa ve İLE'nin belirtilen bir boyutu yoksa, Microsoft Dynamics NAV tüm satırlar için öğenin boyutunu ayarlar.
Çö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ğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler.
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:
Stok Değerini Hesapla raporundaki (5899) OnAfterGetRecord tetikleyicisindeki kodu aşağıdaki gibi değiştirin:
Mevcut kod... CalculatePer::Item: // Delete the following line. BEGIN InsertValJnlBuffer( ItemLedgEntry."Item No.",ItemLedgEntry."Variant Code", ItemLedgEntry."Location Code",RemQty, CalculateRemInvValue(ItemLedgEntry."Entry No.",ItemLedgEntry.Quantity,RemQty, IncludeExpectedCost AND NOT ItemLedgEntry."Completely Invoiced")); // Delete the following line. END; END; ...Değişim kodu
... CalculatePer::Item: InsertValJnlBuffer( ItemLedgEntry."Item No.",ItemLedgEntry."Variant Code", ItemLedgEntry."Location Code",RemQty, CalculateRemInvValue(ItemLedgEntry."Entry No.",ItemLedgEntry.Quantity,RemQty, IncludeExpectedCost AND NOT ItemLedgEntry."Completely Invoiced")); END; ...Stok Değerini Hesapla raporundaki (5899) InsertItemJnlLine işlevindeki kodu aşağıdaki gibi değiştirin:
Mevcut kod... // Delete the following line. IF CalculatePer = CalculatePer::"Item Ledger Entry" THEN "Applies-to Entry" := ApplyToEntry2; VALIDATE(Quantity,Quantity2); ...Değişim kodu
... // Add the following line. IF CalculatePer = CalculatePer::"Item Ledger Entry" THEN BEGIN "Applies-to Entry" := ApplyToEntry2; // Add the following lines. CreateDimFromILE; END; // End of the added lines. VALIDATE(Quantity,Quantity2); ...Envanter Değerini Hesapla raporunda CreateDimFromILE işlevini oluşturun (5899). Bunu yapmak için aşağıdaki adımları izleyin:
İşlevin Local özelliğini Evet olarak ayarlayın.
Yerel bir değişken ekleyin ve ardından değişkeni aşağıdaki gibi belirtin:
-
Adı:
JnlLineDim -
Veri Türü:
Kaydet - Alt tür: Günlük Çizgi Boyutu
-
Adı:
Yerel bir değişken ekleyin ve ardından değişkeni aşağıdaki gibi belirtin:
-
Adı:
LedgEntryDim -
Veri Türü:
Kaydet - Alt Tür: Genel Muhasebe Girişi Boyutu
-
Adı:
Yerel bir değişken ekleyin ve ardından değişkeni aşağıdaki gibi belirtin:
- **Adı:**DimMgt
- Veri Türü: Kod birimi
- **Subtype:**DimensionManagement
CreateDimFromILE işlevine aşağıdaki kodu ekleyin:
JnlLineDim.SETRANGE("Table ID",DATABASE::"Item Journal Line");
JnlLineDim.SETRANGE("Günlük Şablonu Adı",ÖğeJnlSatırı." Dergi Şablonu Adı");
JnlLineDim.SETRANGE("Günlük Toplu İş Adı",ItemJnlLine." Günlük Toplu Adı");
JnlLineDim.SETRANGE("Günlük Satırı No.",ItemJnlLine." Satır No.");
JnlLineDim.DELETEALL;
LedgEntryDim.SETRANGE("Table ID",DATABASE::"Item Ledger Entry");
LedgEntryDim.SETRANGE("Girdi No.",ÖğeLedgEntry." Giriş No.");
DimMgt.MoveLedgEntryDimToJnlLineDim(LedgEntryDim,JnlLineDim,DATABASE::"Item Journal Line",
ItemJnlLine." Günlük Şablonu Adı",ItemJnlLine." Günlük Toplu İş Adı",ItemJnlLine." Satır No.",0);
JnlLineDim.SETCURRENTKEY("Boyut Kodu","Boyut Değeri Kodu");
JnlLineDim.SETRANGE("Boyut Kodu",GLSetup." Global Boyut 1 Kodu");
IF JnlLineDim.FINDFIRST THEN
ItemJnlLine." Kısayol Boyutu 1 Kodu" := JnlLineDim." Boyut Değeri Kodu"
ELSE
ItemJnlLine." Kısayol Boyut 1 Kodu" := '';
JnlLineDim.SETRANGE("Boyut Kodu",GLSetup." Global Boyut 2 Kodu");
IF JnlLineDim.FINDFIRST THEN
ItemJnlLine." Shortcut Dimension 2 Code" := JnlLineDim." Boyut Değeri Kodu"
ELSE
ItemJnlLine." Kısayol Boyut 2 Kodu" := '';
Önkoşullar
Bu düzeltmeyi uygulamak için Microsoft Dynamics NAV 2009 Service Pack 1 veya Microsoft Dynamics NAV 2009 yüklü olmalıdır.
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.
MICROSOFT VE/VEYA TEDARİKÇİLERİ, BU WEB SİTESİNDE YAYINLANAN BELGELERDE VE İLGİLİ GRAFİKLERDEKİ BİLGİLERİN ("MALZEMELER") HERHANGİ BİR AMACA UYGUNLUĞU, GÜVENİLİRLİĞİ VEYA DOĞRULUĞU İLE İLGİLİ HİÇBİR BEYANDA BULUNMAZ VEYA GARANTİ VERMEZ.
MATERYALLER TEKNİK YANLIŞLIKLAR VEYA YAZIM HATALARI İÇEREBİLİR VE HERHANGİ BİR ZAMANDA BİLDİRİMDE BULUNULMAKSIZIN REVİZE EDİLEBİLİR. İLGİLİ YASALARIN İZİN VERDİĞİ AZAMİ ÖLÇÜDE, MICROSOFT VE/VEYA TEDARİKÇİLERİ, MALZEMELERLE İLGİLİ OLARAK MÜLKİYET, İHLAL ETMEME, TATMİN EDİCİ KOŞUL VEYA KALİTE, SATILABİLİRLİK VE BELİRLİ BİR AMACA UYGUNLUK DA DAHİL ANCAK BUNLARLA SINIRLI OLMAMAK KAYDIYLA AÇIK, ZIMNİ VEYA YASAL TÜM TEMSİL, GARANTİ VE KOŞULLARI REDDEDER VE HARİÇ TUTAR.