1. WAIT 문
EVENT 문에 의해 감시 중인 이벤트에 대해 WAIT 문을 수행하는 경우, 감시 시작 시점을 기준으로 감시 대상 이벤트가 발생할 때까지 대기한다.
WAIT 문에서 지정한 이벤트가 EVENT 문에 의해 감시 중인 상태가 아닌 경우엔 현재 시점을 기준으로 감시 대상 이벤트가 발생할 때까지 대기한다. 즉, 마치 WAIT 문 직전에 EVENT 문이 기술된 것처럼 동작한다. 이 경우 EVENT 문에 STACK(NO)가 지정된 것처럼 동작한다.
WAIT 문은 이벤트 발생 이력(스택으로 구현되어 있음)을 조회한다. 해당 이벤트를 등록할 때 STACK(YES)가 지정되었다면 스택에서 항목을 꺼내고, STACK(NO)가 지정되었다면 스택의 항목을 조회하기만 한다.
WAIT 문에서 스택의 항목을 꺼내거나 조회할 때 이벤트에 관한 정보가 제어 변수들(예: &SYS#EVENT)에 저장된다. 제어 변수들에 대해서는 Command Procedure를 참고한다.
-
사용법
WAIT [TIME(hh.mm)] [DATE(date)] [WEEK(week)] [INTERVAL(second[S]|minuteM)] [MESSAGE('message')] [DSPMESSAGE('dspmessage')] [READYJOBNAME(readyjobname(,...))] [ENDJOBNAME(endjobname(,...))] [MSGID(msgid(,...))] [SYSTEM(event(,...))] [USEREVENT(userevent(,...))] [DATASET(dsname(,...))] [MOUNT(mount(,...))] [ONDEVICE(ondevice(,...))] [SYSOUT(outclass(,...))] -
오퍼랜드
다음은 WAIT 문 오퍼랜드에 대한 설명이다.
오퍼랜드 설명 TIME
지정된 시각까지 대기한다. hh.mm 형식으로 기술한다.
-
hh : 24시 표기법에 따라 시를 기술 (0 ~ 24)
-
mm : 분을 기술 (0 ~ 59)
DATE
date에 지정된 날짜까지 대기한다. OpenFrame에서는 문법 오류만 검사한다.
WEEK
week에 지정된 요일까지 대기한다.
INTERVAL
지정된 시간 동안 대기한다.
-
second : 지정된 시간 동안 대기한다. 초 단위이다. 숫자 뒤에 'S’를 붙이지 않으면 초로 처리된다.
-
minute : 지정된 시간 동안 대기한다. 분 단위이다. 숫자 뒤에 'M’을 붙여야 분으로 처리된다.
MESSAGE
message에 지정된 메시지가 출력될 때까지 대기한다.
DSPMESSAGE
이벤트 대기 상태 화면에 표시할 메시지를 dspmessage에 지정한다. OpenFrame에서는 문법 오류만 검사한다.
READYJOBNAME
readyjobname에 지정된 작업이 시작할 때까지 대기한다. OpenFrame에서는 문법 오류만 검사한다.
ENDJOBNAME
endjobname에 지정된 작업이 종료할 때까지 대기한다. (약어: END)
MSGID
msgid에 지정된 식별번호를 갖는 메시지가 출력될 때까지 대기한다.
SYSTEM
event에 지정된 시스템 이벤트가 발생할 때까지 대기한다. OpenFrame에서는 문법 오류만 검사한다.
USEREVENT
userevent에 지정된 사용자 이벤트가 발생할 때까지 대기한다. OpenFrame에서는 문법 오류만 검사한다.
DATASET
dsname에 지정된 데이터셋이 생성될 때까지 대기한다. OpenFrame에서는 문법 오류만 검사한다.
MOUNT
mount에 지정된 볼륨이 마운트 될 때까지 대기한다. OpenFrame에서는 문법 오류만 검사한다.
ONDEVICE
ondevice에 지정된 플로피 디스크 장치가 준비될 때까지 대기한다. OpenFrame에서는 문법 오류만 검사한다.
SYSOUT
outclass로 지정된 작업의 출력이 종료될 때까지 대기한다. OpenFrame에서는 문법 오류만 검사한다.
-
-
예제
다음은 WAIT 문 사용 예제이다. MSGID, WEEK, INTERVAL 중 먼저 만족하는 조건이 있을 때까지 대기한다. 만약 명령어 발행 시점이 수요일이라고 가정하고 MSGID가 출력되지 않았다면 5초를 기다린 후 대기를 종료한다.
WAIT MSGID(XDX1000I) WEEK(THU) INTERVAL(5S)