Errores

Pestaña completamente rediseñada a partir de la versión 3.2.0 (beta). En la 3.1.2, solo enumera los errores de compilación y los identificadores duplicados.

La pestaña Errores analiza toda la base de datos y enumera los errores y las advertencias de su código: campos, triggers, columnas de las vistas, informes de impresión, código global y trigger «After Open». El análisis lo realiza un analizador transcrito del de Ninox: lo que señala corresponde a lo que diría Ninox. Cada línea lleva directamente al código en cuestión.

La pestaña está reservada a los administradores. Solo muestra su icono, un triángulo de advertencia; su nombre aparece al pasar el ratón, y un contador rojo indica el número de diagnósticos mostrados.

El balance y los filtros

Filtros de la pestaña Errores

La cabecera muestra el balance: «Sin error», «3 error(es)», «3 error(es), 12 advertencia(s)», «36 advertencia(s)»…

El botón Filtros abre el panel Diagnósticos mostrados: un interruptor por tipo de diagnóstico, agrupados en dos bloques, Errores y Advertencias. Cada línea indica el número de diagnósticos de ese tipo en la base de datos, incluso cuando el tipo está oculto: ve lo que oculta tanto como lo que muestra. Cuando hay tipos ocultos, el botón lo recuerda («2 tipo(s) oculto(s)»); Mostrar todo los vuelve a mostrar. El navegador recuerda los filtros, que valen para todas las bases de datos.

Lo que se señala

Los errores impiden que el código funcione:

FiltroLo que se señala
Errores de compilaciónEl código que Ninox rechaza: la fórmula no se ejecuta.
IDs duplicadosVarios campos de una misma tabla comparten el mismo identificador interno (por ejemplo, un campo de entrada y un elemento visual): las referencias se vuelven ambiguas.
Errores del analizadorLos fallos que detecta el analizador de Ninext y que Ninox no ha señalado.
Errores de contenidos incrustadosUn error de sintaxis JavaScript en un bloque nativo #{ … }#.

Las advertencias señalan un código que funciona, pero probablemente no como usted cree:

FiltroLo que se señala
AnalizadorLas advertencias de Ninox y las anotaciones NativeJS mal formadas (tipo desconocido, tabla no encontrada).
Contexto de servidorUn código sin efecto allí donde se ejecuta: una función de interfaz como alert() u openRecord(), o un bloque nativo #{ … }#, colocados en un trigger de tabla (después de crear, después de modificar) o en un do as server. En el servidor se ignoran sin avisar.
Errores congeladosErrores que Ninox sigue mostrando aunque la fórmula es correcta (véase más abajo).
Referencias no resueltasLa lectura de un campo de referencia cuya tabla de destino ya no existe (tabla eliminada, base de datos externa ausente): vale «void», y cualquier recorrido con un punto falla.
Contenidos incrustadosUn bloque JavaScript tipado que no devuelve nada, en todas sus rutas o en algunas; un bloque asíncrono que nunca llama a callback; un HTML desequilibrado pasado a html() (etiqueta que nunca se cierra, etiqueta de cierre huérfana); un CSS con llaves desequilibradas, o del que el navegador descartará reglas.
Código muerto dentro del códigoVariables declaradas con var o let que luego nunca se leen.
Funciones globales sin usarFunciones globales a las que no llama ningún elemento de la base de datos.
Fórmulas sin usarFórmulas a las que ningún código hace referencia.

Las funciones y las fórmulas sin usar solo son candidatas a la eliminación: una llamada construida dinámicamente o hecha desde JavaScript escapa al análisis, y una fórmula mostrada en un formulario o en una vista sigue siendo útil aunque ningún código la lea. Compruébelo antes de eliminar.

Leer una línea

Diagnósticos de la pestaña Errores

Los diagnósticos se agrupan por familias. El título de cada familia lleva un badge que indica su número: rojo para los errores, anaranjado para las advertencias. Cuando hay varias familias, están plegadas, y un clic en un título despliega la suya; una familia sola se muestra desplegada.

Las familias llevan el nombre de su filtro, salvo estas:

