Visión General del Motor de Automatizaciones
El Motor de Automatizaciones es el núcleo de Axol Systems encargado de ejecutar reglas de negocio de manera automática ante cambios en los datos. Esto permite automatizar flujos operativos complejos (como movimientos de stock, sincronizaciones, ediciones automáticas de tablas y alertas) sin necesidad de modificar el código fuente de la aplicación.
Conceptos Clave
Section titled “Conceptos Clave”El motor opera bajo una arquitectura de evento-reacción:
- Tabla de Origen (
source_table): La tabla de la base de datos que se está monitoreando (por ejemplo, una tabla de movimientos de inventario o una tabla de pedidos). - Evento Disparador (
trigger_event): El cambio que activa la automatización. Puede ser al insertar un nuevo registro (INSERT), al actualizar uno existente (UPDATE) o al eliminarlo (DELETE). - Reglas de Configuración (
rules): Un objeto JSON que define exactamente qué debe hacer la automatización. - Ejecución Pasiva/Activa: Las automatizaciones se ejecutan de manera transparente en la base de datos cuando se guardan los cambios de una fila (automatización pasiva), o se pueden activar mediante botones interactivos en la interfaz (automatización activa).
Configuración de Automatizaciones
Section titled “Configuración de Automatizaciones”Cada automatización se registra en el sistema definiendo los siguientes campos principales:
| Campo | Tipo de Dato | Descripción |
|---|---|---|
Nombre (name) | Texto | Nombre descriptivo de la automatización. |
Descripción (description) | Texto | Explicación detallada de qué hace la regla. Se muestra en la interfaz para ayudar a los administradores. |
Tipo (type) | Texto | El identificador de la automatización (ej. inventory_sync, inventory_transfer, inventory_movement, edit_table, request_movement, passive_conditional_edit). |
Tabla Origen (source_table) | Texto | Nombre físico de la tabla que dispara la automatización. |
Evento Disparador (trigger_event) | Texto | Evento que la dispara: INSERT, UPDATE o DELETE. |
Reglas (rules) | JSON | Bloque de configuración estructurado en formato JSON que especifica el comportamiento detallado de la automatización. |
Activo (is_active) | Booleano | Permite activar o desactivar la regla rápidamente desde el sistema. |
Tipos de Automatizaciones Disponibles
Section titled “Tipos de Automatizaciones Disponibles”Para facilitar la administración y configuración, las automatizaciones se clasifican en los siguientes tipos:
- Sincronización de Inventario (inventory_sync): Permite sumar o restar stock en una tabla destino a partir de una sola fila de origen que define su dirección (+/-).
- Transferencia de Inventario (inventory_transfer): Mueve cantidades entre un origen y un destino de forma simultánea (movimiento bidireccional).
- Movimiento de Inventario (inventory_movement): Registra movimientos de stock unidireccionales (solo entradas o solo salidas) con soporte avanzado para ubicaciones e inserciones relacionales automáticas (
object_list_sync). - Edición de Tabla Externa (edit_table): Edita o elimina automáticamente un registro en otra tabla al guardar el registro actual.
- Solicitud de Movimiento (request-movement): Crea flujos de aprobación entre nodos para transferencias o entradas de stock antes de que impacten físicamente el inventario.
- Edición Pasiva Condicional (passive-conditional-edit): Calcula y edita de forma condicional campos dentro de la misma fila antes de guardarse, resolviendo sumatorias, fórmulas matemáticas y consultas complejas en tiempo real.
- Botones de Automatización: Botones interactivos que se añaden a las barras de herramientas de las vistas para desencadenar flujos masivos (como
relation_batch_createo apertura de formularios de creación).
Comparación entre Automatizaciones de Inventario
Section titled “Comparación entre Automatizaciones de Inventario”El sistema cuenta con tres tipos nativos para gestionar stock. Es importante seleccionar el adecuado según el flujo físico de tu operación:
| Característica | inventory_sync | inventory_transfer | inventory_movement |
|---|---|---|---|
| Dirección | Entrada o salida definida en una columna de la fila de origen. | Bidireccional (origen y destino en la misma fila). | Unidireccional (configurada fija como entrada in o salida out). |
| Impacto | Modifica una única fila de stock. | Descuenta del origen y suma al destino simultáneamente. | Afecta una sola dirección. Se requieren dos automatizaciones separadas para hacer un traspaso completo. |
| Uso Ideal | Sincronizaciones masivas simples o integraciones con sistemas externos donde el tipo de movimiento ya viene explícito. | Traspasos de almacén clásicos donde un único registro en la base de datos representa todo el viaje de la mercancía. | Operaciones donde se requiere auditar de forma independiente la salida (p.ej. merma) o entrada (p.ej. compras), o cuando se requiere enlazar listas de objetos en junction tables. |
¿Cuándo usar cada tipo de inventario?
Section titled “¿Cuándo usar cada tipo de inventario?”- Usa
inventory_syncsi tienes un catálogo de movimientos simple donde cada registro dice"entrada"o"salida"en la misma columna y no te interesa rastrear ubicaciones físicas de origen/destino estructuradas en el mismo registro. - Usa
inventory_transfersi tu operación física requiere que al registrar un traspaso se descuente inmediatamente del origen y se sume al destino, asegurando que el saldo neto general no cambie y se eviten discrepancias. - Usa
inventory_movementsi deseas controlar cada dirección por separado (por ejemplo, si quieres que al hacer una salida se ejecuten reglas específicas y al hacer una entrada se ejecuten otras totalmente distintas), o cuando solo te interese registrar un lado de la operación.