RUN_ASYNC_ON_REQUEST¶
목적¶
동기 실행 중 다른 작업이 불가능한 문제를 해결하기 위해,
동기와 비동기 실행을 함께 사용하여 시스템 응답성을 개선한다.
주요 단계¶
1. UI 객체 및 이벤트 생성¶
1.1. Application에서 UI Object와 Event를 생성¶
1.2. Form UI 및 Chart UI를 동기 실행 방식으로 데이터 구성 후 Application 실행¶

<사진 1> UI Object와 Event 생성
2. 동기 실행 방식¶
2.1. ABAP Source Code Example¶
METHOD /U4A/IF_SERVER~HANDL_ON_INIT.
*--동기로 데이터 수집.
"Form UI.
GS_FORM-F1 = 'U4A'.
GS_FORM-F2 = 'U4A WorkSpace'.
GS_FORM-F3 = '< /FONT>중요 항목'.
GS_FORM-F4 = '동기상태 데이터 수집'.
"차트 구성.
CALL METHOD SET_CHART.
ENDMETHOD.
2.2. 동기 실행 중에는 다른 작업이 불가능 (예: PAGE2 선택 불가)¶
2.3. 동기 실행이 완료된 후 다른 작업 수행 가능 (예: PAGE2 선택 가능)¶

<사진 2> 동기 실행 중 다른 작업 불가능

<사진 3> 동기 실행 완료 후 다른 작업 가능
3. 비동기 실행 방식¶
3.1. Form UI를 동기 실행, Chart UI를 비동기 실행으로 데이터 구성 후 Application 실행¶
3.2. 동기 실행이 완료되고 비동기 실행이 진행 중이어도 다른 작업 수행 가능 (예: PAGE2 선택 가능)¶
3.3. 비동기 실행을 통해 구성한 차트 데이터는 나중에 차트 화면으로 이동하면 적용됨¶

<사진 4> 동기 실행 완료 후 비동기 실행 진행 중에도 다른 작업 가능

<사진 5> 차트 화면으로 이동 시 비동기 실행된 차트 데이터 확인
3.4. ABAP 소스 코드 예제¶
METHOD /U4A/IF_SERVER~HANDL_ON_INIT.
*--동기 실행.
GS_FORM-F1 = 'U4A'.
GS_FORM-F2 = 'U4A WorkSpace'.
GS_FORM-F3 = 'Imortant Items'.
GS_FORM-F4 = 'Collecting Synchronization Data'.
*--비동기 실행.
CALL METHOD /U4A/CL_UTILITIES=>RUN_ASYNC_ON_REQUEST
EXPORTING
IO_VIEW = ME->/U4A/IF_SERVER~AR_VIEW " [U4A] UI Element Super Class
* I_PRCCD = " Callback Event에 전달받을 process code
* IT_PARAM = " HTTP Framework (iHTTP) Table Name/Value Pairs
* I_IGNORE_ERR = " 비동기에서 발생한 덤프 오류 무시 여부('X' = 덤프오류 무시함)
* I_SYNC_DYN_UI = " 현재 동적생성한 UI를 비동기 시점에 적용 여부('X' = 비동기 시점에 적용함)
I_FINISH_SEVT = 'EV_FINISH_ASYNC' " 비동기 처리 완료 후 sync session에 호출할 Callback Server Event 명
* IT_FINISH_CEVT = " 비동기 처리 완료 후 수행할 Client Event script
* I_USE_WAIT = 'X' " 비동기 처리 완료 후 Server Event 호출시 WAIT 사용 여부('X' = 사용함)
.
"메세지 호출
CALL METHOD /U4A/CL_UTILITIES=>M_MESSAGETOAST
EXPORTING
IO_VIEW = ME->/U4A/IF_SERVER~AR_VIEW " [U4A] UI Element Super Class
I_MSGTX = 'Drawing an asynchronous status chart'. " MESSAGE TEXT
ENDMETHOD.
[첨부 ABAP SOURCE (/U4A/IF_SERVER~HANDL_ON_REQUEST)]¶
METHOD /U4A/IF_SERVER~HANDL_ON_REQUEST.
"차트 구성
CALL METHOD SET_CHART.
ENDMETHOD.