OptionSetValue Nedir?

Bu yazı 21 Mart 2019 tarihinde Medium/@dynamics365 altında yayınlanmıştır. 01 Mayıs 2020 tarihinde emregulcan.com altında taşınmıştır.

İçerikler, yazının oluşturulduğu tarih için geçerli olup, Microsoft Dynamics 365 CE, Power Platform ve Azure hizmetlerinin sürekli iyileştirme ve güncelleme döngüsünden dolayı paylaşılan bilgilerde değişiklikler meydana gelmiş olabilir.

Merhaba,

Bu yazıda OptionSetValue (Seçenek Kümesi) hakkında bilgilendirme yapacağım. OptionSetValue, Html ‘de <option> ile kullanılan Dropdown seçenek listesi ile aynıdır.

Dynamics 365 CE (CRM) ‘de OptionSetValue aşağıdaki gibi kullanılmaktadır;

Customization (Özelleştirme) ve UI (arayüz) tarafında OptionSet (Seçenek Kümesi) olarak adlandırılmaktadır.

Dynamics 365 Customization (Özelleştirme) — OptionSetValue alan oluşturma
Dynamics 365 Customization (Özelleştirme) — OptionSetValue alan oluşturma

Dynamics 365 CE (CRM) ‘de OptionSet ve MultiSelect OptionSet olmak üzere 2 farklı DataType bulunmaktadır.

MultiSelect Option Set ‘ler birden fazla değer tutmak için tasarlanmış ve Temmuz 2017 güncellemesi ile birlikte Dynamics 365 CE (CRM) ‘de kullanıma sunulmuştur. Bu data türü ile ilgili olarak sonraki yazıda detaylı olarak aktarım yapacağım.

  • Label (Etiket) alanında bulunan değer UI (Arayüz) ‘de Dropdown ‘da liste öğesinin metni olarak görüntülenir.
  • Value (Değer) alanında bulunan değer Integer olarak veritabanında saklanmaktadır. Değerlerin noktalı olarak görünmesi aklınızı karıştırmasın, sadece okunabilirlik açısından noktalı olarak görüntüleniyor, Decimal ile alakası yok. Eğer bir Solution (Çözüm) içinde çalışıyorsanız ve Publisher (Yayıncı) ayarlarınızda Option Value Prefix değerini belirtmişseniz her bir seçenek için Value (Değer) alanı otomatik olarak oluşturulmaktadır. İsterseniz bunları manuel olarak değiştirebilirsiniz, 1, 2, 3, 100000001 gibi değerler verebilirsiniz.
  • Color alanında ilgili seçenek için renklendirme işlemi yapılabilir. Bu renklendirme işlemi Form ‘lar için geçerli değildir. Dolayısıyla herhangi bir form açtığınızda ilgili seçeneklerin arkaplan ya da metin renkleri değişmeyecektir.
OptionSet alanı için arayüz kontrolü — Legacy web UI
OptionSet alanı için arayüz kontrolü — Legacy web UI
OptionSet alanı için arayüz kontrolü — Unified Interface
OptionSet alanı için arayüz kontrolü — Unified Interface

Dynamics 365 CE (CRM) SDK ile kod yazarken OptionSet alanına değer göndermek istersek aşağıdaki gibi OptionSetValue nesnesini kullanmamız gerekmekte.

Dikkat edeceğiniz üzere 2 farklı kullanım şekli bulunmakta. Constructor üzerinden Integer değer gönderebileceğimiz gibi Value property ‘e değer atayarak ilgili nesneyi kullanabiliriz.

Dynamics 365 CE SDK kullanarak yazılan kodlarda OptionSetValue kullanımı
Dynamics 365 CE SDK kullanarak yazılan kodlarda OptionSetValue kullanımı

Dynamics 365 CE (CRM) SDK ile sorgulama yaptığımızda (Retrieve ya da RetrieveMultiple), bu alanın değeri yine OptionSetValue olarak dönmekte ve sadece Integer değerini döndürmektedir. Eğer ilgili seçeneğin Label değerini okumak isterseniz FormattedValues üzerinden okuma yapmanız gerekmektedir.

Database seviyesinde ise ilgili alanın değeri Integer olarak tutulmaktadır.

OptionSet ‘in database yapısı
OptionSet ‘in database yapısı

Dynamics 365 CE (CRM) ‘e özel bir tür olan Status (statecode) ve StatusReason (statuscode) alanları da OptionSetValue olarak değer almaktadır.


Umarım faydalı bir yazı olmuştur.


Dynamics 365 CE (CRM) SDK konusunda ilgili tüm yazılara tek nokta üzerinden ulaşmak isterseniz http://www.emregulcan.com/dynamics365-sdk adresine bakabilirsiniz.

You may also like...

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.