VoiSAP — SAP MM Tables Reference 2026

SAP MM Tables 2026:
Complete Database Reference for S/4HANA

Every SAP MM consultant needs to know their tables. This guide covers all 60+ key database tables across procurement, inventory management, master data, and invoice verification — with key fields, table joins, and real-world use cases. Written by an SAP trainer with 18 years of hands-on SAP experience.

60+ SAP MM Tables
Key Fields & Joins
S/4HANA Changes
Interview Prep
Updated August 2026
60+
MM Tables
6
Table Groups
20
FAQ Answers
18yr
Trainer XP
📖 20 min read
S/4HANA 2023
Call Us
+1 416-569-4606
Email Us
contact@voisap.com
SAP database tables reference — procurement and inventory management data structure for S/4HANA — VoiSAP SAP MM training
SAP MM stores procurement, inventory, and finance data across a structured set of database tables. Knowing which table holds which data — and how they join — is what separates a competent SAP MM consultant from someone who just knows the transactions.

Quick Answer — SAP MM Key Tables

  • Purchasing tables: EKKO (header) and EKPO (item) — joined on MANDT + EBELN. EKKO holds the vendor and date; EKPO holds the material, quantity, and plant.
  • Material master tables: MARA → MARC → MARD — a three-level hierarchy from client level (MARA) to plant level (MARC) to storage location stock (MARD).
  • In S/4HANA, use MATDOC — not MSEG — for goods movement data. MATDOC replaced the old MKPF + MSEG split. This is the most important S/4HANA table change in SAP MM.
  • Invoice verification tables: RBKP (header) and RSEG (item) — created when MIRO is posted. Joined to FI via BKPF (accounting document header).
  • EKBE (purchasing document history) is the most practical MM table for daily work — it shows every GR, IR, and cancellation posted against a PO line item.
EKKO
PO Header
EKPO
PO Item
MATDOC
Goods Mvmt (S/4)
MARA
Material Master
EKBE
PO History
Key Takeaways
1

Every purchasing document lives in two tables. The header (EKKO) holds the vendor, date, and organisation. The items (EKPO) hold the materials, quantities, and plants. You always need both for a complete picture.

2

The MSEG → MATDOC change is the biggest S/4HANA shift in MM tables. MSEG still exists in S/4HANA (for compatibility), but new development must use MATDOC. In interviews, saying MSEG for S/4HANA goods movements signals you have not kept up with the platform.

3

MARD holds stock — but always use MMBE in practice. MARD is the storage location stock table, but posting delays can make it temporarily inaccurate. Transaction MMBE (stock overview) always reflects the real-time position.

4

SE16N is your everyday tool for table queries. You do not need to write ABAP to query SAP tables. SE16N (General Table Display) lets any consultant look up records directly — crucial for issue investigation and data reconciliation.

5

EKBE is the most practically useful MM table for support work. It shows the full history of every goods receipt and invoice posted against a PO. If something looks wrong in a three-way match, EKBE is the first place to check.

Procurement Tables
  • EKKO — purchasing document header
  • EKPO — purchasing document item
  • EKBE — PO history (GR/IR tracking)
  • EINA / EINE — info record
  • EKET — scheduling agreement lines
Material Master Tables
  • MARA — client-level general data
  • MARC — plant-level (MRP settings)
  • MARD — storage location stock
  • MBEW — valuation (price, value)
  • MARM / MLAN — UOM, tax classification
Inventory Mgmt Tables
  • MATDOC — material document (S/4HANA)
  • MSEG — material document item (ECC)
  • MKPF — material document header (ECC)
  • T156 / T156S — movement type config
Invoice Verification Tables
  • RBKP — invoice header (MIRO)
  • RSEG — invoice item
  • BKPF — accounting doc header (FI)
  • BSEG — accounting doc line items (FI)
Vendor Master Tables
  • LFA1 — general data (client level)
  • LFB1 — company code data
  • LFM1 — purchasing org data
  • BUT000 — Business Partner (S/4HANA)
Configuration Tables
  • T001W — plants definition
  • TVKO — purchasing organisations
  • T024 — purchasing groups
  • T156 / T156S — movement types
Purchasing

SAP MM Procurement Tables

When a purchase order is created in SAP (transaction ME21N), SAP writes data to multiple database tables simultaneously. The core split is always the same: a header table and an item table. The header holds everything that applies to the whole document; the item table holds one row per line item. This is the standard SAP table pattern you will see across every module.

