SAP ABAP AT EXIT-COMMAND과 OK_CODE 방식의 차이점
AT EXIT-COMMAND와 OK_CODE 방식으로 화면 프로그램에서 나올 때 차이점을 알아보도록 하겠습니다.
우선, GUI Status에서 EXIT-COMMAND의 설정에 대한 '역할'을 알아보겠습니다.
GUI Status
Exit Command ( Module AT EXIT-COMMAND )
해당 GUI Status 기능키(Function Key)에 'E' Exit Command ( Module AT EXIT-COMMAND ) 설정을 한 이후에 아래의 모듈에 USER_EXIT AT EXIT-COMMAND. 모듈을 만들어줍니다.
자! 그럼 여기서 제가 만들어준 USER_EXIT AT EXIT-COMMAND 어떻게 기능이 작동될까요?
위 사진에 Function key에 설정해준 'E' 명령어가 들어왔을 때만! 그리고 AT-EXIT-COMMAND가 있는 모듈만! 실행되게 해주는 것입니다. 이해되셨나요?
그럼 화면에서 한번 같이 테스트를 해보죠
( 아차 TYPE-1 실행가능프로그램으로 테스트를 할 경우 스크린1000번에서 하시면 안되고 만들어 놓은 스크린 100번에서 테스트를 해주셔야 합니다. 스크린 1000번은 스탠다드에서 빠져나오는 기능을 제공해줍니다 )
각 모듈에 BREAK-POINT를 설정해줍니다.
MODULE TEST_001
MODULE USER_EXIT
그리고 FUNCTION_KEY 'E'를 다시 Nomal type으로 변경해줍니다
스크린(100) 화면에서 BACK 키를 눌러줍니다.
AT-EXIT-COMMAND가 아닌 젤 상단에 있었던 모듈에 BREAK-POINT가 걸리는 걸
확인할 수 있습니다.
그리고 이어서 바로 아래에 있는 EXIT-COMMAND MODULE을 타는게 아닌
바로 PBO로 가는 것을 볼 수 있습니다. 왜냐하면 FUNCTION KEY 'E'에서
NOMAL TYPE으로 변경했기 때문이죠.
이제는 AT EXIT-COMMAND의 역할을 아시겠나요? 만약, 위 같은 상황에서 다시 TYPE을 Nomal에서 'E'로 변경했을 시에는 MODULE TEST_001을 무시하고 바로 USER_EXIT AT EXIT-COMMAND로 갈 것입니다.
그렇다면 TYPE을 'E'으로 하고 모듈(MODULE)에 AT EXIT-COMMAND 하면 해당 로직을 타는 것 까지는 알겠는데 왜 어떤 모듈 로직에서는 OK_CODE를 사용하고 어떤 로직은 사용을 안해도 되는데 무슨 차이가 있길래 OK_CODE를 쓰는 것일까요?
이유는 위에서 언급했듯이 Input Field 필드가 필수 값이면 입력하지 않은 이상 프로그램 Funtion key 'E'가 작동하지 않지만 OK_CODE로 했을 시에는 필수 값이어도 프로그램을 빠져나올 수 있습니다.
아래의 예시를 보시죠
EX)
화면에 Input Field 필드 추가 옵션(possible -> required) 필수 값 설정
OK_CODE 사용하지 않고 프로그램을 빠져나오는 LEAVE SCREEN 또는 SCT SCREEN 0 해도 무방
해당 프로그램 화면에서 나오려고 하면 어떻게 될까요?
결론은 기능키가 먹히질 않습니다.
그렇다면 OK_CODE 소스로 해보겠습니다.
마찬가지로 BACK을 누르면 됩니다. 아니 되야합니다
근데 안됩니다 ㅎㅎ 왜안될까요? 위에 소스를 보시면
BACK OR CANC --> SET SCREEN 0 인 것을 알 수가 있습니다.
그렇습니다 Input field가 필수 값이 있을 경우 바로 전 단계화면(스크린1000)으로도
갈 수가 없습니다. 대신에 EXIT( LEAVE PROGRAM) 를 누르게 되면 Input Field가 필수 값이어도 프로그램에서 나갈 수 있습니다 ^^*
기계적으로 소스를 사용하여 무조건 OK_CODE로 사용하지만 한번 쯤은 짚고 넘어가면 좋은 질문이었습니다^^*
끝.
p.s ( 간혹 기능키가 작동하지 않은 경우가 있는데 관련 문제는 주로 아래의 사진 3개가 제대로 맞는지 확인해봐야 한다 )
'SAP > ABAP' 카테고리의 다른 글
SAP ABAP WITH HEADER LINE itab[] 헤더라인 (0) | 2021.04.01 |
---|---|
SAP ABAP 연산자 (0) | 2021.03.30 |
SAP ABAP TYPE-1(실행가능프로그램)과 모듈 풀 차이점 (1) | 2021.03.29 |
SAP ABAP 디버깅(Debugging) 데이터 APPEND (0) | 2021.03.28 |
필드심볼(ASSIGNING FIELD-SYMBOL)과 구조체(INTO) 차이점 (0) | 2021.03.28 |
댓글