TYPES: BEGIN OF infoven,
lifnr TYPE lfb1-lifnr,
name1 TYPE lfa1-name1,
ktokk TYPE lfa1-ktokk,
stcd2 TYPE lfa1-stcd2,
banks TYPE lfbk-banks,
bankl TYPE lfbk-bankl,
banka TYPE bnka-banka,
koinh TYPE lfbk-koinh,
END OF infoven.
DATA: itab TYPE TABLE OF infoven,
wa LIKE LINE OF itab.
*Start-Of-Selection.
SELECT a~lifnr b~name1 b~ktokk b~stcd2 c~banks c~bankl
d~banka c~bankl c~koinh
INTO CORRESPONDING FIELDS OF TABLE itab
FROM ( ( ( lfb1 AS a INNER JOIN lfa1 AS b ON a~lifnr = b~lifnr )
INNER JOIN lfbk AS c on a~lifnr = c~lifnr )
INNER JOIN bnka as d on c~banks = d~banks
and c~bankl = d~bankl )
WHERE a~lifnr IN vender
AND b~ktokk IN accgroup.
이러한 구문을 구버전 에디터에서 작성하였는데
위에서 주석 처리한 것과 같이 START-OF-SELECTION을 쓰면
SELECT구문에서 itab을 인식하지 못하더라구요.
그런데 똑같은 구문을 신버전 에디터에서 작성하면 문제가 없는데...
무슨 차이 때문에 그럴까요?
흠.. 아마도 이벤트 순서를 잘 인식하지 못하는 것 같네요. 테스트가 되면 좋겠지만
그렇지 못한 관계로 추즉만 말씀드리면 프로그램 시작은 load-of-program 이라는 이벤트를
시작으로 하는데요(class 의 constructor 역할) stat-of-selection 이 없을 경우
이 이벤트에서 위 select 문장이 실행이 되는 것 같습니다.
load-of-program은 프로그램 준비 단계라고 할 수 있는데 이 때는 itab 선언을 인식하지 못하거든요.
아마도 그렇지 않을까하는 추측입니다. ^^ 다른 분 말씀 경청 준비중...