Install
$ agentstack add skill-boxlogodev-sapstack-sap-pm ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
1. Environment Intake Checklist
Before answering PM questions, collect:
- SAP Release: ECC 6.0 (which EhP?) or S/4HANA (which release year?)
- Deployment model: On-premise / RISE / Cloud Public Edition
- PM Organization: Planning Plant, Maintenance Plant, Maintenance Coordination Plant
- Industry sector: Manufacturing (automotive, chemicals, electronics), energy, pharma, food & beverage
- Equipment strategy: Single-level (equipment only) vs. two-level (equipment + functional locations)
- Maintenance type focus: Breakdown, preventive, predictive, contract, or combination?
- Integration requirements: MES, predictive maintenance (PAI), mobile (SAP Asset Manager), analytics
2. Equipment Master Data (IE01/IE02/IE03)
Equipment Creation (IE01)
Key T-codes & Menu Path
- IE01: Create Equipment (SPRO → Plant Maintenance → Master Data → Equipment → Create)
- IE02: Change Equipment
- IE03: Display Equipment
- IE10: Create Fleet (for mass equipment with identical configuration)
Critical Fields (EQUI Table)
| Field | Meaning | Mandatory | Notes | |-------|---------|-----------|-------| | EQUNR | Equipment number | Y | Unique 18-char ID; can be internal/external assigned | | EQKTX | Equipment description | Y | 40 chars; recommend English + Korean | | EQART | Equipment category | Y | PUMPE (pump), MOTOR (motor), KOMPR (compressor) etc. | | MATNR | Material master | N | Links to inventory; if serial-tracked material, serializes equipment | | SERGE | Serial number | N | Hardware serial from nameplate; used in warranty tracking | | HEQUI | Higher-level equipment | N | Parent equipment (e.g. pump is part of production line) | | ILOAN | Functional location | Y | Must exist in IFLO before assignment | | MANDT | Company code | Y | Set at creation; cannot change | | WERKS | Plant | Y | Maintenance-executing plant | | KMFID | Manufacturer | N | Free-text; recommend SAP vendor master LIFNR | | GEWICHT | Weight | N | For spare parts estimation | | INBDT | Startup date | N | Important for MTBF calculation period |
Equipment Classification
Table KLAH (classification header) + KLASP (assignment):
- Class type: EQUIPMENT, ZEQUIP (custom)
- Characteristics: Model, Manufacturer, Voltage, Capacity, Brand
- Used for: spare parts list filtering, maintenance strategy assignment, reporting
Serial Number Management
- Equipment must link to material master (EQUI.MATNR)
- Material → Accounting 1 view → Valuation Class + Serial Number Profile (MMSL)
- Serial Number Profile (MMSL): defines when system forces serial entry during GR, GI, MIGO
- Equipment History (EQUZ): automatic log of changes (creation, equipment change, tag changes)
Equipment Deletion
- Equipment cannot be deleted if it has maintenance history (QMEL, AUFK exist)
- Workaround: Flag EQUI-LOEKZ (deletion flag) = X → equipment hidden in selection, kept for history
3. Functional Location Master Data (IL01/IL02/IL03)
Hierarchical structure — represents plant's physical/logical organization
Functional Location Creation (IL01)
Key T-codes
- IL01: Create Functional Location (SPRO → Plant Maintenance → Master Data → Technical Objects → Functional Location)
- IL02: Change Functional Location
- IL03: Display Functional Location
Hierarchy Example (Two-Level Strategy)
Production Line A (ZFUNCLOC-PRODLINE-A)
├─ Section 1 (ZFUNCLOC-PRODLINE-A-SEC1)
│ ├─ Equipment: Motor, Pump, Control Panel
└─ Section 2 (ZFUNCLOC-PRODLINE-A-SEC2)
├─ Equipment: Conveyor, Sensor
Critical Fields (IFLO + IFLOT Tables)
| Field | Table | Meaning | Notes | |-------|-------|---------|-------| | TPLNR | IFLO | Functional location ID | 40-char hierarchical, e.g., PROD-001-002 | | TXTMI | IFLOT | Description (multilingual) | Store in DE, EN, KO | | FLTYP | IFLO | Functional location type | e.g., PUMPINGSTATION, MOTORROOM | | GEWRK | IFLO | Responsible work center (PM team) | Links to CR01 work center | | HFLOC | IFLO | Higher-level functional location | Parent node | | STRNO | IFLO | Building/hall number | Organizational reference | | MANDT | IFLO | Company code | Assigned at creation |
Account Assignment
- Cost center (KOSTL): for cost tracking of maintenance labor + materials
- Internal order (AUFNR): for project-based maintenance (e.g., annual overhaul)
- Profit center: for P&L attribution
- WBS element: for capital project maintenance
4. Maintenance Notification (IW21/IW22/IW23)
Entry point for all maintenance requests — whether breakdown or planned
Notification Types (QMNUM Table)
| Notification Type | ID | Trigger | Example Use Case | |-------------------|----|---------|----| | Malfunction (고장) | M1 | Breakdown reported by operator | "Motor stopped working" | | Maintenance request | M2 | Preventive or user-initiated task | "Annual pump inspection needed" | | Activity report (업무보고) | M3 | Post-maintenance completion record | "Replaced bearings on motor" | | Calibration notification | M4 | Instrument calibration schedule | "Pressure gauge needs recalibration" |
Key T-codes
| T-code | Description | |--------|-------------| | IW21 | Create notification | | IW22 | Change notification | | IW23 | Display notification | | IW24 | List of notifications (selection) | | IW28 | Notification listing (reporting) | | IW29 | Notification analysis (OLAP) |
Critical Fields (QMEL + QMIH Tables)
| Field | Table | Meaning | Max Length | |-------|-------|---------|-----------| | QMNUM | QMEL | Notification number | 12 digits (internal/external assigned) | | QMTXT | QMEL | Short description | 40 chars | | LTXT | QMEL | Long text | 2500 chars (ALV memo) | | EQUNR | QMEL | Equipment or... | 18 chars | | TPLNR | QMEL | Functional location | 40 chars (either EQUNR or TPLNR required) | | SCHAD | QMEL | Damage/fault code | 4 chars; must exist in custom table (e.g., ZMAINTCODES) | | URSACHE | QMIH | Root cause code | 4 chars; ABAP table maintained via SPRO | | AKTIVITAET | QMIH | Activity code (work type) | 4 chars; e.g., REPAIR, INSPECT, REPLACE | | ANLDAT | QMEL | Notification creation date | Auto-filled | | MERDAT | QMEL | Reported date/time | User-entered (when problem was discovered) | | PRIO | QMEL | Priority (1=urgent, 4=low) | Links to SLA | | ARBPL | QMEL | Assigned work center | CR01 resource pool | | AUART | QMIH | Associated order type | e.g., PM01, PM02 (links to maintenance order) |
Damage Code & Root Cause Workflow
Damage codes (Schädigungen) → categorize what broke
- Table maintained in: SPRO → Plant Maintenance → Notification → Configure Notification Type → Damage Codes
- Example: BEARING (Lagerschaden), SEAL (Dichtungsschaden), MOTOR_COIL (Motorwicklung)
Root cause codes → categorize why it broke
- Maintained in: SPRO → Plant Maintenance → Notification → Configure Notification Type → Cause Codes
- Example: OVERLOAD (Überbelastung), POORMAINTENANCE (Schlechte Instandhaltung), DESIGNDEFECT
Activity codes → actions taken
- INSPECTION, REPAIR, REPLACEMENT, ADJUSTMENT, CALIBRATION
Notification Workflow
IW21 (Create) → IW22 (Edit, assign to equipment/FL)
→ Create Maintenance Order (IW31) or Assign Existing (IW81)
→ Complete Notification (IW21 → Status = COMPLETED)
→ Archive / History Report (IW28, IW29)
5. Maintenance Order (IW31/IW32/IW33)
Execution unit — operationalizes a notification into scheduled work with costing
Order Types & Lifecycle
| Order Type | Purpose | Settlement | Workflow | |-----------|---------|-----------|----------| | PM01 | Preventive maintenance | Cost center or internal order | Recurring | | PM02 | Breakdown maintenance | Cost center or internal order | Ad-hoc | | PM03 | Corrective action / temporary fix | Internal order | One-time | | PM10 | Maintenance by vendor/contract | Purchase order line | Outsourced | | ER01 | Emergency order (fast-track) | Cost center | Expedited release |
Lifecycle (Status Flow)
CRTD (Created) → PLAN (Planning) → RELD (Released)
→ TECO (Technically Complete) → CLSD (Closed)
Key transitions:
- CRTD → RELD: IW32 (Change) → Release button (Authorization: PM.ORD.R)
- RELD → TECO: CO11N (confirmation) or manual in IW32
- TECO → CLSD: Settlement (KO88) → automatic CLSD after successful posting
Key T-codes
| T-code | Description | |--------|-------------| | IW31 | Create maintenance order | | IW32 | Change maintenance order | | IW33 | Display maintenance order | | IW38 | Maintenance order list (with statuses) | | IW39 | Maintenance order analysis (OLAP) | | COOIS | Production order info system (includes maintenance orders) |
Critical Fields (AUFK + AFKO + AFIH Tables)
| Field | Table | Meaning | Key Link | |-------|-------|---------|----------| | AUFNR | AUFK | Maintenance order number | 12 digits | | AUART | AUFK | Order type (PM01, PM02...) | Defines cost collection rules | | EQUNR | AUFK | Equipment | Equipment master (EQUI) | | TPLNR | AUFK | Functional location | FL master (IFLO) | | QMNUM | AUFK | Notification reference | Notification (QMEL) | | KOSTL | AUFK | Cost center (account assignment) | GL posting account | | INAUFNR | AUFK | Internal order (account assignment) | Alternative to cost center | | ERDAT | AUFK | Creation date | Audit trail | | GSTDT | AUFK | Scheduled start date | Capacity planning | | GETDT | AUFK | Scheduled end date | Capacity planning | | FZDAT | AUFK | Actual start date | Filled by TECO or confirm | | FZEND | AUFK | Actual end date | Filled by TECO or confirm | | GGRTXT | AUFK | Order description | 40 chars | | MGVST | AUFK | Total planned labor hours | Sum of operations (AFIH.LAH) | | STATUS | JEST | Order status (via object key AUFK + status cat P) | Links to JEST table (status management) |
Operations & Component Planning
Operations (AFIH table) — individual tasks within maintenance order
| Field | Meaning | Type | |-------|---------|------| | LTEXT | Operation description | Text, e.g., "Replace pump seal" | | LAH | Standard labor hours | Decimal, e.g., 4.5 | | MGH | Standard machine hours | Used for resource capacity planning | | ARBPL | Work center | CR01 resource (e.g., MAINTTEAMA) | | LTXA | Operation long text | Detail work instructions |
Components (BOM link) — spare parts required
- AFIH → STPO (BOM item) → material + quantity
- Component status: Available / Withdrawn / On PO / Missing (CO24)
- Backflush: if enabled, components auto-issue at confirmation (MIGO 261 automatic)
Maintenance Labor & Costs
Labor hours collection (CO11N confirmation)
- Actual labor time entered at operation level
- Overtime multipliers applied (customizable per order type)
Spare parts cost (MIGO)
- GI from warehouse → MIGO 261 → charged to maintenance order
- Vendor-supplied parts → PO line → GR → invoice → cost posting
Overhead allocation (KO88)
- Settlement rule: Actual cost + overhead (%) → Cost center or internal order
- Example: Order cost = 5,000 EUR → + 20% overhead = 6,000 EUR → posted to cost center
External Services (Subcontracting)
- Maintenance order header → Services tab → Create purchase requisition (BANF)
- Service material type: automatically creates PR → RFQ → PO → GR → IV (MIRO)
- Typical service materials: OUTSOURCEREPAIR, INSPECTIONLABOR
6. Preventive Maintenance (IP01/IP10/IP30)
Automated scheduling of recurring maintenance tasks
Maintenance Plans (IP01/IP02)
| T-code | Description | |--------|-------------| | IP01 | Create maintenance plan | | IP02 | Change maintenance plan | | IP03 | Display maintenance plan | | IP10 | Call object scheduling (run planner) | | IP30 | Deadline monitoring |
Plan Types
| Plan Type | Trigger Condition | Interval | |-----------|-------------------|----------| | Time-based (Z1) | Calendar days | e.g., every 30 days, every 1 January | | Counter-based (Z2) | Equipment counter (QMSREC) | e.g., every 10,000 operating hours | | Multiple-counter (Z3) | Multiple counters (e.g., hours + days) | Whichever comes first | | Performance-based (Z4) | Equipment performance KPI | e.g., when efficiency drops below 95% |
Maintenance Strategy (IP11)
Strategy = grouping of maintenance tasks → optimize scheduling
Example: Monthly production line maintenance (STRATPRODLINEM)
- Task 1: Bearing lubrication (5 hours, cost center MAINT_OIL)
- Task 2: Filter replacement (3 hours, material M-FILTER-001, cost center MAINT_PARTS)
- Task 3: Inspection (4 hours, cost center MAINT_LABOR)
- Total plan: 12 labor hours, materials + labor cost per execution
Scheduling Strategy (IP11 → PLTYP / IPRFL Table)
| Field | Meaning | Example | |-------|---------|---------| | BESCHREIBUNG | Strategy name | "MOTORBEARINGMAINTENANCE" | | MPLNR | Maintenance plan number | "MPLAN-MOTOR-001" | | IPRFL | Task list (group of tasks) | "TASKLIST-BEARING-005" | | ISCHA | Scheduling parameter | e.g., "EVERY30DAYS" | | LETWZ | Calendar rule | "MON" (Monday), "D" (daily) | | MAINT_TYPE | Maintenance type | "PREVENTIVE", "PREDICTIVE" |
Task Lists for Maintenance (IA01/IA05)
Reusable checklists & instructions
| T-code | Description | |--------|-------------| | IA01 | Create task list (general) | | IA05 | Create task list (maintenance) | | IA06 | Maintain task list status |
Task list structure (PLKO + PLPO)
- Header: task list ID, description, equipment/FL applicable
- Operations: step 10, 20, 30... each with work center + time + materials
Example: Pump Inspection Task List (TASKLIST-PUMP-INSPECT)
Step 10: Visual inspection (0.5 hrs, work center: MAINT_VISUAL)
Step 20: Vibration check (1.0 hr, equipment: VIBRATION_METER)
Step 30: Temperature measurement (0.5 hrs, sensor: TEMP_PROBE_001)
Step 40: Oil sampling (0.25 hrs, material: OIL_SAMPLE_BOTTLE)
Step 50: Report findings (0.5 hrs, work center: MAINT_ADMIN)
Total: 2.75 hours
7. Maintenance Scheduling (IP10 / IP30)
IP10 — Call Object Scheduling
Generates notifications/orders based on maintenance plans
- Input: maintenance plans (IP01) + current equipment state
- Output: QMEL (notifications) or AUFK (orders) for upcoming maintenance
- Run frequency: typically nightly batch (transaction SM36)
IP30 — Deadline Monitoring
Tracks which equipment is overdue for maintenance
| Status | Meaning | |--------|---------| | Green | On schedule | | Yellow | Within lead time (e.g., due within 5 days) | | Red | Overdue |
Usage:
- Filter by: planning plant, work center, priority
- Action: create maintenance orders (IW31) for overdue items
Counter Readings (QMSREC Table)
Equipment counters — track usage-based maintenance triggers
| Counter Type | Example | Unit | |--------------|---------|------| | Operating hours | Production line hours | Hours | | Cycles | Number of production runs | Cycles | | Distance | Vehicle mileage (for mobile equipment) | km | | Quantity | Material processed (e.g., tons in cement plant) | Units |
Recording counter reads:
- QM04: Single equipment counter read
- QM05: Multiple counters (batch entry)
- Readings feed into IP10 scheduling → if counter >= threshold, create notification
8. Breakdown Maintenance & MTBF/MTTR
Breakdown Notification Entry (IW21)
Operator or manager reports failure:
- IW21 → Equipment/FL + Damage code + Priority
- System creates notification (e.g., NOTIF-2024-001234)
- Assign to maintenance team (ARBPL — work center)
- Create order (IW31 with order type PM02)
- Release order (RELD status) → work begins
- Confirm completion (CO11N) → TECO
- Settle order (KO88) → cost posted
Malfunction Start/End Time (QMEL / QMIH)
| Field | Table | Meaning | Impact on KPI | |-------|-------|---------|---| | MERDAT | QMEL | Time failure reported | Start of downtime clock | | BEGDA | QMIH | Planned start of repair | Used in SLA tracking | | FZDAT | AUFK | Actual repair start | Marks crew dispatch time | | FZEND | AUFK | Actual repair end | End of down
…
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: BoxLogoDev
- Source: BoxLogoDev/sapstack
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.