Plain English first. Think of a purchase order like a physical paper PO you might have seen in any office. The top section has the vendor name, date, and PO number — that is the header (EKKO). Below it is a table with each line — material, quantity, price — that is the items (EKPO). SAP separates these into two database tables because the vendor and date do not need to repeat for every single line. That is the logic behind the EKKO/EKPO split, and it applies to every purchasing document type in SAP.

EKKO — Purchasing Document HeaderPO, SA, Contract
FieldDescriptionExample ValueNotes
MANDTClient100Always part of every SAP table primary key. Separates data between SAP clients.
EBELNPurchasing document number4500012345The PO number. Primary key field. Used to join EKKO to EKPO.
BSARTDocument typeNBNB = standard PO, FO = framework order, ZNB = company-specific custom type. Drives default settings.
LIFNRVendor account number0000100001Links to LFA1 (vendor master). The vendor is a header-level field — one vendor per purchasing document.
BEDATDocument date14.08.2026The date the PO was created. Not the delivery date — that is at item level in EKPO (EINDT).
EKORGPurchasing organisation1000The purchasing org that created the PO. Determines which purchasing conditions and info records apply.
EKGRPPurchasing group001The buyer group responsible for the PO. Often used for reporting and workload distribution.
WAERSCurrencyCADDocument currency for all values in this PO. Canadian operations typically CAD; US operations USD.
AEDATLast changed date14.08.2026When the PO was last modified. Useful for tracking changes in support scenarios.
EKPO — Purchasing Document ItemOne row per line item
FieldDescriptionExample ValueNotes
EBELNPurchasing document number4500012345Join key — links this item row back to the EKKO header. Same EBELN, one or many EKPO rows.
EBELPItem number00010Line item number. Increments by 10 (00010, 00020…). Part of the primary key with EBELN.
MATNRMaterial numberMAT-001The material being ordered. Plant is at item level — different line items can go to different plants.
WERKSPlant1000The receiving plant for this line item. Not in EKKO — the vendor delivers to each plant separately.
MENGEPurchase order quantity100.000Quantity ordered. Always check with EKBE to see how much has been received versus this quantity.
MEINSUnit of measureEAOrder unit. May differ from the material's base unit — conversion handled via MARM table.
NETPRNet price25.00Price per unit in document currency. Used by MIRO for three-way match checking.
EINDTDelivery date25.08.2026Expected delivery date at item level. Used for delivery monitoring and scheduling.
LOEKZDeletion indicatorLL = line item marked for deletion. Items with LOEKZ = L are excluded from goods receipts and invoicing.
ELIKZFinal delivery indicatorXX = delivery completed for this line. Set manually or automatically when ordered quantity is fully received.
SAP MM consultant querying EKKO EKPO purchasing tables using SE16N for purchase order investigation
EKKO and EKPO are the two most queried tables in SAP MM. In SE16N, enter EKKO with a vendor number (LIFNR) to find all their POs — then drill to EKPO on the EBELN number to see line item details. This two-table query answers 80% of purchasing data questions that come up in production support.

How to Query Purchasing Tables in SE16N — Step by Step

Every SAP MM consultant needs to know how to pull data directly from EKKO and EKPO. Here is the exact sequence used in production support work.

1
Open SE16N and enter table EKKO
Type SE16N in the SAP command field. In the Table field enter EKKO. Press Enter. SE16N loads all available fields for the purchasing document header table — you do not need to know the field names in advance, they appear as filter options.
2
Filter by vendor (LIFNR) or document number (EBELN)
Enter the vendor account number in LIFNR to find all POs for that vendor, or enter a specific PO number in EBELN to go straight to one document. Set Maximum Number of Hits to 200. Execute (F8). The results show one row per purchasing document header.
3
Note the EBELN and query EKPO for line item detail
EKKO only gives you the header — vendor, date, document type. To see the materials, quantities, plants, and prices, open a new SE16N query on EKPO with the same EBELN value. EKPO returns one row per line item on that purchasing document.
4
Query EKBE with the same EBELN to see GR and invoice history
Enter EKBE in SE16N and filter on the same EBELN (and EBELP for a specific line). EKBE shows every goods receipt (VGABE = E) and invoice receipt (VGABE = Q) posted against the PO. This is your three-way match verification — quantities received and invoiced against quantities ordered.

Additional Procurement Tables

