lunes, 11 de mayo de 2015

Como saber la edad de un Contacto con un Campo Calculado

Hoy vamos a usar los campos Calculados para determinar la edad de un contacto.

La idea es simple…desde una fecha de nacimiento, quiero tener un campo que vaya cambiando año tras año, diciéndome la edad del Contacto.

Antiguamente si nos enfrentábamos ante un desafío de esta envergadura, solo nos quedaba la opción de ponernos a desarrollar plugins, servicios externos, etc. para ir actualizando estos datos.

Hoy en día, podemos hacer estas cosas de forma mucho mas sencilla, simplemente utilizando funcionalidades nuevas de los campos calculados del Update 1 (solo para CRM Online).

La idea es simple, primero creamos un campo Edad en el contacto, de tipo entero y calculado:

image

En la regla del cálculo ponemos algo tan simple como: “DIFFINYEARS(birthdate,NOW())” pero lo que obtenemos es un error:

image

Por que? solamente queremos sacar la diferencia en años (nueva función de Update1) entre el birthdate y ahora (Now). Esto ocurre porque los formatos de ambos campos es diferente. la función “Now()” devuelve un campo con formato Fecha/Hora, y el Birthdate es solo fecha.

Entonces, se me ocurre ir al campo “birthdate” y cambiarle el formato. Pero resulta que no se puede cambiar el formato:

image

Entonces me creo un campo nuevo de formato Fecha y hora:

image

Vuelvo al campo calculado que se llama “Edad” y ahora:

image

Y lo añado en el formulario y ya lo tenemos:

image

Este campo ya lo podemos utilizar en vistas por ejemplo:

image

Espero les haya gustado!

@demian_rasko

2 comentarios:

  1. No da la edad exacta. Solo la diferencia entre los años de las fechas proporcionadas. Es decir, si la persona nace el 01/01/1981, actualmente (09/02/2016) tendría 35 años pero si ha nacido el 01/03/1981, ese campo calculado seguiría diciendo que tiene 35 años (por la diferencia en años entre 1981 y 2016) pero realmente tiene 34 años.

    ResponderEliminar
  2. Hola Miguel, tenes razón y la solución que encontré fue restarle 1 a la formula asi:

    DiffInYears(apcj_fechadenacimiento, Now()) - 1

    ResponderEliminar