Screen Exit이란 스탠다드 티코드의 화면에 cbo 필드를 추가하는 것이다.
SAP는 스크린의 서브스크린에 필드를 추가할 수 있도록 열어놓았는데, 바로 그 부분에 개입하여 exit을 수행하는 것이다.
앞서 봤던 Function Exit, Menu Exit과 동일하게 Screen Exit도 어떻게 수정포인트(Exit)를 찾을 수 있을까?
Function Exit이 'Call Customer-function'으로 시작하는 것 처럼
Screen Exit도 'Call Customer-Subscreen'으로 시작한다.
즉, 스크린 PBO 내에 'Call Customer-Subscreen' 이 있어야 하는데, 찾는 방법은 다음과 같다.


찾고자 하는 티코드 스테이터스를 띄우고 스크린 넘버를 더블클릭하여 로직을 들어간다.

SE80으로 화면이 넘어가는데, 좌측 오브젝트 트리 중 스크린을 펼쳐 스크린 넘버에 커서를 두고 CTRL + F를 눌러 소스코드 스캔을 띄운다.

메인프로그램 옵션 선택 후 'call customer-subscreen' 을 입력하고 엔터를 쳐 소스를 스캔한다.

아, 해당 티코드는 스크린 EXIT이 있다.
그럼 티코드의 패키지를 통해 exit 명을 찾아야 할 것이다.

티코드의 패키지는 CATS이므로 티코드 SMOD에서 CATS를 넣고 조회한다.

스크린 EXIT을 포함하는 EXIT 엔트리가 3가지인데..


SAPLCATS의 스크린 1000에서 호출하는 SAPLXCAT의 2000스크린을 호출하도록 하는 EXIT을 찾아야한다.
다행히 엔트리가 2개이니 열심히 들락거리며 찾아보면 된다.

CATS0007 EXIT을 보면 Screen areas 박스에 스크린 exit이 가능한 정보가 있는데 의미는 다음과 같다.
'SAPLCATS라는 프로그램의 1000 스크린에서 CUSTSCR2라는 서브스크린 area가 있는데 SAPLXCAT 프로그램의 2000 스크린을 호출한다.'
Exit을 찾았다.

CMOD에서 해당 EXIT을 추가한 뒤 screen exit을 유지보수해주면 된다.






스크린 정의가 다 끝났다면 ACTIVE버튼을 눌러 프로젝트를 활성화시킨다.
이제 EXIT을 집어넣은 티코드를 다시 들어가보자.


Screen Exit에 대한 로직이 정상적으로 출력되었다.
Exit도 기본적인 스크린-서브스크린 구현에 대한 로직을 따라간다.
메인스크린의 pbo-> 서브스크린 호출 -> 서브스크린 pbo
유저액션(버튼클릭 등)
서브스크린 pai -> 메인스크린 pai
* 틀린 내용은 댓글로 지적해주시면 감사히 받겠습니다 :)

'SAP > Enhancement' 카테고리의 다른 글
[ABAP] 10. SAP Classic BADI -1 (0) | 2024.11.06 |
---|---|
[ABAP] 08. SAP Customer Exit: 정리 (0) | 2024.11.05 |
[ABAP] 06. SAP Customer Exit: Menu Exit (0) | 2024.11.04 |
[ABAP] 05. SAP Customer Exit: Function Exit (0) | 2024.11.04 |
[ABAP] 04. SAP Customer Exit (0) | 2024.11.04 |