Key Procurement Support TablesEssential for support work
TableWhat It StoresJoin KeyWhen to Use It
EKBEPurchasing document history — every GR, IR, and cancellation posted against a PO lineMANDT + EBELN + EBELPMost Used — first stop for three-way match issues, GR/IR reconciliation, and delivery verification
EINAPurchasing info record — general data (vendor + material relationship)MANDT + INFNRCheck why a PO is defaulting a particular vendor price or delivery time
EINEPurchasing info record — purchasing org level data (price, validity, conditions)MANDT + INFNR + EKORGPair with EINA for full info record detail including price validity dates
EKETSchedule lines for scheduling agreements (delivery dates and quantities per line)MANDT + EBELN + EBELPUsed only for scheduling agreements (BSART = LPA). Standard POs do not have EKET records.
EKCCContract release orders — links a PO to its framework order (contract)MANDT + EBELNInvestigate why a PO is referencing a contract (ME33K) and track contract utilisation
A016Purchasing conditions — info record conditions (condition records for pricing)MANDT + condition type keysUsed by ABAP developers to read or update purchasing price conditions programmatically
T024Purchasing groups — text and descriptions for purchasing group codesMANDT + EKGRPQuick lookup for purchasing group names when only a code (e.g. 001) is visible in reports
TVKOPurchasing organisations — definition and descriptionMANDT + EKORGOrganisational structure queries — finding which company codes a purchasing org is assigned to
Master Data

SAP MM Material Master Tables

The material master in SAP is not one table — it is a hierarchy of tables, each holding a different level of data. Understanding the hierarchy is essential because it explains why you sometimes see data in MM01 at the client level and different data at the plant level. The structure: MARA (all plants, client level) → MARC (per plant) → MARD (per storage location).

Why the three-level split exists — in plain English. A material like "Steel Rod 10mm" might exist in 50 plants across the company. The basic description, unit of measure, and weight are the same everywhere — so SAP stores those once in MARA. But each plant has its own MRP settings, safety stock levels, and procurement type — so SAP stores those per plant in MARC. And each storage location within each plant holds its own physical stock — so SAP stores that in MARD. One material, one MARA record, 50 MARC records, and potentially hundreds of MARD records. That is the design — and knowing it prevents a lot of confusion during data investigations.

Material Master Table HierarchyMARA → MARC → MARD
TableLevelKey FieldsWhat It HoldsInterview Importance
MARAClientMATNRMaterial number, material type (MTART), material group (MATKL), base unit of measure (MEINS), gross/net weight, volume. Everything that is the same regardless of plant.High
MARCPlantMATNR + WERKSMRP type (DISMM), MRP controller (DISPO), safety stock (EISBE), reorder point (MINBE), procurement type (BESKZ — E internal, F external), special procurement key (SOBSL), lot size (BSTFE). All plant-specific settings.High
MARDStorage LocationMATNR + WERKS + LGORTUnrestricted stock (LABST), quality inspection stock (EINME), blocked stock (SPEME), restricted-use stock. Current physical quantity per storage location.High
MARMClientMATNR + MEINHUnit of measure conversions — how many base units equal one order unit. For example: 1 carton (CTN) = 12 EA. Used when PO unit differs from base unit of measure.Medium
MLANClientMATNR + ALAND + TATYPTax classification for the material — determines input tax treatment during purchasing. Relevant for companies with partial VAT/GST recovery.Medium
MBEWPlant (Valuation)MATNR + BWKEYMaterial valuation data: price control indicator (VPRSV — S=standard, V=moving average), standard price (STPRS), moving average price (VERPR), total stock value (SALK3). The financial view of each material.High
MVKESales OrganisationMATNR + VKORG + VTWEGSales organisation and distribution channel data. Primarily an SD table but maintained through MM01 in the Sales views.Medium

For real-time stock levels, use transaction MMBE — not MARD directly. MARD is technically the stock table, but SAP updates it slightly after all posting processes complete. In a busy system with many parallel postings, a direct SE16N query on MARD can occasionally show a number that is fractions of a second out of date. MMBE (Stock Overview) and MB52 (Warehouse Stocks of Material) always reflect the confirmed real-time position. Use MARD for development and reporting; use MMBE for operational stock inquiries.

MBEW — The Valuation Table You Must Know

MBEW (material valuation data) is a material master table that sits at the intersection of MM and FI. It holds the financial value of every material at every plant. When you post a goods receipt in MIGO, SAP reads MBEW to find the standard price or moving average price and creates the accounting document automatically. When OBYC (account determination) is involved, it is the values in MBEW that drive what amount hits the stock account versus the price difference account.

