Ho scritto uno script in cui se una cartella non esiste, verrà creata una cartella. Il percorso è quello di una cartella di rete condivisa. Ho modificato l'accesso alla cartella condivisa e lo script funziona bene per me. Tuttavia, quando un collega che ha solo accesso in lettura alla cartella condivisa, esegue lo script JMP si blocca quando arriva alla sezione di codice seguente. JMP chiude completamente tutto, anche il file di registro, quindi non riesco a vedere se c'è un errore. E funziona bene per me.
Ti stai chiedendo perché questo sta accadendo?
datestamper = Long Date( Today() );
timestamp = MDYHMS( Today() );
dtname = New Table( "UserName",
add rows( 1 ),
New Column( "Time", Character, "nominal", set each value( timestamp ) )
);
dtname:Time << set data type( Numeric ) << Format( ("ddmonyyyy h:m:s"), Input Format( "mm/dd/yyyy h:m:s" ) );
dtname:Time << set data type( Character );
dtname << New Column( "Folder", Character, nominal, formula( Substr( :Time, 3, 7 ) ) );
foldername = Char( :Folder );
path = ("S:\Lab\JMP\Results\Data\" || Char( foldername ) || "\");
If( !Directory Exists( path ),
Create Directory( path ),
Print( path || " already exists." );
Wait( 0 );
);
Grazie Craig, avevi ragione con la modifica 1 (\\server\path\file). Una volta mappato il server anziché s: ha funzionato perfettamente. grazie mille per il tuo aiuto 
Userei uno script come questo per restringere il problema:
// Create a log file on disk. Append each line to the end.
_LogFileName = "$desktop/JMP_log_file.txt";
// clear any old data and make sure the file exixts:
Save Text File( _LogFileName, Format( Today(), "h:m:s" ) || " starting\!n", Mode( "replace" ) );
addLog = Function( {txt},
Save Text File( _LogFileName, Format( Today(), "h:m:s" ) || " " || Char( txt ) || "\!n", Mode( "append" ) )
);
// example:
addlog( "begin loop" );
For( i = 1, i < 3, i += 1,
addlog( "looping " || Char( i ) )
);
addlog( "done" );
Open( _LogFileName, "script" ); // open in a script editorDopo il crash, il file (sul desktop in questo esempio) mostrerà l'ultima chiamata a addlog sull'ultima riga del file. Dopo un paio di tentativi, probabilmente puoi restringere il problema a una singola affermazione. Immagino che sarà correlato all'unità di rete; assicurati di aggiungere i nomi dei file e simili al file di registro. Usa char() per convertire i valori non di testo in testo.
JMP non dovrebbe arrestarsi in modo anomalo; anche se trovi una soluzione alternativa, sarebbe bello segnalare il problema al supporto tecnico, grazie!
modifica 1: sarei particolarmente sospettoso che la mappa dell'unità S: non fosse la stessa su entrambi i computer. Usare un UNC name potrebbe essere una soluzione se questo è il problema (\\server\percorso\file).
modifica 2: penso che potrebbe esserci un problema con la colonna della formula o anche con la riga corrente nella tabella. Qualcosa del genere (non testato) potrebbe essere migliore:
datestamper = Long Date( Today() );
timestamp = MDYHMS( Today() );
dtname = New Table( "UserName",
add rows( 1 ),
New Column( "Time", Character, "nominal", set each value( timestamp ) )
);
dtname:Time << set data type( Numeric ) << Format( ("ddmonyyyy h:m:s"), Input Format( "mm/dd/yyyy h:m:s" ) );
dtname:Time << set data type( Character );
dtname << New Column( "Folder", Character, nominal, formula( Substr( :Time, 3, 7 ) ) );
dtname << runFormulas; // force the formulas to run now
foldername = Char( dtname:Folder[1] ); // explicit table and row subscript
path = ("S:\Lab\JMP\Results\Data\" || Char( foldername ) || "\");