EXTUI PASTE¶
목적¶
EV_PASTE 이벤트는 외부에서 복사한 데이터를 UI 오브젝트에 적용할 수 있도록 함
주요 단계¶
1. UI 오브젝트 및 데이터 준비¶
o 외부에서 복사한 데이터 또는 애플리케이션에서 복사한 데이터를 적용할 UI 오브젝트를 생성

<사진 1> 복사한 데이터를 적용할 UI 개체 대상 화면

<사진 2> 복사 대상 외부 데이터 화면
2. ON_INIT에서 EV_PASTE 이벤트 호출¶
o EV_PASTE 이벤트를 호출하고, 붙여넣기 대상인 UI Instance ID와 Server Event Method를 입력
2.1 ABAP 소스 코드 예시¶
METHOD /U4A/IF_SERVER~HANDL_ON_INIT.
" EV_PASTE in EXTUI_EVENTS is a method that pastes a copied TABLE into a UI TABLE.
CALL METHOD /U4A/CL_EXTUI_EVENTS=>EV_PASTE
EXPORTING
IO_VIEW = ME->/U4A/IF_SERVER~AR_VIEW " [U4A] UI Element Super Class
I_UID = 'TABLE1' " Target UI instance ID
I_SERVER_EVENT = 'EV_PASTE1'. " Server event ID
ENDMETHOD.
3. 데이터 구조 변환 및 UI 테이블에 적용¶
o 테이블에 붙여넣은 데이터를 확인하고, 데이터를 행 단위로 변환 후 UI TABLE에 적용
3.1 ABAP 소스 코드 예시¶
METHOD EV_PASTE1.
DATA : LS_FORM TYPE IHTTPNVP,
LT_TAB TYPE STRING_TABLE,
LS_TAB TYPE STRING,
LT_STRU TYPE STRING_TABLE,
LS_STRU TYPE STRING,
LS_OTAB TYPE TY_TAB.
FIELD-SYMBOLS <FS_FLD> TYPE ANY.
DEFINE _SET_MSG.
CALL METHOD /U4A/CL_UTILITIES=>M_MESSAGETOAST
EXPORTING
IO_VIEW = ME->/U4A/IF_SERVER~AR_VIEW
I_MSGTX = &1.
END-OF-DEFINITION.
*--------------------------------------------------------------------*
* The copied TABLE structure is stored in IT_FORM_DATA
* and the data is retrieved by 'CPASTED|TABLE1'.
*--------------------------------------------------------------------*
READ TABLE IT_FORM_DATA INTO LS_FORM
WITH KEY NAME = 'CPASTED|TABLE1'.
IF SY-SUBRC NE 0.
_SET_MSG ' Paste data does not exist.'.
EXIT.
ENDIF.
* Splits the data received as one column via NEWLINE into rows.
SPLIT LS_FORM-VALUE AT CL_ABAP_CHAR_UTILITIES=>NEWLINE INTO TABLE LT_TAB.
IF LT_TAB[] IS INITIAL.
_SET_MSG ' The paste Information is Incorrectly Formatted.'.
EXIT.
ENDIF.
* Initialize existing UI TABLE
REFRESH GT_TAB.
* Convert STRING TABLE to UI TABLE
LOOP AT LT_TAB INTO LS_TAB.
* Split row data via HORIZONTAL_TAB
SPLIT LS_TAB AT CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB INTO TABLE LT_STRU.
LOOP AT LT_STRU INTO LS_STRU.
UNASSIGN <FS_FLD>.
ASSIGN COMPONENT SY-TABIX OF STRUCTURE LS_OTAB TO <FS_FLD>.
CHECK <FS_FLD> IS ASSIGNED.
<FS_FLD> = LS_STRU.
ENDLOOP.
* Append converted row to UI TABLE
APPEND LS_OTAB TO GT_TAB.
CLEAR LS_OTAB.
ENDLOOP.
ENDMETHOD.
4. 실행 화면¶

<사진 3> 복사 적용 전 화면

<사진 4> 복사 적용 반영 화면
추가 정보¶
o 해당 메서드는 Chrome 브라우저에서만 사용 가능하며, Internet Explorer는 지원하지 않음
o 이벤트 생성 시 반드시 Add Event Method를 이용하여 생성