콘텐츠로 이동

TIMED_TRIGGER

목적

TIMED TRIGGER 는 메인 스레드의 부하와 관계없이, 별도의 스레드에서 지연시간(초) 기준으로 일정한 간격으로 작업을 실행하는 타이머 기능 수행


주요 단계

1. UI Object 와 Event 생성

1.1 특정 UI의 Events에 "TIMED_TRIGGER" Method를 추가

  • 예제에서는 버튼 클릭 이벤트로 설정
  • 아래 그림에서 UI Object 설정 화면을 참고

이미지

<사진 1> UI Object 및 Event 생성 화면


1.2 TIMED_TRIGGER Method 구성

  • 버튼 클릭 시, "TT_ID_001"을 ID로 하여 5초 뒤에 서버 이벤트 "EV_TIMED_TRIGGER" 호출
METHOD EV_TIMED_TRIGGER_START.

  " TIMED_TRIGGER Method

  CALL METHOD /U4A/CL_UTILITIES=>TIMED_TRIGGER
    EXPORTING
      IO_VIEW        = AR_VIEW              " [U4A] UI Element Super Class
      I_ID           = 'TT_ID_001'          " Time Trigger 인스턴스 ID (다중 처리 시 중복 ID 불가)
      I_ISSTOP       =                     " 중지 여부(예: X)
      I_DELAY        = '5'                  " 지연시간 예 (1 = 1초)
      I_SERVER_EVENT = 'EV_TIMED_TRIGGER'   " 서버 이벤트명
      IT_SCRIPT      =                     " 클라이언트 스크립트
      I_UNLIMIT      = 'X'.                 " 반복 실행 ('X' = 반복 실행됨, ' ' = 1번 실행됨)

ENDMETHOD.

1.3 PARAMETERS 설명

Name Description
IO_VIEW UI Element Super Class
I_ID Time Trigger 인스턴스 ID (중복 불가)
I_ISSTOP 중지 여부 (X 입력 시 중지)
I_DELAY 지연 시간 (초 단위, 예: 1 = 1초)
I_SERVER_EVENT 서버 이벤트명
IT_SCRIPT 클라이언트 스크립트
I_UNLIMIT 반복 실행 (X = 반복 실행, 공백 = 1회 실행)

2. EV_TIMED_TRIGGER 서버 이벤트 생성

2.1 "EV_TIMED_TRIGGER" 서버 이벤트 생성

  • 5회 반복 시 (GS_HDL-TRIGGER_CNT = 5), TIMED TRIGGER가 자동 해제되도록 설정

2.2 ABAP 소스 코드 예제

METHOD EV_TIMED_TRIGGER.

  " 현재 이벤트 호출 횟수 +1
  ADD 1 TO GS_HDL-TRIGGER_CNT.

  " 5회 호출 확인
  IF GS_HDL-TRIGGER_CNT EQ 5.

    " 5회 호출 후 "TT_ID_001"의 TIMED_TRIGGER 해제
    CALL METHOD /U4A/CL_UTILITIES=>TIMED_TRIGGER
      EXPORTING
        IO_VIEW  = AR_VIEW
        I_ID     = 'TT_ID_001'
        I_ISSTOP = 'X'.          " 중지 여부

    " TIME TRIGGER 해제 확인 메시지 호출
    CALL METHOD /U4A/CL_UTILITIES=>M_MESSAGEBOX
      EXPORTING
        IO_VIEW      = AR_VIEW
        I_MSGTX      = 'After 5 calls, TIMED_TRIGGER OFF'
        I_POPUP_TYPE = /U4A/CL_UTILITIES=>CS_M_MSG_BOX_TP-SUCCESS.

  ENDIF.

ENDMETHOD.

3. TIMED_TRIGGER 실행 확인

3.1 Application 실행 후 Web에서 TIMED_TRIGGER 확인

3.2 버튼 클릭 시 5초마다 "EV_TIMED_TRIGGER" 호출

이미지

<사진 2> 버튼 클릭하여 TIMED_TRIGGER 실행


3.3 5회 호출 후 TIMED_TRIGGER 해제 및 메시지 박스 출력

이미지

<사진 3> 5회 호출 후 TIME TRIGGER 해제 및 메시지 출력