4.6c에서는 이런 에러가 방생하지 않는데,
ecc6.0에서 이러한 에러가 발생 합니다
"SSFCOMPOP" must be a flat structure. You cannot use internal tables,
strings, references, or structures as components. .
ssfcompop 구조를 보면 다른 구조체를 include하고 있는 상태입니다.
그래서 include structure를 사용해봤는데도 같은 에러가 발생하고 있습니다.
왜 이런 에러가 발생하는 알려 주세요 ㅜㅜ
댓글 4
-
요요
2010.01.26 02:18
-
whatup
2010.01.26 03:22
그렇다면 ssfcompop을 가져와서 사용할려고 하는데 어떻게 해야 되나요??
like로 사용하면 에러가 떨어지고, type를 사용하면 에러가 떨어지지는 않지만
테이블안의 요소들을 사용 할수 있는지도 알고 싶습니다.
like와 type가 조금은 차이가 있다고 알고 있어서요
-
요요
2010.01.27 01:05
DATA : BEGIN OF struc.
INCLUDE STRUCTURE ssfcompop.
DATA : END OF struc.
이렇게 사용하는 경우 syntax 에러가 발생할 거구요.
DATA : BEGIN OF struc.
INCLUDE TYPE ssfcompop.
DATA : END OF struc.
이렇게 사용하시면 됩니다.
그리고 type 과 like 는 똑같다고 합니다. 단지 차이라고 하면 오른쪽에 참조하는 대상이
좀 다르다는 건데요. type 같은 경우가 프로그램내에서 types 로 선언된 구조나 변수, ddic에
있는 오브젝트 등이 되겠구요. like 는 프로그램에서 이미 data 로 선언이 되어
초기값을 가지고 있는 변수들 정도로 이해하시면 될 거예요. 차이가 좀 미묘해서
설명이 되었을지 모르겠네요.
ECC 로 올라오면서 아래와 같이 바뀌어진 것 같습니다.
INCLUDE TYPE 과 INCLUDE STRUCTURE 에서 사용되는 구조의 차이는 아래와 같이 얘기하고 있네요.
INCLUDE TYPE struc_type can be a local (within program), structured type or a structure from the ABAP Dictionary.
INCLUDE STRUCTURE struc must be a structure of the same program.
-
whatup
2010.01.27 02:43
요요님 감사합니다.
항상 이해가 쉽게 설명을 해주시고, 친절히 알려주셔서 감사합니다.
ssfcompop 에 XSFPARS 가 table-type 으로 되어 있네요.
table-type 은 internal tables 로 분류가 됩니다.
아마도 이것 때문에 include가 되지 않는 것일 거예요.
flat-structure 라는 것은 길이가 제한된 필드로 구성된 구조를 얘기하는데
위에서 언급한 내용은 그렇지 않은 것들이 포함되었다는 뜻입니다. ^^