MBEW — Material Valuation Key FieldsPlant-level valuation data
FieldDescriptionExampleWhy It Matters
MATNRMaterial numberMAT-001Primary key — which material this valuation record belongs to.
BWKEYValuation area (plant)1000In SAP MM, valuation area = plant. One MBEW record per material per plant.
VPRSVPrice control indicatorS or VS = standard price (STPRS used for all postings). V = moving average price (VERPR updated with each GR).
STPRSStandard price25.00Active when VPRSV = S. Every MIGO posting uses this price — differences go to PRD (price difference) account.
VERPRMoving average price24.80Active when VPRSV = V. Updated with each goods receipt — weighted average of all stock receipts.
SALK3Total stock value2,480.00The total balance sheet value of this material at this plant. SALK3 ÷ LBKUM (unrestricted qty) = current MAP.
Inventory

SAP MM Inventory Management Tables

Every time you post a goods movement in MIGO — whether a goods receipt, goods issue, transfer posting, or return — SAP creates a material document. In SAP ECC, that document was split across two tables: MKPF (header) and MSEG (items). In SAP S/4HANA, those two tables were merged and simplified into a single table: MATDOC.

SAP ECC (Legacy)
  • MKPF — material document header (MBLNR + MJAHR)
  • MSEG — material document items (movement type, qty, value)
  • Two separate tables with a header-item join
  • MSEG still exists in S/4HANA for backward compatibility
  • New ABAP development should not use MSEG in S/4HANA
SAP S/4HANA (Current)
  • MATDOC — unified material document (header + items in one table)
  • Simplified key: MBLNR + MJAHR + ZEILE
  • Includes all fields previously split across MKPF and MSEG
  • Faster queries — no join required between header and item
  • This is the table to use for all new S/4HANA development
MATDOC — S/4HANA Inventory Document TableReplaces MKPF + MSEG
FieldDescriptionExample ValueNotes
MBLNRMaterial document number5000012345The document number assigned when a MIGO posting is saved. Primary key field 1.
MJAHRMaterial document year2026Fiscal year of the document. Primary key field 2 — needed because MBLNR resets each year.
ZEILEItem number0001Line item within the material document. Primary key field 3.
BWARTMovement type101The movement type determines the direction and effect of the posting. 101 = GR for PO. Critical exam topic.
MATNRMaterial numberMAT-001The material that was moved.
WERKSPlant1000Plant receiving or issuing the material.
LGORTStorage location0001The specific storage location within the plant. Matches MARD's LGORT for stock updates.
MENGEQuantity50.000Quantity posted in this movement. Always positive — direction is determined by the movement type.
EBELNPurchasing document number4500012345The PO this GR references. Populated for movement type 101 (GR for PO). The link between MATDOC and EKKO/EKPO.
EBELPPurchasing document item00010The PO line item. Together with EBELN, links the GR to the exact PO item. Used in three-way match.
BUDATPosting date14.08.2026The date the goods movement was posted to inventory. Determines which period the stock update falls in.

Movement Types — What the Numbers Mean

The BWART (movement type) field in MATDOC is the most important field in inventory management. It tells SAP exactly what kind of movement occurred — and drives everything that follows: which accounts are posted to, whether stock increases or decreases, whether a financial document is created, and which special stock type is affected. Every movement type has a three-digit code.

Key SAP MM Movement Types (BWART)Tested in interviews and C_TS452
Movement TypeDescriptionStock EffectFinance Effect
101Goods receipt for purchase orderUnrestricted stock ↑Debit stock account (BSX), credit GR/IR clearing (WRX)
102Reversal of goods receipt for PO (undoes 101)Unrestricted stock ↓Reverses the 101 financial posting
122Return to vendor (goods issued back to vendor)Unrestricted stock ↓Reverses stock and GR/IR — links to vendor credit
201Goods issue to cost centre (consumption posting)Unrestricted stock ↓Debit cost centre (GBB/VBR), credit stock (BSX)
261Goods issue to production orderUnrestricted stock ↓Debit production order, credit stock
301Plant-to-plant transfer (one-step)Stock moves between plantsPosting in both plants — may create price differences if prices differ
311Transfer from storage location to storage location (one plant)Stock moves between storage locationsNo FI document — value stays in same plant
501Receipt without purchase order (free goods in)Unrestricted stock ↑Posts at moving average price — no GR/IR clearing
551Scrapping (goods issue for scrapping)Unrestricted stock ↓Debit scrapping account (GBB/AUA), credit stock
Warehouse inventory management — SAP MIGO goods receipt posting creates MATDOC records in S/4HANA
Every goods movement posted in MIGO writes one or more records to the MATDOC table in SAP S/4HANA. The movement type (BWART field) tells SAP exactly what to do with the stock and what financial posting to generate — without the user having to choose accounts manually.
Invoice Verification

SAP MM Invoice Verification Tables

