Saltar al contenido
Ver temas

Reglas de validación y acciones después de guardar

Agrega las reglas propias de tu empresa que impiden guardar un documento, pago o registro, y automatiza lo que debe pasar después de guardarlo, como TransactionNotification y PostTransactionNotice de SAP Business One.

Actualizado el 7 de noviembre de 2026

En esta página

Nori ya trae sus propias reglas (crédito, precio mínimo, descuento máximo, existencias…). Aquí agregas las de tu empresa, sin programar. Hay dos tipos, con la misma diferencia que en SAP Business One:

  • Reglas de validación: revisan antes de guardar y pueden impedirlo. Son el SBO_SP_TransactionNotification de SAP.
  • Acciones después de guardar: corren cuando ya se guardó y no pueden impedirlo. Sirven para reaccionar: avisar, actualizar otra cosa, mandar datos a otro sistema. Son el SBO_SP_PostTransactionNotice de SAP.

La regla práctica: lo que debe impedir algo va en una regla de validación; lo que debe pasar a consecuencia va en una acción después de guardar. Una validación puesta como acción después de guardar parece que no hace nada, porque cuando corre el documento ya existe.

Crear una regla de validación

Las configura quien tiene el permiso de reglas de validación. El Administrador lo tiene.

  1. Entra a Administración › Personalización › Reglas de validación y presiona Nuevo.
  2. En Aplica a elige qué revisa: un tipo de documento, Todos los documentos, los pagos recibidos o efectuados, o un catálogo (socios, artículos…).
  3. Marca cuándo: Al agregar, Al actualizar, Al cancelar o Al cerrar.
  4. Escribe la Consulta que busca el problema.
  5. Escribe el Mensaje que verá el usuario y guarda.

La consulta

Es un SELECT que busca el problema: si devuelve una fila, Nori no guarda y muestra el mensaje. Si no devuelve nada, todo sigue.

Lee estos valores:

  • :id: el documento, pago o registro.
  • :action: add, update, cancel o close.
  • :subject: a qué aplica (documents.invoices, payments.incoming, catalogs.items…).
  • :user_id: quién lo está guardando.

Ve el registro como va a quedar, con sus partidas. Si la regla lo detiene, se deshace todo: no queda documento, ni movimiento de existencia, ni póliza.

Si la consulta trae una columna message, ese es el mensaje; si no, se usa el Mensaje de la regla.

Ejemplos

Facturas sin orden de compra del cliente:

SELECT 'Captura la orden de compra del cliente' AS message
FROM documents
WHERE id = :id AND customer_po IS NULL

Pedidos con más de 100 piezas en una partida:

SELECT 'La partida ' || line_number || ' pasa de 100 piezas' AS message
FROM document_lines
WHERE document_id = :id AND quantity > 100

Artículos nuevos sin grupo:

SELECT 1 FROM items WHERE id = :id AND item_group_id IS NULL

Cuándo revisa cada una

  • Al agregar: al contabilizar un documento nuevo (un borrador no se revisa hasta que se contabiliza), al registrar un pago o al dar de alta un registro.
  • Al actualizar: al cambiar un documento abierto o contabilizado, o un registro de un catálogo.
  • Al cancelar: antes de pedir la cancelación al SAT, con el documento o pago como está.
  • Al cerrar: al cerrar a mano una cotización, pedido o solicitud.

Las reglas corren en todos lados donde se guarda: pantallas, punto de venta, app móvil, API y tiendas en línea. No corren con lo que baja del ERP ni en la migración desde escritorio.

Una regla con error en la consulta también detiene el guardado y dice cuál es el error. Desactívala mientras la corriges.

Acciones después de guardar

Lo que debe pasar después de guardar se hace con un script o con un webhook de la API. Al elegir Cuándo corre › Cuando pasa algo en un script puedes escoger, además de los eventos de siempre:

  • Se creó, se contabilizó o se canceló un documento.
  • Se recibió o se canceló un cobro.
  • Se timbró o se canceló un CFDI.
  • Cambió un envío a domicilio.
  • Se dio de alta o cambió un cliente.
  • Cambió un artículo o su existencia.

El script recibe el id y los datos del registro. Corre en segundo plano, después de guardar: si falla, lo guardado no cambia, y el error queda en sus ejecuciones.

Artículos relacionados

¿No encuentras algo?

Cuéntanos qué necesitas hacer y te respondemos. Si ya eres cliente, menciona el nombre de tu empresa.

Escríbenos