[ABAP] Structure(Include, Append)

토마토·2024년 8월 20일
0

ABAP 기본

목록 보기
7/10

Structure

Structure는 Table처럼 필드를 가지고 있지만, 데이터는 저장할 수 없으며 구조만 가지고 있다. 참조로 사용되거나 테이블 또는 구조체의 구조로 포함(INCLUDE, APPEND) 된다.

✔️ Table에서 공통으로 관리되어야할 Field를 Structure에 모아놓고 관리한다

공통으로 사용될 정보의 종류는 ?

여러 프로그램에서 같은 구조의 타입으로 빈번히 사용되는 정보

Ex) Time Stamp : 레코드가 테이블에 들어온 날짜 / 시간 / 작성자 / 변경된 날짜 / 시간 / 변경자

Table과 Structure 차이

TableStructure
무엇을 저장?필드와 데이터필드/데이터의 구조
PK 보유?보유미보유
mandt 필드?보유미보유

📌 Mandt는 Record 저장 시 클라이언트 번호 구분을 위한 장치
📌 Structure는 Record 저장하지 않고 단순히 field의 구조만 정의하고 끝이므로 PK와 Mandt 불필요

Table과 Structure 화면 비교

Table은 데이터 저장하는 공간이기 때문에 탭이 더 많다

Structure 생성

Include 혹은 Append 두 가지 방법으로 Structure를 생성할 수 있다

IncludeAppend
어디까지 사용 가능?여러 테이블에 사용 가능해당 테이블 전용 Structure
생성 방법?Dic에 존재하는 Structure 참조현재 테이블에서 버튼으로 신규 생성
Structure 생성 시점?이미 생성되어 있어야 함Append되는 시점에 신규 생성

1. Include

Time Stamp 만들기

Structure 생성

SE11 에서 Data Type 체크 → 생성할 Structure명 입력 → Create → Structure 선택

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

테이블에 Structure 넣기

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

넣고자하는 Structure명 입력

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

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

.include 로 structure 넣기

  • Include는 . 으로 시작하고 .로 끝난다
  • Include가 . 으로 끝나므로 Include 뒤에 DATA를 한번 더 선언해주기
  • Include 통해 테이블 한 번만 가져올 수 있다 (mandt 겹쳐서)
  • INCLUDE STRUCTURE Dictionary에 이미 생성되어있는 구조체 불러옴
  • 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.

2. Append

Standard Table 확장하고자 필드 추가하는 기능
(Standard는 Include 못하지만, Field 추가해야할 때 Append Structure 사용)

  • Append되는 시점에 Structure 신규 생성된다
    → include와 달리 Structure 생성이 되어있으면 안됨
  • Append는 다른 테이블에 include될 수 없는 해당 테이블 전용 Structure이다
  • 일반 cbo에도 사용 가능하지만 Append는 Standard일 때 주로 쓴다
  • 필드명에 ZZ붙여서 다른 필드명과 명확하게 구분지어주기

Append Structure 만들기

테이블 생성

ZC515MARA Standard Table 이라고 가정

Append Structure 생성

새로운 테이블명 입력

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

Append Structure 추가된거 확인 가능

profile
멋쟁이 토마토

0개의 댓글