DELETE zsdt0039 FROM gt_delete.
IF sy-subrc = 0.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.
gt_delete 인터널테이블에 담아서 몸땅 삭제할려고 했는데요..
계쏙 sy-subrc에 4로 떨어집니다. 도통 이유가 뭔지 모르겠습니다.
그래서 아래와 같이
IF sy-subrc <> 0.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.
sy-subrc <> 0 이라고 쓰니깐 해당 데이터가 다 삭제되어 버리네요.
그런데 sy-subrc = 0 이 정상인걸로 아는데 왜 이런 문제가 발생되는지 알수가 없네요.
gt_delete는 zsdt0039를 사용한 헤드를 가진 인터널테이블입니다.
빠른 답변 부탁드릴께요.
zsdt0039 테이블에 gt_delete 아이템 중 하나(primary key로 비교하여)라도 없을 경우 삭제를 못하게 되는 아이템이 존재하게 되죠. 그런 아이템을 무시하고 삭제를 실행합니다.
즉 "DELETE zsdt0039 FROM gt_delete" 구문은 위에 해당하는 값을 무시하고 삭제를 실행하고 sy-subrc 값에 4를 입력하게 됩니다.