SAP

SAP Text Table 내역 가져오기

selectall 2026. 1. 21. 11:12
Text Table

: 코드(키 값)에 대한 설명용 텍스트(문자열)를 저장하는 전용 테이블

  • Master Table / Custom Table = 코드
  • Text table = 코드의 내역 (여러 언어로)
  • 간단히말하자면, 'A' 라는 코드의 언어 'KO' 일때, 내역은 '국내'이다. 
코드 언어키 내역
A KO 국내
A EN Domestic

 


 

상세 설명

 

  • 왜 Text Table이 필요한가? -> SAP의 기본 설계 철학 때문
  • 본 테이블(Main Table) → 성능·정합성을 위해 코드만 저장
  • Text Table → 사용자 화면, 리포트, 출력물에서 쓰는 설명 텍스트 저장

 

📌 이렇게 분리하면

  • 다국어 지원 가능
  • 데이터 중복 최소화
  • 성능 향상
Text Table의 대표적인 특징

 

1. 언어키(SPRAS)를 포함

  • 대부분 SPRAS 필드가 있음
  • 같은 코드라도 언어별 텍스트 관리 가능

2. 본 테이블과 1:N 관계

  • 하나의 코드 → 여러 언어 텍스트

TABLE 예

 

MARA (자재 기본 정보)

  • MATNR (자재 코드)

 

MAKT (자재 텍스트 테이블)

  • MATNR (자재 코드)
  • SPRAS (언어키)
  • MAKTX (자재명/자재 내역)

 

TIPS
  • MASTER / CUSTOM TABLE 의 TEXT TABLE 찾는 법 
  • 경로: SE11 > 마스터 테이블 (MARA) 조회 > 메뉴 바 - 이동 > 텍스트 테이블 > 텍스트 테이블 (MAKT)


 

그렇다면 텍스트 테이블의 값을 불러오자. [개발 로직]

Summary 
  1. 마스터/커스텀 테이블의 코드
  2. 해당 코드의 내역 추출
  3. Read table 로 두 테이블 값 맵핑하여 내역 추출

 

세부순서
  1. 마스터/커스텀 테이블의 코드
" MARA 자재코드 추출
SELECT MATNR
  FROM MARA
  INTO TABLE @DATA(LT_MARA)
    UP TO 10 ROWS.

SORT LT_MARA BY MATNR.

 

 

2. 해당 코드의 내역 추출

" MAKT 자재내역 추출
SELECT *
  FROM MAKT
 WHERE SPRAS EQ @SY-LANGU
 ORDER BY MATNR
  INTO TABLE @DATA(LT_MAKT).

 

 

3. Read table 로 두 테이블 값 맵핑하여 내역 추출

DATA: BEGIN OF LS_DATA,
        MATNR TYPE MARA-MATNR,  " 자재코드
        MAKTX TYPE MAKT-MAKTX,  " 자재내역
      END OF LS_DATA,
      LT_DATA LIKE TABLE OF LS_DATA.

" 자재코드 + 자재내역
LOOP AT LT_MARA INTO DATA(LS_MARA).

  LS_DATA-MATNR = LS_MARA-MATNR.

  READ TABLE LT_MAKT INTO DATA(LS_MAKT) WITH KEY MATNR = LS_MARA-MATNR
                                                 BINARY SEARCH.

  IF SY-SUBRC EQ 0.
    LS_DATA-MAKTX = LS_MAKT-MAKTX.
  ENDIF.

  APPEND LS_DATA TO LT_DATA.

  CLEAR: LS_MARA, LS_MAKT, LS_DATA.

ENDLOOP.

 

결과

 

1~3 단계 한 쿼리로도 가능

=> 하지만, 복잡한 SELECT / 재사용 고려시 첫번째 방법 선호 

SELECT A~MATNR, B~MAKTX
  FROM MARA AS A
  LEFT OUTER JOIN MAKT AS B ON A~MATNR EQ B~MATNR
 WHERE B~SPRAS EQ @SY-LANGU
  INTO CORRESPONDING FIELDS OF TABLE @LT_DATA
  UP TO 10 ROWS.

SORT LT_DATA BY MATNR.