Gestore dei componenti aggiuntiviDescrizione
Gestore dei componenti aggiuntivi ti consente di creare e ricostruire facilmente file di componenti aggiuntivi, gestire le versioni di un componente aggiuntivo nel tempo, accedere direttamente ai file di origine e avere personalizzazioni aggiuntive per il tuo componente aggiuntivo. Ora con la versione 2.0 di Gestore dei componenti aggiuntivi , puoi controllare l'intero ciclo di vita dello sviluppo dell'applicazione JSL ora che puoi distribuire i tuoi componenti aggiuntivi ai tuoi utenti direttamente da Gestore dei componenti aggiuntivi !
Crea rapidamente componenti aggiuntivi
La caratteristica fondamentale di Gestore dei componenti aggiuntivi è la capacità di creare un file aggiuntivo JMP direttamente dai file di origine. Questa funzione era inizialmente inclusa in my Generatore di componenti aggiuntivi personalizzati componente aggiuntivo e Gestore dei componenti aggiuntivi ha preso le basi di quel componente aggiuntivo e lo ha migliorato.

Distribuire un componente aggiuntivo agli utenti
Con la versione 2.0 di Gestore dei componenti aggiuntivi , ora puoi distribuire (o inviare) i componenti aggiuntivi ai tuoi utenti direttamente da Gestore dei componenti aggiuntivi . Puoi eseguire la distribuzione in una posizione TEST per consentire ai tuoi utenti di testare il tuo componente aggiuntivo e puoi anche eseguire la distribuzione in una posizione PROD.

Quando si esegue la distribuzione su PROD, uno script JSL con un array associativo viene aggiornato automaticamente con l'ultima data/ora di pubblicazione. Questo array associativo può essere utilizzato da uno script 'updateCheck.jsl' generato automaticamente in grado di confrontare la data di creazione del componente aggiuntivo dell'utente con la data di creazione in base all'array associativo. Se è disponibile una versione più recente del componente aggiuntivo, l'utente vedrà la finestra seguente, in cui potrà scegliere di eseguire l'aggiornamento all'ultima versione. Questo concetto che utilizza un array associativo per verificare la presenza di aggiornamenti è stato adattato da @brady_brady Metodo di utilizzo di una tabella con date di pubblicazione. Questo metodo è descritto in @Jeff_Perkinson il post Come scrivere componenti aggiuntivi JMP con aggiornamento automatico .

Gestisci le versioni di un componente aggiuntivo
Gestore dei componenti aggiuntivi ha la capacità di mantenere automaticamente una cronologia delle versioni di un file aggiuntivo ogni volta che ne viene creato uno nuovo. Ti consente di installare, ripristinare o eliminare una versione precedente di un componente aggiuntivo. Puoi facoltativamente includere un commento per ogni build in modo da poter tenere traccia delle modifiche apportate a ciascuna versione.

Realizzazione di personalizzazioni aggiuntive aggiuntive
Gestore dei componenti aggiuntivi ti consente di apportare alcune personalizzazioni al tuo componente aggiuntivo che in precedenza richiedevano modifiche manuali a XML. Di seguito sono riportate le personalizzazioni extra disponibili in Gestore dei componenti aggiuntivi .
- Versione JMP massima
- Icone JMP integrate per le voci di menu
- Inserisci prima della posizione per specificare una posizione per una voce di menu
- Barra dei menu personalizzata: crea il tuo menu o utilizza un menu esistente diverso da "Componenti aggiuntivi"
- Novità Gestore dei componenti aggiuntivi 2.0: più menu principali all'interno di un singolo componente aggiuntivo

Accesso ai file di origine direttamente da JMP
Nella scheda File all'interno Gestore dei componenti aggiuntivi , è possibile aprire i file nella cartella di origine direttamente da JMP facendo doppio clic sul file desiderato nella tabella.

Gestione automatica dei metadati personalizzati
Insieme a Gestore dei componenti aggiuntivi versione 2.0, puoi creare i tuoi metadati personalizzati oltre ai metadati automaticamente inclusi e gestiti da Gestore dei componenti aggiuntivi .

Gestione dei componenti aggiuntivi installati in precedenza
Dalla scheda Installato, puoi abilitare, disabilitare o registrare i componenti aggiuntivi installati e registrare i componenti aggiuntivi che non sono installati.

Requisiti di sistema
Questo componente aggiuntivo è supportato sui sistemi operativi Windows e Mac con JMP 13 o versioni successive.
Serie di blog
Gestione componenti aggiuntivi, parte 1: definizione e creazione di un componente aggiuntivo JMP
Gestione componenti aggiuntivi, parte 2: distribuzione di componenti aggiuntivi di aggiornamento automatico agli utenti
Gestione componenti aggiuntivi, parte 3: personalizzazione avanzata
Registro delle modifiche
Versione 1.1-1.3 (16 ottobre 2017)
- Risolti alcuni casi in cui il componente aggiuntivo generava un errore
- Aggiunte nuove preferenze per controllare se i menu e le barre degli strumenti vengono visualizzati
Versione 2.0 (22 novembre 2017)
- Aggiunto supporto per la distribuzione di componenti aggiuntivi nelle posizioni TEST e PROD.
- Aggiunto supporto per metadati personalizzati tramite un array associativo che può essere incluso nei tuoi script.
- Aggiunta la possibilità di avere più menu principali in un singolo componente aggiuntivo.
- Aggiunta la possibilità di copiare e incollare le voci di menu nell'albero delle voci di menu.
- Aggiunto supporto per la creazione di una cartella di origine da un file 'jmpaddin' esistente.
- Aggiunta la possibilità di verificare la presenza di una nuova versione, estratta direttamente dalla community JMP.
- Aggiunta la preferenza per l'installazione automatica dei componenti aggiuntivi dopo la creazione.
- Rimosso il supporto per la creazione di più componenti aggiuntivi alla volta, per vari motivi.
- Schiacciato altri vari bug.
Versione 2.1 (26 febbraio 2018)
- Aggiunta la preferenza per escludere file e cartelle invisibili (ad es. file/cartelle che iniziano con un punto). Questo è utile se stai usando un sistema di controllo della versione, come Git.
- Il file customMetadata.jsl viene ora ignorato quando si determina se è installata la versione più recente.
Versione 2.2 (8 marzo 2018)
- Risolto un problema relativo all'aggiunta di più di due menu principali di primo livello.
- Aggiunte nuove icone alla schermata di selezione. Icone rimosse disponibili solo su un sistema operativo.
Versione 2.3 (6 aprile 2018)
- Risolto errore su Mac causato quando una cartella di origine veniva rinominata o eliminata
- La finestra delle preferenze ora funziona anche se non hai il font Consolas installato sul tuo computer.
Versione 2.4 (9 gennaio 2020)
- Consenti l'inserimento di voci di menu prima o dopo altre voci, invece di consentire l'inserimento solo dopo.
- Aggiungi 15 e 16 come numeri di versione JMP min/max.
Versione 2.5 (5 febbraio 2020)
- Migliora la leggibilità quando utilizzi macOS Dark Mode e Windows High Contrast mode in JMP 15.
- Correzione dell'avviso visualizzato all'apertura delle preferenze su Mac.
Versione 2.6 (4 giugno 2020)
- Risolto bug con l'analisi dei componenti aggiuntivi con menu personalizzati.
- Aggiunte informazioni diagnostiche per l'analisi degli errori per aiutare con problemi futuri.
Versione 2.7 (10 giugno 2020)
- Aggiungi una soluzione alternativa per un bug temporaneo in JMP 16 EA
Versione 2.8 (24 settembre 2020)
- Risolto il problema di decompressione dei componenti aggiuntivi con le sottocartelle
- Aggiunta opzione per creare automaticamente una cartella quando si utilizza un modello aggiuntivo (attivo per impostazione predefinita).
Versione 2.9 (4 febbraio 2021)
- Modificata la formattazione della data in formati Locale
- Risolto il problema con il controllo della funzionalità di aggiornamento
Versione 3.0 (18 gennaio 2022)
- I caratteri speciali XML (come '&') non dovrebbero più interrompere i file addin.jmpcust.
Versione 3.1 (4 marzo 2022)
- Risolto il problema con l'avviso sul formato della data per alcune impostazioni locali durante l'archiviazione dei componenti aggiuntivi.
Fammi sapere se trovi problemi!
Versione corrente=3.1
2.9
Gestione componenti aggiuntivi ti consente di creare e ricostruire facilmente file di componenti aggiuntivi, gestire le versioni di un componente aggiuntivo nel tempo, accedere direttamente ai file di origine, avere personalizzazioni aggiuntive per il tuo componente aggiuntivo e distribuire i tuoi componenti aggiuntivi su i tuoi utenti.

UtilitàRe: Gestione componenti aggiuntivi@Justin_Chilton JMP17 mostra strutture di menu vuote per i miei componenti aggiuntivi in cui JMP16 mostra le voci di menu. È lo stesso per tutti e tre i componenti aggiuntivi. Vedi il mio messaggio precedente il 14 settembre 2021.

Re: Gestione componenti aggiuntivi@Justin_Chilton , @nathan-clark Finalmente sto tornando alla mia funzione di aggiornamento automatico del componente aggiuntivo TEST. Penso di averlo fatto funzionare correttamente con l'eccezione che il gestore dei componenti aggiuntivi non sta scrivendo la cartella dei metadati per l'installazione di TEST.
Qualche possibilità per abilitarlo? altrimenti è necessario aggiornare manualmente questi file ogni volta, il che è piuttosto soggetto a errori.
Henning
Re: Gestione componenti aggiuntiviCiao @Justin_Chilton
Mentre provavo varie cose dopo aver pubblicato la domanda, sospettavo che il file fosse danneggiato dal sistema di sicurezza interno del settore.
Quando ho ricevuto il file dall'esterno e ho proceduto alla reinstallazione, è stato installato normalmente.

Conserverò le domande e le risposte per lo stesso caso.
Grazie sempre, Giustino
Dave_Ryu.
Re: Gestione componenti aggiuntiviCiao @Justin_Chilton
Sto ricevendo molto aiuto per costruire utilizzando Gestione componenti aggiuntivi.
Lo stavo usando bene fino alla v2.9, ma durante la reinstallazione si verifica il seguente errore.
Questo errore si verifica sia in v2.9 che nell'ultima versione di v3.1.
Quando eseguo il file di installazione, l'errore si verifica immediatamente e non procede.
Puoi dirmi come agire per l'errore?

Grazie molto.
Dave_Ryu.
Re: Gestione componenti aggiuntiviCIAO @Justin_Chilton , mi sono imbattuto in questo errore di seguito durante la distribuzione in una cartella TEST. Apprezzo il componente aggiuntivo altrimenti! Questa avrebbe dovuto essere una funzionalità standard in JMP 
Messaggio di errore:
{"argomento dovrebbe essere carattere"(1, 2, "Concat", Argomento errato(currentAddinInfo["Name"]), "Non hai salvato le informazioni aggiornate per " || /*###*/currentAddinInfo[" Nome"] || /*###*/" componente aggiuntivo." /*###*/)}
Errore: l'argomento dovrebbe essere un carattere
1 volta(e).
Tipo: errore
Nome funzione: Concat
Argomento errato: currentAddinInfo["Nome"]
Funzione in esecuzione: "Non hai salvato le informazioni aggiornate per " || /*###*/currentAddinInfo["Nome"] || /*###*/" aggiungere." /*###*/
Stack di chiamate:
saveButtonCheck
refreshAddinTableBox
deploySelected
Re: Gestione componenti aggiuntivi@Justin_Chilton grazie per il suggerimento. Hai ragione sul fatto che ciò che volevo può essere gestito da include().Grazie per il suggerimento su <
Non sono sicuro del motivo per cui il mio zip non ha funzionato, ma lo stavo facendo su un Mac e tutte le voci sono scomparse dopo il mio tentativo manuale.Ora che ho incluso il lavoro, non sono comunque necessarie modifiche manuali.
Re: Gestione componenti aggiuntivi@steveylin , semplicemente zippare il contenuto del componente aggiuntivo e rinominarlo in xxx.jmpaddin dovrebbe funzionare, devi solo assicurarti che i file jmpcust e def siano alla radice del file zip jmpaddin.
In alternativa, suggerirei di aggiungere il tuo percorso come include() per "Esegui thi JSL" invece di utilizzare lo script direttamente utilizzando un percorso. Ciò eviterebbe la necessità di modificare manualmente il file jmpcust. Non sono sicuro del motivo per cui il percorso non dovrebbe funzionare per te, ma questa è la configurazione che utilizzo effettivamente per i miei componenti aggiuntivi.

Mi piace usare <
Re: Gestione componenti aggiuntiviSono un principiante che cerca di far funzionare l'addin.L'ho fatto funzionare facendo riferimento a una directory, ma per impostazione predefinita è "testo" e devo cambiare manualmente in "percorso"
"sentiero" >$ADDIN_HOME(com.cirrus.pejmpscriptsMac)\pe-jmp-scripts\Check_Duplicate_Measurements.jsl
Il problema che ho è che sono in grado di modificare .jmpcust per farlo funzionare sul mio computer, ma non posso esportarlo.C'è un modo semplice per prendere addin.def/addin.jmpcust e comprimerlo da solo?Spero che sia qualcosa di facile e non devo usare il gestore dei componenti aggiuntivi.
Ho provato a usare zip e rinominare ma non ha funzionato.
Saluti,
Steve
Re: Gestione componenti aggiuntiviCiao @Justin_Chilton , di recente ho riscontrato questo errore durante la distribuzione di una nuova versione di Prod.
Messaggio di errore:
{"argomento dovrebbe essere carattere"(1, 2, "Concat", Argomento errato(currentAddinInfo["Name"]), "Non hai salvato le informazioni aggiornate per " || /*###*/currentAddinInfo[" Nome"] || /*###*/" componente aggiuntivo." /*###*/)}
Errore: l'argomento dovrebbe essere un carattere
1 volta(e).
Tipo: errore
Nome funzione: Concat
Argomento errato: currentAddinInfo["Nome"]
Funzione in esecuzione: "Non hai salvato le informazioni aggiornate per " || /*###*/currentAddinInfo["Nome"] || /*###*/" aggiungere." /*###*/
Stack di chiamate:
saveButtonCheck
refreshAddinTableBox
deploySelected
Re: Gestione componenti aggiuntiviCiao Nathan,
Sì, l'ho creato prima e non ho ricevuto alcun errore. Ma ricevo comunque il messaggio di distribuzione.
John
Re: Gestione componenti aggiuntivi@Gido_vanderStar ,
Sembra che tu stia probabilmente usando una localizzazione diversa da quella che sto causando l'errore di formato sconosciuto. Ho appena aggiornato il componente aggiuntivo (v3.1) che fa in modo che il formato della data utilizzato durante il processo di archiviazione rispetti il formato della data per la tua locale.
Re: Gestione componenti aggiuntivi@john_madden Hai fatto prima clic sul pulsante di costruzione? Questo è il pulsante accanto all'icona di salvataggio. Ciò creerà il componente aggiuntivo e lo posizionerà nella cartella di sviluppo.
Quindi puoi installare DEV .... Oppure puoi distribuire una build TEST o PROD del componente aggiuntivo. (è necessario distribuire un componente aggiuntivo TEST o PROD prima di poter installare il componente aggiuntivo TEST o PROD.
Re: Gestione componenti aggiuntiviCiao Giustino,
Quando provo a installare il mio componente aggiuntivo (che AIM compila bene), ottengo un errore "Il componente aggiuntivo DEV/TEST/PROD non esiste". Cosa potrei sbagliare?
John
AIM 3.0, JMP Pro EA 17.0b6, OS X 12.2.1
Re: Gestione componenti aggiuntiviCiao @Justin_Chilton ,
Grazie per questo plugin. Volevo solo segnalare un fastidio. Durante l'installazione o la distribuzione di un componente aggiuntivo, viene visualizzato il seguente messaggio circa 50 volte nel registro:
Unknown format: m/d/y h:m
Utilizzando la versione più recente (v3.0) del componente aggiuntivo, in JMP 16.0.0, Windows10.
Re: Gestione componenti aggiuntivi@vohwinkelh0 Ho raccolto il codice di aggiornamento automatico di Justin e sarebbe abbastanza facile - credo - apportare alcuni aggiornamenti per consentire ciò di cui stai parlando.
A seconda di come lo hai integrato, potresti essere in grado di giocare con il tuo codice locale per effettuare quegli aggiornamenti. Allo stato attuale, il codice ha un passaggio che fondamentalmente vede se la versione installata è PROD e quindi verifica la presenza di una build più recente. Credo che potresti eseguire il processo se la versione installata è PROD O TEST ... e controllare i metadati dell'area di distribuzione per vedere se esiste una build PROD più recente.
Potrebbe essere qualcosa che potresti esaminare per soddisfare le tue esigenze fino all'apertura della larghezza di banda 
Re: Gestione componenti aggiuntivi@pauldeen , grazie per averlo segnalato! Dovrebbe essere risolto nella v3.0.
Re: Gestione componenti aggiuntivi@vohwinkelh0 , sembra un'ottima idea per una funzionalità in Gestione componenti aggiuntivi. Sembra che tu abbia bisogno di una sorta di versione TEST (o beta) separata? Sfortunatamente, al momento non ho la larghezza di banda per implementare qualcosa del genere, ma sono sicuro che potrebbe essere fatto aggiungendo alcuni campi di metadati personalizzati e usando quelli nel tuo codice per sapere se si tratta di una build TEST.
Re: Gestione componenti aggiuntivi@Justin_Chilton l'immissione di un & nel campo della descrizione comando provoca un malfunzionamento durante la scrittura su addin.jmpcust che non può più essere analizzato. (JMP 16.1 Windows 10).
Re: Gestione componenti aggiuntivi@Justin_Chilton sai se c'è un modo per implementare anche la funzione di aggiornamento automatico su TEST? Mi imbatto spesso nel fatto che distribuisco il TEST agli utenti per testare una funzionalità, tuttavia una volta che PROD si aggiorna non ottengono quell'aggiornamento distribuito poiché il componente aggiuntivo TEST non controlla automaticamente se esiste una nuova versione PROD?
Re: Gestione componenti aggiuntiviGrazie @pauldeen ! Non sapevo che la funzionalità addinLoad.jsl fosse disponibile (nascosta nella guida). Quella soluzione funziona per il mio problema!
Re: Gestione componenti aggiuntivi@Djthin Puoi distribuire un componente aggiuntivo vuoto su tutti i computer con un addinLoad.jsl che include le tue funzioni personalizzate
O
È possibile utilizzare il reparto IT per creare un file jmpStartAdmin.jsl che contiene le funzioni personalizzate come descritto qui , nessun componente aggiuntivo necessario.
Re: Gestione componenti aggiuntiviEhi @Justin_Chilton , sto cercando di utilizzare il gestore dei componenti aggiuntivi per distribuire la funzione personalizzata definita dall'utente che idealmente viene eseguita all'avvio. Potresti consigliare il modo migliore per farlo utilizzando il gestore dei componenti aggiuntivi?
Re: Gestione componenti aggiuntivi@Justin_Chilton JMP17EA2 visualizza nuovamente strutture di menu vuote, nessun errore nel registro. Grazie per questo componente aggiuntivo, dovrebbe essere integrato direttamente in JMP!
Re: Gestione componenti aggiuntivi@Justin_Chilton @MikeD_Anderson
Grazie mille per la risposta! In realtà mi sono appena imbattuto nella capacità di farlo l'altro giorno, ma mi hai battuto per pubblicarlo qui.
@MikeD_Anderson - le informazioni sull'avvio rapido di JMP sono davvero utili, gli script delle app stavano sicuramente iniziando a diventare piuttosto grandi, quindi questo aiuta molto.
Parte di ciò che speravo di ottenere con il Gestore componenti aggiuntivi era saltare il passaggio di dover esportare .jmpappsource in un .jsl o .jmpapp ogni volta che volevo testare qualcosa, quindi quello che ho trovato è stato il codice seguente . Non sono sicuro di come funzioni, ma quando si utilizza OpenFile(), .jmpappsource non avvia il generatore di app e l'app può essere eseguita direttamente. Esattamente quello di cui avevo bisogno!
app = JMPApp();
app << OpenFile("$ADDIN_HOME(com.example.addin)\MyApp.jmpappsource");
app << Run;Re: Gestione componenti aggiuntivi@mringqui & @Justin_Chilton - solo un piccolo commento a colori sul metodo menzionato da Justin. Devi prima compilare il file di origine dell'app jmp in un file .jmpapp. Questo può essere fatto in File> Esporta quando sei nel generatore di applicazioni. Quindi includi il file .jmpapp nel pacchetto del componente aggiuntivo e apri il file .jmpapp:
open("$ADDIN_HOME(com.example.me.myaddin)/MyApp.jmpapp");
Ecco come appare la procedura guidata di aggiunta predefinita di JMP.

Nota che questo ha dei bei effetti a catena rispetto al semplice incorporamento diretto di JSL. Il più grande è che, per le app davvero grandi, impedirà a JMP di essere lento all'avvio. Tutto il codice deve essere analizzato all'avvio, quindi se il tuo script è davvero grande o ne hai un sacco, può rallentare le cose, un problema che ho avuto con STK. L'integrazione come app significa che JMP deve solo analizzare una riga di codice all'avvio. Ce ne sono altri, ma questo è il più importante IMO.
Re: Gestione componenti aggiuntivi@mringqui , Grazie per il contatto. Stavo pensando che ciò richiederebbe alcune modifiche al componente aggiuntivo Gestione componenti aggiuntivi, ma @MikeD_Anderson mi ha mostrato come farlo con come funziona già il gestore dei componenti aggiuntivi.
Invece di impostare un file da eseguire, utilizzare uno script che esegua il file di origine dell'app JMP. Dovresti semplicemente incollarlo nella casella di testo per "Esegui questo JSL".
Include("$ADDIN_HOME(com.example.me.myaddin)/MyApp.jmpappsource");</CODE></PRE></LINGO-BODY><LINGO-SUB id="lingo-sub-394777" slang="en-US">Re: Gestione componenti aggiuntivi</LINGO-SUB><LINGO-BODY id="lingo-body-394777" slang="en-US"><P>Ciao, ottimo lavoro! Spero di creare un componente aggiuntivo che utilizzi un file .jmpappsource come azione "Esegui JSL in questo file" per la voce di menu. È qualcosa che potrebbe essere facilmente aggiunto? In questo momento, essere costretto a utilizzare un file .jsl sta limitando la mia capacità di utilizzare il gestore dei componenti aggiuntivi in modo conveniente. Grazie!</P></LINGO-BODY><LINGO-SUB id="lingo-sub-386516" slang="en-US">Re: Gestione componenti aggiuntivi</LINGO-SUB><LINGO-BODY id="lingo-body-386516" slang="en-US"><P><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/1855" target="_blank">@Justin_Chilton</A><BR /> Uso una combinazione di $ADDIN_HOME e Get Default Directory() a seconda di dove/come devo includere le cose. E per molti dei miei include, ho una serie di librerie che sono comuni a molti dei miei strumenti e le tratto come un componente aggiuntivo del tutto separato. Quindi qualsiasi strumento che creo include semplicemente il file da $ADDIN_HOME e tutte le funzioni della libreria sono disponibili per me o per chiunque altro possa volerle usare.<BR /><BR /> Non sono sicuro del perché<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2173" target="_blank"> @tsl</A> deve aggiungere quel livello in più alla zip. Dal mio punto di vista, lasciarlo molto simile all'organizzazione nella sua prima gerarchia renderebbe le cose più semplici nel complesso, ma non conoscendo tutte le specifiche di quell'infrastruttura, potrebbe esserci qualcosa che mi sfugge.<BR /> In genere, l'unico aggiornamento che devo apportare a un file .jmpcust, una volta impostato il materiale originale, è aggiornare il nome visualizzato per un aggiornamento della versione (che eseguo nel mio repository, ma potrebbe essere eseguito in Addin Manager).</P></LINGO-BODY><LINGO-SUB id="lingo-sub-386499" slang="en-US">Re: Gestione componenti aggiuntivi</LINGO-SUB><LINGO-BODY id="lingo-body-386499" slang="en-US"><P>grazie per il chiarimento<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2173" target="_blank"> @tsl</A> . Mi sembra che potrebbe funzionare con alcune modifiche al processo.</P>
<OL>
<LI>Non modificare la cartella $ADDIN_HOME e utilizzare invece percorsi relativi e Ottieni directory predefinita(). Ciò semplifica anche lo sviluppo del componente aggiuntivo perché qualsiasi riferimento a quello sarebbe per la versione installata.</LI>
<LI>Usa una variabile per determinare la posizione del percorso relativo di CommonFiles e usala nelle tue inclusioni, poiché la posizione varia tra un componente aggiuntivo di produzione e il repository di sviluppo.</LI>
</OL>
<P>In alternativa, puoi scartare l'idea di copiare CommonFiles in ogni componente aggiuntivo. È possibile creare una voce aggiuntiva separata per CommonFiles (non avrebbe elementi di comando) e richiedere all'utente di installarla oltre al componente aggiuntivo. Ciò significherebbe che esiste solo una copia di CommonFiles per l'utente (questa potrebbe essere una cosa positiva o negativa a seconda della frequenza con cui si testano tutti i componenti aggiuntivi dopo l'aggiornamento di CommonFiles. Con questo, potresti includere i file usando la variabile di percorso $Addin_Home, ma dovresti comunque capire come includerli dallo sviluppo. Questo potrebbe essere simile a cosa<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/6649" target="_blank"> @nathan-clark</A> sta facendo, ma non ne sono sicuro.</P>
<P>Un'altra alternativa è che invece di implementare la copia per te (qualcuno restrittivo), posso semplicemente implementare uno script di post-elaborazione molto flessibile che puoi definire. Supponiamo di definire una funzione che prende un riferimento a ZipArchive e puoi manipolarla come meglio credi. Questa soluzione probabilmente richiede il minimo cambiamento da parte tua e me.</P>
<P>Ci scusiamo per tutte le divagazioni, ma speriamo che uno di questi suggerimenti ci metta nella giusta direzione!</P></LINGO-BODY><LINGO-SUB id="lingo-sub-386453" slang="en-US">Re: Gestione componenti aggiuntivi</LINGO-SUB><LINGO-BODY id="lingo-body-386453" slang="en-US"><P><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/1855" target="_blank">@Justin_Chilton</A> , sì, stai descrivendo qualcosa di molto simile a quello che faccio io. Consentitemi di elaborare un po', mostrando cosa succede se utilizzo il Gestore componenti aggiuntivi. (E sto ancora esplorando e imparando come funziona, quindi perdonami se sto rappresentando male cosa può fare!)</P><P> </P><P>Dopo aver creato il componente aggiuntivo, dove ho lasciato che la cartella di origine fosse Addin_1\Source, ho un file che chiameremo Addin_1.jmpaddin che si trova nella cartella Addin_1\Release.</P><P>Lo rinomino in un'estensione .zip, lo apro e do un'occhiata. Trovo che assomigli a questo:</P><P> </P><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Addin_Initial_Folder_Structure.png" style="width: 217px;"><span class="lia-inline-image-display-wrapper" image-alt="Addin_Initial_Folder_Structure.png" style="width: 217px;"><img src="https://us.v-cdn.net/6038925/uploads/images/32932i1AD28B843A933FC3/Addin_Initial_Folder_Structure.png" role="button" title="Addin_Initial_Folder_Structure.png" alt="Addin_Initial_Folder_Structure.png" /></span></SPAN></P><P> </P><P>(Ci sono anche un paio di file XML che uso per gestire alcune cose, ma possiamo saltarli per semplicità)</P><P>Quindi cambio manualmente lo zip creando una nuova cartella all'interno di .zip e trascinando tutti i file Source_1, ecc. in quella nuova sottocartella. Lascio addin.jmpcust e add.def nel livello root, perché altrimenti il componente aggiuntivo non verrà installato. Lascio anche CustomMetaData.jsl nel livello principale perché suppongo che sia dove deve essere.</P><P>Quindi trascino nel .zip la cartella CommonFiles di cui ho anche bisogno. La mia struttura Zip finale si presenta così:</P><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Addin_Final_Folder_Structure.png" style="width: 220px;"><span class="lia-inline-image-display-wrapper" image-alt="Addin_Final_Folder_Structure.png" style="width: 220px;"><img src="https://us.v-cdn.net/6038925/uploads/images/32933i3C14631B2CA97BE7/Addin_Final_Folder_Structure.png" role="button" title="Addin_Final_Folder_Structure.png" alt="Addin_Final_Folder_Structure.png" /></span></SPAN></P><P>Ho quindi un'altra cosa da fare: le righe <ACTION type=""path""> nel file .jmpcust devono essere modificate ora. Mentre si dice</ACTION></P><P>$ADDIN_HOME(com.xyz)\Source_1\Code_1.jsl</P><P>Ho bisogno di cambiarlo per leggere</P><P>$ADDIN_HOME(com.xyz)\Addin_1\Source_1\Code_1.jsl</P><P>Cosa che posso fare con una ricerca / sostituzione in un editor di testo.</P><P>Dopo aver eseguito tutti questi passaggi, posso quindi distribuire e installare il componente aggiuntivo e tutto funziona.</P><P> </P><P>Per il tuo ultimo commento, poiché questo componente aggiuntivo è una suite di strumenti, ognuno ha la propria sottocartella "Source" all'interno di Addin_1, quindi per fare riferimento ai CommonFiles, le mie istruzioni Include() in Code_1.jsl ecc. hanno un extra "..\" per salire di un livello aggiuntivo per trovare correttamente i file di inclusione.</P><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-385991" slang="en-US">Re: Gestione componenti aggiuntivi</LINGO-SUB><LINGO-BODY id="lingo-body-385991" slang="en-US"><P><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2173" target="_blank">@tsl</A><BR /> Faccio qualcosa di simile con subversion e utilizzo il gestore dei componenti aggiuntivi per pubblicare qualsiasi attività Repo. Una volta eseguito il commit di tutto il codice, esporto in una posizione che diventa la "fonte" per il componente aggiuntivo (una cartella locale o di rete). Personalmente, gestisco i miei file .jmpcust e .def nel mio repository in modo che anche quelli vengano esportati, ma puoi semplicemente esportare il codice e creare i file .def e .jmpcust con Addin Manager (creerà i file nella cartella di origine e, nel mio caso, l'esportazione di nuovi elementi dal repository sovrascriverà solo i file esportati).<BR /><BR /> Quindi uso il suo strumento per gestire tutto il confezionamento, l'archiviazione e la distribuzione nelle mie cartelle di produzione (questo è sempre ciò che ha richiesto più tempo per essere eseguito manualmente, comunque). Per semplificarmi le cose, dato che avevo anche molti componenti aggiuntivi gestiti prima di Gestione componenti aggiuntivi, ho anche modificato manualmente il file jmp che memorizza tutte le informazioni (componente aggiuntivo, nome, cartelle di origine, ecc.), quindi avevo tutti i miei componenti aggiuntivi pronti andare quando ho avviato il componente aggiuntivo anziché aggiungerli manualmente tramite quell'interfaccia).</P><P> </P><P>Oltre al componente aggiuntivo stesso, sono incluse anche alcune funzioni che ho aggiornato per consentire ai miei utenti di ricevere notifiche e aggiornare automaticamente i componenti aggiuntivi quando le nuove versioni vengono messe in produzione.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-385979" slang="en-US">Re: Gestione componenti aggiuntivi</LINGO-SUB><LINGO-BODY id="lingo-body-385979" slang="en-US"><P><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2173" target="_blank">@tsl</A> , che aspetto ha la struttura del file per il componente aggiuntivo quando lo comprimi manualmente?</P>
<P>Immagino dal momento che il tuo codice include percorsi relativi alla directory CommonFiles che il tuo componente aggiuntivo assomigli a questo?<SPAN style="font-family: inherit;">La cartella Release non è inclusa nel file del componente aggiuntivo?</SPAN></P>
<P> </P>
<PRE>Addin_1.jmpaddin
|_Addin
|_Source<BR /> |_Code.jsl<BR /> |_Release<BR /> |_Something?<BR /> |_CommonFiles</PRE>
<P>Nella struttura sopra, la cartella 'Addin' esiste solo per mantenere la stessa struttura delle cartelle per i tuoi percorsi relativi. È questo il tuo caso?</P>
<P>Penso di poter aggiungere un nuovo percorso di directory opzionale che può essere copiato nel file del componente aggiuntivo come parte del processo di compilazione. Tuttavia, dobbiamo ancora risolvere il problema della directory. Per risolverlo, l'idea che ho è quella di aggiungere un piccolo snippet per impostare la posizione della directory CommonFiles e usarla per tutti i file comuni inclusi. In alternativa, puoi creare una funzione 'IncludeCommonFile()' che ha provato a includere dal percorso di produzione e il failover al percorso di sviluppo</P>
<P> </P>
<PRE><CODE class=" language-jsl">commonFilesDir = Directory Exists("../CommonFiles/",
"../CommonFiles/", // production location
"../../CommonFiles/" // development location
);
//or
IncludeCommonFile = Function({file},
Try(Include("../CommonFiles/" || file), Include("../../CommonFiles/" || file));
);
Questo ti darebbe la seguente struttura e *penso* funzionerebbe se dovessi aggiungere una funzione di cartella condivisa. L'unico inconveniente che mi viene in mente sarebbe che se si dispone di cartelle aggiuntive all'interno di Source, la funzione Include non funzionerebbe o avresti bisogno di "../" aggiuntivi nei tuoi include utilizzando la variabile di directory.
Addin_1.jmpaddin
|_Source
|_Code.jsl
|_CommonFiles
Re: Gestione componenti aggiuntiviCiao @Justin_Chilton ,
Ho appena scoperto il tuo Gestore componenti aggiuntivi e sono incuriosito. Gestisco manualmente i componenti aggiuntivi da anni, fino alla modifica manuale dei file .jmpcust. Vedo l'opportunità di semplificarmi la vita con il gestore dei componenti aggiuntivi. Tuttavia, mi chiedo come farlo supportare ciò che voglio fare.
Mi riferirò all'immagine allegata della struttura delle cartelle proposta. L'idea è che ci sia una cartella contenente il codice JMP, la chiameremo RepositoryRoot qui. Questa cartella si trova in un repository GIT lab ed è condivisa e sincronizzata tra due o più sviluppatori JSL.
Ogni sviluppatore possiede un componente aggiuntivo con nel repository. Chiamiamoli Addin_1 e Addin_2. Tali componenti aggiuntivi si trovano nelle rispettive sottocartelle all'interno del repository.
C'è anche una cartella che chiameremo CommonFiles all'interno del Repository che contiene alcuni file di libreria JSL standard utilizzati da entrambi i componenti aggiuntivi.
Questi file di libreria standard sono inclusi nei singoli componenti aggiuntivi, ad esempio un file JSL all'interno di Addin_1\Source potrebbe avere una riga come
include("..\..\CommonFiles\LibraryFile1.jsl");

Quindi la domanda è: come possiamo sfruttare questa struttura con il Gestore componenti aggiuntivi? Mi imbatto in problemi con due possibili opzioni:
1) Se in Gestione componenti aggiuntivi lascio che "RepositoryRoot" sia la cartella di origine, crea Addin.def e Addin.jmpcust in RepositoryRoot. Questo non funziona perché possiamo avere solo un addin.def in una determinata cartella di origine e vogliamo avere componenti aggiuntivi separati con sviluppatori separati, ma condividere il codice.
2) Se lascio che "RepositoryRoot\Addin_1\Source" sia la cartella di origine, addin.def e addin.jmpcust vengono creati nella cartella di origine della sottocartella di Addin_1. E va bene perché è contenuto nella sua cartella. MA, non riesco a vedere alcun modo per aggiungere la cartella CommonFiles da due livelli nell'albero delle directory al componente aggiuntivo. Il codice richiede quella cartella di file comuni, ma vogliamo mantenerla al livello superiore per la condivisione e la sincronizzazione del codice.
Comprendo che alla fine la cartella "CommonFiles" deve essere duplicata in ogni file .jmpaddin finale prima che il componente aggiuntivo venga rilasciato.
La speranza era che potessimo trovare una funzionalità di gestione dei componenti aggiuntivi in grado di gestirla per noi. La nostra alternativa consiste nel creare manualmente il file .zip e impostare la struttura delle cartelle nel modo in cui ne abbiamo bisogno, quindi modificare l'estensione in .jmpaddin prima della pubblicazione.
Se hai idee o consideri che il gestore dei componenti aggiuntivi supporti questa funzionalità, sarebbe fantastico.
grazie molto
Tom
Re: Gestione componenti aggiuntiviGrazie per la risposta @Justin_Chilton ! Ho finito per applicare un tema leggero per jmp per evitare del tutto il problema del colore. Proverò i tuoi suggerimenti, facendo clic sul tasto Esc per risolvere il ritardo.
Re: Gestione componenti aggiuntiviCiao @alavy ,
Non sono sicuro di cosa stia succedendo con il tempo di risposta lento. Dovrò fare ulteriori indagini per vedere se si tratta di un problema con il mio componente aggiuntivo o un problema con JMP. Tuttavia, ho trovato una soluzione decente. La prima volta che fai clic su una casella di modifica del testo, tieni premuto il tasto Esc finché il testo non è più a fuoco. Ora tutte le caselle di modifica dovrebbero funzionare senza alcun ritardo dopo aver fatto clic su di esse.
Per quanto riguarda la combinazione di colori, non sono sicuro di cosa potrebbe causare questo. Qualsiasi versione del componente aggiuntivo dopo la 2.5 dovrebbe avere una colorazione adeguata per i temi scuri. Penso che l'unico modo per riprodurre quel problema sia passare dal tema chiaro a quello scuro mentre JMP è aperto. Ottengo sempre la vista qui sotto con il tema grigio.

