02-operadores-y-sintaxis

Last modified by Nico Perez on 2026/06/08 12:02

Operadores y Sintaxis

Introducción

Las fórmulas del sistema se escriben combinando variablesfuncionesoperadores y valores fijos.

La sintaxis define la forma en que esos elementos deben escribirse para que el motor de fórmulas pueda interpretarlos correctamente.

Una fórmula puede:

  • Realizar cálculos matemáticos
  • Comparar valores
  • Evaluar condiciones
  • Invocar funciones
  • Utilizar datos del sistema
  • Combinar múltiples expresiones para obtener un resultado final

Esta página describe las reglas generales de escritura de fórmulas, incluyendo operadores disponibles, uso de variables, funciones, parámetros, comillas, condicionales y criterios básicos de validación.

La explicación se orienta al uso funcional de las fórmulas dentro del sistema. Las particularidades de cada variable o función se documentan en sus páginas correspondientes.

Para entender los tipos de valor que pueden manejar las fórmulas, consulta 🟢Tipos de Dato.


Operadores disponibles

Los operadores permiten:

  • Realizar cálculos matemáticos
  • Comparar valores
  • Combinar condiciones

Los operadores relacionan variablesfunciones, valores fijos y expresiones dentro de una fórmula.

Operadores aritméticos

Los operadores aritméticos realizan cálculos matemáticos sobre valores numéricos.

OperadorOperaciónEjemplo
+Suma@VAR1 + @VAR2
-Resta@BASIMP - @CONLIQIMP
*Multiplicación@HORASNORMALES * @VALORHORA
/División@IMPORTE / 2
^Potencia@VALOR ^ 2
%Módulo (resto de división)@VALOR % 2

Multiplicación explícita

Siempre utiliza el operador * de forma explícita para multiplicaciones. Evita multiplicaciones implícitas.

✓ Correcto: @HORASNORMALES * @VALORHORA

✗ Evitar: 2(@VAR1 + @VAR2) o @BASIMP(@PORCE)

El uso explícito de operadores facilita la lectura de la fórmula y reduce errores de interpretación.


Operadores relacionales

Los operadores relacionales comparan valores dentro de una fórmula.

El resultado de una comparación se devuelve como valor lógico (verdadero o falso) y se utiliza en condicionales, por ejemplo dentro de expresiones if(...) o funciones lógicas.

OperadorComparaciónEjemplo
=Igual a@CODCAT == "105"
!=Distinto de@CODCAT != "105"
<Menor que@TOTHA < @LIMAPOSS
>Mayor que@TOTHA > @LIMAPOSS
<=Menor o igual que@BASIMP <= 0
>=Mayor o igual que@BASIMP >= @SALARIOMVM

Estos operadores permiten definir condiciones para que una fórmula devuelva un resultado u otro según los valores evaluados.

Ejemplo: if(@TOTHA > @LIMAPOSS, 0, @PORCE) devuelve 0 si @TOTHA es mayor que @LIMAPOSS, sino devuelve @PORCE.

Operadores lógicos

Los operadores lógicos combinan múltiples condiciones en una sola expresión.

OperadorOperaciónEjemplo
&&Y lógico (AND)@TOTHA > 0 && @BASIMP > 0
\|\|O lógico (OR)@CODCAT == "105" \|\| @CODCAT == "106"
!Negación (NOT)!(@BASIMP > 0)

Estos operadores permiten construir condiciones más complejas.

Ejemplos:

  • @TOTHA > 0 && @BASIMP > 0 → verdadero solo si ambas condiciones son verdaderas
  • @CODCAT == "105" \|\| @CODCAT == "106" → verdadero si cualquiera de las condiciones es verdadera
  • !(@BASIMP > 0) → verdadero si la condición es falsa

Paréntesis

Los paréntesis agrupan expresiones y definen el orden de evaluación de las operaciones.

UsoEjemplo
Agrupar operaciones antes de usar el resultado(@VAR1 + @VAR2) * @BASIMP
Agrupar condiciones complejas(@TOTHA > 0 && @BASIMP > 0)
Agrupar expresiones dentro de funcionesif((@TOTHA > @LIMAPOSS), 0, @PORCE)

Paréntesis incompletos generan errores de sintaxis. Cada ( debe tener su correspondiente ).

Verifica siempre que los paréntesis estén balanceados antes de ejecutar la fórmula.

Variables dentro de fórmulas

Las variables permiten tomar valores del sistema y utilizarlos dentro de una fórmula.

Sintaxis

En las fórmulas, las variables se escriben con el prefijo @ seguido del nombre de la variable.

Ejemplo: @HORASNORMALES * @VALORHORA

Resolución de contexto

El motor de fórmulas resuelve el valor de cada variable según el contexto en el que se evalúa la fórmula. Una variable puede obtener información de:

  • Empleado
  • Liquidación
  • Concepto
  • Horas trabajadas
  • Novedades
  • Parámetros del sistema
  • Otras configuraciones

Ejemplos comunes

InformaciónEjemplo
Cantidad de horas@HORASNORMALES
Base imponible calculada@BASIMP
Porcentaje del concepto@PORCE
Fecha inicial del período@FEINICIAL
Variable auxiliar@VAR1

Las variables específicas disponibles se documentan en la carpeta variables/.


Funciones dentro de fórmulas

Las funciones permiten ejecutar operaciones específicas dentro de una fórmula.

Sintaxis

Una función se escribe indicando su nombre y sus parámetros entre paréntesis, separados por comas.

Estructura general: NOMBREFUNCION(parametro1, parametro2, parametro3)

Parámetros

Los parámetros pueden ser:

  • Valores fijos (números, textos entre comillas)
  • Variables (con prefijo @)
  • Otras funciones anidadas
  • Expresiones complejas

