사용 중인 테이블에 추가로 필드를 덧붙이는 테이블 APPEND STRUCTURE 방법에 대해서 정리해 보았습니다.
일반 테이블에 필드를 추가하는 것과 달리 구조체(STRUCTURE)를 추가하는 방식으로, 이를 통해 기존 테이블의 구조를 확장할 수 있습니다.
SAP CBO 테이블 뿐만 아니라 스탠다드 테이블에도 추가가 가능하며, 일반적으로는 스탠다드 테이블에 많이 활용하는 편입니다.
APPEND STRUCTURE
APPEND STRUCTURE는 table enhancement 기능 중에 하나 입니다.
이 기능을 사용하려면 enhancement category가 can be enhanced로 되어 있어야 합니다.
다음과 같이 생성일, 생성 시간, 생성자를 관리하는 구조(strucure) 생성을 예시로 들어보겠습니다.
CDATE TYPE CDATE, "생성일
CTIME TYPE CTME, "생성시간
CNAME TYPE CREUSRNAME, "생성자
추가할 STRUCTURE 생성 방법
append structure 버튼을 눌러 신규 structure를 생성합니다.
생성일, 시간, 생성자 등을 관리하기 위해 다음과 같은 구조를 만들어 활성화 합니다.
그러나 추가한 CDATE, CTIME, CNAME 필드에 Warning이 발생합니다.
APPEND STRUCTURE 경고 메시지
Warning 의 의미는 다음과 같습니다.
- 일반적으로 append structure는 스탠다드를 enhance할 때 사용됩니다.
- 만약에 CDATE 등의 ZZ, YY로 시작하지 않는다면, 향후 업그레이드시에 SAP에서 사용”될 수 있는” Naming rule입니다. 즉, SAP에서는 추가된 구조에 어떤 필드 네이밍으로 사용되고 있는지 모르니 주의하라는 메시지 입니다.
- 우리가 추가한 필드명이 공교롭게도 SAP 업그레이드시에 동일한 이름의 필드가 추가된다면 오류가 발생하게 될 것입니다.
- 그러므로 ZZ 혹은 YY로 시작하는 네이밍으로 필드를 추가합니다. 즉, ZZ, YY로 시작하지 않으면 모두 경고가 발생합니다.
append structure 사용시 주요 특징
append structure의 특징을 정리해 보도록 하겠습니다.
하나의 스트럭쳐는 하나의 테이블 혹은 스트럭쳐에만 append 할 수 있습니다. 즉, 1:1 관계만 형성됩니다.
따라서 동일한 structure를 여기저기서 component화하여 사용한다면 .include를 사용해야 합니다.
그러므로 다른 테이블에 동일한 구조를 append 한다 할지라도, 다른 Structure를 만들어 사용해야 합니다.
하나 이상의 structure를 append 할 수 있습니다. 예를 들면 zstruct1, zstruct2 처럼 한 개이상의 structure를 append 할 수 있습니다.
특히, 스탠다드의 경우 include를 사용할 수 없기 때문에 append structure를 통해 customerzing 해야 합니다.
하지만 ERP 업그레이드 시에 영향을 받지 않으므로 하위 버전 스탠다드 테이블을 append 하여 structure를 추가했어도 업그레이드 이후 유지 됩니다.
또, 만약에 table에 VARC, LCHR, LRAW같은 Long character 필드가 있다면 append structure 기능은 사용할 수 없습니다.
또, APPEND STRUCTURE로 추가되는 필드는, 항상 테이블의 마지막에 위치(append)합니다.
이상으로 SAP ABAP 테이블 APPEND STRUCTURE 기능을 활용하여 테이블을 확장하는 방법에 대해서 알아보았습니다.
테이블 확장과 관련된 좀 더 자세한 사항은 아래의 SAP 공식 문서를 참고하시기 바랍니다.
관련 글 : Append Structures
함께 보면 좋은 글
SAP Debugger Work Area – New Tool 활용 커스터마이징