Re: Gestione componenti aggiuntiviEhi @Justin_Chilton ,
Sto usando la v2.9 del componente aggiuntivo su JMP 15.1 in esecuzione su MacOS. Incontro un tempo di risposta MOLTO lento ogni volta che devo inserire del testo in una qualsiasi delle caselle di testo del componente aggiuntivo. Questo è così lento da rendere inutilizzabile il componente aggiuntivo.
Un secondo problema più piccolo è che nessuna delle combinazioni di colori funziona correttamente con JMP impostato in modalità oscura. Il colore del testo nelle caselle di testo è troppo chiaro e non può essere letto rispetto al colore di sfondo.

Re: Gestione componenti aggiuntivi@Justin_Chilton Credo di avere accesso in scrittura poiché posso vedere che il vecchio componente aggiuntivo è stato archiviato correttamente e il nuovo componente aggiuntivo è stato aggiornato, ma vedo ancora l'errore. Non sono sicuro di quale passaggio in particolare non è riuscito. Per quanto riguarda l'unità di rete montata, sfortunatamente probabilmente non sono approfondita su quella. Non sono sicuro di quello stato, ma forse posso chiedere ai miei colleghi di saperne di più.
Re: Gestione componenti aggiuntivi@Djthin , sembra molto probabilmente correlato al fatto che si tratta di una posizione di sharepoint. Puoi confermare di avere accesso in scrittura a quella posizione creando un file in Esplora file? Anche se si dispone dell'autorizzazione, JMP potrebbe non disporre dell'autorizzazione come applicazione. Stai utilizzando un normale percorso di rete o stai salvando tramite un'unità di rete montata? Il montaggio del server sharepoint come unità di rete può risolvere i problemi relativi alle autorizzazioni, poiché JMP può semplicemente salvare sull'unità montata. Con il normale percorso di rete, potrebbero essere necessarie le credenziali, cosa che JMP non supporta.
Re: Gestione componenti aggiuntiviGrazie per aver chiarito Justin!
Domanda di follow-up, ricevo il seguente messaggio di errore mentre stavo tentando di eseguire la distribuzione in produzione. La cartella di destinazione è in realtà un punto di condivisione. Non sono sicuro se questo è il motivo o forse c'è una soluzione alternativa.
Messaggio di errore:
{"File non aperto in modalità scrittura. "(1, {1}, 2, "Salva file di testo", Salva file di testo /*###*/(percorso file, str))}
Errore: il file non si apre in modalità di scrittura.
1 volta(e).
Indici della tabella dei dati: 1
Tipo: errore
Nome funzione: Salva file di testo
Funzione in esecuzione: Salva file di testo /*###*/(percorso file, str)
Stack di chiamate:
deploySelected
Re: Gestione componenti aggiuntivi@Djthin ,
Consiglierei di inserire l'istruzione in ogni comando per avere il controllo ogni volta che viene utilizzato il componente aggiuntivo e non ogni volta che l'utente avvia JMP. Inoltre, si sono verificati problemi con l'aggiornamento dei componenti aggiuntivi all'avvio, quindi farlo quando un utente fa clic e il comando del componente aggiuntivo è un modo più sicuro per farlo.
Re: Gestione componenti aggiuntivi@Justin_Chilton posso chiarire una risposta che hai fornito a Sebastien in precedenza? Quindi, l'istruzione di aggiornamento automatico (sotto) funzionerà se la inserisco nello "Script di avvio" (istantanea)? Oppure dovremmo includere solo l'istruzione di aggiornamento automatico sotto ogni script di comando?
Include( "$ADDIN_HOME(com.jmp.myaddin)\updateCheck.jsl" );
com.jmp.juchil.addinmanager:checkForUpdate();

