Option Set: Obtener Label/Etiqueta en C#

Obtener la etiqueta de un Option Set de una entidad de CRM por código C# no es trivial. Para ello podemos utilizar dos métodos como veremos a continuación: descargar el meta o utilizar la propiedad formattedvalues

Lo que en otros lenguajes y entornos es conocido como ComboBox en CRM se le denomina Option Set. Se trataría de un desplegable de opciones disponibles que puede adoptar como valor un campo de un formulario.

La estructura de este tipo de campo constaría de una lista de parejas denominadas Label y Value. El Label correspondería a la etiqueta visible que se muestra en el formulario. Esta etiqueta será  con la que el usuario de CRM deberá interactuar y en general será de tipo String.

Además, por detrás, tenemos el Value. Esta variable identifica de modo único cada una de las opciones disponibles en el Option Set. No podrá haber dos Values iguales en el mismo Option Set puesto que este valor es el que se utiliza como clave primaria para la lógica que corre por detrás.

Campo Option Set CRM

Campo Option Set CRM

Por defecto CRM insertará los Values siguiendo una serie de reglas internas como que el prefijo sea único para cada solución. En general este dato no deberá preocuparnos y si nuestro trabajo termina en crear el formulario nos dará igual el valor de este campo aunque siempre podremos actualizarlo al valor que deseemos -cumpliendo que este valor entero sea único-.

Una aplicación en donde deberíamos cambiar los Values generados por CRM sería por ejemplo un listado de prefijos de teléfonos. En este caso sí que convendría actualizar cada item con su determinado valor (España – 34, Italia – 39, etc). En general se deberá de crear la correspondencia de Label – Value en función del alcance de nuestro desarrollo.

El motivo por el cual es bueno realizar esta correspondencia es que si accedemos mediante C# al valor de un Option Set obtendremos por defecto el Value, y no el Label. Para muchas aplicaciones con el Value será suficiente, pero para otras necesitaremos también conocer el Label del campo. Para acceder a este valor normalmente se utilizan dos métodos

El primero -y más lento- sería descargar previamente el Option Set que se desea analizar y guardarlo en un diccionario. A continuación se accederá al Value del campo en cuestión y se cruzará el valor obtenido con el diccionario obteniendo el Label correspondiente.

 

La segunda opción -más rápida- sería obtener directamente el Label del Option Set mediante la propiedad FormattedValues.

Ambas tienen sus pros y sus contras y en función de la aplicación que se esté desarrollando el programador deberá escoger cual le conviene más.

Las librerías necesarias para los objetos mostrados en los ejemplos se encuentran en la SDK 2015 de CRM. En particular hemos utilizado:

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *