Script di aggiornamento della tabella dati live di JMP (da Query Builder)Questa domanda riguarda gli script di aggiornamento delle tabelle dati in tempo reale di JMP. Nello specifico, si tratta di script sorgente che utilizzano Query Builder per connettersi a un database in JMP con Post Query Scripts .
Io e @LuizaFabreti abbiamo fatto qualche prova con alcuni esempi e non è chiaro cosa venga effettivamente eseguito nello script PostQueryScript in JMP Live e cosa no (cosa venga ignorato).
In entrambi i casi, lo script PostQueryScript aggiunge una nuova colonna formula che concatena due colonne (ID farmaco e descrizione) per crearne una nuova.
Qualcuno ha già visto una cosa simile? Qualche suggerimento?
@dieterpisot
@Alex_Lippincott
Oggetto: Script di aggiornamento della tabella dati live di JMP (da Query Builder)A quanto ne so, JMP Live non gestisce lo script PostQueryScript in modo diverso da JMP. Hai provato a eseguire lo script di aggiornamento in JMP? Funziona lì?
Oggetto: Script di aggiornamento della tabella dati live di JMP (da Query Builder)Anche il secondo e il terzo script presentano errori simili a questo:
Name Unresolved: New Formula Column in access or evaluation of 'New Formula Column' , New Formula Column(
Operation( Category( "Character" ), "Concatenate with Space" ),
Columns( :Drug ID, :Description )
) /*###*/
at line 1
Data Table( "Stability_Data_Stacked 2" )
Oggetto: Script di aggiornamento della tabella dati live di JMP (da Query Builder)La mia esperienza è simile. A volte funziona e a volte no. La funzione New Column() funziona, ma per qualsiasi operazione più complessa consiglio di eseguirla al di fuori della query in JSL. Non sono sicuro di cosa dovrebbe essere supportato, ma trovo che gli script post-query non siano il massimo.
Oggetto: Script di aggiornamento della tabella dati live di JMP (da Query Builder)Non ho testato nulla, ma a volte potrebbe essere utile verificare se le colonne che si creano e che si desidera utilizzare in seguito siano effettivamente già state create prima che l'interprete completi il resto dello script. Questo è il problema più frequente quando si fa riferimento a nomi di tabelle, nomi di colonne create e altre cose come le righe di ricerca e selezione su cui operare, ...
Un comando wait() o wait(2) potrebbe essere utile per verificare se questa è la causa dell'errore. In caso affermativo, potresti voler modificare la struttura del codice, mantenere il comando wait() nello script se le prestazioni non calano, pensare ad approcci alternativi, ...
Le manipolazioni delle tabelle in uno script postquery sono piuttosto complesse; potrebbe essere preferibile gestire la tabella dati nello script di aggiornamento, non appena la tabella viene creata, e non nella fase di recupero dei dati.
Oggetto: Re: Script di aggiornamento della tabella dati live di JMP (da Query Builder)Ho allegato i file .jmpquery relativi a quanto segue. Entrambi funzionano in JMP.
Abbiamo un documento Discovery per Baltimora in cui intendo seguire il suggerimento di Alex: spostare alcune operazioni al di fuori dello script Post-Query prima di pubblicare su JMP Live OPPURE ricominciare da zero quando si crea lo script di aggiornamento dei dati (invece di affidarsi allo script sorgente).
Oggetto: Script di aggiornamento della tabella dati live di JMP (da Query Builder)Ho riscontrato problemi nel caricare il secondo file .jmpquery, ma sarò lieto di inviartelo via email se desideri provarlo.
L'unica differenza è lo script post-query (in JMP Live, la colonna viene creata ma non spostata):
// Nuova colonna: ID farmaco, Descrizione
Tabella dati( "Stability_Data_Stacked" ) << Nuova colonna( "ID farmaco, descrizione",
Carattere,
"Nominale",
Formula( Char( :ID farmaco ) || " " || :Descrizione )
) << Sposta colonne selezionate( {:"ID farmaco, descrizione"n}, dopo( :Descrizione ) ) <<
Esegui formule;
Oggetto: Script di aggiornamento della tabella dati live di JMP (da Query Builder)Penso che l'ipotesi di Martin sia piuttosto azzeccata. Si tratta di un problema di tempistica. Potrebbe essere che PostQueryScript venga eseguito in modo asincrono e che la query SQL ritorni allo script prima che la post-query sia completata. La sessione JMP Live non sa di dover attendere e restituisce la tabella prima che la post-query sia terminata. Aggiungere un'istruzione wait() per consentire alla post-query di terminare è probabilmente una buona soluzione temporanea.