Bu makale, Almanca (de) dil yerel ayarı için Microsoft Dynamics NAV için geçerlidir.
Belirtiler
Microsoft Dynamics NAV'ın Almanca sürümünde AddOn PaymentsÖdemeler dahil olmak üzere banka hesabı mutabakatını oluşturduğunuzda, boyutlar doğru şekilde işlenmez. Bu sorun, deyim numarası ondan fazla karakter içeriyorsa oluşur.
Bu sorun aşağıdaki ürünlerde oluşur:
- Microsoft Dynamics NAV 2009 Service Pack 1'in Almanca sürümü
- Microsoft Dynamics NAV 2009'un Almanca sürümü
- Microsoft Dynamics NAV 5.0 Service Pack 1'in Almanca sürümü
- Microsoft Dynamics NAV 5.0'ın Almanca sürümü
Çö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:
Bank Acc. Mutabakat Satırı tablosundaki (274) ValidateShortcutDimCode işlevine yerel bir değişken ekleyin ve ardından değişkeni aşağıdaki gibi belirtin:
- Ad:OffSetL
- DataType:Integer
Banka Hesap Mutabakat Satırı tablosundaki (274) ValidateShortcutDimCode işlevinde yer alan kodu aşağıdaki gibi değiştirin:
Mevcut kod... DimMgt.ValidateDimValueCode(FieldNo,ShortcutDimCode); IF "Statement Line No." <> 0 THEN BEGIN DimMgt.SaveJnlLineDim( DATABASE::"Bank Acc. Reconciliation Line",COPYSTR("Bank Account No.",1,10), COPYSTR("Statement No.",1,10),"Statement Line No.",0,FieldNo,ShortcutDimCode); IF MODIFY THEN; END ELSE DimMgt.SaveTempDim(FieldNo,ShortcutDimCode); ...Değişim kodu
... DimMgt.ValidateDimValueCode(FieldNo,ShortcutDimCode); IF "Statement Line No." <> 0 THEN BEGIN OffSetL := STRLEN("Statement No.")-9; IF OffSetL < 1 THEN OffSetL := 1; DimMgt.SaveJnlLineDim( DATABASE::"Bank Acc. Reconciliation Line",COPYSTR("Bank Account No.",1,10), COPYSTR("Statement No.",OffSetL,10),"Statement Line No.",0,FieldNo,ShortcutDimCode); IF MODIFY THEN; END ELSE DimMgt.SaveTempDim(FieldNo,ShortcutDimCode); ...Bank Acc. Mutabakat Satırı tablosundaki (274) CreateDim işlevine yerel bir değişken ekleyin ve ardından değişkeni aşağıdaki gibi belirtin:
- Ad:OffSetL
- DataType:Integer
Banka Hesap Mutabakat Satırı tablosundaki (274) CreateDim işlevindeki kodu aşağıdaki gibi değiştirin:
Mevcut kod 1... SourceCodeSetup.GET; TableID[1] := Type1; No[1] := No1; ...Değiştirme kodu 1
... OffsetL := STRLEN("Statement No.")-9; IF OffsetL < 1 THEN OffsetL := 1; SourceCodeSetup.GET; TableID[1] := Type1; No[1] := No1; ...Mevcut kod 2
... DATABASE::"Bank Acc. Reconciliation Line",COPYSTR("Bank Account No.",1,10), COPYSTR("Statement No.",1,10),"Statement Line No.",0, "Global Dimension 1 Code","Global Dimension 2 Code"); ...Değiştirme kodu 2
... DATABASE::"Bank Acc. Reconciliation Line",COPYSTR("Bank Account No.",1,10), COPYSTR("Statement No.",OffsetL,10),"Statement Line No.",0, "Global Dimension 1 Code","Global Dimension 2 Code"); ...Bank Acc. Mutabakat Satırı tablosundaki (274) ShowShortcutDimCode işlevine yerel bir değişken ekleyin ve ardından değişkeni aşağıdaki gibi belirtin:
- Ad:OffSetL
- DataType:Integer
Banka Hesabı Mutabakat Satırı tablosundaki (274) ShowShortcutDimCode işlevinde yer alan kodu aşağıdaki gibi değiştirin:
Mevcut kod... IF "Statement Line No." <> 0 THEN DimMgt.ShowJnlLineDim( DATABASE::"Bank Acc. Reconciliation Line",COPYSTR("Bank Account No.",1,10), COPYSTR("Statement No.",1,10),"Statement Line No.",0,ShortcutDimCode) ELSE DimMgt.ShowTempDim(ShortcutDimCode); ...Değişim kodu
... OffSetL := STRLEN("Statement No.")-9; IF OffSetL < 1 THEN OffSetL := 1; IF "Statement Line No." <> 0 THEN DimMgt.ShowJnlLineDim( DATABASE::"Bank Acc. Reconciliation Line",COPYSTR("Bank Account No.",1,10), COPYSTR("Statement No.",OffSetL,10),"Statement Line No.",0,ShortcutDimCode) ELSE DimMgt.ShowTempDim(ShortcutDimCode); ...Bank Acc. Mutabakat Satırı tablosundaki (274) UpdateShortcutdimCode işlevine yerel bir değişken ekleyin ve ardından değişkeni aşağıdaki gibi belirtin:
- Ad:OffSetL
- DataType:Integer
Bank Acc. Mutabakat Satırı tablosundaki (274) UpdateShortcutdimCode işlevindeki kodu aşağıdaki gibi değiştirin:
Mevcut kod... GLSetup.GET; JnlLineDim.SETRANGE("Table ID",DATABASE::"Bank Acc. Reconciliation Line"); JnlLineDim.SETRANGE("Journal Template Name",COPYSTR("Bank Account No.",1,10)); JnlLineDim.SETRANGE("Journal Batch Name",COPYSTR("Statement No.",1,10)); JnlLineDim.SETRANGE("Journal Line No.","Statement Line No."); ...Değişim kodu
... OffSetL := STRLEN("Statement No.")-9; IF OffSetL < 1 THEN OffSetL := 1; GLSetup.GET; JnlLineDim.SETRANGE("Table ID",DATABASE::"Bank Acc. Reconciliation Line"); JnlLineDim.SETRANGE("Journal Template Name",COPYSTR("Bank Account No.",1,10)); JnlLineDim.SETRANGE("Journal Batch Name",COPYSTR("Statement No.",OffSetL,10)); JnlLineDim.SETRANGE("Journal Line No.","Statement Line No."); ...Bank Acc. Mutabakat Çizgileri formundaki (380) ShowDimension işlevine yerel bir değişken ekleyin ve değişkeni aşağıdaki gibi belirtin:
- Ad:OffSetL
- DataType:Integer
Bank Acc. Mutabakat Satırları formundaki (380) ShowDimension işlevindeki kodu aşağıdaki gibi değiştirin:
Mevcut kod... // CLR JnlLineDim.RESET; JnlLineDim.SETRANGE("Table ID",DATABASE::"Bank Acc. Reconciliation Line"); JnlLineDim.SETRANGE("Journal Template Name",COPYSTR("Bank Account No.",1,10)); JnlLineDim.SETRANGE("Journal Batch Name",COPYSTR("Statement No.",1,10)); JnlLineDim.SETRANGE("Journal Line No.","Statement Line No."); ...Değişim kodu
... // CLR OffSetL := STRLEN("Statement No.")-9; IF OffSetL < 1 THEN OffSetL := 1; JnlLineDim.RESET; JnlLineDim.SETRANGE("Table ID",DATABASE::"Bank Acc. Reconciliation Line"); JnlLineDim.SETRANGE("Journal Template Name",COPYSTR("Bank Account No.",1,10)); JnlLineDim.SETRANGE("Journal Batch Name",COPYSTR("Statement No.",OffSetL,10)); JnlLineDim.SETRANGE("Journal Line No.","Statement Line No."); ...Bank Acc. Mutabakat Çizgileri sayfasındaki (380) ShowDimension işlevine yerel bir değişken ekleyin ve ardından değişkeni aşağıdaki gibi belirtin:
- Ad:OffSetL
- DataType:Integer
Banka Hesabı Mutabakat Çizgileri sayfasındaki (380) ShowDimension işlevindeki kodu aşağıdaki gibi değiştirin:
Mevcut kod... // CLR JnlLineDim.RESET; JnlLineDim.SETRANGE("Table ID",DATABASE::"Bank Acc. Reconciliation Line"); JnlLineDim.SETRANGE("Journal Template Name",COPYSTR("Bank Account No.",1,10)); JnlLineDim.SETRANGE("Journal Batch Name",COPYSTR("Statement No.",1,10)); JnlLineDim.SETRANGE("Journal Line No.","Statement Line No."); ...Değişim kodu
... // CLR OffSetL := STRLEN("Statement No.")-9; IF OffSetL < 1 THEN OffSetL := 1; JnlLineDim.RESET; JnlLineDim.SETRANGE("Table ID",DATABASE::"Bank Acc. Reconciliation Line"); JnlLineDim.SETRANGE("Journal Template Name",COPYSTR("Bank Account No.",1,10)); JnlLineDim.SETRANGE("Journal Batch Name",COPYSTR("Statement No.",OffSetL,10)); JnlLineDim.SETRANGE("Journal Line No.","Statement Line No."); ...Bank Acc. Mutabakat Sonrası kod birimindeki (370) OnRun tetikleyicisine yerel bir değişken ekleyin ve ardından değişkeni aşağıdaki gibi belirtin:
- Ad:OffSetL
- DataType:Integer
Banka Hesap Mutabakat Sonrası kod birimindeki (370) OnRun tetikleyicisindeki kodu aşağıdaki gibi değiştirin:
Mevcut kod... BankAccStmtLine.INSERT; // CLR AutocreateBankAccount(BankAccReconLine); DimMgt.DeleteDocDim( DATABASE::"Bank Acc. Reconciliation Line",0, BankAccStmtLine."Statement No.",BankAccStmtLine."Statement Line No."); // CLR UNTIL BankAccReconLine.NEXT = 0; ...Değişim kodu
... BankAccStmtLine.INSERT; // CLR AutocreateBankAccount(BankAccReconLine); OffSetL := STRLEN(BankAccReconLine."Statement No.")-9; IF OffSetL < 1 THEN OffSetL := 1; DimMgt.DeleteDocDim( DATABASE::"Bank Acc. Reconciliation Line",0, COPYSTR(BankAccStmtLine."Statement No.",OffSetL,10),BankAccStmtLine."Statement Line No."); // CLR UNTIL BankAccReconLine.NEXT = 0; ...Ödeme Oluşturma'daki PostGLAcc işlevine yerel bir değişken ekleyin. Jnl.-Post Line kod birimi (5001910) ve ardından değişkeni aşağıdaki gibi belirtin:
- Ad:OffSetL
- DataType:Integer
Ödeme Oluşturma'daki PostGLAcc işlevindeki kodu değiştirin. Jnl.-Post Line kod birimi (5001910) aşağıdaki gibidir:
Mevcut kod... IF NOT TempJnlLineDim.INSERT THEN TempJnlLineDim.MODIFY; END; JnlLineDim.RESET; JnlLineDim.SETRANGE("Table ID",DATABASE::"Bank Acc. Reconciliation Line"); JnlLineDim.SETRANGE("Journal Template Name",COPYSTR(BankAccRecLine."Bank Account No.",1,10)); JnlLineDim.SETRANGE("Journal Batch Name",COPYSTR(BankAccRecLine."Statement No.",1,10)); JnlLineDim.SETRANGE("Journal Line No.",BankAccRecLine."Statement Line No."); ...Değişim kodu
... IF NOT TempJnlLineDim.INSERT THEN TempJnlLineDim.MODIFY; END; OffSetL := STRLEN(BankAccRecLine."Statement No.")-9; IF OffSetL < 1 THEN OffSetL := 1; JnlLineDim.RESET; JnlLineDim.SETRANGE("Table ID",DATABASE::"Bank Acc. Reconciliation Line"); JnlLineDim.SETRANGE("Journal Template Name",COPYSTR(BankAccRecLine."Bank Account No.",1,10)); JnlLineDim.SETRANGE("Journal Batch Name",COPYSTR(BankAccRecLine."Statement No.",OffSetL,10)); JnlLineDim.SETRANGE("Journal Line No.",BankAccRecLine."Statement Line No."); ...
Önkoşullar
Bu düzeltmeyi uygulamak için aşağıdaki ürünlerden birini yüklemiş olmanız gerekir:
- Microsoft Dynamics NAV 2009 Service Pack 1'in Almanca sürümü ve AddOn PaymentsÖdemeler dahil
- Microsoft Dynamics NAV 2009'un Almanca sürümü ve AddOn PaymentsÖdemeler dahil
- Microsoft Dynamics NAV 5.0 Service Pack 1'in Almanca sürümü ve AddOn PaymentsÖdemeler dahil
- Microsoft Dynamics NAV 5.0'ın Almanca sürümü ve AddOn PaymentsÖdemeler dahil
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.