OptionSetValueCollection 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 Dynamics 365 CE (CRM) ‘e Temmuz 2017 güncellemesi ile birlikte gelen bir özellik olan OptionSetValueCollection (Multiselect OptionSet — Seçenek Kümesi Çoklu Seçim) hakkında bilgilendirme yapacağım.

Önceki yazıda bahsetmiş olduğum OptionSetValue ‘dan farklı olarak, aynı alanda birden fazla değer saklamak için kullanılmaktadır.

Dynamics 365 CE (CRM) Customization (Özelleştirme) aşamasında herhangi bir farklılık bulunmamakta. OptionSet alan tanımlamasında olduğu gibi seçenek tanımlarını oluşturmamız gerekli.

Dynamics 365 Customization (Özelleştirme) — MultiSelect Option Set alan oluşturma
Dynamics 365 Customization (Özelleştirme) — MultiSelect Option Set alan oluşturma

UI (Arayüz) ‘de aşağıdaki gibi görüntülenmektedir;

MultiSelect Option Set için arayüz kontrolü — boş input
MultiSelect Option Set için arayüz kontrolü — boş input
MultiSelect Option Set için arayüz kontrolü — seçim yapılmış input
MultiSelect Option Set için arayüz kontrolü — seçim yapılmış input
OptionSet ve MultiSelect OptionSet karşılaştırması & MultiSelect OptionSet dolu input
OptionSet ve MultiSelect OptionSet karşılaştırması & MultiSelect OptionSet dolu input

Dynamics 365 CE (CRM) SDK ile kod yazarken MultiSelect OptionSet için OptionSetValueCollection nesnesini kullanmamız gerekiyor. Aşağıda görüldüğü gibi, IList<OptionSetValue> yani OptionSetValue türünde data içeren bir Collection ‘dan başka birşey değil.

Dynamics 365 CE (CRM) SDK — OptionSetValueCollection
Dynamics 365 CE (CRM) SDK — OptionSetValueCollection
Dynamics 365 CE (CRM) SDK — MultiSelect OptionSet alana değer atama
Dynamics 365 CE (CRM) SDK — MultiSelect OptionSet alana değer atama

Database seviyesinde ise aşağıdaki ekran görüntüsünde görüldüğü üzere Nvarchar(4000) olarak text bazlı bir data yapısı üzerinde bilgiler saklanmaktadır.

MultiSelect OptionSet database yapısı
MultiSelect OptionSet database yapısı
MultiSelect OptionSet database veri yapısı
MultiSelect OptionSet database veri yapısı

Bunun nedeni OptionSetValueCollection nesnesinin kendisinde saklı, yukarıda belirttiğim gibi bu nesne aslında OptionSetValue tipinde değerler saklayan bir Collection yani Array ve değerleri saklamak için Serialize edildiğinde en mantıklı yöntem datayı semicolon separated yani noktalı virgül (;) ile ayırıp text olarak saklamak.

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.