FiltroFamilia en la lista
Errores del analizadorErrores adicionales del analizador Ninext
AnalizadorAdvertencias del analizador
Contexto de servidorCódigo fuera de su contexto de ejecución
Errores congeladosErrores congelados (la fórmula es correcta)
Errores de contenidos incrustados y Contenidos incrustadosUna sola familia, JS / HTML / CSS incrustados, que lleva hasta dos badges: uno para sus errores y otro para sus advertencias.

Cada línea indica:

  • en cursiva, el mensaje —gris para un error, ámbar para una advertencia—, seguido del fragmento de código en cuestión; cuando dos tipos no concuerdan, una frase indica cuáles;
  • el elemento afectado, presentado como en Campos y fórmulas: icono de tipo, badge de dependencias, «Fx», ruta de navegación.

Al pasar el ratón por la parte en negrita de la ruta de navegación (la fórmula, el trigger o la función global) se muestra el código, con los fallos subrayados.

Ir al código

Haga clic en la parte en negrita de la ruta de navegación: Ninext abre el editor en el lugar correcto. Para el código global, el diagnóstico se asocia a la función que lo contiene —«Funciones globales › nombreDeLaFuncion»— y el editor del código global se abre en ella. El trigger «After Open» se abre de la misma manera.

El botón rojo que aparece al pasar el ratón, a la derecha de la línea, en modo de edición («Edit mode»), selecciona el campo en su formulario si la línea se refiere a un campo, y abre el editor del código para las demás líneas.

A continuación, en la base de datos de demostración, un clic en la parte en negrita de una línea que se refiere a la fórmula de un campo: Ninext abre un registro de la tabla, la ventana del campo y, después, el editor de fórmulas grande, donde el fragmento en cuestión aparece subrayado; al pasar el ratón por él se muestra el mensaje. Los demás elementos de la ruta de navegación abren su propio nivel: un clic en el nombre del campo abre el registro y la ventana del campo, sin el editor.

Desde la pestaña Errores, un clic en la parte en negrita abre el editor de la fórmula en cuestión, con el fragmento erróneo subrayado

Un análisis en segundo plano

El análisis trabaja en pequeños tramos, devolviendo el control al navegador: incluso en una base de datos grande, nada se congela. Se vuelve a lanzar por sí solo después de cada modificación del esquema. No hay indicador de progreso: la lista anterior permanece visible hasta que la nueva la sustituye.

Los errores congelados

A veces Ninox compila un campo de fórmula durante una recarga del esquema, antes de que este esté completo, y luego no vuelve a compilarlo: el campo muestra errores durante toda la sesión, aunque su fórmula es correcta. Ninext vuelve a compilar la fórmula por su cuenta; si los errores no aparecen, los clasifica en Errores congelados.

Solución: recargue la base de datos, o guarde cualquier modificación del esquema.

Mientras escribe, en los editores de Ninox

Los errores y las advertencias también se subrayan mientras escribe en los editores de script de Ninox (editor de fórmulas grande, panel de un campo o de una tabla):

  • línea ondulada roja para un error, línea de puntos ámbar para una advertencia;
  • al pasar el ratón por el fragmento subrayado, una burbuja da la explicación e indica qué tipos no concuerdan;
  • el subrayado solo se produce cuando Ninext sabe con certeza en qué tabla se ejecuta el código;
  • la lista de autocompletado tiene prioridad: no se abre ninguna burbuja mientras está visible.

Al seleccionar una palabra se resaltan sus demás apariciones: en los editores de Ninox, en la Consola y en los bloques de código de Ninext. Al pasar el ratón por el editor, aparecen dos botones arriba a la derecha: Dar formato y Depurar en la Consola (véase Consola).

Columnas residuales en las vistas de tabla

Un error de compilación puede proceder de una columna de vista de tabla que todavía usa un campo eliminado. Ninox no señala nada, porque el campo simplemente se ha retirado del esquema: es una referencia residual, que permanece en la configuración de columnas de la vista.

Para corregirla:

  1. Haga clic en Fórmula, en negrita al final de la ruta de navegación («Tabla › Vista › … › Fórmula»).
  2. Ninext abre la vista, el editor de la columna y después el editor de su fórmula.
  3. Haga clic en OK en el editor de la fórmula y después en el de la columna.

Al guardar, Ninox actualiza la configuración de la vista y elimina las referencias a campos que ya no existen. El error desaparece de Ninext.