domingo, 3 de enero de 2016

Dynamics CRM 2016: Nuevos controles para introducción de datos en cliente móvil

Hoy voy a escribir algo relacionado con una de las funcionalidades nuevas de la nueva versión de Dynamics CRM 2016 que mas me han gustado, por su enfocque y el resultado que obtienen. Además de la visión a futuras evoluciones que puede aportar mucho a la plataforma.
Esta funcionalidad es la de la posibilidad de enseñar nuevos controles para la introducción de datos en Dynamics CRM. La idea es que dados una serie de campos en un formulario, la representación gráfica del control para visualizar e introducir el valor del campo, sea configurable.
Lamentablemente esta “independencia” entre la representación gráfica de un campo y el campo en sí mismo, esta solamente disponible de momento en el cliente de movilidad, pero creo que es donde mas hace falta.
En mi experiencia trabajando con todo esto, me ha sorprendido la cantidad de nuevas opciones que tenemos, la verdad es espectacular, y como os llevará bastante tiempo haceros con todas ellas, intentaré resumirlo todo en un solo mega post que explique todo a modo de tutorial.
En esta primera versión, estaán disponibles 15 nuevos controles:
  1. Calendario (Calendar)
  2. Mando esférico (Arc Knob)
  3. Autocompletado (Auto-Complete)
  4. Gráfico de viñetas (Bullet Graph)
  5. Voltear – Modificador (Flip Switch)
  6. Máscara de entrada (Input Mask)
  7. Medidor lineal (Linear Gauge)
  8. Control deslizante lineal (Linear Slider)
  9. Multimedia
  10. Entrada numérica (Number Input)
  11. Conjunto de opciones (Option Sets)
  12. Mando radial (Radial Knob)
  13. Control de lápiz (Pen Control)
  14. Clasificación de estrellas (Star Rating)
  15. Vista previa del sitio web (Website Preview) solo para online
Espero no aburrir a nadie, pero este post será largo. Intentaré enseñar ejemplos de todos los componentes.
A continuación, describo en una tabla, para cada tipo de campo, que tipo de control permite:
SNAGHTML66ad0da
Ahora voy a explicar cada uno de los objetos, y como se configuran. La personalización de estos objetos, es el mismo sitio donde se personalizan los formularios en la pestaña de “Controles” de las propiedades del campo:
SNAGHTML66ce61d
Allí se puede configurar que tipo de controles estarán disponibles para el cliente de teléfono o el cliente de tablet, ya que podríamos definir diferentes.
Dependiendo del tipo de campo, podremos añadir los controles, hacindo click en “Agregar control…”.
Autocompletado
SNAGHTML66f0c1a
Hay dos tipos de autocompletados:
1) Autocompletado desde un picklist (que debe estar en la misma entidad):
SNAGHTML6701879

2) Autocompletado desde una vista, donde seleccionamos la vista, la entidad y el campo a enseñar:
SNAGHTML670e32c
SNAGHTML68aaf3d
SNAGHTML68b37c6
Finalmente estos dos campos se ven así:
SNAGHTML672bbc4SNAGHTML67375ed
Calendario
El calendario es la posibilidad de convertir una vista en un dashboard o una vista en un subgrid, en un calendario, donde además podemos definir por que campo queremos que ordene los registros en el calendario.
Se personaliza en la propia personalizacion del dashboard al añadir una lista, en sus propiedades en la pestaña de “Controles”:
SNAGHTML6762e27
y allí podremos añadir el calendario:
SNAGHTML675ce83
y una vez añadido, podremos configurar el componete introduciendo los valores en sus parámetros:
SNAGHTML677b062
Y lo mismo se puede hacer en un subgrid en un formulario en la pestaña de “Controles”:
SNAGHTML678a532
Finalmente este objeto se ve así, y con la posibilidad de cambiar las vista mensual, semanal y diaria:

