nxar.Aprender
Fundamentos: modelá tu negocio0 de 8 capítulos
  1. 1Tu primera entidad
  2. 2Campos
  3. 3Reglas de datos
  4. 4Tipos de registro
  5. 5La página del registro
  6. 6Permisos
  7. 7Visibilidad
  8. 8Comprobalo

Casos de uso

  1. ·Ocultar un campo a un rol
  2. ·Un estado distinto por tipo de registro
  3. ·Mostrar los registros hijos en el padre
  4. ·Que cada vendedor vea solo lo suyo

← Volver al recorrido

Capítulo 3 de 8 · 12 min

Reglas de datos

Hacés obligatorios los datos que no pueden faltar y armás una regla que impide que un trámite presentado vuelva atrás.

Hay dos clases de reglas. Las declarativas viven en el campo mismo: obligatorio, valores permitidos, largo, rango. Las de negocio dependen de la situación (“si estaba presentado, no puede volver a pendiente”) y se arman con una automation que corre antes de guardar y que, si algo no cierra, corta el guardado con un mensaje.

Lo importante es dónde se aplican: en el servidor, cada vez que se guarda un trámite, venga de donde venga (la pantalla, una importación, un formulario público, la API). Si una regla falla, no se guarda nada, y la persona ve qué corregir. El orden es fijo: primero corren las automations “antes de guardar”, después la validación de los campos, y recién ahí se guarda.

Marcá los campos obligatorios

ConfiguraciónConstructor de appEntidadesTrámiteCampos

Para Cliente, Estado y Vencimiento: menú ⋯ → Editar, marcá Campo requerido y guardá. La columna Requerido de la tabla pasa a decir “Sí”.

Honorarios queda opcional a propósito: los asistentes cargan el trámite y un socio pone los honorarios después.

Creá la automation

ConfiguraciónAutomatizaciónProcesos

Nueva automation:

  • Tipo: Evento de registro.
  • Label: Trámite presentado no vuelve atrás.
  • Entidad: Trámite.
  • Operación: Actualizar. Momento: Antes.

Se abre el builder: la paleta a la izquierda, el flujo en el centro, la configuración del nodo seleccionado a la derecha.

Primera condición: ¿estaba presentado?

Arrastrá un nodo Condición al canvas y conectalo al trigger. En su rama:

  • Campo: old.estado (old es el trámite tal como estaba antes de este cambio).
  • Operador: Igual a.
  • Valor: presentado.

Segunda condición: ¿vuelve a un estado anterior?

Arrastrá otra Condición y conectala a la rama de la primera:

  • Campo: record.estado (el valor nuevo).
  • Operador: Es alguno de.
  • Valor: pendiente, en_curso.

En las condiciones se escriben los valores internos de las opciones (en_curso), no las etiquetas (“En curso”). Los ves en el detalle del campo Estado.

Detener con un mensaje

Arrastrá un nodo Detener y conectalo a la rama de la segunda condición. Configuralo:

  • Por qué se detiene: Este trámite ya se presentó: no puede volver a Pendiente ni a En curso. Si el organismo lo observó, pasalo a Observado.
  • Campo al que apunta (opcional): Estado.

En un flujo “antes de guardar”, ese texto es exactamente lo que va a leer la persona, y el trámite no se guarda.

Activá y guardá

En la barra superior, encendé Activa y hacé clic en Guardar. Al guardar se valida el flujo: si falta conectar un nodo o completar un dato, te lo dice.

Las condiciones de una automation comparan textos y números, no fechas. Una regla como “el vencimiento no puede ser anterior a hoy” todavía no se puede armar así; por eso la regla de este capítulo es sobre el estado.

Si un trámite viejo tiene vacío un campo que ahora es obligatorio, no se rompe: la regla se aplica al guardar. Se lo va a pedir la próxima vez que alguien edite ese campo.

Cómo saber que te salió

  • En Trámites → Nuevo, si dejás Cliente vacío, el formulario no te deja guardar y te marca el campo.
  • Creá un trámite, pasalo a Presentado y guardá. Después intentá volverlo a Pendiente: aparece tu mensaje y el trámite sigue en Presentado.
  • Pasarlo de Presentado a Observado sí funciona: la regla solo frena la vuelta atrás.

¿Llegaste al resultado de arriba?