이글은 아래 링크의 원본 글에 대한 한글 번역 입니다
https://blogs.sap.com/2014/06/16/how-to-report-only-one-error-message-for-many-mandatory-fields-in-web-dynpro-abap/
How to Report only one error message for many mandatory fields in Web Dynpro ABAP
June 16, 2014
필수값 체크를 위해서 보통은 클래스 CL_WD_DYNAMIC_TOOL의 메소드 CHECK_MANDATORY_ATTR_ON_VIEW( )를 호출합니다.
Yes, 이건 잘 동작합니다. 하지만 동일한 에러 메시지 “모든 필수 입력 필드를 채우십시오”를 여러 필드에 대해 여러번 출력하는 문제가 있습니다. 예를들어 필드가 100개면 100개의 에러 메시지가 출력됩니다.
원래 실행 결과:
필수값 체크 에러가 발생했네요. 필드 하나당 메시지 하나씩 입니다.
엄청난 스크롤이 메시지 영역에 나타났습니다. 메시지가 지루하게 많습니다. 게다가 화면 윗부분에 자리를 많이 차지하고 있습니다.
그럼 어떻게 하면 좋을까요?
여러 필드 필수값 체크에 에러메시지 하나만 표시하기를 원한다면...
해결 방법:
- 메소드 CHECK_MANDATORY_ATTR_ON_VIEW 호출시 메시지를 표시하지 않도록 파라미터 DISPLAY_MESSAGES = ABAP_FALSE 을 입력합니다.
- 메시지는 인터널 테이블 lt_messages에 넣어 둡니다.
- lt_messages에는 메시지 외에도 필수값 체크에 에러가 난 컨텍스트 엘리먼트와 어트리뷰트 정보가 들어 있습니다.
- 각 컨텍스트 엘리먼트 별로 어트리뷰트 목록을 모아서 lt_attributes에 넣습니다.
- IF_WD_MESSAGE_MANAGER의 메소드 REPORT_ELEMENT_ERROR_MESSAGE( )를 사용하여 각 컨텍스트 엘리먼트 별로 하나의 에러 메시지를 표시하도록 합니다.
이 해결 방법이 좋아 보입니다.
뷰의 WDDOBEFOREACTION( ) 메소드에 아래 코드를 입력해 주세요..
주의: 메시지는 컨텍스트 엘리먼트 별로 하나씩 표시 됩니다. 즉 뷰에 컨텍스트 노드가 여러개라면, 여러개의 메시지가 컨텍스트 엘리먼트 별로 하나씩 표시 됩니다.
WDDOBEFOREACTION( ) |
---|
|
실행 결과 - 1:
에러 메시지가 컨텍스트 엘리먼트 별로 하나씩 표시 됩니다
실행 결과 - 2:
사용자가 영역 1 에 필수 값을 모두 입력하고 check data 버튼을 눌렀습니다,
————————————-
이 글이 (컨텍스트 엘리먼트 별로) 메시지 하나만 출력하고자 하던 분들에게 도움이 되셨길 바랍니다.
그리고 모든 컨텍스트에 대해 메시지 하나만 표시하고 원하신다면 아래 글을 참고하세요.
How to Report one attribute error message for multiple fields in Web Dynpro ABAP
————————————
여러분의 소중한 피드백 / 제안 / 댓글 환영합니다.
이글은 아래 링크의 원본 글에 대한 한글 번역 입니다
https://blogs.sap.com/2014/06/16/how-to-report-only-one-error-message-for-many-mandatory-fields-in-web-dynpro-abap/
'ABAP > Web Dynpro ABAP(WDA)' 카테고리의 다른 글
[번역] 비지니스 그래픽 사용방법 (0) | 2016.12.07 |
---|---|
[번역] 웹딘프로아밥 adaptation에 대한 상세한 분석 (0) | 2016.12.06 |
[번역] 웹딘프로아밥 어플리케이션 사이에 안전한 파라미터 전송방법 (0) | 2016.12.05 |
[번역] 웹딘프로아밥 ALV 에서 드래그 앤 드랍 (0) | 2016.12.05 |
[번역] 웹딘프로아밥 화면 데이타(컨텍스트) 변경을 인식하는 방법 (0) | 2016.12.05 |