본문 바로가기

ABAP 프로그래밍 개념/ABAP Structue and Internal Table

5.1.3 Global Structures

Structure Type은 모든 프로그램 전체에서 가시성을 갖도록 전역으로 정의될 수 있습니다. Global Structure Type은 또한 함수 모듈 또는 메소드의 매개변수 인터페이스를 정의하는 데 사용되며, 일반 스크린의 화면 요소를 정의하는 데도 사용됩니다. 

Global Structure Type은 ABAP Data Dictionary(SE11)에서 생성되고 ,아래 순서에 따라 만들어질 수 있습니다.

1. SE11 Transaction Code를 실행
2. Data Type 라디오 버튼을 선택하고, Structure의 이름을 명시합니다. Structure의 이름은 반드시 Cusomer Namespace 안에 있어야하며 ,Y & Z로 시작합니다. 맞게 적었다면 Create 버튼을 클릭합니다.

3. Modal Dialog Box가 켜지면, Structure 라디오 버튼을 선택하고, 초록색 체크를 실행합니다.

 

4. 다음화면에서 Short Description(내역)을 Structure 목적에 맞게 입력합니다. 그리고 Component Column 아래에 Field Name을 입력합니다. Typing Method column아래에서는 드랍다운 리스트를 누르고 Types(1번)을 선택합니다. Componenet Type column에는 사용할 Data Element를 입력해줍니다.

Component Type을 위해서, 이미 시스템에 존재하는 Data Element를 사용해도되고, 새로 만들어도 됩니다. 필요하다면 Pedefined Type(내장유형)을 누르고 Data Element를 사용하는 것이 아닌 ABAP Predefined Elementary Type과 길이를 입력해줄 수 도 있습니다.

5. 입력이 끝났으면, Activate 버튼을 누르고 해당 Structure를 할당할 Package 이름을 입력하고 저장버튼을 누릅니다. 필요하다면 Local Object($TMP Package)에 저장할 수도 있습니다.

6. 활성화를 하면 System은 Enhancement Category가 없다는 경고 메시지를 띄울 것입니다. 그러나 이 경고는 Structure의 활성화를 막지는 않습니다.

 

ABAP Data Dictioanry에서 SAP에서 제공하는 테이블 및 구조체는 사용자 정의 인클루드(Customizing Includes, CI) 또는  append structure를 통해 추가 필드를 추가하여 확장될(enhanced) 수 있습니다. 

Enhanvement Category setting 은 특정 테이블이나 Structure를 어떻게 확장(enhanced)시킬 수 있는지를 지정합니다. 이 설정을 사용하여 Structure가 문자 유형 필드, 문자 및 숫자 필드 또는 deep 구조체만 허용하여 확장될 수 있는지 제한할 수 있습니다. Enhanvement Category는 Extras • Enhancement Category 메뉴 경로를 통해 관리할 수 있습니다. Dialog Module에서 정보(Information) 버튼을 사용하여 온라인 문서를 참조할 수 있습니다.

구조체에 통화(CURR 유형) 또는 수량(QUAN 유형) 필드가 있는 경우, Currency/Quantity Fields 탭에서 참조 필드를 유지해야 합니다. 통화 필드는 통화 키 필드(CUKY 유형)를 참조해야 하며, 수량 필드는 측정 단위 필드(UNIT 유형)를 참조해야 합니다. 참조 필드는 동일한 테이블 또는 다른 테이블에 있을 수 있습니다.

통화 및 수량 필드에 대한 참조 필드(reference fields) 기입은 필수이며 시스템은 이 참조 필드(reference fields)를 사용하여 필드가 출력될 때 해당 통화 또는 단위를 삽입합니다. reference fields가 동일한 테이블에 있는 경우 시스템은 참조 필드(reference fields)를 사용하여 출력에 올바른 형식을 자동으로 적용할 수 있습니다. 참조 필드(reference fields)를 제공할 때, 각각의 열에 참조 테이블(reference Table) 이름과 참조 필드(reference fields) 이름을 입력하십시오.

위 예시는 VBAP(영업문서 : 품목테이블)의 예시입니다. 대표적으로 SMENG라는 수량 필드는 같은 테이블 내의 MEINS라는 UNIT을 나타내는 필드를 참고하고 있습니다, 마찬가지로 NETWR 필드는 가격을 나타내는데 해등 필드는 VBAP 테이블의 WAERK(통화) 필드를 참조하도록 설정하였습니다.

테이블 또는 구조의 통화 및 수량 필드에 대한 참조 필드(reference fields)가 유지되지 않으면 ABAP 데이터 사전에서 해당 테이블 또는 구조를 활성화할 수 없습니다.

반응형