다른 컴퓨터에서는 스크립트가 다르게 실행됩니까?다음 시나리오: 제가 대본을 써준 해외 동료가 있습니다. 데이터베이스에서 데이터를 로드하고, 데이터를 테이블로 구성하고, 제어 차트 작성을 위한 테이블 스크립트를 테이블에 넣는 스크립트입니다. 테이블에는 몇 가지 다른 제품/프로세스가 포함되어 있으며 이 하나의 테이블 스크립트는 그 중 하나만(즉, 전체 행의 작은 부분)만을 대상으로 합니다. 내 컴퓨터에서 기본 스크립트와 테이블 스크립트를 실행하면 아름답게 작동합니다. 해외에 있는 내 동료가 이를 실행할 때(통신 중에 그의 화면에서 이것을 봤습니다) 그는 데이터베이스에서 테이블을 제대로 가져오고 테이블 스크립트는 실행되지만 표시해야 하는 행 선택과 관련하여 크게 실패합니다. 관리 차트. 수천 개는 아니더라도 수백 개의 관련 없는 행 또는 잘못된 하위 집합을 사용하고 있습니다.
테이블 스크립트에서는 "여기에 대한 이름 기본값(1);"을 사용하지 않습니다. 제 동료가 다른 JMP 버전(17.0 대 17.2)을 설치했는데 저는 문제가 될 것이라고 예상하지 못했습니다. 첫 번째 응답으로 환경 설정 관리자(가져오기/내보내기 포함)를 사용하여 내보낸 환경 설정 사본을 보냈으나 해결에 도움이 되지 않았습니다.
그런 다음 그는 나에게 자신의 테이블 사본을 보냈고 내가 그 안에 있는 테이블 스크립트를 검사했을 때 컴퓨터 상단에서 스크립트를 실행할 때 테이블 스크립트가 보이는 것과 약간의 차이가 있음을 발견했습니다.
내 컴퓨터에:

동료 컴퓨터에서:

