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 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.
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 (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.
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.