When an invoice is entered through MIRO (Logistics Invoice Verification), SAP creates documents in both the MM and FI modules simultaneously. The MM side stores the invoice verification document in RBKP (header) and RSEG (items). The FI side creates an accounting document in BKPF (header) and BSEG (items). Both documents are linked through the accounting document number.

Why two sets of tables exist for one invoice — in plain English. The MM invoice (RBKP/RSEG) contains purchasing information: which PO was invoiced, which goods receipt it matches, the vendor's invoice number. The FI accounting document (BKPF/BSEG) contains financial information: which GL accounts were debited and credited, the posting period, the tax code used. SAP creates both because MM needs to track three-way match status and FI needs to track the financial transaction separately. They are linked — but they serve different purposes and different teams.

RBKP — Invoice Document Header (MIRO)One per posted invoice
FieldDescriptionExampleNotes
BELNRInvoice document number5105012345Primary key field 1. The MM invoice document number — different from the FI accounting document number.
GJAHRFiscal year2026Primary key field 2. Always needed with BELNR because document numbers reset each year.
LIFNRVendor account number0000100001The vendor being invoiced. Join to LFA1 for vendor name and details.
BLDATDocument date (invoice date)10.08.2026The date on the vendor's invoice. Can differ from the posting date.
BUDATPosting date14.08.2026The date the invoice is posted in SAP — determines the fiscal period.
RWBTRGross invoice amount2,600.00Total invoice value including tax. Currency from the linked PO (WAERS in EKKO).
RBSTATInvoice statusAA = blocked, blank = posted. Query RBKP with RBSTAT = A to find all blocked invoices before running MRBR.
AUGBLClearing document number1500012345Populated when the invoice is paid and cleared in FI. Blank = invoice still open (unpaid).
RSEG — Invoice Document ItemOne row per invoiced PO line
FieldDescriptionExampleNotes
BELNRInvoice document number5105012345Join key — links this RSEG row to its RBKP header. Same BELNR and GJAHR.
GJAHRFiscal year2026Needed with BELNR for the join.
BUZEIItem number001Line item number within the invoice document. Part of the primary key.
EBELNPurchasing document number4500012345The PO this invoice line references. This is the three-way match link back to EKKO/EKPO.
EBELPPO item number00010The specific PO line being invoiced. Together with EBELN, SAP checks EKBE for matching GR quantities.
MATNRMaterial numberMAT-001The material being invoiced.
MENGEInvoice quantity50.000The quantity on the vendor's invoice. If this exceeds the GR quantity, SAP may block the invoice.
WRBTRInvoice amount for this line1,250.00Line value in document currency. If this differs from PO value beyond tolerance, invoice may block.
Vendor Master

SAP Vendor Master Tables

Vendor master data in SAP follows the same hierarchical logic as material master data — general data that applies everywhere is stored once; company-code-specific data is stored per company code; purchasing-organisation-specific data is stored per purchasing organisation. In SAP S/4HANA, vendor master is maintained via transaction BP (Business Partner) — but the underlying tables remain LFA1, LFB1, and LFM1.

SAP MM vendor master table hierarchy LFA1 LFB1 LFM1 — Business Partner in S/4HANA replaces XK01 MK01
Vendor master data in SAP follows a three-level hierarchy: LFA1 (general data — same for all company codes), LFB1 (company code data — reconciliation account, payment terms), and LFM1 (purchasing organisation data — currency, delivery time). In S/4HANA all three are maintained through transaction BP (Business Partner).

SE16N vs standard reports — when to use which. SE16N gives you raw table data and is best for ad-hoc investigation, data reconciliation, and support work where you know exactly what you are looking for. Standard reports (ME2M, MB51, MIR4, MB5S) are better for operational queries because they apply business logic, handle authorisation checks, and produce output in a format business users understand. In interviews, always mention both — knowing when not to use SE16N is as important as knowing how to use it.

SE16N — Direct Table Query
  • Raw database data — no business logic applied
  • Any table, any field combination
  • Best for: support investigation, data reconciliation
  • Risk: can expose sensitive data if unrestricted
  • Often restricted in production systems
  • Requires knowing the table and field names
Standard Reports (ME2M, MB51, MIR4)
  • Business logic applied — shows processed results
  • Authorisation-controlled per business area
  • Best for: operational queries, business user output
  • Safe in production — designed for end users
  • Available to all users with appropriate roles
  • Output formats: ALV grid, PDF, Excel export
