Come scrivere componenti aggiuntivi JMP ad aggiornamento automaticoL'impostazione di un "Depot componenti aggiuntivi" semplifica l'amministrazione di una raccolta di componenti aggiuntivi JMP ad aggiornamento automatico. In questo esempio, il Depot non è altro che una cartella contenente:
- Il file del componente aggiuntivo JMP "com.jmp.brady.addin1.jmpaddin".
- Un file di metadati, "File Metadata.jmp".
In un caso tipico, il depot del componente aggiuntivo risiederà su una cartella del server in cui gli utenti del componente aggiuntivo hanno accesso in lettura. Il file di metadati è una tabella JMP che memorizza le informazioni su ciascun modulo aggiuntivo nel depot. In questo esempio, lo useremo per verificare quando il componente aggiuntivo è stato pubblicato più di recente.
Se il componente aggiuntivo è aggiornato quando l'utente lo esegue, il componente aggiuntivo verrà eseguito senza clamore. Tuttavia, se l'utente tenta di eseguire una versione obsoleta del componente aggiuntivo, riceverà una richiesta di installazione della nuova versione:
Se l'utente fa clic su "Annulla", verrà eseguito il componente aggiuntivo presente. Se fa clic su "OK", l'aggiornamento verrà installato automaticamente, sovrascrivendo la versione obsoleta. In questo esempio, l'utente viene informato dell'installazione e gli viene richiesto di eseguire nuovamente il componente aggiuntivo:

Componenti aggiuntivi JMP ad aggiornamento automatico: un esempio dettagliato.
- Apri "Ciao Script.jsl".
- Assicurarsi che la riga 10 contenga la data 08/01/2012 tra virgolette.
- Assicurarsi che la riga 22 contenga la stringa "Hello world" come argomento della casella di testo.
- Nota: la linea 15 chiama il Controlla gli aggiornamenti function, che non è contenuta nel nostro script principale, ma è contenuta in “update_functions.jsl”. Questo è il motivo del includere dichiarazione alla riga 13. Questo è utile perché mantiene il nostro script principale più semplice, ma dovremo assicurarci di includere "update_functions.jsl" come file aggiuntivo ogni volta che creiamo un componente aggiuntivo.
- Salva e chiudi il file.

- Apri “File Metadata.jmp”:
- Si noti che il nome del file nella colonna "File" deve essere uguale alla stringa assegnata a "Addin_Name" nella riga 11 dello script precedente.
- Assicurati che la data di pubblicazione sia 08/01/2012, modificala se necessario, quindi salva e chiudi.

- Apri "update_functions.jsl":
- Alla riga 4, imposta la variabile depot_path sulla cartella che utilizzerai per il tuo depot.
- Si noti che la variabile meta_file alla riga 5 deve corrispondere al nome del file di metadati.
- Salva e chiudi questo file.

- Crea il componente aggiuntivo:
- Dal menu JMP, selezionare File >> Nuovo >> Nuovo componente aggiuntivo
- Nella scheda "Informazioni generali":
- Immettere il nome del componente aggiuntivo, in questo esempio "Hello World".
- Immettere l'ID del componente aggiuntivo. Qualunque cosa tu inserisca qui deve corrispondere esattamente sia alla colonna File nel file Metadata, sia alla stringa Addin_Name in "Hello Script.jsl".

- Nella scheda "Voci di menu":
- Fare clic sul pulsante "Aggiungi".
- Nella casella di testo "Nome voce di menu" del pannello "Generale", inserisci il nome che desideri venga visualizzato nel menu a discesa del componente aggiuntivo.
- Nel pannello "Azione", seleziona il pulsante di opzione "Esegui JSL in questo file:".
- Fai clic su "Sfoglia" e aggiungi il file "Hello Script.jsl".

- Nella scheda "File aggiuntivi":
- Fai clic su "Aggiungi".
- Passare al file "update_functions.jsl" e aggiungerlo.
- Fai clic su "Salva" e salva il nuovo file .jmpaddin in una posizione comoda.

