Errori

Scheda completamente ripensata a partire dalla versione 3.2.0 (beta). Nella 3.1.2 elenca solo gli errori di compilazione e gli identificatori duplicati.

La scheda Errori analizza l'intero database ed elenca gli errori e gli avvisi del suo codice: campi, trigger, colonne delle viste, report di stampa, codice globale e trigger «After Open». L'analisi è svolta da un analizzatore trascritto da quello di Ninox: ciò che segnala corrisponde a ciò che direbbe Ninox. Ogni riga porta direttamente al codice interessato.

La scheda è riservata agli amministratori. Mostra solo la sua icona, un triangolo di avvertimento; il nome compare al passaggio del mouse, e un badge rosso indica il numero di diagnostiche mostrate.

Il riepilogo e i filtri

Filtri della scheda Errori

L'intestazione riporta il riepilogo: «Nessun errore», «3 errore/i», «3 errore/i, 12 avviso/i», «36 avviso/i»…

Il pulsante Filtri apre il pannello Diagnostiche mostrate: un interruttore per ogni tipo di diagnostica, raccolti in due gruppi, Errori e Avvisi. Ogni riga indica il numero di diagnostiche di quel tipo nel database — anche quando il tipo è nascosto: vedete ciò che nascondete tanto quanto ciò che mostrate. Quando alcuni tipi sono nascosti, il pulsante lo ricorda («2 tipo/i nascosto/i»); Mostra tutto li ripristina. I filtri sono memorizzati dal browser e valgono per tutti i database.

Che cosa viene segnalato

Gli errori impediscono al codice di funzionare:

FiltroChe cosa viene segnalato
Errori di compilazioneIl codice che Ninox rifiuta: la formula non viene eseguita.
ID duplicatiPiù campi di una stessa tabella condividono lo stesso identificatore interno (per esempio un campo di input e un elemento visivo): i riferimenti diventano ambigui.
Errori dell'analizzatoreGli errori che l'analizzatore di Ninext individua e che Ninox non ha segnalato.
Errori dei contenuti incorporatiUn errore di sintassi JavaScript in un blocco nativo #{ … }#.

Gli avvisi segnalano un codice che funziona, ma probabilmente non come pensate:

FiltroChe cosa viene segnalato
AnalizzatoreGli avvisi di Ninox, e le annotazioni NativeJS malformate (tipo sconosciuto, tabella introvabile).
Contesto serverUn codice senza effetto dove viene eseguito: una funzione d'interfaccia come alert() o openRecord(), o un blocco nativo #{ … }#, posti in un trigger di tabella (dopo la creazione, dopo la modifica) o in un do as server. Sul server vengono ignorati senza alcun segnale.
Errori congelatiErrori che Ninox mostra ancora sebbene la formula sia corretta (vedere più sotto).
Riferimenti non risoltiLa lettura di un campo di riferimento la cui tabella di destinazione non esiste più (tabella eliminata, database esterno assente): vale «void», e ogni attraversamento con un punto si interrompe.
Contenuti incorporatiUn blocco JavaScript tipizzato che non restituisce nulla, su tutti i suoi percorsi o su alcuni; un blocco asincrono che non chiama mai callback; un HTML sbilanciato passato a html() (tag mai chiuso, tag di chiusura orfano); un CSS con parentesi graffe sbilanciate, o di cui il browser scarterà alcune regole.
Codice morto negli scriptVariabili dichiarate con var o let, poi mai lette.
Funzioni globali inutilizzateFunzioni globali che nessun elemento del database chiama.
Formule inutilizzateFormule che nessun codice referenzia.

Le funzioni e le formule inutilizzate sono solo candidate all'eliminazione: una chiamata costruita dinamicamente o fatta da JavaScript sfugge all'analisi, e una formula mostrata in un modulo o in una vista resta utile anche se nessun codice la legge. Verificate prima di eliminare.

Leggere una riga

Diagnostica della scheda Errori

Le diagnostiche sono raggruppate per famiglia. Il titolo di ogni famiglia porta un badge che ne indica il numero: rosso per gli errori, arancione per gli avvisi. Quando ci sono più famiglie, sono compresse, e un clic su un titolo espande la sua; una famiglia sola viene mostrata espansa.

Le famiglie portano il nome del loro filtro, tranne queste:

FiltroFamiglia nell'elenco
Errori dell'analizzatoreErrori aggiuntivi dell'analizzatore Ninext
AnalizzatoreAvvisi dell'analizzatore
Contesto serverCodice fuori dal suo contesto di esecuzione
Errori congelatiErrori congelati (la formula è corretta)
Errori dei contenuti incorporati e Contenuti incorporatiUna sola famiglia, JS / HTML / CSS incorporati, che porta fino a due badge: uno per i suoi errori, uno per i suoi avvisi.

Ogni riga indica:

  • in corsivo, il messaggio — grigio per un errore, ambra per un avviso — seguito dall'estratto di codice interessato; quando due tipi non concordano, una frase dice quali;
  • l'elemento interessato, presentato come in Campi & Formule: icona del tipo, badge delle dipendenze, «Fx», filo di Arianna.

Il passaggio del mouse sulla parte in grassetto del filo di Arianna (la formula, il trigger o la funzione globale) mostra il codice, con gli errori sottolineati.

Andare al codice

Fate clic sulla parte in grassetto del filo di Arianna: Ninext apre l'editor nel punto giusto. Per il codice globale, la diagnostica è collegata alla funzione che la contiene — «Funzioni globali › nomeDellaFunzione» — e l'editor del codice globale si apre su di essa. Il trigger «After Open» si apre allo stesso modo.

Il pulsante rosso che compare al passaggio del mouse, a destra della riga, in modalità di modifica («Edit mode»), seleziona il campo nel suo modulo per una riga che riguarda un campo, e apre l'editor del codice per le altre righe.

Qui sotto, nel database dimostrativo, un clic sulla parte in grassetto di una riga che riguarda la formula di un campo: Ninext apre un record della tabella, la finestra del campo, poi il grande editor delle formule, dove il punto interessato è sottolineato; il passaggio del mouse ne mostra il messaggio. Gli altri elementi del filo di Arianna aprono il proprio livello: un clic sul nome del campo apre il record e la finestra del campo, senza l'editor.

Dalla scheda Errori, un clic sulla parte in grassetto apre l'editor della formula interessata, con il punto errato sottolineato

Un'analisi in background

L'analisi lavora a piccoli blocchi, restituendo il controllo al browser: anche su un database di grandi dimensioni nulla si blocca. Si riavvia da sola dopo ogni modifica dello schema. Non c'è un indicatore di avanzamento: l'elenco precedente resta visualizzato finché il nuovo non lo sostituisce.

Gli errori congelati

Può succedere che Ninox compili un campo formula durante un ricaricamento dello schema, prima che questo sia completo, e poi non lo ricompili più: il campo mostra errori per tutta la sessione, benché la sua formula sia corretta. Ninext ricompila la formula per conto suo; se gli errori non vi compaiono, li classifica in Errori congelati.

Rimedio: ricaricate il database, oppure salvate una modifica qualsiasi dello schema.

Durante la digitazione, negli editor di Ninox

Gli errori e gli avvisi vengono sottolineati anche durante la digitazione negli editor di script di Ninox (editor grande delle formule, pannello di un campo o di una tabella):

  • sottolineatura ondulata rossa per un errore, a puntini color ambra per un avviso;
  • al passaggio del mouse sulla parte sottolineata, un fumetto ne dà la spiegazione, e dice quali tipi non concordano;
  • la sottolineatura avviene solo quando Ninext sa con certezza in quale tabella viene eseguito il codice;
  • l'elenco di completamento automatico ha la priorità: nessun fumetto si apre finché è visualizzato.

Selezionare una parola evidenzia le sue altre occorrenze — negli editor di Ninox, nella Console e nei blocchi di codice di Ninext. Al passaggio del mouse sull'editor compaiono due pulsanti in alto a destra: Formatta ed Esegui il debug nella Console (vedere Console).

Colonne residue nelle viste tabella

Un errore di compilazione può provenire da una colonna di una vista tabella che usa ancora un campo eliminato. Ninox non segnala nulla, poiché il campo è stato semplicemente rimosso dallo schema: si tratta di un riferimento residuo, rimasto nella configurazione delle colonne della vista.

Per correggerlo:

  1. Fate clic su Formula, in grassetto alla fine del filo di Arianna («Tabella › Vista › … › Formula»).
  2. Ninext apre la vista, l'editor della colonna, poi l'editor della sua formula.
  3. Fate clic su OK nell'editor della formula, poi in quello della colonna.

Al salvataggio, Ninox aggiorna la configurazione della vista e rimuove i riferimenti ai campi inesistenti. L'errore scompare da Ninext.