La crittografia causa la mancata esecuzione dello script Creazione mappa personalizzata?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Sto scrivendo un programma in JMP 10 dove un componente integrale è la generazione automatica dei tre file * -XY.jmp, * -Name.jmp e * -Data.jmp che sono necessari per definire le forme della mappa in Graphbuilder usando il Addin Creator Mappa personalizzato. Il ruolo di mappa "Usa nome sagoma" nel file * -Data.jmp sembra voler un percorso assoluto per il percorso del file * -Name.jmp, quindi è necessario salvarlo nella directory "$ TEMP \" e quindi fare riferimento alla sua posizione come tale nella proprietà Map Map del file * -Data.jmp. Funziona perfettamente da settimane senza problemi.
Ora che il resto del programma è pronto per la sua prima distribuzione beta, ho crittografato il codice in preparazione per inviarlo ai membri del gruppo di test. Ora che il programma è crittografato, tuttavia, non è in grado di individuare il file * -Name.jmp che ho salvato, visualizzando così un gruppo di finestre di compilazione di grafici bianchi vuoti e il messaggio "Forme di mappa non trovate: "sotto ciascuno. Ho verificato che il file sia ancora creato nella giusta posizione esattamente come prima, e che se apro il datatable per uno dei grafici vuoti e guardo la proprietà del ruolo map della colonna Name, elenca il file posizione corretta del file lì. Ma per qualche motivo non riesco a farlo visualizzare effettivamente le forme della mappa senza decifrare il file di script.
Se qualcuno ha qualche speculazione sul perché questo sta accadendo, su come può essere corretto, o se c'è un altro modo per puntare il file * -Data.jmp nel file * -Name.jmp senza un percorso assoluto, per favore lasciami conoscere.
Ri: La crittografia causa la mancata esecuzione dello script Creazione mappa personalizzata?Ok, ho trovato un passo nella giusta direzione. Esistono due script principali: uno è una GUI e che chiama la funzione principale "make stuff happen" che crea le mappe personalizzate. Ho creato un componente aggiuntivo che include i due file principali e modificato il codice in modo che tutti gli altri file vengano creati nella cartella del componente aggiuntivo del programma. Il file di script della GUI può essere crittografato correttamente e continua a leggere e scrivere su altri file normalmente. Tuttavia, il codice nello script della funzione principale non può essere crittografato senza il problema delle forme delle mappe mancanti descritto nel post originale.
Quello che poi ho notato è che solo con lo script criptato, il file * -Name.jmp stava assegnando la colonna "Nome" alla proprietà "ruolo mappa", ma / non lo / specificandolo come "Definizione nome forma", è appena uscito vuoto. Questo spiegherebbe perché la modifica della posizione non sembra essere di aiuto, anche se il ruolo della mappa "Nome forma utilizza" sta visualizzando il percorso file corretto e il file viene generato nel posto giusto. Lo script non crittografato specifica bene il ruolo. Qualche idea su come farlo funzionare? Il programma crea un sacco di mappe, quindi deve essere fatto in sequenza, non dopo il fatto. Forse creare una funzione personalizzata o semplicemente prendere una riga di codice e incollarla in un file separato non criptato e includerla nel posto giusto? Questo è un po 'bizzarro, se la decifratura sta cambiando il codice.
Come nota a margine, è il $ ADDIN_HOME designazione disponibile in JMP 9? Credo che gli addin siano stati introdotti in JMP 8, ma mi piacerebbe essere sicuro che gli interpreti JSL 9 JSL saranno in grado di capirlo.
Ri: La crittografia causa la mancata esecuzione dello script Creazione mappa personalizzata?Non sei sicuro che funzionerà, ma hai provato a utilizzare un addin per la tua applicazione? È possibile inserire i set di dati nella directory di addin e fare riferimento a essi mediante il nome "logico" di aggiunta. Ad esempio, se il tuo addin è definito da (com.abc.def.myapp), puoi utilizzarlo in questo modo:
dt = Aperto ( "$ ADDIN_HOME (com.abc.def.myapp) \ AAA-XY.jmp" ) ;