쌓고 쌓다

[ABAP] Screen 이동 (SET SCREEN, CALL SCREEN) 본문

SAP/ABAP

[ABAP] Screen 이동 (SET SCREEN, CALL SCREEN)

승민아 2025. 1. 12. 01:52

 

먼저 다수의 Screen이 존재할때

Screen의 이동 방식에대해 이해해보자.

 

100 스크린에서 Enter를 입력하면

100번 스크린에서 PAI 모듈을 거치고

다음 스크린의 PBO로 이동한다.

 

위의 방식으로 스크린 이동이 이뤄진다.

 

Static Screen Sequences

Screen의 Attribute를 보면 Next Dynpro 속성이 있다.

이 속성은 현재 스크린에서 Enter를 입력한다면 이동하는 스크린이다.

 

Dynamic Screen Sequence

Run Time에 일시적으로

Static Screen Sequence에서 봤던 다음 스크린인

static Next Screen(Next Dynpro)을 덮어쓸 수 있는데

SET SCREEN 키워드를 사용한다.

 

스크린 이동 코드는 PAI에서 작성한다.

인풋을 처리하고 다음 스크린의 PBO 모듈을 실행해야하기 때문이다.

 

SET SCREEN 100.

LEAVE SCREEN.

LEAVE TO SCREEN 100.

으로도 사용이 가능하다.

 

Insert Screen Sequences

우리는 스택에 스크린을 추가할 수 있다.

스택에 추가한 스크린으로 이동했다가

다시 원래 스크린으로 돌아올 수 있다.

 

그림을 보며 이해해보자.

(1) : 100번 스크린에서 200번 스크린으로 이동

(2) : 200번 스크린에서 CALL SCREEN으로 300번 스크린으로 이동

 

이전에 스크린 이동 키워드인

SET SCREEN ~ LEAVE SCREEN과 달리

이때 CALL SCREEN은 스크린을 INSERT하여 잠시 갔다오는것이고

CALL SCREEN 이후의 코드 (4) 번 부분을 마저 실행한다.

 

(3) : 300번 스크린 기준으로 0번 스크린으로 이동하면

 호출한 200번 스크린으로 돌아간다.

 

(4) : CALL SCREEN 이후의 코드들을 실행한다.

 

Calling a Dialog Box

모달 창을 호출해보자.

 

모달 창으로 쓰일 101번 스크린을 생성한다.

Dynpro Type에 Modal dialog box를 체크해주자.

 

 

100번 스크린에서 101번 스크린을 다음과 같이 호출하면 된다.

ENDING AT은 옵션이므로 STARTING AT은 필수라 꼭 써줘야한다.

LEFT_COL, UPPER_ROW는 좌상단 시작점

RIGHT_COL, LOWER_ROW는 우하단 종점이다.

Comments