Consola
La Consola sirve para probar un fragmento de código Ninox antes de incluirlo en tu base de datos: lo escribes, lo ejecutas y ves el resultado al instante.
La Consola existe desde la versión 3.1. Los depuradores, «Verificar», «Dar formato» y el autocompletado de JavaScript llegan con la versión 3.2.0 (beta).
La pestaña Consola permite escribir código Ninox y ejecutarlo al instante, como en un intérprete, y después depurarlo: verificación sin ejecución, depurador paso a paso, depurador por repetición.
La pestaña está reservada a los administradores. Solo muestra su icono, una ventana de terminal, entre las pestañas Rastreador de depuración y Errores; su nombre aparece al pasar el ratón. Se desactiva en la Configuración de Ninext, sección «Gestor de scripts».
Elegir el contexto de ejecución
El código se ejecuta en el contexto de un registro, como una fórmula de su tabla, o sin registro:
| Contexto | Efecto |
|---|---|
| Sin entorno | Ningún registro: el código se evalúa como código global. |
| Registro activo | El registro que se muestra en primer plano en Ninox. El contexto sigue sus cambios de registro. |
| Registro | Un registro que usted elige, entre los abiertos en las ventanas de Ninox, o mediante Elegir otro registro…, que abre un selector (tabla, búsqueda, lista de registros). |
| Fórmula | El registro que devuelve una fórmula que usted escribe, por ejemplo record(Customer, 12). La fórmula se vuelve a evaluar en cada ejecución. |
La barra de contexto recuerda el contexto elegido; su cruz lo restablece.
Escribir el código
El editor de la Consola ofrece:
- el resaltado de sintaxis de Ninox;
- el autocompletado de funciones, tablas, campos y palabras clave, mientras escribe o con Ctrl + Espacio;
- el subrayado de los errores (línea ondulada roja) y de las advertencias (línea de puntos ámbar) mientras escribe, con un indicador ⛔ o ⚠ en el margen;
- el resaltado de las demás apariciones de la palabra seleccionada;
- un botón Copiar, arriba a la derecha, al pasar el ratón por el editor;
- un tirador, debajo del editor, que ajusta su altura.
El autocompletado de JavaScript en los bloques nativos
En un bloque #{ … }#, la Consola ofrece la misma ayuda para escribir que la consola del navegador, adaptada a lo que el bloque recibe realmente:
- las variables y los parámetros de Ninox visibles, en su forma JavaScript, con su tipo;
- las funciones locales de Ninox,
ui,database, ycallbackcuando el bloque se declara:callbacko:async; - después de un punto, los miembros del objeto: para un registro, los nombres de sus campos; un nombre que no es un identificador JavaScript se inserta con la forma
['…']; - en la cabecera
#{:, los tipos; después de:nid(o:rid(, la lista de las tablas.
Esta ayuda solo existe en la Consola.
Ejecutar

El botón verde Ejecutar lanza el código, igual que Ctrl + Intro (⌘ + Intro en Mac). Su flecha ofrece tres modos:
| Modo | Efecto |
|---|---|
| Ejecutar | Ejecuta el código de una sola vez y muestra el resultado. |
| Repetición | Ejecuta el código una vez y después le deja recorrer su desarrollo hacia delante y hacia atrás. |
| Paso a paso | Ejecuta el código instrucción por instrucción, deteniéndose donde usted decida. |
El modo elegido se recuerda; el botón toma su nombre, y el atajo lanza ese modo. Al elegir Paso a paso o Repetición aparece de inmediato, debajo del editor, la barra de ese depurador, con sus comandos en su sitio pero apagados: no se ejecuta nada antes del lanzamiento. Tras una ejecución correcta, el código recibe formato en el editor; el historial guarda el texto tal como usted lo escribió.
Leer los resultados

