여러곳에 조회를 해봐도 이 현상에 대해 글과 답변이 없어서...
이렇게 자문을 구합니다.
==================================================
1) INTO CORRESPONDING FIELDS OF TABLE lt_data
2) INTO TABLE lt_data
==================================================
CORRESPONDING FIELDS <== 동일한 필드에 값이 들어가는 걸로 알고있습니다.
이번이 2번째인데...
1번으로 값이 안들어갈때가 있어서 2번으로 하면 값이 들어가 지는데...
왜 그런지 혹시 아시는 분 계신가요?
저만 이런 현상이 있는건가요?
cf) 혹시 SELECT 절에 필드값 추가 한다고
데이터 조회건수가 틀려지는 경우도 있는데...
혹시 왜 그런지 아시는 고수분 없으신가요???
죄송합니다. 특이해서 ㅠㅠ
첫번째 문제는 lt_data 의 필드명과 읽어오는 테이블의 필드명이 다를것으로 생각됩니다.
아래 소스코드를 테스트 한번 해보세요
DATA: BEGIN OF ls_data,
mandt LIKE bkpf-mandt,
bukrs LIKE bkpf-bukrs,
temp LIKE bkpf-belnr,
END OF ls_data.
SELECT SINGLE mandt bukrs belnr
FROM bkpf
INTO ls_data.
WRITE:/ ls_data-mandt, ls_data-bukrs, ls_data-temp.
CLEAR: ls_data.
SELECT SINGLE mandt bukrs belnr
FROM bkpf
INTO CORRESPONDING FIELDS OF ls_data.
WRITE:/ ls_data-mandt, ls_data-bukrs, ls_data-temp.
두번째현상은 주로 FOR ALL ENTRIES로 데이터를 읽어올 경우에 문제가 발생합니다.
SELECT 절의 선택필드들 모두가 중복되는경우(키값이 다르게 저장된 데이터라 할지라도) 중복되는 라인중에 한줄만 나오게 됩니다.
따라서 모든 키 필드들을 선택조건에 포함할경우 문제가 해결됩니다.