Vendor Master Table HierarchyLFA1 → LFB1 → LFM1
TableLevelKey FieldsWhat It HoldsMaintained In
LFA1Client (General)MANDT + LIFNRVendor name (NAME1), country (LAND1), address, tax number (STCD1), language. Same for all company codes.BP (S/4HANA) / XK01 (ECC)
LFB1Company CodeMANDT + LIFNR + BUKRSReconciliation account (AKONT), payment terms (ZTERM), payment method (ZWELS), withholding tax. One record per company code where the vendor is active.BP / XK01
LFM1Purchasing OrganisationMANDT + LIFNR + EKORGPurchasing-org-level defaults: order currency (WAERS), payment terms for purchasing (ZTERM), minimum order value, planned delivery time.BP / MK01
LFM2Purchasing Org + PlantMANDT + LIFNR + EKORG + WERKSPlant-level purchasing data for specific vendor-plant combinations. Less commonly used than LFM1.BP / MK01
BUT000Business Partner (S/4HANA)MANDT + PARTNERThe central Business Partner table in S/4HANA. LFA1 is still populated, but BUT000 is the primary BP record. Understanding this table is critical for S/4HANA projects.BP (S/4HANA only)

S/4HANA change you will be tested on. In SAP S/4HANA, all vendor and customer master data is managed through the Business Partner (BP) concept. Separate transactions like XK01 (create vendor) and MK01 (extend vendor to purchasing org) still exist but redirect to BP in S/4HANA. The underlying data still flows into LFA1, LFB1, and LFM1 — but the maintenance transaction is now always BP. This change is tested directly in C_TS452 (Organisational Structure and Master Data topic area).

SAP Business Partner vendor master maintenance in S/4HANA — replacing XK01 and MK01 transactions
In SAP S/4HANA, transaction BP (Business Partner) replaced separate vendor creation transactions XK01, MK01, and XD01, VD01 for customers. Data still flows into LFA1 and LFB1 — but all maintenance goes through BP. In interviews, always clarify that your answer is for S/4HANA when discussing vendor master transactions.

Production system table access is often restricted — and for good reason. In most enterprise SAP environments, direct table access via SE16N is blocked or audited in production (PRD). Basis teams restrict it to prevent accidental data exposure and to maintain SOX/audit compliance. Always use standard reports first: ME2M for PO data, MB51 for material documents, MIR4 for invoices. If you genuinely need SE16N access in production, raise a formal access request with your basis/security team and document the business reason.

Complete MM Table Reference — All Areas

Full SAP MM Table Quick Reference60+ tables by area
TableAreaWhat It StoresInterview Priority
EKKOProcurementPurchasing document header (vendor, date, document type)Must Know
EKPOProcurementPurchasing document item (material, qty, plant, price)Must Know
EKBEProcurementPurchasing document history (all GR/IR postings against PO)Must Know
EINAProcurementInfo record general data (vendor-material relationship)Know
EINEProcurementInfo record purchasing org data (price, validity)Know
EKETProcurementScheduling agreement delivery schedule linesKnow
MARAMaterial MasterGeneral material data — client level (material type, group, UOM)Must Know
MARCMaterial MasterPlant-level material data (MRP settings, procurement type)Must Know
MARDMaterial MasterStorage location stock (unrestricted, QI, blocked quantities)Must Know
MBEWMaterial MasterMaterial valuation (standard/MAP price, total value)Must Know
MARMMaterial MasterUnit of measure conversionsKnow
MLANMaterial MasterTax classification for materialKnow
MVKEMaterial MasterSales organisation data for materialAwareness
MATDOCInventory MgmtMaterial document — S/4HANA (replaces MKPF+MSEG)Must Know
MSEGInventory MgmtMaterial document item — ECC (still exists in S/4 for compatibility)Know difference
MKPFInventory MgmtMaterial document header — ECC (use MATDOC in S/4HANA)Know difference
RBKPInvoice VerificationInvoice document header (MIRO result — vendor, amount, status)Must Know
RSEGInvoice VerificationInvoice document item (PO reference, qty, value)Must Know
LFA1Vendor MasterVendor general data — client level (name, country, tax number)Must Know
LFB1Vendor MasterVendor company code data (reconciliation account, payment terms)Must Know
LFM1Vendor MasterVendor purchasing organisation data (currency, delivery time)Know
BUT000Vendor MasterBusiness Partner central table — S/4HANAS/4 Important
T156ConfigurationMovement type text and descriptionsKnow
T156SConfigurationMovement type control parametersKnow
T001WConfigurationPlants — definition and descriptionAwareness
BKPFFinance (FI)Accounting document header — created by MIGO and MIRO postingsKnow
BSEGFinance (FI)Accounting document line items — GL accounts, amounts, cost objectsKnow
FAQ

SAP MM Tables — 20 Questions Answered

