Aracılığıyla paylaş


Microsoft Dynamics AX 2012 için Microsoft Management Reporter 2012'de "Nesne başvurusu bir nesnenin örneğine ayarlanmadı" hatası

Bu makale, Nesne başvurusunun Microsoft Dynamics AX 2012 için Microsoft Management Reporter 2012'de oluşan bir nesne hatası örneğine ayarlanmaması için bir çözüm sağlar.

Şunlar için geçerlidir: Microsoft Management Reporter 2012, Microsoft Dynamics AX 2012 R3
Özgün KB numarası: 2967363

Belirtiler

Microsoft Dynamics AX 2012 için Microsoft Management Reporter 2012'deki Management Reporter Yapılandırma Konsolu'ndaki tümleştirme günlüklerinde aşağıdaki hatayı alıyorsunuz:

[AX 2012 Hesaplarından Hesaba] bir hatayla karşılaştı. İşlem durdurulacak. Hata metni: Nesne başvurusu bir nesnenin örneğine ayarlanmadı.

Ayrıca, Olay Görüntüleyicisi aşağıdaki hata da görüntülenebilir:

Yakalanan Özel Durum: [System.NullReferenceException] Nesne başvurusu bir nesnenin örneğine ayarlanmadı. Yığın izleme:at
Microsoft.Dynamics.Integration.Adapters.AX2012GL.DataAccessHelper.GetEnumLabelId(EnumMetadata enumList, Nullable'1 value) konumunda
Microsoft.Dynamics.Integration.Adapters.AX2012GL.DataAccessHelper.GetEnumLabelId(EnumMetadata enumList, Nullable'1 value) konumunda
Microsoft.Dynamics.Integration.Adapters.AX2012GL.AX2012GLAdapter.GetEnumValueLabelString(String enumName, Nullable'1 value) konumunda
Microsoft.Dynamics.Integration.Adapters.AX2012GL.AccountObjectProvider.PopulateAccountAttributes(SqlDataReader accountReader) adresinde
Microsoft.Dynamics.Integration.Adapters.AX2012GL.AccountObjectProvider.CreateAccount(SqlDataReader okuyucu, Dimension mainAccountDimension, Int64 mainAccountRecId) at Microsoft.Dynamics.Integration.Adapters.AX2012GL.AccountObjectProvider.QueryAccountValues()
Microsoft.Dynamics.Integration.Adapters.AX2012GL.AccountObjectProvider.ReadObjectKeys(DateTime modifiedDate) adresinde
Microsoft.Dynamics.Integration.Service.Tasks.MapWork.ReadObjectKeyList(DbMap eşlemesi, DateTime queryDate, Int32& sayısı)konumunda
Microsoft.Dynamics.Integration.Service.Tasks.MapWork.ProcessRecordsImplementation(OperationType operationType)

Neden

Bu sorun, AX veritabanındaki MainAccount tablosunda bulunan ancak Uygulama Nesne Ağacı'nda (AOT) bulunmayan bir post türü nedeniyle oluşur.

Çözüm

Bu sorunu çözmek için şu adımları izleyin:

  1. Hesapların deftere nakil türünü denetlemek için AX veritabanında aşağıdaki SQL deyimini çalıştırın:

    select distinct (postingtype) from MainAccount
    
  2. AX'te oturum açın ve AOT'yi denetleyin. AOT'ye göz atmak için Veri Sözlüğü'ne, Temel Sabit Listeleri'ne ve ardından LedgerPostingType'ı seçin. Her öğenin özelliklerini denetleyin ve EnumValues tablosunu not edin.

  3. MainAccount tablosu ile AOT'deki EnumValues tablosu arasında farklar bulunursa, geçersiz deftere nakil türleri içeren hesapların geçerli bir deftere nakil türü ayarlanmış olması gerekir.

    Örneğin, AOT'de geçersiz bir 255 deftere nakil türünün olmadığı MainAccount tablosunu güncelleştirmek için aşağıdaki deyimi kullanın. Bu deyim, deftere nakil türünü geçerli bir tür olan 0 olarak ayarlar.

    update MainAccount set postingtype = 0 where postingtype = 255
    
  4. MainAccount tablosunu güncelleştirdiğinizde, Management Reporter Data Mart'ı yeniden oluşturmanız gerekir. Bunu yapmak için şu adımları uygulayın:

    1. Başlat'ı seçin, sunucuda yapılandırma konsolunu açın.
    2. Sol gezinti bölmesinde ERP Tümleştirmeleri'ni seçin.
    3. Kullanılmakta olan tümleştirmeyi seçin ve ardından Tümleştirmeyi Devre Dışı Bırak'ı seçerek tümleştirmeyi devre dışı bırakın.
    4. ERP tümleştirmesini kaldırmak için Kaldır'ı seçin.
    5. Sol gezinti bölmesinden Yönetim Muhabiri Hizmetleri'ni seçin ve Management Reporter hizmetlerinin ikisini de durdurun.
    6. Microsoft SQL Management Studio'da DDB veritabanını yedekleyin ve silin.
    7. Management Reporter hizmetlerini başlatın.
    8. Erp tümleştirmesini yeniden yapılandırmak için Dosya'ya ve ardından Yapılandır'a tıklayın.
    9. Tümleştirme yapılandırıldığında yapılandırma konsolunun sol tarafından tümleştirmeyi seçin ve ardından Tümleştirmeyi Etkinleştir'i seçin.