Structure는 Table처럼 필드를 가지고 있지만, 데이터는 저장할 수 없으며 구조만 가지고 있다. 참조로 사용되거나 테이블 또는 구조체의 구조로 포함(INCLUDE, APPEND) 된다.
✔️ Table에서 공통으로 관리되어야할 Field를 Structure에 모아놓고 관리한다
여러 프로그램에서 같은 구조의 타입으로 빈번히 사용되는 정보
Ex) Time Stamp : 레코드가 테이블에 들어온 날짜 / 시간 / 작성자 / 변경된 날짜 / 시간 / 변경자
| Table | Structure | |
|---|---|---|
| 무엇을 저장? | 필드와 데이터 | 필드/데이터의 구조 |
| PK 보유? | 보유 | 미보유 |
| mandt 필드? | 보유 | 미보유 |
📌 Mandt는 Record 저장 시 클라이언트 번호 구분을 위한 장치
📌 Structure는 Record 저장하지 않고 단순히 field의 구조만 정의하고 끝이므로 PK와 Mandt 불필요
Table은 데이터 저장하는 공간이기 때문에 탭이 더 많다

Include 혹은 Append 두 가지 방법으로 Structure를 생성할 수 있다
| Include | Append | |
|---|---|---|
| 어디까지 사용 가능? | 여러 테이블에 사용 가능 | 해당 테이블 전용 Structure |
| 생성 방법? | Dic에 존재하는 Structure 참조 | 현재 테이블에서 버튼으로 신규 생성 |
| Structure 생성 시점? | 이미 생성되어 있어야 함 | Append되는 시점에 신규 생성 |
SE11 에서 Data Type 체크 → 생성할 Structure명 입력 → Create → Structure 선택

Time Stamp로 사용할 Standard 필드 입력해서 완성하기
생성날짜 / 시간 / 생성자(로그인 ID)

Structure 넣고자 하는 Table의 Field에 커서 두고
상단 메뉴에서 Edit → Include → Insert

넣고자하는 Structure명 입력

.INCLUDE 자동 생성된걸 확인할 수 있다 → active 하기
나갔다가 Display로 들어오면 Time Stamp Structure는 파란색으로 보인다

Selection screen과 표에 새로운 Time Stamp 생성됨


- Include는
.으로 시작하고.로 끝난다- Include가
.으로 끝나므로 Include 뒤에 DATA를 한번 더 선언해주기- Include 통해 테이블 한 번만 가져올 수 있다 (mandt 겹쳐서)
INCLUDE STRUCTUREDictionary에 이미 생성되어있는 구조체 불러옴INCLUDE TYPE앞에서 선언한 구조체 불러옴
📌 코드보기
TYPES : BEGIN OF gty_list,
mtart TYPE mara-mtart,
matkl TYPE mara-matkl,
END OF gty_list.
DATA : BEGIN OF gs_list.
INCLUDE STRUCTURE zc515stimestamp.
INCLUDE STRUCTURE zc515t0002.
INCLUDE TYPE gty_list.
DATA : matnr TYPE mara-matnr,
werks TYPE marc-werks,
END OF gs_list.

📌 코드보기
DATA : BEGIN OF gs_struc,
vbak TYPE vbak-vbeln,
posnr TYPE vbap-posnr,
angdt TYPE vbak-angdt,
vbtyp TYPE vbak-vbtyp,
matwa TYPE vbap-matwa,
arktx TYPE vbap-arktx.
INCLUDE STRUCTURE tds_sd_prodh_univ_node.
INCLUDE STRUCTURE j_1bsd_tc_det.
DATA : zment TYPE vbap-zmeng,
meins TYPE vbap-meins,
flag,
END OF gs_struc.
Standard Table 확장하고자 필드 추가하는 기능
(Standard는 Include 못하지만, Field 추가해야할 때 Append Structure 사용)
- Append되는 시점에 Structure 신규 생성된다
→ include와 달리 Structure 생성이 되어있으면 안됨- Append는 다른 테이블에 include될 수 없는 해당 테이블 전용 Structure이다
- 일반 cbo에도 사용 가능하지만 Append는 Standard일 때 주로 쓴다
- 필드명에
ZZ붙여서 다른 필드명과 명확하게 구분지어주기
ZC515MARA Standard Table 이라고 가정


새로운 테이블명 입력

Standard 필드 확장되었구나 알 수 있도록 추가되는 필드에 Z 혹은 ZZ 붙여주기
→ ZZ필드/CBO필드라고 하면 Standard에서 확장된 필드를 의미함
Append Structure 추가된거 확인 가능
