개발을 하는 도중에 덤프를 만나는 일은 자연스러운 일이다. 그리고 대부분의 오류는 왜 나는지 정확히 위치와 내용을 알려준다. 그리고 SAP 시스템이 너무 구형이 아니라면 소스 코드를 더블클릭 또는 상단에 Debugger 버튼을 누르면 오류가 난 위치로 이동까지 해서 해결이 쉽다. 하지만 가끔 이건 왠 뜸금포인가 하는 덤프가 날 때가 있다. 어디서 난지 찾아가도 왜 나는지 알지 못하는 현상이 있다.
SDN 이나 구글을 검색해 봐도 이상한 소리만 하고 Notes 적용만 하라고 하고 막 그러는데 실제로 Notes 를 적용해서 오류를 해결하는 것 보다 개발하는 중 코드의 문제로 발생하는 문제가 많다. 그러므로 괜히 Notes 먼저 적용해서 BC 한테 욕 먹지 말고 자신의 개발 코드를 천천히 debug 해보는 것이 좋겠다.
오늘의 상황은 ALV 에 Insert Row 를 했는데 AC_SYSTEM_FLUSH 에서 덤프가 발생하는 경우이다. 이런 경우 메시지가 일단 뭐라고 하는지 알아 먹지도 못하고, 결정적으로 오류난 부분을 찾아가도 원인을 알기 쉽지 않은 것이 대부분이다. 하지만 ALV 가 처음에는 잘 나오고 이벤트를 태우는 순간 오류가 발생하는 걸로 봐서 이벤트에서 뭔가 문제가 있을 것이라는 것을 유추할 수 있다. (이건 개발하면서 삽질...아 오랜만에 쓰는 단어다.. 하다보면 늘게 되는 것이다.)
[ ▲ 오류가 발생했다. ]
[ ▲ 뭐라고 하는지 하나도 모르겠다. ]
[ ▲ 실제 오류가 난부분을 소스코드에서 알려준다.
소스 코드를 더블 클릭 하거나, 상단 Debugger 버튼으로 이동가능하다. ]
오늘의 결론이다. 오류의 원인은 ALV 에서 처리하는 Data_Changed 이벤트를 타고 나서 발생하는 것이었다. 컬럼중에 필수로 넣어야 하는데 공란은 선택지에 없어서 나는 오류인데 그걸 다시 ALV 를 그리려고 하니 나는 오류로 확인되었다. 그래서 Data_changed 이벤트를 주석처리를 해버리니 오류대신 필수로 넣어야 하는 컬럼에 값을 제대로 넣으라고 팝업이 뜨면서 덤프가 떨어지던 현상은 사라졌다.
모든 프로그램이 완벽 할 수는 없지만 최소한 사용자가 덤프는 당하지 않게 하는게 우리의 사명인 것 같다. 훌륭한 분들이 개발하는 상용프로그램에도 버그가 있어 패치를 하는데 하물며 나 같은 평범한 개발자가 버그가 없을리가 없지 않은가? 하지만 체크하고 체크해서 최대한 완벽한 프로그램을 만드는 것이 우리의 목표이다.
- 끗 -
'SAP > ABAP' 카테고리의 다른 글
ABAP Field Symbol 의 사용 (0) | 2014.09.03 |
---|---|
ABAP Collect 의 사용 가이드 (0) | 2014.09.01 |
ABAP 금액 변환 방법 및 함수 (0) | 2014.08.22 |
ABAP 문자열 대문자, 소문자로 변환하는 방법 Translate (0) | 2014.08.07 |
CR 이 Lock 걸렸을 때 푸는 방법 ( SE09 사용 ) (0) | 2014.08.06 |
SM30 Maintenance View 실행시 상단 타이틀 깨지는 현상 (0) | 2014.07.30 |
ABAP 정규표현식을 사용한 사번체크 (0) | 2014.07.24 |
ABAP Dynamic Internal Table 을 Read Table 하기 (0) | 2014.07.16 |
Variant 없이 Batch Job 생성하기 ( Dummy Variant 생성 ) (0) | 2014.07.16 |
ABAP Report Dynamic Variant 만들기 (0) | 2014.07.11 |