Dynamics 365 F&O – Natural Key Olmadan Data Entity Oluşturma

D365 F&O da DataEntity oluşturmak istediğinizde sihirbaz size bazen “The natural key for the table TableName was not found” diyerek hata verebilir.

Bu hatanın sebebi DataEntity oluşturmak istediğiniz tablonun RecId dışında unique bir Primary Key’e sahip olmamasıdır. AssetTrans gibi transactional veri saklayan bir tablo için DataEntity oluşturmayı planlıyorsanız, primary key tanımlamak mümkün değildir. Fakat yinede bu tablolar için DataEntity oluşturabilirsiniz. Keza GeneralJournalAccountEntryEntity‘sine bakacak olursanız standartta da böyle entity’ler mevcut.

Aşağıda anlattığım adımları izleyerek bu sorunu aşabilirsiniz.

İşlemler

  1. DataEntity sihirbazında Primary Key’e sahip alakasız herhangi bir tablo seçin. Örneğin CustGroup. Böylece sihirbaz hata vermeden diğer aşamaya geçecektir.

2. Sihirbazı istediğiniz herhangi bir alanı seçerek tamamlayın. Bu sayede Entity, Stage tablosu ve Privilege’lar otomatik oluşmuş olacaktır. Oluşan bu objeleri sırasıyla kendi tablomuz için düzenleyeceğiz.

3. Şimdi Entity’nin Datasource’unu istediğimiz tablo olarak güncelleyin. Benim örneğimde bu AssetTrans.

4. Datasource’dan istediğiniz alanları Entity’nin Fields kısmına sürükleyin.

5. Tablo adı + RecId notasyonunda bir RecId alan yaratın. Örneğin AssetTransRecId. İsim çok önemli değil fakat direkt RecId olarak eklemenize sistem izin vermeyecektir. Bu alanı EntityKey isimli index’in içine ekleyin.

5. Oluşan Entity’nin Label ve FormRef parametrelerini güncelleyin. Ayrıca Privilege’lara da label vermeyi unutmayın.

7. Son olarak Entity’ye sağ tıklayıp Regenerate staging table diyerek işlemi tamamlayalım.

Son Olarak

Tüm yapılacaklar bu kadardı. Build + Sync sonrası DataEntity kullanıma hazır.

DataEntity ile ilgili diğer yazılarıma bu adresten ulaşabilirsiniz.

D365 F&O ile ilgili yazılarıma şuradan, Dynamics AX yazılarıma da buradan bakabilirsiniz.

Hoşçakalın.

Yazıyı Paylaş

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir