콘텐츠로 이동

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에 다른 어플리케이션 호출된 화면