MPOS table — MPOS Maintenance Plan Item Table
MPOS stores maintenance items, the individual lines within a maintenance plan (MPLA) that tie a specific technical object, via the generic object list key ILOAN, to a task list (PLNTY, PLNNR, PLNAL). One row is one maintenance item; a plan can contain several items scheduled together on the same cycle or strategy calls.
This page covers the MPOS table, the maintenance item level beneath a maintenance plan in SAP PM. It explains which fields are reliable, how to join from a piece of equipment or functional location down to the item, and the recurring mistakes consultants make when they treat MPOS as if it held cycle, order, or scheduling data that actually lives elsewhere.
Published 16 Sept 2026· 1,039 words
What it stores
A row in MPOS is one maintenance item belonging to one maintenance plan. The maintenance plan (MPLA) carries the scheduling logic - cycle, strategy, start date - while MPOS carries the assignment of that scheduling to an actual technical object and task list. The technical object is not stored directly as an equipment or functional location number; it is stored as a generic object list key (ILOAN) that is resolved in ILOA to whichever object type actually applies. A single maintenance plan often contains more than one MPOS row, for example when several pieces of equipment are serviced on the same call dates under one plan. MPOS does not hold the next due date, the cycle length, or the generated order number - those come from the plan header and the call history table.
Key fields
- WARPL - maintenance plan number, foreign key back to MPLA
- WAPOS - maintenance item number, a sequential counter unique within the plan, not a stable business identifier for the object
- ILOAN - object list number, the generic key resolved in ILOA to determine whether the item points to equipment, a functional location, or an assembly
- PLNTY - task list type assigned to this maintenance item
- PLNNR - task list group number of the assigned task list
- PLNAL - task list group counter, needed together with PLNTY and PLNNR to identify the exact task list version in use
How it joins the data model
- MPOS-WARPL = MPLA-WARPL joins the item to its maintenance plan header, where cycle and strategy data actually live
- MPOS-ILOAN = ILOA-ILOAN resolves the generic object list entry to find out what kind of technical object this item maintains
- ILOA-EQUNR = EQUI-EQUNR when the resolved object list entry is equipment
- ILOA-TPLNR = IFLOT-TPLNR when the resolved object list entry is a functional location
- MPOS-WARPL = MHIS-WARPL links the plan to its call and scheduling history, needed to see which cycles have already fired
How to read it safely
MANDT is the client field and must always be restricted. MPOS is not enormous by itself but it is unusable as an entry point without a starting key - do not scan it cold. The practical path is almost always object-first or plan-first: pull the equipment or functional location number, find its ILOAN in ILOA, then select MPOS on ILOAN, or start from a known plan number in MPLA and select MPOS on WARPL. WARPL plus WAPOS is the unique key, so once both are known the lookup is a single-row read. Avoid filtering on task list fields alone (PLNTY, PLNNR, PLNAL) as a starting point; many unrelated items can share the same task list.
How to prove it in the data
Symptom: a piece of equipment is not generating maintenance orders even though its plan looks active. Find the equipment's EQUNR in EQUI, take its ILOAN from ILOA where EQUNR matches, then select MPOS where ILOAN equals that value to get WARPL and WAPOS. From WARPL, check MPLA for the plan's active/deactivated flag and start conditions, and check MHIS for the last recorded call against that WARPL. If MPOS returns no row at all for the resolved ILOAN, the equipment was never assigned to any plan in the first place.
ECC vs S/4HANA
MPOS continues to exist in S/4HANA in the same role, carrying maintenance items beneath a maintenance plan. Maintenance planning has not been restructured in a way that removes or renames this table in publicly documented material, though newer Fiori-based maintenance planning apps may read through compatibility views rather than the table directly. Treat the underlying table structure as stable and verify any specific release behaviour against the system rather than assuming parity with ECC in every detail.
Common pitfalls
- Treating WAPOS as a meaningful business identifier for the object - it is only a counter local to the plan and gets renumbered if items are deleted and re-added
- Expecting cycle length, frequency, or next-due-date fields on MPOS - all of that lives on MPLA or in the counter and cycle set tables, not here
- Searching MPOS for a maintenance order number - orders generated by a plan call are recorded elsewhere (order header data, referenced via AFIH), MPOS only holds the assignment that produces them
- Assuming one maintenance plan equals one maintenance item - plans frequently group multiple equipment or functional locations into separate MPOS rows under a shared schedule
- Reading ILOAN as if it directly told you the object type - it must be resolved through ILOA first; the same numbering pattern is reused for equipment, functional locations and assemblies
- Pulling a row from MPOS and assuming it is currently active without checking the plan's deactivation or deletion status on MPLA - a deleted item can still leave a row behind
- Joining straight from MPOS to a technical object table without going through ILOA first, which silently returns wrong or empty results because the key structures do not match directly
Whose problem this is
Maintenance planning setup and the correctness of plan-to-object assignments belong to the PM/EAM functional consultant working with the maintenance planning department. Mass corrections or migration-related cleanup of MPOS rows are a data-migration or functional consultant task, not a basis one; basis involvement is only needed for performance issues on very large selections.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tables/mposERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.