SAP ABAP에서 Report 프로그램을 개발할 때 SELECTION-SCREEN에서 PARAMETERS를 사용해서 리포터의 실행 조건을 입력 받게 됩니다.
SELECTION-SCREEN에서 PARAMETERS와 함께 SELECT-OPTIONS를 사용하여 다중 값의 실행 조건을 입력 받기도 합니다.
가끔 실행 조건 중에 무조건 기본적으로 사용되는 조건 값이 있을 수 있습니다.
예를 들어 해당 ABAP 프로그램은 지정된 회사 코드만 조회하거나 또는 지정된 플랜트만 조회하거나 또는 지정된 자재 유형만 조회하는 프로그램을 개발한다고 했을 때 굳이 PARAMETERS로 회사 코드나 플랜트나 자재 유형을 입력 받을 필요는 없습니다. 프로그램에서 직접 지정해서 실행하면 되기 때문입니다.
하지만 SELECTION-SCREEN의 PARAMETERS에 조건을 입력 받는 것이 의미 없는 경우에라도 사용자가 어떤 조건으로 실행되는지 알려 줄 필요는 있습니다. 이럴 경우 PARAMETERS로 조건 입력을 화면에 함께 표시를 하지만 입력을 비활성으로 해 놓으면 PARAMETERS의 입력 값이 변경되는 일 없이 해당 조건으로 실행 조건을 처리할 수 있게 됩니다.
또는 특정 사용자에게만 PARAMETERS의 입력을 활성화 하고, 다른 사용자에게는 비활성 해서 사용하는 방법을 구현할 수도 있습니다.
이번 글에서는 ABAP SELECTION-SCREEN에서 PARAMETERS의 입력 비활성 하는 방법에 대해 알아보겠습니다.
ABAP에서 PARAMETERS 입력을 비활성 하는 방법에 대한 실제 예제
▼ 아래 ABAP 프로그램은 여러 개의 PARAMETERS 중에서 일부를 입력 비활성 하는 예제입니다.
- 입력을 비활성 하는 PARAMETERS는 DEFAULT 값을 미리 지정해 놓습니다.
SELECTION–SCREEN BEGIN OF BLOCK BL4 WITH FRAME TITLE TEXT–004.
PARAMETERS: GV_MAIL(30) LOWER CASE ,
GV_NAME(30) LOWER CASE ,
GV_ATTN(80).
SELECTION–SCREEN SKIP 1.
PARAMETERS: GV_ORIG(80),
GV_DELIV(40) DEFAULT ‘AS SOON AS POSSIBLE’ ,
GV_TERM(40) DEFAULT ‘PO에서 가져옴’ ,
GV_ZZONP(40),
GV_ZZDSP(40),
GV_PACK(40) DEFAULT ‘EXPORT STANDARD PACKING’ ,
GV_PAY(40) DEFAULT ‘PO에서 가져옴’ ,
GV_REMAR(80).
SELECTION–SCREEN END OF BLOCK BL4.
*——————————————————————– AT SELECTION–SCREEN OUTPUT.
LOOP AT SCREEN.
IF SCREEN–NAME = ‘PA_DELIV’ OR SCREEN–NAME = ‘PA_TERM’ OR SCREEN–NAME = ‘PA_PACK’ OR SCREEN–NAME = ‘PA_PAY’.
SCREEN–INPUT = 0. “입력 비활성
MODIFY SCREEN.
ENDIF.
ENDLOOP.
|
ABAP에서 PARAMETERS 입력을 비활성 하는 방법에 대한 실제 예제 실행 결과
▼ 아래 화면은 앞 단락의 ABAP 프로그램의 실행 결과 입니다.
- ‘SCREEN-INPUT = 0‘으로 설정하면 해당 입력이 비활성 됩니다. 반대로 ‘SCREEN-INPUT = 1‘로 설정하면 입력이 활성 됩니다.
- 2.DELIVERY, 3.TERM OF SHIPMENT, 6.PACKING, 7.PAYMENT 이렇게 네 개의 PARAMETERS를 입력 비활성 처리를 하고 있습니다.
- 만약 특정 사용자에게 비활성을 적용해야 하는 경우 IF 조건문에서 SY-UNAME = ‘사용자ID’를 사용하면 사용자 별로 입력 활성 및 비활성을 제어할 수 있습니다.
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
이 글이 도움이 되었기를 바랍니다. ^-^