폴더가 없으면 폴더가 생성되는 스크립트를 작성했습니다. 경로는 공유 네트워크 폴더입니다. 공유 폴더에 대한 수정 액세스 권한이 있고 스크립트가 제대로 작동합니다. 그러나 공유 폴더에 대한 읽기 권한만 있는 동료가 JMP 스크립트를 실행하면 아래 코드 섹션에 도달하면 충돌이 발생합니다. JMP는 로그 파일까지 포함한 모든 것을 완전히 닫으므로 오류가 있는지 확인할 수 없습니다. 그리고 그것은 나에게 잘 작동합니다.
왜 이런 일이 발생하는지 궁금하십니까?
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 );
);
Craig에게 감사합니다. 편집 1(\\server\path\file)이 정확했습니다. s:가 아닌 서버를 매핑하면 완벽하게 작동했습니다. 도와주셔서 감사합니다 
문제의 범위를 좁히기 위해 다음과 같은 스크립트를 사용합니다.
// 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 editor충돌 후 파일(이 예에서는 바탕 화면에 있음)은 파일의 마지막 줄에 addlog에 대한 마지막 호출을 표시합니다. 몇 번 시도한 후에는 문제의 범위를 한 문장으로 좁힐 수 있습니다. 나는 그것이 네트워크 드라이브와 관련이 있을 것이라고 추측할 것이다. 로그 파일에 파일 이름 등을 추가해야 합니다. char()를 사용하여 텍스트가 아닌 값을 텍스트로 변환합니다.
JMP가 충돌하지 않아야 합니다. 기술 지원에 문제를 보고하는 것이 좋은 경우 해결 방법을 알아내더라도 감사합니다!
편집 1: 특히 S: 드라이브 맵이 두 컴퓨터에서 동일하지 않은 것이 의심스럽습니다. 사용 UNC 이름이 문제인 경우 해결 방법일 수 있습니다(\\server\path\file).
편집 2: 수식 열이나 테이블의 현재 행에도 문제가 있을 수 있다고 생각합니다. 이와 같은 (테스트되지 않은) 것이 더 나을 수 있습니다.
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 ) || "\");