SNAGHTML6820af5SNAGHTML682676d
Clasificación de estrellas
SNAGHTML68790e6
Este control solamente permite configurarle un valor con la cantidad de estrellas (de 2 a 5):
SNAGHTML68825f2
SNAGHTML68caa70
Y se ve así en los formularios:
SNAGHTML6896392
Conjunto de opciones
Los conjuntos de opciones permiten poder visualizar campos de tipo desplegable (picklist) de forma mas bonita en las tablets y móviles.
SNAGHTML68e3e9d
Una vez configurado se ve de la siguiente manera:
SNAGHTML68eee17
Control de lápiz
Los campos de texto largo, se pueden visualizar como objetos para recoger firmas como un lápiz.
SNAGHTML692b2a1
Este tipo de componentes se visualiza de la siguiente manera (modo edición y modo lectura):
SNAGHTML6953489SNAGHTML6957897
Una vez introducido, no se permite volver a modificarlo. Es por esto que pienso que sirve principalmente para recoger firmas. La imagen es almacenada en formato base64 en el campo Ntext, por lo tanto, recordar que el campo debe ser lo suficientemente grande, los 2000 caracteres que suelen aparecer de forma estandar, son demasiado pequeños.
SNAGHTML6977f25
Control delizante lineal
SNAGHTML699b3c8
La configuración de este componente es la siguiente:
SNAGHTML69a2464
por cada valor, se puede definir un campo fijo o uno dinámico basado en el valor de un campo:
SNAGHTML69ad0e0
Finalmente se ve de la siguiente manera:
SNAGHTML69c0bc1
Entrada numérica
SNAGHTML69cf2c6
Este control permite configrarle el paso, que puede ser un valor fijo o el valor de un campo:
SNAGHTML69d91e4
SNAGHTML69e663c
Finalmente este objeto se visualiza así:
SNAGHTML69f296d
Gráfico de viñetas
Este tipo de control es de solo lectura y relacionado con campos numéricos.
SNAGHTML7c34593
A continucación se muestran todos los parámetros de este componente:
SNAGHTML7c4cc14
Todos los parámetros pueden ser valores fijos, o basados en campos:
SNAGHTML7c5c950
Finalmente este componente se ve de la siguiente manera:
SNAGHTML7c696a3
Mando esférico
SNAGHTML7c756e5
Los parámetros de configuración que pueden ser valores fijos o dinámicos basados en campos:
SNAGHTML7c7cba8
Este componente se ve de la siguiente manera:
SNAGHTML7c89580
Mando radial
SNAGHTML7caa3ee
Los parametros (fijos o por campos):
SNAGHTML7cb555b
Se termina viendo de la siguiente manera:
SNAGHTML7cb021b
Máscara de entrada
SNAGHTML7cc571c
El parámetro permite definir una máscara de entrada del texto, que puede ser un texto, o de un campo:
SNAGHTML7cd5a72

SNAGHTML7ccbcac
Y este componente se ve de la siguiente manera:
SNAGHTML7cdfc9e
Medidor Lineal
SNAGHTML7cee568
Los parámetros (fijos o por campos):
SNAGHTML7cf8bca
y este componente se ve así:
SNAGHTML7d00956
Multimedia
SNAGHTML7d80b72
Esto se aplica a campos de tipo texto, que tienen el formato de URL, y permiten visualizar un video como se ve a continuación:
SNAGHTML7d7a650
Vista previa de sitio web
SNAGHTML7d95db4
Esto se aplica a campos de tipo texto, que tienen el formato de URL, y permiten previsualizar un sitio web:
SNAGHTML7e3381a
Comentario: no he conseguido ver la imagen de ninguna web. A lo mejor es algun tipo de “bug”.
Voltear – modificador
SNAGHTML7e44e7c
Este control es para los campos booleanos que se ve de la siguiente manera:
SNAGHTML7e4f664

Finalmente si añadimos todos estos objetos a un solo formulario, obtenemos algo como lo siguiente:
SNAGHTML7ec2439
Simplemente: ESPECTACULAR Winking smile!
Bueno, esto ha sido todo, espero les haya gustado. Solo les dejo algunos temas a tener en cuenta:
  • Los valores máximos de los controles numéricos deben ser siempre de tipo entero, sin importar el tipo de campo.
  • Cada cambio, requiere publicar las personalziaciones y volver a descargar las mismas en la app
  • Los campos de tipos imagen, lookup y fecha no tienen ninguna funcionalidad especial.
  • Los campos de texto largo, deben ser lo suficientemente grandes para almacenar una imagen (la firma) en base 64, sino da error. La imagen de firma no se ve en el cliente we, y habría que desarrollar una web resource que lo enseñe.
un abrazo a todos!
@demian_rasko

2 comentarios: