domingo, 22 de marzo de 2015

Nuevo: Definición de campos clave en entidades (Update 1–Carina)

Esta semana se ha celebrado el Convergence 2015 en Atlanta, EEUU. Como parte del evento se han presentado la nueva versión de Dynamics CRM de primavera (CRM Online 2015 Update 1 (llamada con nombre código “Carina”)).

Esta versión solamente estará disponible en la versión Online, así que usuarios de Onpremise deberán esperar para disfrutar todo lo nuevo que nos ofrece la nueva versión.

El detalle de todo lo nuevo, ha sido publicado ya en el blog del equipo de producto: http://blogs.msdn.com/b/crm/archive/2015/03/18/crm-online-2015-update-1-official-pre-release-content-is-here.aspx

Hoy voy a hablar de uno de las nuevas funcionalidades, que como siempre nos ofrece un mundo nuevo de posibilidades. Se trata de la posibilidad de añadir claves a las entidades, basados en campos de la misma.

Antiguamente, solamente se disponía del campo de tipo “GUID” interno de cada entidad, que se genera automáticamente por Dynamics CRM al crear cualquier registro en la plataforma. Si necesitábamos controlar algo como una clave única, debíamos hacer un Plugin que haga esta validación.

Ahora, vamos a poder crear claves basadas en campos estándar. A continuación os voy a enseñar como funciona con un ejemplo.

Primero, voy a crear una nueva entidad de “Países” (muy original) con un campo con el nombre “Código”.

image

Luego acceso a “Keys” para definirle una clave. Lo que quiero, es definir a esta entidad que el campo clave de la misma sea “Código” (vamos a clave y “nuevo”):

image

Luego vamos y creamos unos cuantos Países por ejemplo:

image

Entonces, lo que voy a hacer ahora es intentar crear un nuevo país con código “2” a ver que ocurre:

image

No me deja. Esto es genial, ya que ahora podemos controlar códigos únicos para que no se repitan. Además no solo funciona en la creación de registros, sino también en la actualización. La clave es única por entidad, y sin filtros ya que se aplica tanto para registros que estén activos como inactivos.

Como siempre, me gusta ir un pasito mas y quería ver que ventajas nos puede ofrecer esto de las claves a nivel de desarrollo, y la verdad es que son muchísimas.

Antes, para realizar cualquier “Update” de registros, debíamos antes recoger el GUID del registro. Ahora vamos a poder hacer actualizaciones basadas en estos campos clave personalizados:

 Entity pais = new Entity("dar_pais");
pais.KeyAttributes.Add(
"dar_codigo", "1");
pais.Attributes.Add(
"dar_name", "España_updated");
service.Update(pais);



O poder actualizar un Contacto por una clave mía (código) y además actualizarle un campo de tipo “Lookup” también sin necesidad de hacer antes una consulta para recoger su GUID interno:




 Entity contacto = new Entity("contact");
contacto.KeyAttributes.Add(
"dar_codigo", "1");
contacto.Attributes.Add(
"dar_pais", new EntityReference("dar_pais", "dar_codigo", "1"));
service.Update(contacto);



Simplemente genial. Piensen en la cantidad de código que nos vamos a ahorrar, solamente por esta nueva funcionalidad. Nuestros códigos serán mucho mas eficientes y sencillos.



Espero les haya gustado, intentaré seguir publicando cosas de estas nuevas que nos trae Carina.



un saludo

No hay comentarios:

Publicar un comentario