반응형

    Append Structure는 Standard Table에 필드를 추가할 수 없으니 추가하고 싶은 필드를 Structure로 만들어 추가할 수 있게 허용한 기능입니다. 한 개의 테이블에 Append Structure로 사용된 Structure는 다른 테이블에 사용할 수 없습니다.

    이렇게 추가되면 SAP Upgrade시에도 변경 없이 유지됩니다. CBO Table은 필드를 추가 삭제하면 되므로 굳이 사용하지 않아도 되나 필요가 있을 수도 있겠죠.

     

    Include Structure Append Structure와는 다른 개념으로 테이블 생성의 편의성(코딩을 조금만...)을 위해 공통으로 쓰는 필드들을 여러 테이블에 추가할 때 사용합니다. 보통은 생성일, 생성시간, 생성인, 변경일, 변경시간, 변경인을 Structure로 만들어 추가를 많이 합니다.

     

    Append Structure의 적용 제한사항

    1) Transparent Table 가능( Cluster, Poolde Table 사용불가)

    2) Long Type 필드가 존재하면 사용불가( LCHAR, LRAW불가, String 가능) 

    3) 중첩 Structure( Nested Structure, Deep Structure)를 Append 할경우 9 레벨까지 사용 가능.

    4) Append Structure개수는 따로 제한이 없다.

     

    CBO Table 생성 후 Activate를 하면 Enhancement category를 설정하라는 경고 메시지를 만날 수 있습니다. 필수가 아니므로 보통은 No를 선택 Not classified 하고 넘어가지만, 이것은 Table에 Append, Include Structure를 할 수 있는 범주를 선택하라는 의미입니다. 

    Enhancement category의 수정은 SE80 -> Extras -> Enhancement category... 을 선택하시면 수정할 수 있습니다. 

    Can Be Enhanced (Deep) :  Append, Include Structure 사용 가능. 모든 Type필드 사용 가능.

    Can Be Enhanced ( character-type or numeric) : Char type, numeric type 사용 Structure 가능.

    Can Be Enhanced ( character-type )  : Char type 사용 가능.

    Cannot Be Enhanced : Append, Include Structure 불가능.

    Not classified : Append, Include Structure 기능 사용하지 않음. Table 활성화 시 경고도 보여주기 않음.

     

    Append Structure 수행

    Goto -> Append Structure 메뉴를 보면 현재 Append 되어 있는 항목을 볼 수 있다. BKPF 테이블을 예를 들었다.

    메뉴바에서 Create Append 아이콘을 누르고 Append 할 Structure이름을 넣고 생성해주면 된다. 주의할 점은 이미 생성된 Structure를 사용할 수 없다.

    또는 SE80에서 Append Structure... 버튼을 사용해도 되겠다.

    Include Structure 수행

    주로 테이블에 반복 사용되는 필드를 넣을 때 많이 사용하며, Structure는 여러 베틀에서 동시에 사용 가능하다.

    아래와 같이 테이블 생성 또는 수정 시 필드명에 .INCLUDE를 넣고 Data Element란에 Structure명을 넣어도 되고, 

    SE80 -> Edit -> Include -> Insert를 실행하면 Structure명을 넣는 창이 뜨는데 Group과 Name Suffix 항목이 나옵니다. 일단은 Structure명만 넣고 실행하면 Include Structure 된 것을 알 수 있습니다.

    만약에 동일한 Structure를 한 번 더 Include 하고 싶다면 어떻게 될까요? 

    아래처럼 넣고 활성화 버튼을 누르면 동일 이름이 중복된다고 에러가 발생한다.

    이럴 때 사용하는 것이 Group과 Name Suffix이다.

    Name Suffix 넣는 것만으로도 동일 구조를 Include 할 수 있다. 그럼 Group Name은? ABAP 프로그램에서 필드 지정을 편하게 하기 위해 사용된다. Name Suffix = '2'를 넣어 아래와 같이 추가해보자.

    여기서 두 번째 Include에 Group Name을 지정해 보자.

    이 테이블을 참조하는 ABAP 코딩을 보면 Group Name이 있는 경우 Include Structure의 그룹명을 통해 원래 필드명으로 데이터를 사용할 수가 있다.

     

    예를 들어 이름 필드를 여러 개 만들어 본명, 가명 1, 가명 2 이렇게 접근할 때 같은 이름 필드를 사용해서 코딩을 할 수 있게 해 준다.

     

    필자는 그냥 필드를 다르게 접근하는 편이다. 솔직히 같은 Include structure에 동일 구조를 자주 쓰지도 않지만 말이다. 알아는 두자. 아래의 코딩을 보면 이해가 빠른 것이라 생각한다. 

     

     

    이상으로  Table의 Append/Include Structure 설명을 마치겠습니다.

     

    다음에는 ABAP의 꽃중 하나인 Search Help로 넘어갈까 합니다.

     

    긴 글 읽어 주셔서 감사합니다.



    728x90
    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기