I wrote a script where if a folder does not exist, then a folder will be created. The path is to a shared network folder. I have modify access to the shared folder and the script works fine for me. However, when a colleague who has only read access to the shared folder, runs the script JMP crashes when it get to the below section of code. JMP just completely closes everything, even the log file so I can't see if there is an error with it. And it works fine for me.
Wondering why this is happening ?
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 );
);
Danke Craig, du hattest Recht mit der Bearbeitung 1 (\\Server\Pfad\Datei). Sobald ich den Server anstelle von s gemappt habe: Es hat perfekt funktioniert. tausend dank für deine hilfe 
Ich würde ein Skript wie dieses verwenden, um das Problem einzugrenzen:
// 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 editorNach dem Absturz zeigt die Datei (in diesem Beispiel auf dem Desktop) den letzten Aufruf von addlog in der letzten Zeile der Datei. Nach ein paar Versuchen können Sie das Problem wahrscheinlich auf eine einzige Anweisung eingrenzen. Ich vermute, dass es mit dem Netzlaufwerk zusammenhängt; Stellen Sie sicher, dass Sie die Dateinamen und dergleichen zur Protokolldatei hinzufügen. Verwenden Sie char(), um Nicht-Text-Werte in Text umzuwandeln.
JMP sollte nicht abstürzen; Selbst wenn Sie eine Problemumgehung finden, wäre es großartig, das Problem dem technischen Support zu melden, danke!
Bearbeiten 1: Ich wäre besonders misstrauisch, wenn die Laufwerkskarte S: auf beiden Computern nicht gleich ist. Verwendung einer UNC Name könnte eine Problemumgehung sein, wenn dies das Problem ist (\\Server\Pfad\Datei).
Bearbeiten 2: Ich denke, es kann auch ein Problem mit der Formelspalte oder der aktuellen Zeile in der Tabelle geben. So etwas (ungetestet) könnte besser sein:
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 ) || "\");