Grazie
Daniele
Re: Gestione componenti aggiuntiviConfermato, funziona di nuovo, grazie!
Re: Gestione componenti aggiuntiviGrazie @pauldeen .Penso che ci fossero diversi fattori che si scontravano per questo. Per uno, l'errore dovrebbe essere risolto nella versione finale di JMP 16.0, ma era presente per EA8. Inoltre, questo errore probabilmente si verifica perché le impostazioni internazionali non supportano il formato della data che ho usato. Per risolvere questo problema ed essere più compatibile con le impostazioni locali, ho aggiornato alcuni luoghi in cui formatto le date per utilizzare le impostazioni locali Date Time invece di formati specifici. Questo dovrebbe correggere l'errore e inserire le date in un formato più amichevole.
Re: Gestione componenti aggiuntiviGrazie per la correzione 2.8 sulle cartelle!
Ne ho uno nuovo per te:
Gestione componenti aggiuntivi aperto, selezionato un componente aggiuntivo:

Esecuzione di JMP 16EA8.
Nessun problema con la stessa cosa su JMP 15.2.0 entrambi sotto Windows 10
Re: Gestione componenti aggiuntivi@Justin_Chilton Grazie! Lo proverò.
Re: Gestione componenti aggiuntivi@pauldeen , ho appena caricato una nuova versione (v2.8) che risolve il problema della sottocartella che stavi vedendo. Ho anche aggiunto un'opzione di casella di controllo per creare automaticamente una cartella per te, come inizialmente previsto che funzionasse.
Re: Gestione componenti aggiuntivi@Sburel , Puoi aggiungere quel codice ovunque desideri verificare la presenza di un aggiornamento, ad esempio all'inizio di un comando di una voce di menu. Ciò potrebbe fare in modo che quando un utente fa clic sul comando, verificherà la presenza di una nuova versione prima di avviare il componente aggiuntivo.
Se ricordo bene, si è verificato un problema con l'utilizzo di questo codice nel file addinLoad.jsl, che ne avrebbe causato il controllo all'avvio di JMP, ma si sono verificati problemi con la reinstallazione del componente aggiuntivo durante il componente aggiuntivo è ancora in fase di caricamento. Questo problema può o non può essere ancora un problema.
-Giustino
Re: Gestione componenti aggiuntivi@Justin_Chilton
Aggiunta davvero interessante. Funziona davvero bene.Tuttavia, ho faticato a utilizzare la funzione di aggiornamento automatico. In particolare, sono confuso con il file/il percorso appropriato per aggiungere il seguente frammento di codice
Include( "$ADDIN_HOME(com.jmp.myaddin)\updateCheck.jsl" );
com.jmp.juchil.addinmanager:checkForUpdate();
Migliore
Sebastiano
Re: Gestione componenti aggiuntivi@Justin_Chilton Ah sì, la creazione di una cartella vuota ti porta oltre questa schermata. Il nome della cartella sembra non essere importante, solo il fatto che sia vuota.
Durante i test ho trovato questo altro bug:
Se prendo il tuo Add-In Manager v2.7.jmpaddin e creo la cartella vuota, quindi la carico in questo modo, supero la schermata di aggiunta ma con un grosso errore: lo stesso accade con altri componenti aggiuntivi che hanno sottocartelle al loro interno .

Re: Gestione componenti aggiuntivi@pauldeen La cartella di origine è dove verrà decompresso anche il file jmpaddin (probabilmente avrei dovuto creare automaticamente la cartella, ma suppongo di no). Suggerisco di creare una cartella chiamata "ASM Training Material" all'interno della cartella "Desktop" e di impostarla come cartella di origine. La cartella di origine non può contenere nulla perché finirebbe per essere compresso nel componente aggiuntivo.
Re: Gestione componenti aggiuntivi@Justin_Chilton Quando si aggiunge un componente aggiuntivo da un file .jmpaddin esistente, abbiamo un bug in questa schermata:

