[SAP] MM - S/4HANA MATDOC이란? 무엇인가

MM - S/4HANA MATDOC이란? 무엇인가?

 

MM에서 주요한 변경 사항 중 하나인 단일 테이블 구조인 MATDOC으로의 변경사항 분석 및 정리하였습니다.


💾 S/4HANA MATDOC 단일 테이블 구조의 기술적 내용 분석

1. 🔍 변화의 배경: 기존 ECC의 문제점

기존 SAP ECC(ERP Central Component) 버전의 시스템에서 재고 문서는 두 개의 클러스터 테이블(Cluster Tables)로 분리되어 관리되었습니다.

  • MKPF (Material Document Header): 재고 이동의 헤더 정보 (문서 번호, 전기일, 트랜잭션 코드 등).
  • MSEG (Material Document Item): 재고 이동의 아이템 상세 정보 (자재 번호, 수량, 저장 위치, 이동 유형 등).

이러한 분리 구조는 다음과 같은 기술적 문제를 야기했습니다.

  • 성능 저하: 재고 문서 리포트나 분석을 위해 MKPF와 MSEG를 항상 조인(JOIN)해야 했으며, 데이터 볼륨이 커질수록 쿼리 시간이 길어졌습니다.
  • 복잡한 코드: 개발 시에도 항상 두 테이블을 다뤄야 했기 때문에 코드가 복잡해졌습니다.

2. ✨ MATDOC 테이블의 기술적 특징 (S/4HANA)

S/4HANA에서는 MKPF와 MSEG가 단일 테이블 MATDOC로 통합되었으며, 이는 SAP HANA DB의 인메모리(In-Memory) 기술을 활용한 결과입니다.

특징 설명 기술적 이점
단일 테이블 (One Single Table) MKPF의 헤더 필드와 MSEG의 아이템 필드가 모두 MATDOC 테이블 하나에 통합되었습니다. I/O 감소: 불필요한 DB 조인이 제거되어 쿼리 속도가 극적으로 향상됩니다.
HANA 최적화 MATDOC는 HANA DB의 컬럼 기반 저장소(Columnar Store)에 최적화되어 있습니다. 압축 효율: 데이터를 컬럼 단위로 압축하여 저장하므로, 디스크 공간 절약 및 인메모리 액세스 속도가 빨라집니다.
재고 가치(Valuation) 통합 기존에 재고 가액 정보를 저장하던 테이블(MSKU, MBEW 등)의 정보가 MATDOC를 통해 실시간으로 집계됩니다. 실시간 분석: 재고 수량과 금액 정보가 하나의 문서에 연결되어 있어 실시간으로 재고 평가액을 확인 가능합니다.
호환성 뷰 (Compatibility Views) 기존 ECC 환경에서 사용하던 MKPF와 MSEG를 참조하는 프로그램이 S/4HANA에서도 오류 없이 작동하도록, 시스템은 동일한 이름의 뷰(Views)를 제공합니다. 하위 호환성: 기존 ABAP 코드의 대대적인 수정 없이 S/4HANA로 마이그레이션할 수 있습니다. (단, 퍼포먼스 최적화를 위해서는 MATDOC로 직접 변경 권장)

 

🔎 호환성 뷰 (Compatibility View) 역할

기존부터 운영해온 SAP ECC(구버전) 시스템에는 MSEG 테이블을 직접 참조하는 프로그램 및 Function, Report 등이 존재할 수 있습니다. S/4HANA로 마이그레이션할 때 이러한 기존 코드를 대규모로 수정해야 하는 부담을 줄이기 위해 MSEG라는 이름의 데이터베이스 테이블을 제거하고, 대신 MSEG라는 이름의 HANA 뷰를 생성하여 해결하였습니다.

실제로는 HANA 데이터베이스가 이 요청을 MATDOC 테이블을 쿼리하는 복잡한 뷰로 자동 해석하여 데이터를 가져옵니다. 따라서 개발자는 코드 수정 없이 이전처럼 MSEG를 참조해서 사용이 가능합니다.


⚠️ 기술적 주의사항 및 권장 사항

비록 MSEG가 계속 작동하더라도, S/4HANA 환경에서는 MATDOC을 사용하는 것이 최적의 방식입니다.

  1. 퍼포먼스 최적화: 호환성 뷰를 통과하는 것보다 MATDOC 테이블을 직접 참조하는 것이 HANA 인메모리 기술을 가장 효율적으로 사용하며, 최상의 쿼리 성능을 보장합니다.
  2. 신규 개발 원칙: S/4HANA 환경에서 새로 개발하는 프로그램이나 리포트는 반드시 MATDOC 테이블을 사용해야 합니다.
  3. 데이터 볼륨: MATDOC는 헤더와 아이템을 통합했기 때문에 데이터 볼륨이 매우 크며, 쿼리할 때 불필요한 필드를 모두 가져오지 않고 필요한 컬럼만 선택하여 쿼리하는 것이 성능에 유리합니다.

💾 MATDOC 주요 컬럼 정리 (S/4HANA)

1. 문서 키 (Document Key) 및 관리 정보

이 컬럼들은 각 재고 이동 문서(Material Document)를 고유하게 식별하고 관리하는 데 사용됩니다.

컬럼명 기술명 설명
자재 문서 번호 MBLNR 재고 이동 문서의 고유 번호 (10자리)
자재 문서 연도 MJAHR 재고 이동 문서가 전기된 회계 연도 (4자리)
아이템 번호 ZEILE 자재 문서 내의 항목(아이템) 번호 (4자리)
전기일 BUDAT 문서가 재무회계에 전기된 날짜 (Posting Date)
문서일 BLDAT 공급업체 송장 또는 실물 문서의 실제 날짜 (Document Date)
생성 사용자 USNAM 문서를 생성한 사용자 ID
T-Code TCODE 문서를 생성하는 데 사용된 트랜잭션 코드 (예: MIGO)

2. 재고 관련 핵심 정보

이 컬럼들은 어떤 자재가, 어디서, 어떻게 이동했는지를 정의합니다.

컬럼명 기술명 설명
자재 번호 MATNR 재고 이동이 발생한 자재의 고유 번호
플랜트 WERKS 자재가 이동한 플랜트 (Plant)
저장 위치 LGORT 자재가 이동한 저장 위치 (Storage Location)
재고 이동 유형 BWART 재고 이동의 성격 (Movement Type, 예: 101 입고, 201 소비)
이동 지시자 KZBEW 재고 유형 구분 (예: K 위탁 재고, O 외주가공 재고)
수량 MENGE 이동된 재고의 수량
단위 MEINS 수량의 기본 측정 단위 (Unit of Measure)
입고/출고 지시자 SHKZG 재고 수량이 증가(H: Credit)했는지 감소(S: Debit)했는지 표시

3. 구매 및 재무회계 연동 정보

이 컬럼들은 재고 이동이 구매 오더나 회계 전표와 어떻게 연결되는지를 보여줍니다.

컬럼명 기술명 설명
구매 오더 번호 EBELN PO (Purchase Order) 번호
PO 아이템 EBELP PO 내의 항목 번호
참조 문서 XBLNR 외부 참조 번호 (벤더 송장 번호 등)
현지 통화 금액 DMBTR 이동된 재고 금액의 현지 통화(회사 코드 통화) 기준 값
FI 거래 코드 BUKRS 재무회계 회사 코드 (Company Code)

4. 특수 재고 및 기타 정보

컬럼명 기술명 설명
벤더 LIFNR_SID 거래가 발생한 벤더 번호 (특수 재고 K, O 등)
고객 KUNNR_SID 거래가 발생한 고객 번호 (특수 재고 E, Q 등)
로트 번호 CHARG_SID 배치 관리(Batch Management)가 적용된 자재의 로트 번호
자산 번호 ANLN1 고정 자산 관리에 사용되는 자산 번호