본문 바로가기

Study

Study 16

Table Enhancement

SAP에 의해 만들어진 데이터 수정 방법은 Enhencement와 Modification으로 나뉜다.

그 중 Enhencement에 대해 알아볼 것이다.

 

Enhencement는 SAP 소프트웨어에 수정 사항을 바로 처리하지 않는다.

대신 블럭을 이용하여 수정할 내용을 블럭에 담고 그 블럭을 SAP 소프트웨어와 연결하여 사용한다.

 

Enhencement는 ABAP 사전(Dictionary)의 테이블, 데이터 엘리먼트, 도메인을 추가할 수 있다.

그리고 Customer Exits 기술을 사용할 수 있고, BTE(Business Transaction)를 사용 할 수 있다. (BTE는 FI 모듈에서 주로 사용한다.)

또한, BADI (Classic, New)도 사용이 가능하다.

테이블을 Enhencement 하려면 먼저 데이터베이스 테이블을 생성해야 한다.

테이블 생성은 SE11 -> Table -> Create를 통해 Transparant Table을 생성한다.

 

테이블은 Append 스트럭처, CI_Include로 데이터 추가가 가능하다.

CI_Include는 모든 스탠다드 테이블에 존재하지 않고, 특정 테이블에만 추가되어 있다.

SAP에서 DB 설계 시 CI_Include가 정의되어 있어야만 필드 추가가 가능하다.

더 자세히 확인해보자.

 

Append Structure

사용자는 SAP 테이블에 Append 스트럭처를 추가할 수 있다.

SAP 테이블에서 여러 개의 Append 스트럭처를 가지고 필드를 추가할 수 있다.

하나의 Append 스트럭처는 여러 개의 SAP 테이블에서 사용할 수 없다.

ABAP 프로그램에서 Append 스트럭처는 일반적인 데이터 타입으로 사용 가능하다.

 

Custominzig Include

SAP 테이블을 정의할 때 같이 정의되어 있어야 한다. 정의가 되어 있지 않은 경우 필드 추가가 되지 않는다.

사용자가 Custominzig Include에 필요한 필드를 추가할 수 있다.

Custominzig Include는 추가 필드의 처리를 위해 종종 Program Exit 및 Screen Exit와 함께 수행된다.

 

사진은 스탠다드 테이블에 Append 스트럭처를 생성하고 추가하는 과정이다.

1. 먼저 Append 스트럭처를 생성해야 한다. Append 스트럭처 의 이름은 반드시 YY, ZZ로 시작해야 한다.

2.  Append 스트럭처를 생성하면 활성화를 시켜준다. 활성화 시 기존 테이블에 새로운 필드가 추가된다.

3. CI_Include는 SAP 프로그램에서 CI_Include를 정의해야만 사용이 가능하다.

 

1 / 2
3

실습을 통해 자세히 알아보자

SE11 -> SFLIGHT54 테이블 선택 -> Append Structure를 클릭

 

클릭하면 Append Structure를 생성할 수 있다 이름은 Z, Y로 시작해야 한다. 빨간 박스안과 같이 생성한다.

필요한 컴포넌트를 입력하고 활성화한다.

사진과 같이 Append Structure가 기존 테이블에 추가되었다.


Enhancement: Program Exit

Enhencement는 SAP 소프트웨어에서 사용자의 용도에 적합하지 않거나 부족하여 그에 대한 변경이 필요할 때 SAP 개발자들이 만들어놓은 함수이다.

Enhencement의 종류로는 Program Exit, Screen Exit, Menu Exit, Field Exit이 있다.

 

그 중 Program Exit를 실습으로 확인해보자

먼저 CALL CUSTOMER-FUNCTION을 찾아야 한다. 

CALL CUSTOMER-FUNCTION은 Exit Function Group으로 Exit Function Module이 존재한다.

Exit Function Module은 EXIT <프로그램 이름>_001 형식으로 존재한다.

 

SAPBC425_FLIGHT54 프로그램을 우클릭하고 Find 버튼을 클릭 -> Search Term에 CALL_CUSTOMER-FUNCTION을 입력한다.

입력했을 때 아래 사진과 같은 결과가 나오면 Enhencement가 가능한 프로그램이다. 그렇다면 SAPBC425_FLIGHT54 프로그램은 Enhencement가 가능한 프로그램이라는 것이다.

Enhancement는 T-Code: CMOD -> Utilities → SAP Enhancements에서 

각각의 Enhancement에는 컴포넌트가 존재한다.

컴포넌트의 Exit 이름도 확인했으니 Enhancement 프로젝트를 생성해보자 프로젝트는 항공편 데이터 조회 시 현재 날짜보다 이전 날짜를 입력했을 때 오류 메시지가 발생하는 구문을 추가하는 것이다.

 

먼저 T-Code: CMOD 통해 SAP Enhancement로 이동하고, 프로젝트 이름을 입력한다. 입력을 완료했으면 프로젝트를 생성한다.

프로젝트가 생성되었으면 Enhancement Assignments를 클릭한다.

 

Enhancement를 입력하고 Components를 클릭한다.

Function Exit을 클릭한다.

클릭하면 Function Module이 나온다. Include 뒤에 이름을 클릭한다. 첫 클릭 시 오류 메시지가 뜨는데 무시하고 엔터키를 눌러준다.

이후 Include에 구문을 입력한다. 구문은 데이터를 조회할 때 FLDATE가 현재 날짜보다 이전이면 오류 메시지를 띄우는 것이다.

'Study' 카테고리의 다른 글

Study 17  (0) 2024.02.20
Study 15  (0) 2024.02.17
Study 14  (0) 2024.02.14
Study 13  (1) 2024.02.14
Study 12  (1) 2024.02.09