The most important SAP MM tables are: EKKO (purchasing document header), EKPO (purchasing document item), MARA (general material data), MARC (plant-level material data), MARD (storage location stock), MATDOC (goods movements in S/4HANA — replaces MSEG), RBKP (invoice document header from MIRO), RSEG (invoice document item), and LFA1 (vendor master general data). These cover the four core MM areas: procurement, inventory management, master data, and invoice verification.

MSEG (document segment for material documents) was replaced by MATDOC in SAP S/4HANA. MATDOC is the unified inventory management document table that replaced the old MKPF (material document header) and MSEG (material document item) split. In S/4HANA, all goods movement data is stored in MATDOC as a single table with a simplified structure. MKPF and MSEG still exist in S/4HANA for compatibility but are no longer the primary tables — always use MATDOC for new development and reporting.

EKKO (purchasing document header) and EKPO (purchasing document item) are joined on two fields: MANDT (client) and EBELN (purchasing document number). The relationship is one-to-many: one EKKO header record links to multiple EKPO item records. In SE16N or SE16, when you query purchasing data you typically need both tables — EKKO gives you vendor (LIFNR), document date (BEDAT), and document type (BSART); EKPO gives you material (MATNR), quantity (MENGE), and plant (WERKS).

In SAP S/4HANA, goods movement data is stored in MATDOC (Material Document). This replaced the old two-table structure of MKPF (header) and MSEG (item) from SAP ECC. MATDOC stores everything in one table: document number (MBLNR), year (MJAHR), item (ZEILE), material (MATNR), plant (WERKS), movement type (BWART), quantity (MENGE), and the linked purchasing document (EBELN/EBELP). When doing ABAP development or reporting in S/4HANA, always use MATDOC — not MSEG.

MARA holds material data that applies across the entire SAP client — material number (MATNR), material type (MTART), material group (MATKL), base unit of measure (MEINS), and gross weight. It is the top-level material master table with one record per material. MARC holds material data at the plant level — one record per material per plant combination. It contains MRP settings (DISMM, DISPO), procurement type (BESKZ), special procurement key (SOBSL), and ABC indicator. A single MARA record can have many MARC records — one for each plant where the material is maintained.

Current stock levels are stored in MARD (storage location data for material). MARD holds unrestricted stock (LABST), quality inspection stock (EINME), and blocked stock (SPEME) at the storage location level — one record per material, plant, and storage location combination. For the most accurate real-time stock figure, always use transaction MMBE (Stock Overview) or MB52 (Warehouse Stocks of Material) rather than querying MARD directly, as posting delays can affect table accuracy in busy systems.

Invoice data entered via MIRO is stored in two tables: RBKP (header data — vendor, posting date, gross amount, invoice number) and RSEG (line item data — purchasing document reference, material, quantity, amount, tax code). The join is MANDT + BELNR + GJAHR. A third table, BKPF (accounting document header), is created simultaneously in FI. For blocked invoices, query RBKP with field RBSTAT = 'A' to identify invoices pending release in MRBR.

EINA (purchasing info record — general data) and EINE (purchasing info record — purchasing organisation data) store the purchasing info record created via ME11. EINA holds the material-vendor relationship at the client level: vendor (LIFNR), material (MATNR), and info record number (INFNR). EINE holds the purchasing organisation level data: net price (NETPR), valid from/to dates, and planned delivery time. The join between EINA and EINE is on MANDT + INFNR. Info records are the source of default pricing when a purchase order is created for a vendor-material combination.

The plant on a purchase order line item is stored in table EKPO (purchasing document item), field WERKS. Query SE16N with table EKPO, enter your purchasing document number in field EBELN, and the result shows WERKS at the line item level. Note that different line items on the same PO can be for different plants — the plant is always at item level, not header level. The header table EKKO does not contain plant — it only contains vendor (LIFNR), document type (BSART), and purchasing organisation (EKORG).

The most commonly asked SAP MM tables in interviews are: EKKO and EKPO (and the ability to explain their join and what data each holds); MARA, MARC, MARD (material master hierarchy — client, plant, storage location); MSEG/MATDOC (goods movement — and crucially, knowing that S/4HANA uses MATDOC); RBKP and RSEG (invoice verification); LFA1 and LFB1 (vendor master); and T156 (movement type table). Interviewers test whether you know which table to go to for which data — not just that the tables exist.

LFA1 is the vendor master general data table in SAP. It stores the core vendor information at the client level: vendor account number (LIFNR), name (NAME1), country (LAND1), city (ORT01), and tax number (STCD1). In S/4HANA, vendor master is maintained via transaction BP (Business Partner) but data still sits in LFA1. LFA1 has a companion table LFB1 (vendor master company code data) which stores company-code-specific data like reconciliation account (AKONT) and payment methods. The join is MANDT + LIFNR.

