USAGE_DIALOG¶
목적¶
"DIALOG USAGE"는 Application 내에서 다른 Application을 DIALOG 형태로 호출할 수 있는 기능을 제공한다.
주요 단계¶
1. UI Object 및 Event 생성¶
- Application 내에서 UI Object와 Event를 생성한다.

<사진 1> 다른 Application 호출하기 위한 버튼 UI 생성 및 Event
2. DIALOG 호출 및 설정¶
2.1. CALL METHOD를 이용하여 DIALOG를 호출하고, 불러올 Application 명을 입력한다.¶
2.2. EO_CONTROLLER를 통해 생성된 Application의 Controller 정보를 얻을 수 있다.¶
METHOD EV_USAGE.
DATA : LS_CONF TYPE /U4A/S0084,
LS_BTN TYPE /U4A/S0085.
*--------------------------------------------------------------------*
"DIALOG 구성
LS_CONF-ICON = 'sap-icon://activity-individual'. " DIALOG HEADER에 ICON
LS_CONF-TITLE = 'U4A_TEST'. " DIALOG HEADER의 TITLE 명
LS_CONF-CLOSE_EVT = 'EV_USAGE_CLOSE'. " DIALOG 닫기 EVENT
LS_CONF-RESIZABLE = 'X'. " DIALOG의 크기 조절 여부
LS_CONF-DRAGGABLE = 'X'. " DIALOG의 이동 가능 여부
LS_CONF-WIDTH = '60%'. " DIALOG의 가로 길이
LS_CONF-HEIGHT = '70%'. " DIALOG의 세로 길이
LS_CONF-STYLECLASS = 'sapUiSizeCompact'. " DIALOG에 적용할 CSS Class
LS_CONF-HIDE_CLOSE_BTN = ''. " 닫기 버튼 비활성화 여부
LS_CONF-HIDE_HEAD = ''. " HEADER TOOLBAR 비활성
LS_CONF-SHOW_MAXIMIZE_BTN = ''. " 최대화 버튼 활성(X = 활성)
LS_CONF-ESC_CLOSE = ''.
"DIALOG 버튼 추가
LS_BTN-TEXT = 'DIALOG CLOSE'. " DIALOG BUTTON TEXT
LS_BTN-ICON = 'sap-icon://decline'. " DIALOG BUTTON ICON
LS_BTN-WIDTH = '250px'. " DIALOG BUTTON 크기 설정
LS_BTN-TYPE = '03'. " DIALOG BUTTON 스타일 결정
LS_BTN-EVENT = ''. " DIALOG BUTTON 클릭시 호출 EVENT 설정
APPEND LS_BTN TO LS_CONF-BTN_CONF.
CLEAR LS_BTN.
"Application을 DIALOG 형태로 불러오기
CALL METHOD /U4A/CL_APP_USAGE_DIALOG=>USAGE_APP_OPEN_DIALOG
EXPORTING
IO_VIEW = ME->/U4A/IF_SERVER~AR_VIEW " [U4A] UI Element Super Class
IS_CONFIG = LS_CONF " [U4A] Application Usage Dialog Config Info
I_APPID = 'YU4A_WS_EDU14'. " Application ID
ENDMETHOD.
3. USAGE의 Instance 정보 가져오기¶
- USAGE Application의 Instance 정보를 가져오려면
GET_APP_CONTROLLER메서드를 이용한다.
DATA : LO_APP TYPE REF TO YCL_U4A_APP_U4A_WS_EDU14.
"Application에서 USAGE의 Instance 정보를 가져올 때 사용한다.
LO_APP ?= /U4A/CL_APP_USAGE_DIALOG=>GET_APP_CONTROLLER(
IO_VIEW = ME->/U4A/IF_SERVER~AR_VIEW
I_APPID = 'YU4A_WS_EDU14'
).
4. DIALOG 닫기 이벤트 추가¶
- DIALOG의 닫기 버튼을 선택하면 Server Event를 호출하도록
LS_CONF-CLOSE_EVT에 종료 이벤트를 추가한다.
<사진 2> USAGE DIALOG 닫기시 작동 Server Event 호출 설정 파라미터 화면
<사진 3> USAGE DIALOG 닫기시 작동 Server Event Method 화면
4.1. DIALOG 종료 방법¶
- 현재 호출된 DIALOG를 종료하려면 아래 Method를 사용한다.
METHOD EV_USAGE_CLOSE.
"USAGE DIALOG CLOSE.
CALL METHOD /U4A/CL_APP_USAGE_DIALOG=>DIALOG_CLOSE
EXPORTING
IO_VIEW = ME->/U4A/IF_SERVER~AR_VIEW " [U4A] UI Element Super Class
I_APPID = 'YU4A_WS_EDU14' " Application ID
I_APP_RESET = 'X'. " Usage Application Instance 초기화 여부('X' = 초기화)
ENDMETHOD.
5. Dialog 실행 화면¶
<사진 4> Web에서 Dialog에 다른 어플리케이션 호출된 화면