콘텐츠로 이동

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.

추가 정보

  • 해당 메소드는 반드시 바코드 리더기를 사용하여 바코드를 스캔할 때만 적용