Non puoi lasciare vuota la cartella di origine e se metti qualcosa lì viene visualizzato un avviso che deve essere vuoto quando si avvia da un file jmpaddin..
Re: Gestione componenti aggiuntivifunziona come un incantesimo. Grazie Henning
Re: Gestione componenti aggiuntiviCiao @vohwinkelh0 ,
Grazie per aver segnalato questo. Ho visto quell'errore alcuni giorni fa e il tuo commento me lo ha ricordato, quindi finalmente sono stato in grado di rintracciare il problema in un bug con una delle funzioni di file/directory.
Ho aggiornato il componente aggiuntivo in questa pagina per risolvere questo problema per ora, ma ho anche notato il problema in JMP in modo che possiamo risolverlo prima del rilascio di JMP 16.
Grazie,
Giustino
Re: Gestione componenti aggiuntiviGiustino,
Ricevo un errore con il tuo componente aggiuntivo come parte dei programmi JMP16EA. Vuoi che presenti una segnalazione di bug lì o dovrei pubblicarla qui?
Henning
Re: Gestione componenti aggiuntiviGrazie mille per la condivisione...la proverò la prossima settimana.
Re: Gestione componenti aggiuntivi@guillaumebugnon Quindi uso questa funzione in un ciclo for per crittografare gli script.
encryptScript = Function({filepath},
{defaultLocal},
errortxt = "";
winCount = N Items (Window ());
scriptWin = Open (filePath);
scriptWin << Bring Window to Front;
Wait (1);
Main Menu ("Encrypt Script");
windowList = Window ();
encryptedWin = windowList[nitems(windowList)]; // get reference to encrypted script window (i.e. the last window)
//TODO: Implement without Try
Try (
encryptedScript = encryptedWin[Script Box(1)] << Get Text;
save text file(filePath, encryptedScript);
ConsoleMsg("File Encrypted: "||filepath); // hoping this goes to stdout
,
errortxt ||= char(exception_msg) || "\!r\!n";
);
Try (scriptWin << Close WIndow());
Try (encryptedWin << Close WIndow());
Return (errortxt)
);
Poi ne ho un altro auto script che scorre e digita la password e preme invio.
Non è sicuramente una soluzione perfetta e la tua elemento della lista dei desideri sarebbe molto meglio.
Re: Gestione componenti aggiuntivi@pauldeen ,
Grazie per aver segnalato il problema con i componenti aggiuntivi del menu personalizzato. Ho appena caricato una nuova versione che dovrebbe risolvere questo problema.
-Giustino
Re: Gestione componenti aggiuntivi@Justin_Chilton grazie per la tua risposta.
potrebbe essere utile avere una funzione jsl capabale in grado di crittografare altri file jsl (o qualche altro modo per farlo).
ho guardato @vince_faller presentazione questa mattina (ora francese). Ben fatto.
Abbiamo anche alcuni processi Devops ma dobbiamo automatizzare di più.
Guillaume
Re: Gestione componenti aggiuntivi
@guillaumebugnon ,
@vince_faller potrebbe avere alcuni suggerimenti sulla crittografia degli script. Tuttavia, avrei bisogno di aggiungere una funzionalità a Gestione componenti aggiuntivi per poter consentire la modifica dei file da aggiungere prima del processo zip.
Penso @vince_faller ieri ho fatto anche una presentazione/webcast che potrebbe esserti utile qui: https://www.brighttalk.com/webcast/18305/412912
- Giustino
Re: Gestione componenti aggiuntiviCiao a tutti,
Qualcuno ha suggerimenti o esperienza per crittografare gli script prima che vengano compressi nel file jmpaddin?
Grazie
Saluti,
Guillaume
Re: Gestione componenti aggiuntivi
In esecuzione su JMP15 Windows 10, Addin Manager non può più analizzare la struttura del menu da un componente aggiuntivo esistente.
Per riprodurre: crea un nuovo componente aggiuntivo e rinomina il menu di livello superiore usando personalizzato. Crea un comando e salva la definizione del componente aggiuntivo.
Chiudi il gestore dei componenti aggiuntivi, riapri e prova a vedere la scheda delle voci di menu per il componente aggiuntivo appena creato (assicurati di visualizzarlo prima di guardare qualsiasi altra struttura del menu dei componenti aggiuntivi).
Per farlo funzionare, crea un secondo componente aggiuntivo in cui non modifichi la voce di menu in alto ma la lasci al valore predefinito "Componenti aggiuntivi". Salva questo componente aggiuntivo. Chiudi il gestore dei componenti aggiuntivi, riapri, prima visualizza la struttura del menu di quello con il nome di livello superiore predefinito e poi vai a visualizzare la struttura del menu di quello personalizzato. Tutto funziona di nuovo.
Re: Gestione componenti aggiuntivi#2 è iniziato con JMP15/OSX15, ma non ho ancora provato 2.4 e ti risponderò.
Re: Gestione componenti aggiuntiviGrazie, Giustino!!
Re: Gestione componenti aggiuntiviCiao @john_madden ,
Grazie per averci contattato e ci scusiamo per il ritardo.
Il numero 1 dovrebbe essere affrontato nella v2.4 che ho appena caricato qui.
Per il n. 2, non sono in grado di replicare questo problema su Windows, ma indagherò ulteriormente su Mac. Sai per caso se questo problema è iniziato con un numero di versione JMP specifico (es. JMP 14/15) o con una versione macOS (10.14/15) o è sempre successo per te?
Grazie,
Giustino
Re: Gestione componenti aggiuntiviCiao Giustino,
Sto riscontrando un paio di problemi con Gestione componenti aggiuntivi in JMP 15/Mac OS 10.15.
(1) Le opzioni della versione JMP massima/minima [banale] devono includere 15
(2) [meno banale] L'inserimento di testo nelle caselle di testo in un certo numero di riquadri all'interno del manager sembra (parzialmente) interrotto. Posso inserire del testo (ad es. Nome componente aggiuntivo, Versione, ecc.) incollando, ma non digitando.
Grazie.
John Madden
Re: Gestione componenti aggiuntiviSalve, ho iniziato a utilizzare Gestione componenti aggiuntivi dopo molti anni di gestione manuale delle modifiche. Tuttavia, di recente ho riscontrato un problema con le voci di menu non visibili che ho aggiornato di recente a JMP 14.3.0, non sono sicuro che sia correlato. Non ho avuto problemi con questo prima.
Come puoi vedere, non ci sono errori nella build o nella distribuzione contrassegnata, quindi non sono sicuro di ciò che sta accadendo.
Qualsiasi aiuto o suggerimento è apprezzato in quanto non voglio davvero doverlo ricostruire da zero.
Saluti,
Derek.

