Saltar al contenido principal

DinaScript

DinaScript es el lenguaje de scripting propietario de Dinaup para logica de negocio dentro de las secciones. Permite definir comportamientos avanzados que se ejecutan cuando el usuario interactua con formularios y datos.

Eventos disponibles

Los scripts se asocian a eventos dentro de una seccion. Cada evento tiene un contexto de ejecucion diferente:

EventoMomento de ejecucionUso tipico
campo_clickEl usuario hace clic en un campoAbrir dialogos, navegar a otra seccion
campo_cambiadoEl valor de un campo cambiaRecalcular campos dependientes, validar datos
formulario_tickrecalculoCada ciclo de recalculo del formularioLogica continua que debe evaluarse constantemente
formulario_guardarpreAntes de guardar el registroValidaciones finales, transformaciones de datos
formulario_guardarpostDespues de guardar el registroAcciones posteriores como notificaciones o creacion de registros relacionados

Espacios de nombres

DinaScript se organiza en dos espacios de nombres principales:

F (Functions)

Funciones para manipulacion de datos: operaciones matematicas, texto, fechas, conversiones y utilidades generales.

Ver referencia de Functions

S (Schema)

Acceso a la estructura del esquema: secciones, campos, informes y documentos dinamicos. Permite referenciar elementos por su ID.

Ver referencia de Schema

Donde se ejecutan los scripts

Los scripts de DinaScript se ejecutan en el servidor, dentro del contexto del formulario activo. Tienen acceso a:

  • Los valores actuales de todos los campos del registro.
  • La sesion del usuario (empresa, permisos, idioma).
  • Las funciones del espacio de nombres F y S.
info

Los scripts no se ejecutan en el navegador del usuario. Toda la logica se procesa en el servidor de Dinaup, lo que garantiza seguridad y consistencia.

Sintaxis basica

// Evento: cuando cambia el campo "cantidad", recalcular el total
campo_cambiado(cantidad) {
total = F.Multiplicar(cantidad, precio_unitario)
}

// Evento: antes de guardar, validar que el total sea positivo
formulario_guardarpre() {
si (total <= 0) {
F.Error("El total debe ser mayor que cero")
}
}

Ejemplo: Autorrellenado al seleccionar cliente

// Al cambiar la relacion "cliente", autorrellenar datos fiscales
campo_cambiado(cliente) {
nif = F.ObtenerCampo(cliente, S.Entidades.NIF)
direccion = F.ObtenerCampo(cliente, S.Entidades.Direccion)
}
aviso

Los scripts de DinaScript deben configurarse desde Dinaup Desktop. Cambios incorrectos en los eventos pueden afectar al comportamiento del formulario para todos los usuarios.