12/7/10

Obtener textos y valores de un picklist via SQL

Este post está inspirado por este otro de CrmLandia por sobre cómo obtener los valores de los picklist a través de búsquedas en las tablas de metadatos de CRM. Allá van las dos consultas:una para obtener todos los valores de un atributo @aName de una entidad @eName en el idioma @uiLanguageId.

getAllPicklistValues


SELECT apv.Value, ll.Label
FROM MetadataSchema.AttributePicklistValue AS apv
INNER JOIN MetadataSchema.Attribute AS a
ON apv.AttributeId = a.AttributeId
INNER JOIN MetadataSchema.Entity AS e
ON a.EntityId = e.EntityId
INNER JOIN MetadataSchema.LocalizedLabel AS ll
ON apv.AttributePicklistValueId = ll.ObjectId
WHERE (ll.LanguageId = @uiLanguageId)
AND (e.Name = @eName) AND (a.Name = @aName)
ORDER BY ll.LanguageId, apv.Value


Y otra consulta (la que hace que este post no sea un plagio total) para obtener un sólo valor en todos los idiomas posibles. ¿Por qué la añado? Pues porque me hizo falta en un proyecto.



getPicklistValue



SELECT apv.Value
FROM MetadataSchema.AttributePicklistValue AS apv
INNER JOIN MetadataSchema.Attribute AS a
ON apv.AttributeId = a.AttributeId
INNER JOIN MetadataSchema.Entity AS e
ON a.EntityId = e.EntityId
INNER JOIN MetadataSchema.LocalizedLabel AS ll
ON apv.AttributePicklistValueId = ll.ObjectId
WHERE (ll.LanguageId = @uiLanguageId)
AND (e.Name = @eName)
AND (a.Name = @aName)
AND (ll.Label = @label)
ORDER BY ll.LanguageId, apv.Value

No hay comentarios: