Esistono alcuni trucchi su come eseguire il debug di un'applicazione Jmp?
Immagino che il modo predefinito per farlo sia qualcosa del tipo:
Usa il debugger Jmp, aggiungi punti di interruzione, lascia che il codice dell'applicazione venga eseguito e si fermi al punto di interruzione, quindi controlla cosa sta succedendo passo dopo passo...
Quando devo eseguire il debug di codice JSL non applicativo, mi piace avere la libertà di eseguire qualsiasi codice nello script in qualsiasi momento.
Ad esempio, rimuovere l'impostazione modale di una finestra di report, creare la finestra di report e quindi eseguire alcune righe di codice che si trovano in un'altra posizione nel file jsl.
Ciò è possibile anche con le applicazioni di Application Builder?
1) Come abilitare il registro incorporato nell'Application Builder?

2) Per il debug delle applicazioni generate manualmente, ho trovato
myApp = JMP App();
(myApp << Get Namespace) << Show Contents;
Quando eseguo un'applicazione da Application Builder non ho un handle miaApp che posso usare per parlare con l'app.
Esiste qualche comando per ottenere lo spazio dei nomi dell'app corrente e "infiltrarsi" nel codice:
((current report() << get App() ) << get Namespace()) << include Namespace in HERE
in modo tale da poter copiare frammenti di codice dall'app ed eseguirli direttamente in una finestra di script, con accesso diretto allo spazio dei nomi dell'app in esecuzione?
3) Se commetto errori nel mio codice JSL, JSL edotor mi avviserà o mostrerà un messaggio di errore che mi aiuta a trovare l'errore e a correggerlo.
Se apro lo script sorgente di un'applicazione e commetto un piccolo errore, Jmp si bloccherà quando eseguo il codice con < O <
Qualche possibilità di modificare il codice sorgente con meno penalità per i miei punti di penalità? Esiste una routine di pre-controllo che posso utilizzare prima di osare eseguire lo script?
In realtà lo stesso per gli script inclusi: esiste la possibilità di eseguire manualmente il codice nello script incluso, con accesso allo spazio dei nomi HERE dello script principale?
sceneggiatura principale:
Names Default to HERE(1);
::myNamespace = localHERE(); //*)
temp =5;
include ("script_inc.jsl");script incluso:
///////////////////////////
// to be able to manually execute code in this file, which accesses variables of the main file,
// you need direct access to the namespace of the main file. To get this access, execute:
///////////////////////////
access Namespace(::myNamespace) // *)
Show(temp);
*) (ovviamente) questo non funziona
Questa cattura dello schermo mostra il "problema": quando incluso nello script principale, script_B conosce le variabili del file Qui Spazio dei nomi dello script principale (log della finestra di sinistra).
Ma eseguito separatamente, script_B ha il suo Qui spazio dei nomi.
È come progettato:
Scripting essenziale per efficienza e riproducibilità: fare di meno per fare di più (2019-US-TUT-290)
... ma rende impossibile eseguire singole righe direttamente da script_B per il debug.
-> Come posso collegare gli spazi dei nomi per permettermi di eseguire il debug di script_B .