Skip to content

Diccionario de Reglas JSON

Las automatizaciones en Axol Systems se configuran mediante objetos JSON en el campo rules de la tabla de configuraciones. Este diccionario detalla cada una de las propiedades disponibles, su propósito, formato y ejemplos de uso.


Especifica la columna de la tabla origen (source_table) que contiene la cantidad numérica a mover.

  • Tipo: Texto (identificador de columna)
  • Ejemplo:
{
"qty_field": "t0c0"
}

Permite definir múltiples cantidades en una sola automatización. Cada mapeo puede aplicar filtros adicionales en la tabla destino mediante la propiedad extra_match. Si se define qty_mappings, la propiedad clásica qty_field pasa a ser opcional.

  • Tipo: Arreglo de objetos
  • Sub-propiedades por objeto:
    • qty_field: Columna de cantidad origen.
    • extra_match: Filtro adicional (ej. { "target": "t1c7", "value": "BUENAS" }).
    • fallback_match (Opcional): Regla de sustitución. Si el origen no cuenta con saldo suficiente de la categoría principal, toma del fallback (ej. tomar de BUENAS si falta saldo de SCRAP), pero el registro resultante sigue etiquetado con la categoría principal (extra_match).
  • Ejemplo:
{
"qty_mappings": [
{
"qty_field": "t0c2",
"extra_match": { "target": "t1c7", "value": "BUENAS" }
},
{
"qty_field": "t0c9",
"extra_match": { "target": "t1c7", "value": "SCRAP" },
"fallback_match": { "target": "t1c7", "value": "BUENAS" }
}
]
}

Especifica el identificador de la tabla destino donde se aplicarán los cambios (p.ej. tabla de inventario final o de registros consolidados).

  • Tipo: Texto
  • Ejemplo:
{
"target_table": "table7"
}

Especifica la columna numérica en la tabla destino (target_table) que se va a incrementar, decrementar o modificar.

  • Tipo: Texto (identificador de columna)
  • Ejemplo:
{
"target_field": "t1c0"
}

Define los criterios de coincidencia para buscar y asociar la fila de origen con la fila destino. Compara columnas entre ambas tablas.

  • Tipo: Arreglo de objetos
  • Formato por ítem:
    • Comparar columnas: { "source": "t0c3", "target": "t1c1" }
    • Comparar con constante: { "target": "t1c4", "value": 0 } (ignora source)
  • Ejemplo:
{
"match_columns": [
{ "source": "t0c3", "target": "t1c1" },
{ "target": "t1c4", "value": 0 }
]
}

Permite definir reglas para validar cantidades o valores antes de guardar una fila. Si una validación falla, el sistema bloquea el guardado del registro y muestra un mensaje de error personalizado.

  • Tipo: Arreglo de objetos
  • Sub-propiedades por objeto:
    • catch: El mensaje de error que se muestra al usuario.
    • logic: Operador lógico de comparación (eq, neq, gt, gte, lt, lte).
    • value: Valor contra el que se compara (puede ser un número constante, texto, o la palabra clave "target_field").
    • formula: Tipo de validación. Usa "if" para comparar directamente la propiedad o "target_qty" para comparar la cantidad contra el stock real en el destino.
    • property: Columna de origen a validar (opcional si se usa qty_mappings).
    • transfer: Indica si la validación aplica sobre el origen ("origin") o el destino ("target").
  • Ejemplo:
{
"validation_save": [
{
"catch": "El inventario de origen no tiene cantidad suficiente",
"logic": "lt",
"value": "target_field",
"formula": "target_qty",
"property": "t8c7",
"transfer": "origin"
}
]
}

Fórmulas con resultado booleano. Si la condición se evalúa como verdadera (true), la fila de origen se ignora y no ejecuta ninguna lógica en la automatización. Soporta agrupadores lógicos anidados (and y or).

  • Tipo: Arreglo de objetos. Los ítems de la lista principal se evalúan con un operador OR implícito (si cualquiera se cumple, se ignora).
  • Ejemplo con AND (ignorar si ambas cantidades son menores o iguales a cero):
{
"ignore_save": [
{
"type": "and",
"param": [
{
"type": "if",
"param": { "var_a": "<prop:t14c2>", "var_b": 0, "oper": "lte" }
},
{
"type": "if",
"param": { "var_a": "<prop:t14c9>", "var_b": 0, "oper": "lte" }
}
]
}
]
}

Se utiliza en traspasos (inventory_transfer) y movimientos (inventory_movement) para especificar de qué columnas leer el origen y el destino de la mercancía, y en qué columna de la tabla destino buscar/guardar la ubicación.

  • Tipo: Objeto
  • Estructura:
    • origin: Columna origen en la tabla de movimientos.
    • destination: Columna destino en la tabla de movimientos.
    • target: Columna de ubicación en la tabla final de stock.
  • Ejemplo:
{
"transfer_columns": {
"origin": "t8c5",
"destination": "t8c6",
"target": "t7c5"
}
}

Permite escribir automáticamente un valor literal (como "ENTRADA" o "SALIDA") en una columna del registro de movimientos basándose en la dirección configurada.

  • Tipo: Objeto
  • Estructura:
    • column: Columna del registro origen donde se guardará la etiqueta.
    • in (Opcional): Valor a escribir si la dirección es de entrada (in).
    • out (Opcional): Valor a escribir si la dirección es de salida (out).
  • Ejemplo:
{
"in_out_property": {
"column": "t14c5",
"in": "ENTRADA",
"out": "SALIDA"
}
}

Especifica una lista de propiedades que aparecerán como campos unificados (bulk) en la parte superior de la grilla de edición. Escribir un valor en este campo unificado lo replicará instantáneamente a todas las filas de esa columna.

  • Tipo: Arreglo de textos (identificadores de columnas)
  • Ejemplo:
{
"bulk_properties": ["t10c1", "t10c2"]
}

Actúan como lista blanca (show_columns) y lista negra (hide_columns) para controlar de forma explícita qué columnas se muestran al usuario en las grillas de edición de movimientos (InOutView).

  • Precedencia: Primero se aplican filtros internos, luego show_columns y finalmente hide_columns. Si una columna está en ambas, prevalece hide_columns.
  • Ejemplo:
{
"show_columns": ["t8c0", "t8c1", "t8c7"],
"hide_columns": ["t8c4"]
}