Los resultados se apilan, el más reciente arriba; la Consola guarda veinte. Cada resultado indica su tipo, su contexto, su fecha, su hora y su duración de ejecución; un clic en su cabecera lo pliega, su cruz lo elimina, y Borrar vacía la lista.
- Un valor simple se muestra con un botón Copiar.
- Un registro se muestra con un botón que lo abre en Ninox, y sus campos en árbol.
- Una lista de registros se muestra como en las vistas de Ninox: formato condicional, miniaturas de las fotos, etiquetas de color, anchos de columna. Una pestaña por vista, en el orden de Ninox; las vistas que usted no tiene derecho a ver quedan ocultas. Cuando no caben todas las pestañas, el botón … («Más vistas») enumera las que quedan fuera de la vista. Un clic en una línea abre el registro, y las líneas se cargan de 100 en 100 a medida que se desplaza.
- Los objetos y las listas se muestran en un árbol desplegable; cada valor se puede copiar, y un registro se abre con un clic.
- Un texto que contiene JSON se muestra tal cual; el botón Árbol lo despliega a petición.
- Un texto de más de 100 000 caracteres se muestra al instante, truncado, con Mostrar todo; Copiar copia siempre el texto completo.
Durante una evaluación larga, aparece un indicador de espera.
Verificar sin ejecutar
Verificar (Ctrl + Mayús + Intro, ⌘ + Mayús + Intro en Mac) compila el código sin ejecutarlo: ningún efecto sobre los datos. Señala los errores y las advertencias de Ninox, y aplica los controles propios de Ninext:
- una función de interfaz o un bloque nativo colocados en un
do as server, donde no tendrían efecto; - una variable declarada y luego nunca leída;
- la sintaxis JavaScript de los bloques nativos;
- el HTML y el CSS pasados a
html().
El resultado se muestra en la barra, y el cursor se sitúa en el primer diagnóstico. Cuando dos tipos no concuerdan, la explicación indica cuáles. Si el código es válido, recibe formato.
Dar formato
Dar formato (Ctrl + Mayús + F, ⌘ + Mayús + F en Mac) pone en orden el código, sin ejecutarlo: sangría, espacios alrededor de los operadores, nombres de campos escritos como Ninox los muestra. El JavaScript de los bloques nativos #{ … }# también recibe formato: un bloque escrito en una sola línea se despliega bajo la línea que lo contiene.
Un código que contiene errores debe corregirse primero; y si el formato corre el riesgo de hacer perder una parte del texto, no se aplica y lo indica.
El mismo botón existe en los editores de script de Ninox: aparece arriba a la derecha, al pasar el ratón por el editor, y el atajo de teclado también funciona en ellos.
El depurador paso a paso

