안녕하세요~
Internal Table을 생성할 때
OCCURS를 해주는 것과 안 해주는 것의 차이가 뭔가요?
SAPSHOW에서는 그냥 type standard table of 이런식으로만 생성을 하던데
제가 배울 때는 Internal Table 생성시 OCCURS 0를 주라고 했었거든요
둘 다 똑같이 Internal Table이 생성되는게 맞긴 맞는건가요?
답변 부탁드립니다.
감사합니다~
댓글 6
-
e-abap
2007.06.08 18:22
-
기절하고파
2007.06.08 18:51
E-ABAP님 oop개념에서 더 이상 사용할수 없는 이유가 뭔가요??
-
coder
2007.06.08 19:21
OOP 에서는 주의해야 하실점이 헤더라인이 있는 인터널 테이블을 쓰실수 없습니다.
DATA : BEGIN OF ITAB OCCURS 0,
END OF ITAB.
이런식으로 하면 헤더라인이 있는 인터널 테이블로 설정이 됩니다. 따라서 E-ABAP님께서 못쓰신다고 말씀하신거 같고요.
TABLES문도 쓸수가 없습니다.
TYPE문과 LIKE문도 엄격히 지키셔야 합니다.
OOP 개념이 도입되면서 타입체크 기능이 강화 된듯합니다.
-
기절하고파
2007.06.11 17:56
아~ 네^^ 감사합니다. coder님!
-
하늘사랑
2007.07.23 22:55
저도 최근에서야 알았는데 OOP 에서는 모두 HEADER가 없는 TABLED을 PARAMETER로 사용합니다. 저는 이것이 너무 불편하네요.
-
ABAP쟁이
2008.10.10 20:13
참고 하겠습니다.
인터널 테이블을 선언하는 방법이 다른 것입니다.
occurs 0를 선언한는 것은 구식 방법입니다. - ABAP OO 개념에서는 더 이상 사용되지 않습니다.
occurs 0에서 0은 인터널 테이블의 라인수를 제한하지 않는다는 것인데, 실제는 큰 의미가 없습니다.
다음 두가지 방법을 사용하세요.
TYPES: BEGIN OF ty_itab,
category_id TYPE comt_category_id,
category_text TYPE comt_category_text,
hierarchy_guid TYPE comt_hierarchy_guid,
non_assignable TYPE comt_non_assignable_category,
END OF ty_itab,
ty_t_itab TYPE TABLE OF ty_itab.
DATA: lt_itab TYPE ty_t_itab WITH HEADER LINE.
OR
DATA: lt_itab TYPE STANDARD TABLE OF ty_t_itab,
wa_itab like line of lt_itab.