Ejemplos

OperaciónEjemplo
Redondear un valorROUND(@BASIMP, "PRO", 2)
Obtener diferencia de díasDATEDIFF(@FEINICIAL, @FEFINAL)
Evaluar múltiples casosCASETEST(@CODCAT, "105", 1, "106", 2, 0)
Convertir a textoTOSTRING(@CODCAT)

Cada función tiene una lógica propia, cantidad de parámetros esperada y tipo de resultado. Las funciones se documentan en detalle en la carpeta funciones/.

Parámetros y comillas

Los parámetros son los valores que se envían a una función para que ejecute su operación.

Tipos de parámetros

Un parámetro puede ser:

  • Una variable (prefijo @)
  • Un valor numérico fijo
  • Un texto (entre comillas)
  • Una fecha
  • Una expresión
  • El resultado de otra función

Valores de texto

Cuando se utilizan valores de texto en una fórmula, deben escribirse entre comillas.

Ejemplo: @CODCAT == "105"

Comillas simples vs. dobles

El sistema normaliza las comillas simples y dobles antes de evaluar la fórmula. Por tanto:

  • "105" y '105' se interpretan de forma equivalente

Para mantener consistencia en la documentación, usa comillas dobles.

✓ Recomendado: @CODCAT == "105"


Separación de expresiones con punto y coma

Las fórmulas pueden contener múltiples expresiones separadas por punto y coma ;.

Funcionamiento

Cuando se utiliza este esquema:

  1. El sistema evalúa las expresiones anteriores
  2. La última expresión determina el resultado final de la fórmula

Esto permite realizar cálculos intermedios o asignaciones auxiliares dentro de una misma fórmula.

Estructura

expresion_intermedia; expresion_final

Ejemplo

evaluar = CASETEST(@CODCAT, "105", 1, "106", 1, 0);
if(evaluar, @BASIMP, 0)

En este caso:

  • Primera expresión: calcula un valor auxiliar evaluar
  • Segunda expresión: usa evaluar para definir el resultado final

Utiliza esta sintaxis solo cuando sea necesario para cálculos intermedios. El resultado de la fórmula será siempre el de la última expresión.

Condicionales

Las fórmulas pueden utilizar condiciones para devolver distintos resultados según los valores evaluados.

Estructura if()

La forma más habitual de expresar condiciones es mediante la función if().

Sintaxis: if(condicion, valor_si_verdadero, valor_si_falso)

ParteDescripción
condicion[[04-glosario#Expresión
valor_si_verdaderoResultado si la condición se cumple
valor_si_falsoResultado si la condición no se cumple

Ejemplo: if(@TOTHA > @LIMAPOSS, 0, @PORCE)

Si @TOTHA > @LIMAPOSS es verdadero, devuelve 0; si es falso, devuelve @PORCE.

Condiciones complejas

Puedes combinar operadores relacionales y lógicos.

Ejemplo: if(@TOTHA > 0 && @BASIMP > 0, @BASIMP, 0)

Solo devuelve @BASIMP si ambas condiciones son verdaderas.

Funciones condicionales alternativas

También pueden utilizarse funciones como CASETEST(...) para evaluar múltiples casos.

Ejemplo: CASETEST(@CODCAT, "105", 1, "106", 2, 0)

Compara @CODCAT contra cada valor y devuelve el resultado asociado, o 0 por defecto.


Multiplicación explícita

Consulta Operadores aritméticos → Multiplicación explícita para las recomendaciones de cómo escribir multiplicaciones correctamente.

El uso explícito del operador * es fundamental para evitar ambigüedades y asegurar que la fórmula sea interpretada correctamente.

Validación de sintaxis

Antes de utilizar una fórmula en una liquidación, valida que esté escrita correctamente.

Herramientas de validación

El sistema dispone de opciones para validar fórmulas, como Testear Fórmulas, que permite revisar la sintaxis de las fórmulas configuradas.

Errores detectados

La validación de sintaxis detecta:

  • Paréntesis abiertos sin cerrar
  • Funciones mal escritas
  • Cantidad incorrecta de parámetros
  • Variables inexistentes o mal referenciadas
  • Operadores utilizados incorrectamente
  • Expresiones que devuelven un tipo de resultado incompatible

Validación funcional

La validación de sintaxis NO reemplaza la revisión funcional.

Una fórmula puede estar correctamente escrita y aun así no representar la regla de negocio esperada. Además de validar la sintaxis, revisa el resultado en una liquidación de prueba cuando la fórmula tenga impacto en cálculos de haberes, aportes, contribuciones o reportes.


Consideraciones clave

Redacción y mantenibilidad:

  • Las fórmulas deben ser claras y consistentes para facilitar su mantenimiento
  • Utiliza nombres de variables y funciones tal como están definidos en el sistema

Uso de variables:

  • Escribe siempre con el prefijo @
  • Ejemplo: @BASIMP

Uso de funciones:

  • Escribe el nombre + parámetros entre paréntesis
  • Ejemplo: ROUND(@BASIMP, "PRO", 2)

Paréntesis para claridad:

  • Utiliza paréntesis cuando una fórmula combine varias operaciones
  • Ejemplo: (@BASIMP + @VAR1) * @PORCE

Valores de texto:

  • Usa comillas dobles para mantener uniformidad
  • Ejemplo: @CODCAT == "105"

Dependencias y orden:

  • Si la fórmula depende de conceptos calculados previamente, considera el Orden de Liquidación configurado

Expresiones múltiples:

  • Usa punto y coma ; solo cuando sea necesario para cálculos intermedios

Validación final:

  • Valida tanto a nivel de sintaxis como funcional
  • Verifica que el resultado obtenido corresponda con la regla de negocio esperada
  • Prueba en una liquidación de prueba cuando sea crítico