스크립트를 수동으로 실행하면 완전히 실행되지만 도구 모음의 명령으로 실행하면 작동하지 않는 이유를 알고 계십니까?안녕하세요 여러분,
수동으로 실행할 때 100% 작동하는 이 스크립트가 있습니다.
도구 모음에서 자동으로 실행하면 마지막 섹션이 실행되지 않습니다.
왜 이런 일이 일어나는지 아시나요?
더 이상 작동하지 않는 지점에서 스크립트에 설명을 추가했습니다.
//여기부터 시작하면 스크립트가 도구 모음 모드에서 실행되지 않습니다.
//Script for GRR Anlaysis for Qual Data
names = {};
//prueba={};
RepeatabilityData = {};
ReproducibilityData = {};
GaugeRRData = {};
ParttoPartData = {};
NDCData = {};
Datos_table = Current Data Table();
For( i = 1, i <= N Col(), i++,
Insert Into( names, Column Name( i ) )
);
dlg1 = Dialog(
Title( "GR&R" ),
"Select Tests",
vlist( selectiontests = List Box( names ) ),
"Select Channel Column",
vlist( selectionchannel = List Box( names ) ),
"Select Category (Pre/Post) Column",
vlist( selectioncategory = List Box( names ) ),
"select Devices Number Column",
vlist( selectionSN = List Box( names ) ),
synch = Check Box( "Generate Journal", 0 ),
hlist( button( "OK" ), button( "Cancel" ) )
)
;
if (dlg1["Button"]==1,
column(dlg1["selectionchannel"])<<SET modeling="" type="">0.4,
ListDelta[l]<<SET property=""></SET></SET>자동화 및 스크립팅Re: 스크립트를 수동으로 실행하면 완전히 실행되지만 도구 모음의 명령으로 실행하면 작동하지 않는 이유를 알고 계십니까?안녕 @크라운오브티어스 ,
과거에 이러한 문제가 발생했을 때 루프 앞과 각 루프의 끝에 Wait(0.1)를 추가하면 작동한다는 것을 알았습니다. 귀하의 경우에는 느린 행동에 대한 명백한 용의자가 없습니다. 나는 단지 각각의 뒤에 Wait(0.1)를 넣을 것입니다; 마지막 루프에서 작동하는지 확인하세요.
이는 때때로 jmp가 이전 단계가 종료되었는지 확인하지 않고 다음 단계로 이동하는 문제를 해결합니다.
Re: 스크립트를 수동으로 실행하면 완전히 실행되지만 도구 모음의 명령으로 실행하면 작동하지 않는 이유를 알고 계십니까?@크라운오브티어스 -- 너무 늦었을 것 같지만 추가해 보세요.
TabData << RunFormulas;
댓글 대신. JMP의 열 수식은 JMP가 유휴 상태일 때 실행되므로 한 번에 한 섹션씩 실행하면 수식을 평가할 수 있습니다. 대기 문을 추가하면 수식이 완료되는 데 충분한 유휴 시간을 가질 수 있지만 완벽한 대기 시간을 선택하는 것은 불가능합니다. <
Col Std Dev(As Column(ListDelta[l]))
파악하고 있지 않습니다.
Re: 스크립트를 수동으로 실행하면 완전히 실행되지만 도구 모음의 명령으로 실행하면 작동하지 않는 이유를 알고 계십니까?안녕하세요 @Craige_Hales , 정확히 다음을 추가해야 합니다.
TabData << RunFormulas;
이 댓글 이후에는?
//STARTING FROM HERE THE SCRIPT DOES NOT RUN IN TOOLBAR MODE
그렇다면 이미 작동했지만 작동하지 않았습니다. 
Re: 스크립트를 수동으로 실행하면 완전히 실행되지만 도구 모음의 명령으로 실행하면 작동하지 않는 이유를 알고 계십니까?(예, 그게 바로 내 뜻이었습니다.)
나는 추측한다.
실패하면 로그 창에 메시지가 표시되나요? 실패를 격리하기 위해 print() 문을 추가할 수 있습니다.
다음 추측은 현재 데이터 table()이 예상한 대로 작동하지 않는다는 것입니다. CurrentDataTable에 의존하는 대신 명시적인 데이터 테이블 범위 지정을 사용해 보세요.
CurrentDataTable에 의존하는 것은 코드를 작성하는 취약한 방법입니다.
- 다른 테이블이 현재 테이블이 되면 변경될 수 있습니다(새 창이 열릴 가능성이 높음).
- 상황에 따라 다를 수 있습니다(툴바 상황이 재생 중인 경우일 가능성이 높음).
시도해 볼 또 다른 방법: 도구 모음에서 "여기 네임스페이스 사용"을 선택 취소하여 작동하는지 확인하세요. 그것은 우리에게도 뭔가를 말해 줄 것입니다.