- Imposta il deposito:
- Posizionare il file .jmpaddin appena creato, insieme al file "File Metadata.jmp", nella cartella specificata come cartella depot del componente aggiuntivo (riga 4 del file "update_functions.jsl").
- Prova il componente aggiuntivo:
- Dalla barra dei menu di JMP, selezionare Componenti aggiuntivi >> Hello World (o qualsiasi altra cosa immessa come testo della voce di menu) e verrà visualizzata la semplice finestra "Hello World".
- Fare clic su "OK" per chiudere la finestra.
- Crea una versione aggiornata del componente aggiuntivo:
- Apri "Ciao Script.jsl".
- Modificare la riga 10 per inserire la data 10/01/2012 tra virgolette.
- Cambia la riga 22 per avere la stringa "Hellooooooooo world" come argomento della casella di testo.
- Salva e chiudi il file.
- Eseguire i passaggi da 4a a 4d esattamente come prima, con la seguente importante eccezione:
- Durante la creazione del componente aggiuntivo, nella scheda "Informazioni generali", assicurati che la casella "Installa dopo il salvataggio" NON sia selezionata.
- Posiziona il file .jmpaddin appena creato nel depot, sovrascrivendo il vecchio file .jmpaddin.
Si noti che non l'abbiamo ancora fatto pubblicato il componente aggiuntivo, poiché dobbiamo ancora modificare la data di pubblicazione nel file dei metadati. Per vedere questo, dal menu JMP seleziona Componenti aggiuntivi >> Hello World (o qualsiasi altra cosa tu abbia inserito come testo della voce di menu) e la finestra "Hello World" apparirà come prima.
- Pubblica il componente aggiuntivo:
- Apri "File Metadata.jmp". Modificare la data di pubblicazione in 01/10/2012. Salva e chiudi il file.
- Prova l'aggiornamento automatico:
- Dal menu JMP, seleziona Componenti aggiuntivi >> Hello World. Il componente aggiuntivo determinerà che è disponibile un aggiornamento e ti presenterà la finestra di aggiornamento.
- Fare clic su "Annulla" per rifiutare l'aggiornamento e vedere la finestra "Hello World" come prima.
- Selezionare Componenti aggiuntivi >> Hello World per eseguire nuovamente il componente aggiuntivo.
- Questa volta, quando viene visualizzata la finestra di aggiornamento, fai clic su "OK" per accettare l'aggiornamento.
- Fare clic su "OK" per chiudere la finestra di conferma.
- Eseguire nuovamente il componente aggiuntivo. Il nuovo componente aggiuntivo verrà eseguito, mostrando "Hellooooooooo World" come testo della finestra.
Ri: Come scrivere componenti aggiuntivi JMP autoaggiornanti@ivan_j_moore Ho avuto lo stesso problema (società internazionale), quindi sono passato a utilizzare il numero di versione del componente aggiuntivo anziché la data. Quindi in poche parole:
// Get the installed JMP AddIn version
installedAddIn = Get Addin( "com.jmp.brady.addin1.jmpaddin" );
installedAddInVer = installedAddIn << version;
addinLocation = "http://gitlab.contoso.com/addin/updateLocation/addin1.jmpaddin";
depot_path = "http://gitlab.contoso.com/addin/updateLocation/";
meta_file = "File Metadata.csv";
Try(
dtm = Open( depot_path || meta_file, invisible );
r = ((dtm << selectwhere( :File == "addin1.jmpaddin" )) << get selected rows)[1];
mostrecent = Column( dtm, "Version" )[r];,
print("Cannot access update site.");
mostrecent = installedAddInVer;
Throw("AddIn cannot check for updates.");
);
If( mostrecent != installedAddInVer,
requestUpdate( mostrecent, installedAddInVer, addinLocation);
);
Close( dtm, nosave );Il compromesso (immagino che potresti chiamarlo così?) È che il numero di versione nell'AddIn e la colonna della versione (al posto della colonna della data) in File Metadata devono essere gli stessi per ogni nuova versione, ma non è così grande un affare (devo comunque aggiornare la data comunque). Sono anche passato a .csv per File Metadata perché ho uno script Python che crea componenti aggiuntivi JMP e Python non può scrivere file .jmp. Dovrei davvero fare un post su quella sceneggiatura...
Ri: Come scrivere componenti aggiuntivi JMP autoaggiornantiCiao Jeff,
Funziona davvero bene per controllare i componenti aggiuntivi con un gruppo o Team .
Ho un piccolo problema con esso, quando eseguo l'aggiornamento secondo le tue istruzioni ricevo sempre questo messaggio.
"La versione dell'aggiornamento è ancora disponibile"
Quando faccio clic su OK, l'installazione avviene, ma la volta successiva viene visualizzato di nuovo il messaggio.
Credo che abbia qualcosa a che fare con i diversi fusi orari, sono nel Regno Unito.
Ho aggiornato il fuso orario nel metafile "Publish Date" in d/m/y.
Ho aggiornato l'inizio della riga 10 dello script "in formato" in gg/mm/aaaa.
È necessario aggiornare qualcosa nel file "Funzione di aggiornamento"?
Qualsiasi aiuto apprezzato.
Ri: Come scrivere componenti aggiuntivi JMP autoaggiornanti<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao, sembra molto utile. Sfortunatamente non ha funzionato per me (è andato tutto bene fino all'ultimo punto f.).
È possibile che qualcosa (Root? Folder?) nel "File Metadata.jmp" deve essere cambiato?
Modificare:
C'era un problema di denominazione nel mio caso. Sono stato in grado di risolvere il problema impostando i seguenti nomi identici:
- Nome componente aggiuntivo
- ID componente aggiuntivo
- File in "File Metadata.jmp"
- il nome file del file jmpaddin
Ho chiamato tutti questi: "Foo.jmpaddin"
Ora funziona a meraviglia!