소스상으로 변한건 없습니다.
오늘 갑자기 PERFORM 문을 수행후 빠져 나오면 SUBRC 가 4로 떨어 집니다.
어제까지는 0 이었는데요..
값도 문제가 없는데요..혹시 시스템 상에 변경 사항으로 이런 현상이 일어 날 수 있는지요..
요즘 이상한 현상이 많이 생기네요..
ECC6.0 입니다.
* e-abap님에 의해서 게시물 이동되었습니다 (2010-07-07 23:37)
* e-abap님에 의해서 게시물 이동되었습니다 (2010-07-07 23:42)
댓글 6
-
버미!
2010.06.29 03:53
-
준서기
2010.06.29 06:38
perform 문에서 어떤 명령어가 실행된 후 subrc 값이 변경되었을 겁니다
디버깅 하면서 비교해 보세요
-
양키
2010.06.29 07:08
귀신이 곡할 노릇이군요...
중간에 다른 쿼리문이나 read문등이 탓을거라 사료되어집니다.
-
양키
2010.06.29 07:10
날짜에 따른 조건문이 걸려있는지도 확인하세요.
일자로 조회하는데 어제는 조회됬지만, 오늘은 조회안된다...그럴수있지요.. -
남산밑
2010.06.29 17:57
하하..스무고개 하는 느낌이실 겁니다.
물론 디버깅도 해보고 날짜조건은 없습니다.
FORM reduce_commitment.
LOOP AT LT_ZSC010 WHERE SUBRC NE 0.
MESSAGE E000(ZZ) WITH TEXT-M46.
ENDLOOP.
ENDFORM.
CHECK sy-subrc = 0.
에러가 나면 더이상 진행은 안되는 구조이며,정상이라면 perform문을 나오면 bubrc가 0 이어야 하는데..4로 떨어집니다.
제가 궁금한게 perform문을 나오면 4로 변할 수 있는 경우가 있는지 궁금 한거죠..시스템 셋팅상..
-
맑은하늘
2010.06.29 20:20
코딩으로 봐서는 lz_zsc010 에 subrc 가 0 이 아닌 것이 없어서 결과가 subrc = 4로 나온것 같네요.
제대로 알고 있는 것인지 모르겠지만 perform 은 subrc 점검을 하지 않습니다.
perform 문 수행시 내부로직에서 발생한 최종 subrc값이 endform 을 나올때 그대로 유지되는 것 같네요.
결과로 본다면 lt_zsc010 에 대하여 수행된 수행 결과는 모두 정상이어서
loop at lt_zsc010 where subrc ne 0 조건에 해당하는 데이터가 한건도 없어서 그런 결과가 나온것 같네요.
결국 lt_zsc010 에 대하여 처리된 데이터가 모두 정상적으로 실행된것 같네요.
좀 문제가 되어 보이는 것은 check sy-subrc = 0 조건이 부합할 경우에는 error message 가 뿌려지기 때문에
실행이 되지 않을 것 같군요.^^
질문의 범위가 굉장히 크네요..
Perform문의 내용을 올려주시거나 핵심 포인트를 알려주시면 좀더 답변을 쉽게 얻을 수 잇지 않을까요?
어제 프로그램이 잘되다가 오늘 실행하니 안됩니다. 왜그럴까요?
^^;