Data Entity’e LedgerDimension yada DefaultDimension tipinde bir alan eklediğiniz zaman build sırasında aşağıdaki hata ile karşılaşırsınız.
The 'DefaultDimension' entity field must have the Access Modifier property set to Private or Internal.
D365 F&O standartta dimension alanlarının Data Entity üzerinden sistem dışına (Public olarak) yayınlanmasına izin vermiyor. Hata da dediği gibi alanın AccessModifier özelliğini Private yada Internal yaparsanız build hatasını aşarsınız fakat sadece D365 F&O içindeki kullanımlarda bu alanlara erişebilirsiniz. Örneğin Power BI üzerinden Data Entity’e eriştiğinizde dimension alanlarını göremessiniz.
Çözüm
Öncelikle eklediğiniz alanın AccessModifier özelliğini Private yapalım.
Dimension’ın DisplayValue değerini göstermek için dimension türüne göre aşağıdaki işlemleri yapmanız gerekiyor. Ben standartta bulunan LedgerJournalLineEntity‘si üzerinden anlattım.
DefaultDimension
- DimensionSetEntity isimli tablo Data Entity’nin datasource’una eklenir. Aşağıdaki resimde gösterdiğim gibi gerekli ilişki verilir.
- Eklediğimiz tablodaki DisplayValue alanı Data Entity’nin alanlarına dahil edilir. Gerekli isimlendirme yapılır.
LedgerDimension
- DimensionCombinationEntity isimli tablo Data Entity’nin datasource’una eklenir. Aşağıdaki resimde gösterdiğim gibi gerekli ilişki verilir.
- Eklediğimiz tablodaki DisplayValue alanı Data Entity’nin alanlarına dahil edilir. Gerekli isimlendirme yapılır.
Int64 Değer Göstermek
Eğer size mutlaka Int64 tipindeki değer gerekiyor ise dimension alanını computed column kullanarak yayınlarsanız bu standart kontrolü aşabilirsiniz. Data Entity’ler aslında birer view olduğu için aynı view’a eklediğiniz computed column’ları Data Entity’e de ekleyebilirsiniz. Örnek method:
public static server DimensionDefault defaultDimension()
{
return SysComputedColumn::returnField(tableStr(LedgerJournalLineEntity), identifierStr(LedgerJournalTrans), fieldStr(LedgerJournalTrans, DefaultDimension))
}
Son Olarak
Data Entity 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.