ASAP

[ABAP] MODIFY SCREEN을 했는데 안 바뀔 때 + MODIFY SCREEN 설명 본문

SAP(ABAP)/이슈

[ABAP] MODIFY SCREEN을 했는데 안 바뀔 때 + MODIFY SCREEN 설명

에이SAP 2023. 6. 9. 10:05
728x90

MODIFY SCREEN을 설명하기 앞서 PBO, PAI 기능을 간단히라도 알고 가야 한다. 

PBO(Process-Before-Output) : 화면이 뿌려지기 전 타는 이벤트

PAI(Process-After-Input) : 화면을 뿌린 뒤 액션을 취했을 때 타는 이벤트 

 

PBO, PAI에 대해서 간략히 알았으면 이제 MODIFY SCREEN이 왜 안 먹는지 하나하나 적용시켜보자.

 

1. MODIFY SCREEN하는 구문이 PBO에 있는지 확인 

https://help.sap.com/doc/abapdocu_752_index_htm/7.52/en-US/abapmodify_screen.htm

 

MODIFY SCREEN - ABAP Keyword Documentation

SAP NetWeaver AS ABAP Release 752, ©Copyright 2017 SAP AG. All rights reserved. ABAP - Keyword Documentation →  ABAP - Reference →  SAP GUI User Dialogs →  Dynpros →  ABAP Statements for Dynpros →  LOOP AT SCREEN →  MODIFY SCREEN Q

help.sap.com

위 공식 문서를 보면 MODIFY SCREEN 구문은 PBO(Process Before Output) 프로세싱 안에만 써야 한다고 나와 있다, 

PAI에서 MODIFY SCREEN을 해도 이미 화면이 뿌려진 뒤이므로 화면은 바뀌지 않는다. 

 

2. USER-COMMAND 를 추가했는지 

라디오 버튼 등을 클릭 했을 때 SCREEN에 이벤트를 탈 수 있게 USER-COMMAND 를 추가했는지를 확인. 

PARAMETERS : p_rd1 RADIOBUTTON GROUP rb1 DEFAULT 'X' USER-COMMAND dummy,
             p_rd2 RADIOBUTTON GROUP rb1,
             p_rd3 RADIOBUTTON GROUP rb1.

스크린페인터인 경우, F코드를 추가했는지 확인. Function Command를 추가해야지만 PAI 이벤트를 탐. 

3. SCREEN-GROUP1, SCREEN-NAME 설정을 잘 했는지

스크린을 제어하기 위해 LOOP AT SCREEN 구문 안에서 GROUP1, NAME 을 이름을 제대로 지정했는지 확인해보자.

GROUP으로 할 경우 내가 SCREEN에 GROUP 설정을 잘 했는지

NAME으로 했을 경우 NAME이 틀리지 않았는지 등을 확인한다. 

728x90