Los puntos de interrupción
- Un clic en el margen izquierdo, o en el número de línea, coloca un punto de interrupción (disco rojo); un segundo clic lo quita.
- Un clic derecho, o Alt + clic, abre el panel Condición de parada: la ejecución solo se detiene allí si su condición es verdadera, por ejemplo
i > 10. El mismo panel permite Desactivar el punto sin perderlo (anillo gris) y volver a activarlo con Reactivar. Un punto condicional es un disco ámbar. - Las condiciones se evalúan sin acceso a la base de datos, con funciones simples (
count,length,text,upper,lower,contains…). Si una condición no se puede evaluar, la ejecución se detiene por seguridad. - En cuanto hay un punto de interrupción activo, Ejecutar también se detiene en él y después continúa en paso a paso.
Los comandos
La sesión empieza en pausa en la primera instrucción.
| Comando | Efecto |
|---|---|
| Paso siguiente | Ejecuta la instrucción y se detiene antes de la siguiente. |
| Subpaso | Avanza subexpresión por subexpresión, mostrando el valor obtenido. En una llamada a función o en un campo de fórmula del esquema, desciende a su código. |
| Salir | Termina la función en curso y vuelve a quien la llamó. |
| Continuar | Avanza hasta el siguiente punto de interrupción, o hasta el final. |
| Detener | Abandona la ejecución. |
Cuando la barra es estrecha, los comandos solo muestran su icono; su nombre aparece al pasar el ratón. El botón de información (ⓘ) de la barra despliega las instrucciones de uso del depurador, y la cruz, que aparece una vez terminada la ejecución, cierra su panel.
Cuando la ejecución desciende a una función o a una fórmula, su código se abre en un marco apilado, que se desliza desde la derecha como en Ninox. En él se pueden colocar puntos de interrupción: se ordenan por nombre de función, valen para todas las llamadas a esa función y para las ejecuciones siguientes, y desaparecen al recargar la página. El marco de una fórmula del esquema lleva la mención fórmula. Un tirador, en el borde izquierdo de un marco, ajusta la parte del marco inferior que cubre. Un bloque #{ … }# cuenta como un solo paso.
Las variables
En cada paso, el panel Variables conocidas en este paso indica el valor y el tipo de cada variable; un valor se puede desplegar y copiar, y un registro se abre con un clic. Las variables que existen pero están fuera de alcance aparecen en gris.
A tener en cuenta
La ejecución queda realmente suspendida en cada pausa, y mientras tanto la base de datos sigue viva: otros usuarios, interfaz de programación, triggers. Lo que ya se ha ejecutado queda aplicado, aunque usted detenga la ejecución. Una pausa de más de diez minutos pone fin a la ejecución.
El depurador por repetición
El código se ejecuta de verdad, una sola vez y sin interrupción. Después recorre su desarrollo hacia delante y hacia atrás, con los comandos del paso a paso —Paso siguiente, Subpaso, Salir, Continuar—, más Primer paso y Paso anterior. La lista de pasos indica el valor obtenido en cada uno; un clic en un paso lleva directamente a él. La repetición cuenta en pasos grandes: uno por instrucción ejecutada, y uno por vuelta de bucle, que indica el valor de la variable del bucle. Los subpasos, sangrados, llevan el número de su paso grande (3.1, 3.2…) y se cuentan aparte («+6 subpasos»); Salir también sube de un subpaso al paso grande que lo contiene. Los marcos apilados y el panel de variables son los mismos que en el paso a paso. Ideal para entender lo que ha pasado sin volver a ejecutar el código.
Límites:
- un registro aparece en su estado actual, no en el del momento de la ejecución;
- la condición de un punto de interrupción condicional no se vuelve a evaluar: la repetición siempre se detiene en él;
- más allá de 10 000 pasos, la grabación se trunca.
Los dos depuradores rechazan un código que contiene errores, y lo señalan como Verificar.
Depurar desde el editor de Ninox
Al pasar el ratón por un editor de script de Ninox, aparece arriba a la derecha el botón Depurar en la Consola. Abre la Consola y lleva allí su código, sin ejecutarlo, con el registro actual como contexto: si no hay ningún registro activo de esa tabla, el selector de registros se abre en ella. Desde el código global, el contexto es Sin entorno, y solo se lleva la función en la que está el cursor.
El código llevado sustituye al de la Consola, y a sus puntos de interrupción.
El historial, y su trabajo que le acompaña
- El botón Historial enumera los 50 últimos comandos; Alt + ↑ y Alt + ↓ los recorren desde el editor. Un clic vuelve a cargar el código y su contexto, en lugar del código actual y de sus puntos de interrupción.
- Al pasar el ratón por una línea del historial, una papelera la elimina.
- El código recuperado del historial se reconstruye en el idioma actual de Ninox: «Id» se convierte en «Nr» en alemán. Así, un código recuperado tras un cambio de idioma siempre compila.
- Al iniciarse, la Consola recupera su último código, su contexto, sus resultados y sus puntos de interrupción; en un puesto compartido, cada usuario recupera los suyos.
- Para un administrador, el historial y el último código también le siguen de un ordenador a otro, y sobreviven al borrado de los datos del navegador.
Atención
Este historial se guarda, sin cifrar, en los ajustes del plugin, que cargan todos los usuarios de la base de datos. No deje en él contraseñas ni claves de acceso.
