SAP/ABAP

Short Dump AC_SYSTEM_FLUSH 에 대처하는 우리의 자세

그녀는애교쟁이 2014. 8. 1. 10:05
반응형

개발을 하는 도중에 덤프를 만나는 일은 자연스러운 일이다. 그리고 대부분의 오류는 왜 나는지 정확히 위치와 내용을 알려준다. 그리고 SAP 시스템이 너무 구형이 아니라면 소스 코드를 더블클릭 또는 상단에 Debugger 버튼을 누르면 오류가 난 위치로 이동까지 해서 해결이 쉽다. 하지만 가끔 이건 왠 뜸금포인가 하는 덤프가 날 때가 있다. 어디서 난지 찾아가도 왜 나는지 알지 못하는 현상이 있다. 


SDN 이나 구글을 검색해 봐도 이상한 소리만 하고 Notes 적용만 하라고 하고 막 그러는데 실제로 Notes 를 적용해서 오류를 해결하는 것 보다 개발하는 중 코드의 문제로 발생하는 문제가 많다. 그러므로 괜히 Notes 먼저 적용해서 BC 한테 욕 먹지 말고 자신의 개발 코드를 천천히 debug 해보는 것이 좋겠다. 


오늘의 상황은 ALV 에 Insert Row 를 했는데 AC_SYSTEM_FLUSH 에서 덤프가 발생하는 경우이다. 이런 경우 메시지가 일단 뭐라고 하는지 알아 먹지도 못하고, 결정적으로 오류난 부분을 찾아가도 원인을 알기 쉽지 않은 것이 대부분이다. 하지만 ALV 가 처음에는 잘 나오고 이벤트를 태우는 순간 오류가 발생하는 걸로 봐서 이벤트에서 뭔가 문제가 있을 것이라는 것을 유추할 수 있다. (이건 개발하면서 삽질...아 오랜만에 쓰는 단어다.. 하다보면 늘게 되는 것이다.)




[ ▲ 오류가 발생했다. ]



[ ▲ 뭐라고 하는지 하나도 모르겠다. ]




[ ▲ 실제 오류가 난부분을 소스코드에서 알려준다. 

소스 코드를 더블 클릭 하거나, 상단 Debugger 버튼으로 이동가능하다. ]



오늘의 결론이다. 오류의 원인은 ALV 에서 처리하는 Data_Changed 이벤트를 타고 나서 발생하는 것이었다. 컬럼중에 필수로 넣어야 하는데 공란은 선택지에 없어서 나는 오류인데 그걸 다시 ALV 를 그리려고 하니 나는 오류로 확인되었다. 그래서 Data_changed 이벤트를 주석처리를 해버리니 오류대신 필수로 넣어야 하는 컬럼에 값을 제대로 넣으라고 팝업이 뜨면서 덤프가 떨어지던 현상은 사라졌다. 


모든 프로그램이 완벽 할 수는 없지만 최소한 사용자가 덤프는 당하지 않게 하는게 우리의 사명인 것 같다. 훌륭한 분들이 개발하는 상용프로그램에도  버그가 있어 패치를 하는데 하물며 나 같은 평범한 개발자가 버그가 없을리가 없지 않은가? 하지만 체크하고 체크해서 최대한 완벽한 프로그램을 만드는 것이 우리의 목표이다. 


- 끗 -