Caching dello script Addin JMP?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Sto lavorando allo sviluppo di una serie di script per un componente aggiuntivo JMP ....
Al momento, abbiamo 2 versioni di pacchetti dello stesso addin .... Uno per DEV e uno per la produzione ..
La maggior parte degli utenti avrebbe solo la versione PRO installata ...
Ma noi sviluppatori e i nostri tester possono avere sia la versione PRO che i componenti aggiuntivi DEV installati ...
Ovviamente, gli script contenuti negli addin hanno lo stesso nome ... ma le variabili sono diverse, come AddinName e / o Nome DSN .... e ovviamente la versione DEV potrebbe avere un codice più recente rispetto alla versione PRO anche se i nomi degli script sono diversi ...
Quello che ho notato finalmente oggi è che JMP (entrambi 9 e 12) sembra memorizzare nella cache la sceneggiatura ??
Sembra che sia in esecuzione lo script del file ADDIN installato più di recente ... quindi se installo il componente aggiuntivo DEV, quindi il componente aggiuntivo PRO ... sembra che non abbia mai eseguito gli script DEV. sembra di caricare sempre gli script dalla directory PRO Addin, non importa quale MENU chiamo lo script da .... Il contrario si verifica quando installo PRO prima e DEV ... :S
1) L'ID e i nomi degli addin sono diversi e unici
2) La directory aggiunta è diversa ...... quindi anche se i nomi degli script nelle diverse directory sono gli stessi, ogni addin ha una ISTANZA diversa dello script nella propria directory ...
2a) questo diventa ancora più evidente quando lancio un PRO Script dal menu PRO ... e guarda il file LOG e vedi che ha eseguito lo script DEV non lo script pro, e sta usando la cartella DEV per gli include!
2b) la definizione del menu jmpcust utilizza $ ADDIN_HOME ("ADDIN-NAME") contro $ ADDIN_HOME ("ADDIN-NAMEDev"), ma sembra ancora eseguire lo script dalla versione di addin installata più di recente (PRO vs DEV)
Es: ho appena eseguito questo script dall'elemento PRO MENU ... Eppure posso vedere che sta eseguendo il codice DEV .. e sembra avere il DEV NameSpace .. ??
strDefaultDir = Ottieni la directory predefinita ();
print ("Incluso:" || strDefaultDir || "MFG360-Common.jsl");
Includi (strDefaultDir || "MFG360-Common.jsl", Solo analisi);
Registrare l'output ...
/ *:
Componente aggiuntivo caricato correttamente: MFG360
Componente aggiuntivo caricato correttamente: MFG360 _Dev
"Incluso: /C:/Users/klockk.AUTH/AppData/Local/SAS/JMP/Addins/MFG360 dev /MFG360-Common.jsl"
Non ho chiamato il codice DEV !! Ho selezionato la voce di menu dal menu MFG360 ... non il menu MFG360_Dev ...
JMP memorizza nella cache i nomi degli script e non segue correttamente ciò che si trova nel file .jmpcust per ogni add-in registrato?
Ri: Caching di script Addin JMP?
Ho riscontrato questo problema sia con JMP9 che con JMP12
I nomi dei menu di livello superiore sono diversi, ma la struttura sottostante è la stessa ...
I file Addin.def specificano ID e nomi diversi
id = MFG360Dev
name = "MFG360_Dev"
supportJmpSE = 0
addinVersion = 1
installAfterSave = 0
minJMPVersion = 9
maxJMPVersion = 12
autoLoad = 1
loadsAtStartup = 1
--vs--
id = MFG360
name = "MFG360"
supportJmpSE = 0
addinVersion = 1
installAfterSave = 0
minJMPVersion = 9
maxJMPVersion = 12
autoLoad = 1
Il file jmpcust ha anche specificato un menu di livello superiore diverso ... e utilizza anche la variabile $ ADDIN_HOME () per indicare il percorso corretto dello script.
Ho pensato che dal momento che il nome MENU ha lo stesso nome per DEV vs PRO che forse JMP si confonde, così li ho cambiati per avere un underscore invece di uno spazio, ma ancora senza fortuna ....
< menu_and_toolbar_customizations="" ="" jm="""> http://www.jmp.com/ns/menu "version =" 3 ">
< insert_in_main_menu="">
< insert_after="">
< nome=""> AIUTO
< menu="">
< nome=""> MFG360 DEV
< caption=""> MFG360 Dev
< menu="">
< nome=""> FAB
< caption=""> Fab
< menu="">
< name=""> LOT HISTORY
< didascalia=""> Storia del lotto
< comando="">
< name=""> STORIA IN-HOUSE
< didascalia=""> Cronologia interna
< action="" type=""path""> $ ADDIN_HOME ( MFG360Dev ) \ Lot_History.jsl
< icon="" type=""none"">
< comando="">
< name=""> OUTSOURCE EQUIPMENT HISTORY
< caption=""> Outsource EQU History
< action="" type=""path""> $ ADDIN_HOME ( MFG360Dev ) \ Outsource_Equipment_History.jsl
< icon="" type=""none"">
--vs.-
< menu_and_toolbar_customizations="" ="" jm="""> http://www.jmp.com/ns/menu "version =" 3 ">
< insert_in_main_menu="">
< insert_after="">
< nome=""> AIUTO
< menu="">
< nome=""> MFG360
< caption=""> MFG360
< menu="">
< nome=""> FAB
< caption=""> Fab
< menu="">
< name=""> LOT HISTORY
< didascalia=""> Storia del lotto
< comando="">
< name=""> STORIA IN-HOUSE
< didascalia=""> Cronologia interna
< action="" type=""path""> $ ADDIN_HOME ( MFG360 ) \ Lot_History.jsl
< icon="" type=""none"">
< comando="">
< name=""> OUTSOURCE EQUIPMENT HISTORY
< caption=""> Outsource EQU History
< action="" type=""path""> $ ADDIN_HOME ( MFG360 ) \ Outsource_Equipment_History.jsl
< icon="" type=""none"">
Ho giocato un po 'con questo, e se vado in View-> ADD-Ins e ho solo uno o l'altro abilitato come un tempo, viene utilizzato il percorso e lo script corretti, ma se li abilito entrambi .. JMP sembra utilizzare $ ADDIN_HOME
Per l'ultimo che ho abilitato (o caricato tramite il file addinRegistry.xml se entrambi sono abilitati all'avvio di JMP ...)
Ri: Caching di script Addin JMP?Ehi, Klockk,
Questo sembra anche un buon candidato per l'apertura di una pista di supporto tecnico per le indagini (e-mail a support@sas.com ).
Quale versione di JMP è questa?
JMP non memorizza nella cache gli script, ma mi chiedo delle didascalie e degli ID delle voci di menu aggiunte dai tuoi componenti aggiuntivi ai menu. Se aggiungi elementi a due diversi sottomenu che hanno lo stesso ID e didascalia, JMP potrebbe eseguire lo script per il componente aggiuntivo DEV anche se hai selezionato la voce di menu per il componente aggiuntivo PROD. Abbiamo apportato una modifica a JMP 12 per cercare di risolvere questa ambiguità, quindi sono sorpreso che lo stiate vedendo in JMP 12, ma forse il vostro caso è leggermente diverso. Se hai un modo per acquisire sullo schermo i tuoi menu personalizzati in modo che possiamo vedere come sono organizzati i tuoi articoli, questo può aiutarci a trovare una soluzione alternativa e ad affrontare eventuali ulteriori carenze nel nostro codice che questo mette in luce. Oppure, se la cattura dello schermo non è possibile, facci sapere qual è la gerarchia delle tue voci di menu e quali sono gli ID e le didascalie degli articoli.
Grazie,
Eric
Ri: Caching di script Addin JMP?Provando questo, sembra semplicemente caricare ed eseguire lo script dall'ultimo componente caricato all'avvio.
Sembra essere direttamente correlato all'ordine in cui vengono caricati i componenti aggiuntivi, che è direttamente correlato all'ordine addinRegistry.xml per i componenti aggiuntivi registrati.
Se il file di registro mostra:
Componente aggiuntivo caricato correttamente: MFG360
Componente aggiuntivo caricato correttamente: MFG360Dev
Quindi o addin eseguirà il codice dal componente aggiuntivo DEV ....
se capovolgo l'ordine nel file addinRegistry, allora JMP esegue gli script dal PRO ADDIN_HOME nonostante quale addin / menu io uso ...
Ho anche scoperto che posso FORCE il set corretto di script da utilizzare andando a Visualizza-> Componenti aggiuntivi e disabilitando uno o l'altro componente aggiuntivo ... e le cose funzionano bene ... ma non posso averli entrambi abilitati allo stesso tempo senza un problema ..