Use transaction SE16N (General Table Display) — the standard way to query any SAP database table without writing code. Enter the table name, add filter values for the fields you want, set a maximum number of results, and execute. SE16N is available to most SAP consultants with appropriate authorisation. In production systems, direct table access is often restricted — use standard reports like ME2M (purchase orders by material), MB51 (material document list), or MIR4 (display invoice) to get the same data through controlled transactions.

EKET is the scheduling agreement delivery schedule table in SAP MM. It stores delivery schedule lines for outline agreements (scheduling agreements created with ME31L). Key fields: EBELN (scheduling agreement number), EBELP (item number), EINDT (delivery date), MENGE (scheduled quantity), and WEMNG (quantity of goods received against this schedule line). The join to the main purchasing tables is MANDT + EBELN + EBELP. EKET is only populated for scheduling agreements — standard purchase orders do not have EKET records.

The GR/IR clearing account balance is visible via GL account data in table BSEG, filtered by the specific account configured in OBYC (transaction key WRX). To find open GR/IR items specifically, use report MB5S (GR/IR Account Analysis) — it reads from EKBE (purchasing document history), MATDOC (goods movements), and RBKP/RSEG (invoices) to calculate what is open. The EKBE table is the most useful direct table for seeing all GR and IR postings against a specific purchase order line.

EKBE (purchasing document history) stores the complete history of all transactions posted against a purchase order or scheduling agreement line item. Key fields: EBELN (PO number), EBELP (PO item), VGABE (transaction event type — E for GR, Q for invoice), MENGE (quantity), WRBTR (value), BELNR (material or accounting document number). EKBE is the single most useful table for answering questions like: "Has a GR been posted for this PO?" or "What has been invoiced so far?" — making it critical for AP reconciliation, three-way match checking, and GR/IR clearing work.

T156 is the movement type text table in SAP MM. It stores the description and short text for each movement type used in MIGO and other inventory management transactions. Key fields are MANDT, BWART (movement type), and SPRAS (language). The companion table T156S contains the control parameters for each movement type — whether it creates a financial document, which account determination it triggers, and whether it is a reversal movement. Movement types are configured via OMJJ, which reads from T156 and T156S.

In SAP S/4HANA, table MATDOC links a goods movement to its originating purchase order via fields EBELN (purchasing document number) and EBELP (purchasing document item). In SAP ECC, this same link was in table MSEG. When a goods receipt is posted in MIGO with reference to a purchase order, SAP automatically populates EBELN and EBELP in the resulting MATDOC record. This is how the three-way match works in the background — MIRO reads MATDOC to find what goods receipts exist for a PO before allowing invoice posting.

MLAN is the material master tax classification table. It stores the tax indicator for a material at the client level, used in tax determination during purchasing. Key fields: MATNR (material number), ALAND (country), TATYP (tax category), and TAXM1 (tax classification value — 0 = full tax, 1 = reduced tax, 2 = tax exempt). In SAP MM, MLAN matters when dealing with non-deductible input tax on purchase orders — the tax indicator in MLAN affects how VAT/GST is calculated and whether it is fully recoverable. Maintained through MM01 in the Sales views.

Use transaction ME2L (purchase orders by vendor) — the standard report for this task. If you need to query the database directly, use SE16N on table EKKO with the vendor number (LIFNR) as the filter. EKKO is the purchasing document header table, and vendor is a header-level field. Add a document type filter (BSART = 'NB' for standard POs, 'FO' for framework orders) if needed. To get line item details (materials, quantities, amounts), join EKKO to EKPO on MANDT + EBELN. In interviews, always mention both the transaction (ME2L) and the table join (EKKO/EKPO) to show you understand both the system and the data model.

Yes — VoiSAP's SAP MM training covers both the functional processes and the underlying data model, including the key tables in this guide. You get hands-on access to a live SAP S/4HANA system, so you can run SE16N queries and see how EKKO, EKPO, MATDOC, and RBKP actually look in a real system — not just theory. Training from an instructor with 18 years of SAP consulting experience across enterprise clients in the UK and Canada. Students consistently land their first SAP MM role within 3-6 months. Book a free demo to discuss your background and the right preparation path.

Book Your Free SAP MM Demo

Ask about the training, the tables, the certification, or anything else. An 18-year SAP consultant will get back to you — usually the same day.

✓ Message received! We'll be in touch shortly — usually same day.
Chat on WhatsApp