SAP의 화면 설계와 사용자 인터페이스(UI) 작업은 사용자와 시스템 간의 상호작용을 설계하는 데 초점이 있습니다. 이 과정은 SAP Module Pool 프로그램(대화형 프로그램)에서 주로 사용되며, 화면(Screen)과 화면 요소(Screen Elements)를 설계하여 데이터를 입력하고 출력하는 데 사용됩니다.
Customer IDSubmitMODULE status_0100 OUTPUT.
SET PF-STATUS 'MAIN'. " 화면의 상태바(Status Bar) 설정
ENDMODULE.
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN 'SUBMIT'. " 사용자가 Submit 버튼 클릭 시 실행
READ TABLE lt_customers WITH KEY id = screen_customer_id.
IF sy-subrc = 0.
MESSAGE 'Customer found!' TYPE 'S'.
ELSE.
MESSAGE 'Customer not found!' TYPE 'E'.
ENDIF.
ENDCASE.
ENDMODULE.
화면 설계 절차:
PBO와 PAI 예제:
MODULE pbo_0100 OUTPUT.
" 화면 출력 전에 내부 테이블 데이터 로드
SELECT * INTO TABLE lt_customers FROM zcustomers.
ENDMODULE.
MODULE pai_0100 INPUT.
" 사용자가 입력한 데이터 검증
CASE sy-ucomm.
WHEN 'SAVE'.
INSERT INTO zcustomers VALUES (screen_customer_id, screen_customer_name).
MESSAGE 'Customer saved successfully!' TYPE 'S'.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE.
입력 데이터 유효성 확인:
사용자 입력 데이터를 검증하여 잘못된 데이터를 방지.
예제: 입력 검증
MODULE pai_input_check INPUT.
IF screen_customer_id IS INITIAL.
MESSAGE 'Customer ID is required!' TYPE 'E'.
ELSEIF NOT screen_customer_id IS NUMERIC.
MESSAGE 'Customer ID must be numeric!' TYPE 'E'.
ENDIF.
ENDMODULE.
변형(Variants)이란?
변형 생성 절차:
예제:
Country = 'US' 값을 기본값으로 저장.REPORT zcustomer_screen.
DATA: screen_customer_id TYPE zcustomer-id,
screen_customer_name TYPE zcustomer-name.
MODULE pbo_0100 OUTPUT.
IF screen_customer_id IS INITIAL.
screen_customer_id = 'Default_ID'.
ENDIF.
ENDMODULE.
MODULE pai_0100 INPUT.
CASE sy-ucomm.
WHEN 'CHECK'.
IF screen_customer_id IS INITIAL.
MESSAGE 'Customer ID cannot be empty!' TYPE 'E'.
ENDIF.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE.
START-OF-SELECTION.
CALL SCREEN 100.