Re: Gestione componenti aggiuntiviCiao Adamo,
Ci scusiamo per la risposta ritardata. In base al messaggio di errore visualizzato durante la rimozione del tentativo, sembra che la mia ipotesi sul fatto che lo script updateCheck sia in grado di trovare il file customMetadata fosse corretta. Vedo dove hai il '
aa = Includi ( "$ADDIN_HOME(com.jmpTest.myjmpaddin)\customMetadata.jsl" ) ;' parte del tuo copione. Tuttavia, in realtà non è necessario includere il file lì. Invece, vuoi cambiare l'inclusione all'interno dello script updateCheck.jsl. Dovrebbe essere simile al seguente (attorno alla riga 11).
customMetadata_aa = Include( "<SPAN>$ADDIN_HOME(com.jmpTest.myjmpaddin)\</SPAN>customMetadata.jsl" );
Fammi sapere se hai altre domande.
Saluti,
Giustino
Re: Gestione componenti aggiuntiviCiao Giustino,
Poiché questo è il mio primo componente aggiuntivo e sono un bambino per quanto riguarda l'esperienza JMP (circa 11 mesi di utilizzo), potrei iniziare a fare semplici domande ora mentre lavoro attraverso l'attivazione della funzione di controllo degli aggiornamenti.Ho creato un semplice componente aggiuntivo di test per concentrarmi solo sulla funzione di aggiornamento in modo da poter comprendere questa funzionalità prima di applicarla al mio programma più robusto.
IL COPIONE:
aa = Include( "$ADDIN_HOME(com.jmpTest.myjmpaddin)\customMetadata.jsl" );
Include( "$ADDIN_HOME(com.jmpTest.myjmpaddin)\updateCheck.jsl" );
com.jmp.juchil.addinmanager:checkForUpdate();
New Window ("Test 3",
Panel Box ("Test 3",
Text Box("Test 3")
)
);
Rispondendo alle tue domande:
- Ho impostato la preferenza "Crea file di metadati"?
- Avevo selezionato la casella di controllo per "Crea file di metadati", ma non avevo il codice di metadati personalizzato contenente l'istruzione include all'interno del mio script.Ho aggiunto questa riga di codice alla riga immediatamente prima del codice di controllo dell'aggiornamento, come puoi vedere sopra, ma non ha risolto il problema.
- Qual è la struttura della directory del mio componente aggiuntivo?
- Nella sezione centrale della finestra Gestione componenti aggiuntivi, nella scheda File, addin.def, addin.jmpcust, customMetadata.jsl e updateCheck.jsl esistono tutti nella stessa cartella.Quella cartella esiste nella stessa cartella principale del file addin stesso (.jmpaddin).
- Questa cartella esiste sulla mia unità C, NON sul server.Avrei dovuto salvare anche questi file sul server?
- Nella sezione inferiore, scheda Prod, ho tutte e tre le opzioni di salvataggio in una posizione del server.Ognuno di loro ha la propria cartella e tutte e tre le cartelle esistono all'interno della stessa cartella principale.
- ARCHIVIO: contiene solo le precedenti iterazioni del componente aggiuntivo durante la distribuzione.
- META – contiene solo il file PublishedAddins.jsl
- PROD – contiene solo il file di installazione del componente aggiuntivo .jmpaddin
- Quale messaggio di errore ricevo quando commento "Try()"
- Ricevo il messaggio di errore "Errore con il file: il percorso non è valido: \customMetadata.jsl"
- Ho provato a cambiare il percorso della posizione sopra dalla lingua $ADDIN_HOME... alla posizione esatta sul mio drive C come viene chiamato nella scheda File (sezione centrale).Non ha aiutato, ho ricevuto lo stesso messaggio di errore.
Grazie per il vostro aiuto!
-Adamo
Re: Gestione componenti aggiuntiviCiao @Adam_R ,
Grazie per tutto il lavoro sui dettagli! Alcune domande e cose da provare:
- Hai la preferenza "Crea file di metadati" impostata nel gruppo di preferenze "Metadati personalizzati"? Questo file è necessario per il passaggio dello script di aggiornamento.
- Com'è la struttura della directory per il tuo componente aggiuntivo? Lo script chiama "com.jmp.juchil.addinmanager:checkForUpdate" in una cartella di livello inferiore? In tal caso, il file updateCheck.jsl si aspetta che si trovi nella stessa cartella da cui viene chiamata la cartella, rendendo la funzione non funzionante. Una soluzione alternativa è aggiungere un altro file JSL al livello principale del tuo componente aggiuntivo (lo stesso di customMetadata.jsl e updateCheck.jsl) che chiama la funzione updateCheck e include semplicemente quel file nello script JSL di livello inferiore. Un'altra opzione è modificare lo script updateCheck.jsl per utilizzare '$addin_home(com.jmp.myaddin)/customMetadata.jsl' invece del solo nome del file relativo. Se questo è il problema, posso aggiornare il componente aggiuntivo per renderlo più flessibile dove non è così dipendente dalla directory predefinita di dove chiami la funzione.
- Lo script updateCheck.jsl è implementato in modo che fallisca silenziosamente usando un Try() in modo da non rovinare il flusso di lavoro del tuo componente aggiuntivo. Quindi, se nessuno dei primi due suggerimenti risolve il problema, potresti commentare Try() all'interno del file updateCheck.jsl e farmi sapere quale messaggio di errore ricevi quando tenti di verificare la presenza di un aggiornamento?
Fatemi sapere se avete domande.
Saluti,
Giustino
Re: Gestione componenti aggiuntiviCiao Giustino,
Add-In Manager v2.3 funziona meravigliosamente in tutti gli aspetti per me, tranne uno, non riesco a ottenere updateCheck per inviare correttamente gli aggiornamenti.Alcuni fatti:
- Il mio codice al di fuori del controllo di aggiornamento funziona correttamente.
- Le mie cartelle PROD "Metadata" e "Deployment" si trovano entrambe nelle posizioni del server nella stessa cartella principale e ho verificato che gli utenti abbiano accesso a entrambe.
- Nella sezione Preferenze, ho selezionato "Includi script di controllo aggiornamento" e ho copiato l'istruzione di inclusione fornita in questa sezione nel mio codice.Ho modificato la sezione ID del componente aggiuntivo di questa istruzione da (com.jmp.myaddin) in modo che corrisponda al mio componente aggiuntivo.Non ho modificato nient'altro all'interno di questa dichiarazione e non ho modificato nulla all'interno dello script updateCheck.jsl.
- Quando si apportano modifiche al componente aggiuntivo e si esegue la distribuzione in PROD, ho verificato che "pubDate" all'interno del file PublishedAddins.jsl situato nel file del server dei metadati è cambiato a ogni distribuzione
- Ho chiesto agli utenti di scaricare una versione esistente del file che si trova nella cartella PROD, chiudere JMP, riaprire JMP ed eseguire il componente aggiuntivo con successo.
- Ho distribuito un'iterazione più recente in PROD, verificato che pubDate sia stato modificato e richiesto all'utente precedente di riaprire JMP ed eseguire il componente aggiuntivo esistente.All'utente non viene mai richiesto di aggiornare il componente aggiuntivo.
- Lo stesso utente è andato nella cartella PROD e ha reinstallato il componente aggiuntivo, che ha aggiornato correttamente il componente aggiuntivo.
Re: Gestione componenti aggiuntiviCiao Aubrey,
L'istruzione Include all'interno dello script updateCheck.jsl utilizza un percorso relativo al file customMetadata.jsl. Finché entrambi i file si trovano nella stessa cartella, dovrebbe funzionare correttamente. Che aspetto ha la struttura delle cartelle per il tuo componente aggiuntivo?
Sentiti libero di inviarmi un messaggio privato se hai bisogno di inviare qualcosa che non vuoi su questo post pubblico.
Grazie,
Giustino
Re: Gestione componenti aggiuntiviGiustino,
Ho un problema con la funzione di aggiornamento automatico.Ho ricondotto il problema allo script updateCheck.jsl.
La riga seguente ha esito negativo, quindi l'istruzione try termina.
customMetadata_aa = Include("customMetadata.jsl" );
Se aggiungo quanto segue al percorso del file, non ci sono problemi e sembra che le cose funzionino come pubblicizzato.
$ADDIN_HOME(my_addin_here)
Dovrei farlo per ogni componente aggiuntivo o dovrebbe essere automatico?
Grazie,
Aubrey
Re: Gestione componenti aggiuntiviGiustino,
La versione 2.3 funziona come un incantesimo sul mio Mac!Grazie!!!
John
Re: Gestione componenti aggiuntivi@Justin_Chilton Grazie! Ci proverò.
Re: Gestione componenti aggiuntivi@john_madden ,
Grazie per aver segnalato questo! Sembra che tu stia utilizzando un Mac e devi aver rinominato o eliminato una delle tue cartelle di origine. Ho aggiunto un controllo per questo ora (v2.3), quindi non dovrebbe più fallire.
Re: Gestione componenti aggiuntivi@nathan-clark ,
Se hai ancora la versione 1.3 del componente aggiuntivo, puoi modificare l'ID e il nome della voce di menu per quella versione e utilizzarlo insieme alla nuova versione. La versione 1 consente di utilizzare le caselle di controllo per creare più moduli alla volta e dovrebbe essere in grado di collegarsi con la tabella di dati utilizzata dalla versione 2. Ci sono state molte modifiche all'architettura nella v2.0, quindi sfortunatamente ho dovuto rimuovere le caselle di controllo. Ce l'ho nella mia lista per aggiungerli di nuovo in futuro.
Re: Gestione componenti aggiuntiviCiao Giustino,
In JMP 14.0.1, continuo a ricevere questo errore:
Messaggio di errore: {"l'argomento dovrebbe essere elenco"(1, 2, "Concat Items", Concat Items /*###*/(errorList, " "))} Errore: l'argomento dovrebbe essere elencato 1 volta(i). Tipo: errore Nome funzione: Concat Items Funzione in esecuzione: Concat Items /*###*/(errorList, " ") Stack di chiamate: getLastModifiedDateOfNewestFile getStatusIcon refreshAddinTableBox initialize
Qualche idea? Questo è Manager 2.2.
John
Re: Gestione componenti aggiuntivi@Justin_Chilton
Grazie ancora per questo componente aggiuntivo. Mi sto finalmente aggiornando con la nuova versione e approfitto di alcuni dei tuoi miglioramenti su ciò che stavo facendo manualmente
La mia unica domanda, e non sono sicuro che ciò sia possibile, è di essere in grado di creare più componenti aggiuntivi contemporaneamente. So che i pannelli inferiori per le informazioni e le directory sono specifici per i componenti aggiuntivi, ma forse quelli potrebbero scomparire se viene selezionato più di un componente aggiuntivo. Quindi tutti i selezionati potrebbero essere DEVd/Deployed/etc.
Gestisco oltre 40 componenti aggiuntivi in questo momento e spesso eseguo aggiornamenti in batch, quindi essere in grado di eseguire un sacco di tutti i componenti aggiuntivi contemporaneamente sarebbe fantastico!
Re: Gestione componenti aggiuntiviGrazie per questo! Ora la creazione e l'aggiornamento dei componenti aggiuntivi è così semplice che sviluppo e miglioro i miei componenti aggiuntivi più spesso che nei secoli bui prima di questo strumento.
Re: Gestione componenti aggiuntiviVoglio essere così bravo e caritatevole e ringraziare gli sviluppatori JMP per la 13a versione di un programma software con cui amo insegnare. Ce l'ho dalla versione 5.0, con i suoi manuali cartacei ben congegnati e ad essere sincero non è stato aggiunto nulla che abbia alcun valore per me da quella versione. Ma amando la versione 5.0 come ho fatto io, ho aggiornato felicemente e volentieri ogni anno. E poi il Analisi ROC-Curva e area parziale sotto la curva è arrivato lo script che era bellissimo in JMP12. Ho impostato una sessione di insegnamento per mostrare ai miei studenti le curve ROC.... e ho aggiornato alla v13... e ora non mostra le curve. boh.
Re: Gestione componenti aggiuntiviCiao @tejvishnu ,
Sì, per installare questo componente aggiuntivo è necessario JMP 13. Sfortunatamente, non sono stato in grado di rendere questo componente aggiuntivo compatibile con JMP 12. Ho aggiornato il post per includere queste informazioni.
Grazie,
Giustino
Re: Gestione componenti aggiuntiviIl componente aggiuntivo non sembra essere installato su my computer. Questo sembra essere il problema con alcuni dei componenti aggiuntivi caricati di recente. Questo componente aggiuntivo richiede JMP-13?
Ho JMP 12.2 sul mio computer.