En el blog de hoy vamos a hablar sobre las fórmulas de fecha ya que se utilizan en multitud de sitios en Microsoft Dynamics 365 Business Central (en adelante BC), para el cálculo de fechas de vencimiento en facturas, para el cálculo de fechas de caducidad de productos, para establecer la periodicidad de los diarios periódicos, etc.
Fórmulas de fecha en CALCDATE
Quiero mostrar cómo se calcula por código, reportando alguna información recolectada de varias partes sobre el cálculo de fechas a través de dateformula
y calcdate , ya que son muy utilizadas. Y podría ser útil, especialmente para aquellos que son nuevos en Business Central.
Empezaremos por enumerar las diferentes expresiones que se pueden utilizar en un campo de tipo Fórmula de Fecha.
Posteriormente las combinaremos para obtener expresiones complejas y para acabar, daremos algunos ejemplos de cálculos de fecha que pueden ser de interés.
Sintaxis básica de CALCDATE
Calcula una nueva fecha que se basa en una expresión de fecha y una fecha de referencia.
NewDate := CALCDATE(DateExpression [, Date])
Parámetros comunes utilizados en CALCDATE
C = Actual
D = Día
W = Semana
M = Mes
Q = Trimestre
Y = Año
CD = Día actual
CW = Semana actual
CM = Mes actual
CM última fecha del mes actual
<-CM> primera fecha del mes actual
+D primera fecha del próximo mes
-1M retroceder un mes
Puede parecer complicado, pero no lo es en absoluto.
Combinaciones
2D = 2 días a partir de hoy
3W = 3 semanas a partir de hoy
D12 = El próximo 12° día de un mes
WD5 = El próximo 5° día de una semana (jueves)
CM+20D = Mes actual + 20 días
-1Y = Hace 1 año desde hoy
Cálculo de fechas de vencimiento con CALCDATE
Ejemplo de cálculo: primeros y últimos días
Primer día del mes: <-CM>
Último día del mes: <+CM>
Último día del próximo mes: <+1M+CM>
CalcDate
NewDate := CALCDATE(DateExpression [, Date])
DateExpression = [][][]
= []
= + | –
= | |
= Entero positivo
= D | WD | W | m | Q | Y (D=día, WD=día de la semana, W=semana, M=mes, Q=trimestre, Y=año) =
C (C=actual)
Estas reglas muestran que las expresiones de fecha constan de cero, una, dos o tres subexpresiones.
Cada subexpresión consta de un signo opcional y un término.
Los siguientes son algunos ejemplos típicos de términos:
30D (30 días; corresponde a <Número><Unidad>)
WD2 (día de la semana número 2; corresponde a <Unidad><Número>)
CW (semana actual; corresponde a <Prefijo><Unidad>)
El calendario interno de Dynamics NAV comienza el lunes y finaliza el domingo. Esto significa que el lunes es el día de semana 1 y el domingo es el día de semana 7.
Implementación de CALCDATE en Visual Studio Code
- En este ejemplo de calcdate business central, calculamos una fecha de vencimiento, a partir del día actual (TODAY), y le sumamos un día.
- En el siguiente ejemplo, calculamos con la función GETRANGEMIN, la fecha menor dentro de un rango de fechas («Date Filter»), y calculamos a partir de esa fecha, sumando 3 meses y le restamos un día..
- En este ejemplo, creamos una pagina nueva y en el trigger que se ejecuta al abrirla metemos el siguiente código que calcula tres fechas distintas:
Recursos adicionales sobre CALCDATE en Business Central
En el siguiente enlace de Microsoft tenéis en detalle la descripción de la función calcdate con la que podéis realizar cálculos de fechas a partir de una fecha y una expresión determinada. https://learn.microsoft.com/es-es/dynamics-nav/calcdate-function–date-
Espero que os sirva de ayuda.
Si te intereso el articulo, lee también: ¿Cómo cambiar dimensiones de elementos en Dynamics 365 Business Central? (2024)
Programación Dynamics
ABD Consultoría y Soluciones Informáticas