×

Dynamics CRM Optionset değerlerini SQL Sorguları ile bulma ve dikkat edilmesi gereken konular

Dynamics CRM Optionset değerleri SQL toblosu olarak StringMapBase tablosunda tutulmaktadır. Burada sorgulamayı yaparken kriter olarak ObjectTypeCode, LangId ve AttributeName kolonlarını kullanmanız önemlidir.

ObjectTypeCode : Hangi Entity için sorgulama yaptığınızı belirtirsiniz. Burada entitynin adını değil kodunu vermeniz gerekmektedir.

LangId : Hangi Dil için sorgulama yaptığınızı belirtirsiniz. İngilizce için 1033, Türkçe için 1055.

AttributeName : Hangi alan/field için sorgulama yaptığınızı belirtirsiniz.

Aşağıda örnek bir sorguyu görebilirsiniz. Burada ObjectTypeCode değerini direk vermek yerine EntityView dan çekmemizin sebebi özellikle custom entitylerin ortamlar arasında farklı kodlar alabilme ihtimalidir. Default entityler olan Account(1), Contact(2), Lead(4) ortam farketmeksizin hep aynı kodda kalırlar fakat custom entitylerde bu durum farklıdır. Bu sebeple sorgularınız her ortamda sağlıklı olarak çalışması ve manuel müdahale gerektirmemesi için bu şekilde kullanımı önermekteyiz.

select AttributeValue,Value from StringMapBase with(nolock)
where ObjectTypeCode=(select ObjectTypeCode from EntityView with(nolock) where name=’new_entityim’)
and AttributeName=’new_alanım’ and LangId=1055

Örnek sorguda seçtiğimi iki alanı AttributeValue,Value kısaca açıklayarak yazımızı bitirelim.

AttributeValue : Optionset in integer tipindeki değeridir.

Value : Optionset in adı yani string halidir.

Yorum gönder