그러나 그가 생성하여 내 컴퓨터에서 이메일을 통해 나에게 보낸 테이블 복사본에서 테이블 스크립트(즉, 하위 버전)를 실행했을 때 테이블 스크립트가 의도한 대로 실행되었습니다. 아아, 나는 여기서 무슨 일이 일어나고 있는지 완전히 상실했습니다.
이 문제의 원인은 무엇이며, 어떻게 하면 이 문제를 해결하고 향후 이 문제를 방지할 수 있습니까? 모범 사례가 있나요? 감사합니다!
자동화 및 스크립팅Re: 다른 컴퓨터에서는 스크립트가 다르게 실행되나요?JMP 유지 관리 버전 간에는 분명히 차이가 있을 수 있으며 이로 인해 모든 종류의 차이점/문제가 발생할 수 있습니다.
동료가 테이블 스크립트에서 스크립트를 분리하고 스크립트 시작에 Names Default To Here(1)을 추가하고 별도의 스크립트 창에서 실행하면 스크립트가 올바르게 작동합니까?
Re: 다른 컴퓨터에서는 스크립트가 다르게 실행되나요?-로컬 데이터 형식의 차이로 인해 쿼리가 엉망이 될 수 있습니다. (이는 운영 체제에 의해 로컬로 결정될 수 있습니다)
- v14 이후의 버전 차이로 인해 문제가 발생하는 경우는 거의 없습니다.
- 더 빠른 최신 컴퓨터와 데이터베이스 연결이 있고 대학의 컴퓨터가 매우 느리고 데이터베이스에 대한 네트워크 연결이 좋지 않은 경우 문제가 될 수 있습니다. (wait();를 추가해야 할 수도 있습니다. 또는 dt<
Re: 다른 컴퓨터에서는 스크립트가 다르게 실행되나요?
색상을 알 수 없는 개체 메시지로 인해 발생합니다.

일반적으로 이 설정은 매우 유용합니다. 일부 "알려진" 설정도 색상이 지정된다는 점을 인정한다면 말이죠.
"알 수 없는" 메시지의 단점: 다음을 통해 스크립팅 인덱스를 열 수 없습니다.

Re: 다른 컴퓨터에서는 스크립트가 다르게 실행되나요?@jthi , 해외 동료에게 귀하가 제안한 진단 절차를 따르도록 요청했을 때 문제는 동일합니다.
@Byron_JMP , 화상 회의 중에 본 것처럼 초기 스크립트가 제가 있는 곳에서와 거의 비슷한 속도로 실행됩니다. 그리고 저희 회사 노트북들은 모두 비교적 비슷한 사양인 것 같아요. 혼란스러운 점은 내 동료가 첫 번째 또는 "기본" 스크립트에서 얻은 초기 테이블을 나에게 이메일로 보내고 내가 그 안에 있는 테이블 스크립트를 실행하면 내가 예상한 대로 작동한다는 것입니다. 그렇다면 회선 속도가 문제가 아닐 수도 있습니다.
@hogi 이 설정이 활성화되어 있지 않아서 제 경우에는(그리고 JMP 설치에서 컴퓨터의 스크린샷을 찍었습니다) 스크립팅 편집기 자체가 줄이 있는 경우 변수처럼 메시지를 색상으로만 코딩하는 것처럼 보입니다. "<<"와 "message" 사이에서는 줄 바꿈을 수행하지만 "<<"와 "message" 사이에는 색상 코딩과 완전히 독립적으로 줄 바꿈을 사용하거나 사용하지 않고 동일하게 실행됩니다.
그러나 문제를 조금 좁힐 수 있다고 생각합니다. 테이블 스크립트에서 수행할 작업, JMP 설치 시의 모습, 동료 컴퓨터에서 수행 중인 작업을 아래에 복사했습니다.
// what i want the table script to do
Data Table( "table_1" ) << Clear Selection;
Data Table( "table_1" ) << Clear Column Selection;
Table_2 = Data Table( "table_1" ) << Subset(
Filtered Rows(
Contains( :Category_1, "some_category" ) & Contains( :Category_2, "some_other_category" )
)
);
Table_3 = Table_2 << Split(
Split By( :Col_1, :Col_2 ),
Split( :Col_3 ),
Group( :Col_4, :Category_1, :Category_2 ),
Output Table( "table_3" ),
Remaining Columns( Drop All ),
Sort by Column Property
);
// what the table script looks like on my computer
// it does exactly the same as the above version, despite the line break before 'Subset'
Data Table( "table_1" ) << Clear Selection;
Data Table( "table_1" ) << Clear Column Selection;
Table_2 = Data Table( "table_1" ) <<
Subset(
Filtered Rows(
Contains( :Category_1, "some_category" ) & Contains( :Category_2, "some_other_category" )
)
);
Table_3 = Table_2 << Split(
Split By( :Col_1, :Col_2 ),
Split( :Col_3 ),
Group( :Col_4, :Category_1, :Category_2 ),
Output Table( "table_3" ),
Remaining Columns( Drop All ),
Sort by Column Property
);
// what it appears to be doing on my colleagues computer
Data Table( "table_1" ) << Clear Selection;
Data Table( "table_1" ) << Clear Column Selection;
Data Table( "table_1" ) << Split(
Split By( :Col_1, :Col_2 ),
Split( :Col_3 ),
Group( :Col_4, :Category_1, :Category_2 ),
Output Table( "table_3" ),
Remaining Columns( Drop All ),
Sort by Column Property
);
아마도 해결책은 테이블 스크립트를 이와 같이 수정하는 것일까요?
// a solution to be tested?
Data Table( "table_1" ) << Clear Selection;
Data Table( "table_1" ) << Clear Column Selection;
Wait(); // this would be the new part per Byron's suggestion
Table_2 = Data Table( "table_1" ) << Subset(
Filtered Rows(
Contains( :Category_1, "some_category" ) & Contains( :Category_2, "some_other_category" )
)
);
Table_3 = Table_2 << Split(
Split By( :Col_1, :Col_2 ),
Split( :Col_3 ),
Group( :Col_4, :Category_1, :Category_2 ),
Output Table( "table_3" ),
Remaining Columns( Drop All ),
Sort by Column Property
);
어떻게 생각하나요? 지금까지 도움을 주시고 추가 의견을 보내주셔서 진심으로 감사드립니다. 문제가 무엇인지 알아낼 경우 여기에 게시하겠습니다.
Re: 다른 컴퓨터에서는 스크립트가 다르게 실행되나요?Wait(0)을 추가하는 것이 좋습니다. Wait() 대신 Wait()의 기본값은 3초입니다.

필터링된 행을 변경하여 행을 얻을 수도 있습니다(적어도 디버깅을 더 쉽게 만들 수 있음).
rows_of_interest = Data Table("table_1") << Get Rows Where(Contains(:Category_1, "some_category") & Contains(:Category_2, "some_other_category"));
Table_2 = Data Table("table_1") << Subset(
Rows(rows_of_interest)
);Re: 스크립트가 다른 컴퓨터에서는 다르게 실행되나요?@jthi , 정말 고맙습니다! 'wait(0)'만 추가해도 안 됐어요. 'rows_of_interest' 접근 방식을 사용하면 성공했어요. 아직도 이상하게 느껴져요.
@Byron_JMP , @hogi - 알려드리자면 & 제안해 주셔서 감사합니다.