EXTUI SCAN_POS_BARCODE¶
목적¶
UI에 Focus 없이 리더기를 통한 바코드 Read만으로 바코드 정보를 가져오고 서버 이벤트를 실행할 수 있음
주요 단계¶
1. EV_SCAN_POS_BARCODE UI 구성¶
- EV_SCAN_POS_BARCODE 기능을 ON/OFF하는 버튼 추가
- Read 한 바코드 정보를 확인할 수 있도록 TEXT UI 및 TEXT 프로퍼티에 바인딩

<사진 1> EV_SCAN_POS_BARCODE 사용하기 위한 UI 구성 화면
2. EV_SCAN_POS_BARCODE 사용설정¶
- ABAP 소스 코드 예시
METHOD /U4A/IF_SERVER~HAMDL_ON_INIT.
" 실행 시 바코드 Read 기능 활성화 .
CALL METHOD /U4A/CL_EXTUI_EVENTS=>EV_SCAN_POS_BARCODE
EXPORTING
IO_VIEW = ME->AR_VIEW " [U4A] UI Element Super Class
I_SERVER_EVENT = 'EV_SCAN_CB' " Server Event Name(예 : EV_PRESS)
* IT_SCRIPT_SOURCE = LT_STR " Client Event
* I_USE_WAIT = I_USE_WAIT " Waiting 사용여부('X' = 사용함, ' ' = 사용안함)
I_SWITCH = 'X'. " barcode 이벤트 등록 시작, 종료 여부('X' = 시작함, '' = 종료함)
ENDMETHOD.
PARAMETER 설명¶
| Name | Description |
|---|---|
| IO_VIEW | UI 화면 정보, AR_VIEW 전달 |
| I_SERVER_EVENT | 리더기를 통한 바코드 스캔 시 호출할 SERVER_EVENT 설정 (CALL BACK METHOD는 ADD EVENT METHOD Button을 통해 생성) |
| IT_SCRIPT_SOURCE | 실행할 Client Event 설정 (스크립트 작성 후 STRING_TABLE 타입으로 전달) |
| I_USE_WAIT | BUSY 활성/비활성 (DEFALUT X = 활성, ‘’ = 비활성) |
| I_SWITCH | 바코드 Read 기능 활성/비활성 (DEFALUT X = 활성, ‘’ = 비활성) ‘X’를 주면 리더기로 바코드 스캔 시 서버이벤트 호출하고 ‘’을 주면 리더기로 바코드를 스캔해도 서버이벤트 호출하지 않음 |
3. Call Back Method 통한 BARCODE 정보 조회¶
3.1 바코드 스캔 시 호출된 서버이벤트를 통해 IT_FORM_DATA에 scanposbarcode 이름의 파라미터로 BACODE 정보 확인¶

<사진 2> 바코드 스캔 시 서버 이벤트 확인 화면
METHOD EV_SCAN_CB.
DATA : LS_FORM TYPE IHTTPNVP.
*--------------------------------------------------------------------*
CLEAR GS_BARCODE-BARCODE.
" 바코드정보 조회 .
READ TABLE IT_FORM_DATA INTO LS_FORM
WITH KEY NAME = 'scanposbarcode'.
IF SY-SUBRC NE 0.
CALL METHOD /U4A/CL_UTILITIES=>M_MESSAGETOAST
EXPORTING
IO_VIEW = ME->AR_VIEW
I_MSGTX = 'FORM FIELD 못찾음'.
EXIT.
ENDIF.
IF LS_FORM-VALUE IS INITIAL.
LS_FORM-VALUE = 'IT_FORM_DATA 안에 값이 없음.'.
EXIT.
ENDIF.
" 스캔 한 바코드정보 설정 .
GS_BARCODE-BARCODE = LS_FORM-VALUE.
ENDMETHOD.

<사진 3> 리더기로 스캔한 바코드 정보 Display 화면
4. 버튼을 통한 바코드 Read 기능 ON/OFF¶
4.1 바코드 Read 기능 ON¶
METHOD EV_ON.
" 바코드 Read 기능 활성화 .
CALL METHOD /U4A/CL_EXTUI_EVENTS=>EV_SCAN_POS_BARCODE
EXPORTING
IO_VIEW = ME->AR_VIEW " [U4A] UI Element Super Class
I_SERVER_EVENT = 'EV_SCAN_CB' " Server Event Name(예 : EV_PRESS)
* IT_SCRIPT_SOURCE =
* I_USE_WAIT =
I_SWITCH = 'X'. " barcode 이벤트 등록 시작, 종료 여부('X' = 시작함, '' = 종료함)
ENDMETHOD.
4.2 바코드 Read 기능 OFF¶
METHOD EV_OFF.
" 바코드 Read 기능 비활성화 .
CALL METHOD /U4A/CL_EXTUI_EVENTS=>EV_SCAN_POS_BARCODE
EXPORTING
IO_VIEW = ME->AR_VIEW
I_SWITCH = ''. " barcode 이벤트 등록 시작, 종료 여부('X' = 시작함, '' = 종료함)
ENDMETHOD.
추가 정보¶
- 해당 메소드는 반드시 바코드 리더기를 사용하여 바코드를 스캔할 때만 적용