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을 사용하는 것이 최적의 방식입니다.
- 퍼포먼스 최적화: 호환성 뷰를 통과하는 것보다 MATDOC 테이블을 직접 참조하는 것이 HANA 인메모리 기술을 가장 효율적으로 사용하며, 최상의 쿼리 성능을 보장합니다.
- 신규 개발 원칙: S/4HANA 환경에서 새로 개발하는 프로그램이나 리포트는 반드시 MATDOC 테이블을 사용해야 합니다.
- 데이터 볼륨: 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 | 고정 자산 관리에 사용되는 자산 번호 |
'ERP(SAP)' 카테고리의 다른 글
| [SAP] AI가 주도하는 구매 프로세스 (MM) (0) | 2026.01.06 |
|---|---|
| [MM] MIRO 분할 송장 처리 방법 (여러 코스트센터) (0) | 2025.12.29 |
| [SAP] 디버깅(Debugging) 및 문제 데이터 찾기 (0) | 2025.12.02 |
| [SAP]💡 MM(Materials Management) 운영 전문가 가이드 (0) | 2025.12.01 |
| [SAP] Clean Core (클린 코어) 🧹전략 및 학습 과정 (0) | 2025.11.28 |
