Document Links
ERP-1043 - Getting issue details... STATUS
Introduction
This Data Design and Flow Specification (DDFS) defines the end-to-end data flow required to deliver the A2D (Acquire to Decommission) analytics capability within the SyWay programme. It covers the full DSP layered architecture from S/4HANA source extraction through to SAP Analytics Cloud (SAC) analytical models.
This DDFS covers the following Jira requirements:
- ERP-888 – Maintenance and Asset Management Cost Dashboard
- ERP-1012 – Asset Availability Dashboard (Planned vs Unplanned Downtime)
- ERP-1013 – Reliability Engineering Dashboard (MTBF, Top 10 Bad Actors)
- ERP-1092 – Maintenance Planning Dashboard
- ERP-1093 – Maintenance Scheduling Dashboard
- ERP-1096 – Maintenance Execution Dashboard (MTTR, Overdue%, Technician Productivity)
- ERP-1098 – Asset Information Dashboard (Preventive Maintenance Strategy, Data Compliance)
- ERP-1104 – MRO Dashboard
- ERP-1156 – Cross-Instance Material Visibility – MRO Spares
Scope Note: ERP-1104 and ERP-1156
Both ERP-1104 (MRO Dashboard) and ERP-1156 (Cross-Instance Material Visibility) are listed under the A2D workstream but consume inventory objects already defined in the P2F DDFS (ERP-1041). These requirements are documented here for completeness but no new DSP objects are required in the A2D stream.
Data Flow Diagram
Source System Extractors
The following source extractors feed the A2D data flow. All S/4HANA extractors are wrapped custom CDS views (Z_I_...) or standard VDM wrappers deployed in the SSAL_S4Hx space. The APM extractor is a placeholder pending APM integration definition.
Code | System | Extractor / CDS View | Key Base Tables | Supports ERPs | Notes |
XE_PMNotif | S4H | SYQ_I_PMNOTIFMAINTENANCEDATA | QMEL / QMIH / ILOA | ERP-1012, ERP-1013, ERP-1092, ERP-1096 | Existing custom Z-extractor. |
XE_MOTech | S4H | I_MaintOrderTechObjCube | IFLOT, ILOA, AUFK, AFKO, AFIH, CRHD, EQUZ, EQUI + others | ERP-1012, ERP-1013, ERP-1092, ERP-1093, ERP-1096, ERP-1098 | Standard VDM cube. Wrapper required. |
XE_CostCube | S4H | I_MaintOrderActualCostDataCube | SCAL_TT_DATE, EQUZ, EQUI, SKA1 + others | ERP-888, ERP-1013 | Standard VDM cost cube. Wrapper required. |
XE_MaintOps | S4H | I_MaintOrderOperation_DEX | Operation-level DEX | ERP-1092, ERP-1093, ERP-1096 | Standard DEX view. Wrapper required. |
XE_EqBOM | S4H | SYQ_I_EQUIPMENTBOMLINK | EQST | ERP-1098 | Custom Z-extractor. |
XE_MaintPlan | S4H | I_MaintenancePlan | MPLA / T399W | ERP-1098 | Standard view. Wrapper required. |
|
|
|
|
|
|
XE_WCCap | S4H | I_WorkCenterCapacity | KAKO / CRHD / CRCA | ERP-1092, ERP-1093, ERP-1096 | Standard VDM. Provides capacity definition per Work Center / Capacity Category / Validity Period. Join key: WorkCenterInternalID. Wrapper required. Resolves G-06. |
Inbound Layer
The Inbound Layer (Layer 1) receives delta-loaded records from source extractors. No field transformations are applied at this layer. Standard technical fields (load date/time, source system) are retained as delivered. Objects reside in the SSAL_S4Hx space (S/4 HANA sourced) and SSAL_APM space (APM sourced).
Code | Object Name (Tech) | Source Extractor | Notes |
1TXL_PMNotif | 1TL_S4HR_SYQ_I_PMNOTIFMAINTENANCEDATA | SYQ_I_PMNOTIFMAINTENANCEDATA (XE_PMNotif) | Initial + delta load. Custom Z-extractor in /SYQ/ namespace — forward slashes dropped. |
1TXL_MOTech | 1TL_S4HR_I_MAINTORDERTECHOBJCUBE | I_MAINTORDERTECHOBJCUBE (XE_MOTech) | Standard VDM wrapper. Delta load. |
1TXL_CostCube | 1TL_S4HR_I_MAINTORDERACTUALCOSTCUBE | I_MAINTORDERACTUALCOSTCUBE (XE_CostCube) | Standard VDM wrapper. Delta load. |
1TXL_MaintOps | 1TL_S4HR_I_MAINTORDEROPERATION | I_MAINTORDEROPERATION_DEX (XE_MaintOps) | DEX export. Delta load. |
1TXL_EqBOM | 1TL_S4HR_SYQ_I_EQUIPMENTBOMLINK | SYQ_I_EQUIPMENTBOMLINK (XE_EqBOM) | Custom Z-extractor in /SYQ/ namespace. |
1TXL_MaintPlan | 1TL_S4HR_I_MAINTENANCEPLAN | I_MAINTENANCEPLAN (XE_MaintPlan) | Standard view wrapper. |
|
|
|
|
1TXL_WCCap | 1TL_S4HR_I_WORKCENTERCAPACITY | I_WORKCENTERCAPACITY (XE_WCCap) | Initial + delta load. Capacity definitions change infrequently — full load acceptable. Resolves G-06. |
Harmonisation Layer
2TL_S4HARM_I_PMNotifMaintenanceData (2TL_PMNotif)
Type: TL — Table / Load object
Source: 1TL_S4Hx_SYQ_I_PMNOTIFMAINTENANCEDATA (1TXL_PMNotif)
Purpose: Delta load of PM notification maintenance data. Sets composite key.
Keys:
- MaintenanceNotification
- NotificationItem
Supports: ERP-1012, ERP-1013, ERP-1092, ERP-1096
2TF_S4HARM_I_PMNotifMaintenanceData
Type: TF — Transformation Flow
Source: 1TL_S4Hx_SYQ_I_PMNOTIFMAINTENANCEDATA (1TXL_PMNotif)
Purpose: No transformations. Pass-through only.
2VR_S4HARM_I_PMNotifMaintenanceData (2VR_PMNotif)
Type: VR — Harmonisation View
Source: 2TL_S4HARM_SYQ_I_PMNOTIFMAINTENANCEDATA
Purpose: View on harmonised PM notification maintenance data. Interface object for Propagation Layer.
Filter: MaintenanceNotification IS NOT NULL
Projection:
- MaintenanceNotification
- NotificationItem
- Equipment
- FunctionalLocation
- RelevantFunctionalLocation
- MaintenancePlant
- MaintenancePlannerGroup
- MaintenanceActivityType
- NotificationType
- MaintPriority
- MaintenanceObjectIsDown
- MaintObjectDowntimeDuration
- MaintObjDowntimeDurationUnit
- MalfunctionStartDate
- MalfunctionStartTime
- MalfunctionEndDate
- MalfunctionEndTime
- CreationDate
- CreationTime
- AvailyBeforeMalfunctionPercent
- AvailyAfterMalfunctionPercent
- AvailyAfterConclusionPercent
- SystConditionBeforeMalfunction
- SystConditionAfterMalfunction
- SystConditionAfterCompletion
- CompanyCode
- (amber) DamageCode — new for ERP-1013 failure reason analysis
- (amber) ObjectPartCode — new for ERP-1013
- (amber) CauseCode — new for ERP-1013
- (amber) ABCIndicator — confirmed on I_MaintOrderTechObjCube; join to 2VR_MOTech on MaintenanceNotification key required for PMNotif-based filters (G-15)
Formula / Aggregation: None — harmonisation only
Notes: DamageCode, ObjectPartCode, CauseCode added for ERP-1013. ABCIndicator join pattern documented in G-15.
2TL_S4HARM_I_MaintOrderTechObCube (2TL_MOTech)
Type: TL — Table / Load object
Source: 1TL_S4Hx_I_MAINTORDERACTUALCOSTCUBE (1TXL_MOTech)
Purpose: Delta load of maintenance order / technical object data. Sets composite key.
Keys:
- MaintenanceOrder
Supports: ERP-1012, ERP-1092, ERP-1093, ERP-1096, ERP-1098
2TF_S4HARM_I_MaintOrderTechObCube
Type: TF — Transformation Flow
Source: 1TL_S4Hx_MAINTORDERACTUALCOSTCUBE (1TXL_MOTech)
Purpose: No transformations. Pass-through only.
2VR_S4HARM_I_MaintOrderTechObCube (2VR_MOTech)
Type: VR — Harmonisation View
Source: 2TL_S4HARM_I_MaintOrderTechObCube
Purpose: View on harmonised maintenance order / technical object data. Interface object for Propagation Layer.
Filter: MaintenanceOrder IS NOT NULL AND MaintenanceOrder <> ''
Projection:
- MaintenanceOrder
- Equipment
- FunctionalLocation
- MaintenancePlant
- MaintenancePlannerGroup
- PlantSection
- MainWorkCenter
- WorkCenterInternalID
- MaintenanceOrderType
- MaintenanceActivityType
- MaintenancePlan
- TaskListGroup
- TaskListGroupCounter
- TaskListType
- OrderUserStatus
- ScheduledBasicStartDate
- ScheduledBasicStartTime
- ScheduledBasicEndDate
- ScheduledBasicEndTime
- ScheduledBasicStartDateTime
- ScheduledBasicEndDateTime
- ActualStartDate
- ConfirmedEndDate
- CompanyCode
- WBSElementInternalID
Formula / Aggregation: None — harmonisation only
2TL_S4HARM_I_MaintOrderActualCostCube (2TL_CostCube)
Type: TL — Table / Load object
Source: 1TL_S4Hx_I_MAINTORDERACTUALCOSTCUBE (1TXL_CostCube)
Purpose: Delta load of maintenance order actual cost postings. Sets composite key.
Keys:
- MaintenanceOrder
- AccountingDocument
- FiscalYear
- AccountingDocumentItem
Supports: ERP-888, ERP-1013
2TF_S4HARM_I_MaintOrderActualCostCube
Type: TF — Transformation Flow
Source: 1TL_S4Hx_I_MAINTORDERACTUALCOSTCUBE (1TXL_CostCube)
Purpose: No transformations. Pass-through only.
2VR_S4HARM_I_MaintOrderActualCostCube (2VR_CostCube)
Type: VR — Harmonisation View
Source: 2TL_S4HARM_I_MaintOrderActualCostCube
Purpose: View on harmonised maintenance order actual cost data.
Filter: MaintenanceOrder IS NOT NULL AND MaintenanceOrder <> ''
Projection:
- MaintenanceOrder
- AccountingDocument
- FiscalYear
- AccountingDocumentItem
- CompanyCode
- CompanyCodeCurrency
- AmountInCompanyCodeCurrency
- GlobalCurrency
- AmountInGlobalCurrency
- TransactionCurrency
- AmountInTransactionCurrency
- GLAccount
- CostElementGroup
- MaintenanceOrderType
- MaintenanceActivityType
- MaintenanceOrderIsPlanned
- Plant
- PlantSection
- Equipment
- FunctionalLocation
- MaintenancePlant
- MaintenancePlannerGroup
- MainWorkCenterInternalID
- MaintOrdMainWorkCenter
- MaintOrdMainWorkCenterPlant
- CostCenter
- ControllingArea
- PostingDate
- PostingMonth
- FiscalPeriod
Formula / Aggregation: None — harmonisation only
Notes: WBSElementInternalID is NOT on I_MaintOrderActualCostDataCube — removed from this projection. ActivityType confirmed present directly on cost cube; no join to MOTech required for cost type split.
2TL_S4HARM_I_MaintOrderOperation (2TL_MaintOps)
Type: TL — Table / Load object
Source: 1TL_S4Hx_I_MAINTORDEROPERATION (1TXL_MaintOps)
Purpose: Delta load of maintenance order operation records. Sets composite key.
Keys:
- MaintenanceOrder
- MaintenanceOrderOperation
Supports: ERP-1092, ERP-1093, ERP-1096
2TF_S4HARM_I_MaintOrderOperation
Type: TF — Transformation Flow
Source: 1TL_S4Hx_I_MAINTORDEROPERATION (1TXL_MaintOps)
Purpose: No transformations. Pass-through only.
2VR_S4HARM_I_MaintOrderOperation (2VR_MaintOps)
Type: VR — Harmonisation View
Source: 2TL_S4HARM_I_MaintOrderOperation
Purpose: View on harmonised maintenance order operation data.
Filter: MaintenanceOrder IS NOT NULL AND MaintenanceOrderOperation IS NOT NULL
Projection:
- MaintenanceOrder
- MaintenanceOrderOperation
- Plant
- WorkCenter
- WorkCenterPlant
- WorkCenterInternalID
- MaintenancePlannerGroup
- MaintenanceOrderType
- MaintenanceActivityType
- OperationPlannedWork
- OperationPlannedWorkUnit
- ConfirmationTotalQuantity
- ConfirmationTotalQuantityUnit
- MaintOrdOperationWorkDuration
- OplTStSchedldExecEndDte
- LatestAcceptableCompletionDate
- MaintOrdProcessPhaseCode
- ConfirmedEndDate
- ConfirmedEndTime
- Equipment
- FunctionalLocation
- MaintOrdMainWorkCenter
- MaintOrdMainWorkCenterPlant
Formula / Aggregation: None — harmonisation only
2TL_S4HARM_I_EquipmentBomLink (2TL_EqBOM)
Type: TL — Table / Load object
Source: 1TL_S4Hx_SYQ_I_EQUIPMENTBOMLINK (1TXL_EqBOM)
Purpose: Delta load of equipment BOM link data. Sets composite key.
Keys:
- Equipment
- BillOfMaterial
- BillOfMaterialCategory
- BillOfMaterialVariant
Supports: ERP-1098
2TF_S4HARM_I_EquipmentBomLink
Type: TF — Transformation Flow
Source: 1TL_S4Hx_SYQ_I_EQUIPMENTBOMLINK (1TXL_EqBOM)
Purpose: No transformations. Pass-through only.
2VR_S4HARM_I_EquipmentBomLink (2VR_EqBOM)
Type: VR — Harmonisation View
Source: 2TL_S4HARM_I_EquipmentBomLink
Purpose: View on harmonised equipment BOM link data.
Filter: Equipment IS NOT NULL AND Equipment <> ''
Projection:
- Equipment
- BillOfMaterial
- BillOfMaterialCategory
- BillOfMaterialVariant
- BillOfMaterialVariantUsage
- Plant
2VD_S4HARM_Equipment (2VD_Equip)
Type: VD — Dimension View
Source: I_Equipment (standard VDM — no TL/TF required)
Purpose: Equipment master data dimension. Provides Equipment description, object type, plant, and manufacturer for lookups across Analytical Models.
Projection: All standard fields from I_Equipment required by AM dimension usage.
Notes: No Replication Flow required. Sourced directly from standard VDM view.
2TL_S4HARM_I_MaintenancePlan (2TL_MaintPlan)
Type: TL — Table / Load object
Source: 1TL_S4Hx_I_MAINTENANCEPLAN (1TXL_MaintPlan)
Purpose: Delta load of maintenance plan data (MPLA / T399W). Sets key.
Keys:
- MaintenancePlan
Supports: ERP-1098 — Active Preventive Maintenance Strategy KPI
2TF_S4HARM_I_MaintenancePlan
Type: TF — Transformation Flow
Source: 1TL_S4Hx_I_MAINTENANCEPLAN (1TXL_MaintPlan)
Purpose: No transformations. Pass-through only.
2VR_S4HARM_I_MaintenancePlan (2VR_MaintPlan)
Type: VR — Harmonisation View
Source: 2TL_S4HARM_I_MaintenancePlan
Purpose: View on harmonised maintenance plan data.
Filter: MaintenancePlan IS NOT NULL AND MaintenancePlan <> ''
Projection:
- MaintenancePlan
- MaintenancePlanDesc
- MaintenanceStrategy
- MaintenancePlanCategory
- FunctionalLocation
- Equipment
- SchedulingStartDate
- SchedulingStartTime
- SchedulingEndDate
- MaintPlanIsLockedAgainstCalls
- CallHorizonInDays
- SchedulingDuration
- SchedulingDurationUnit
- Plant
- AuthorizationGroup
Formula / Aggregation: None — harmonisation only
Notes: PlantSection (BEBER) and MaintenancePlannerGroup (INGRP) are NOT on I_MaintenancePlan. These are resolved by join to 2VR_MOTech in the Propagation Layer (3VF_A2DAMM_MaintenancePlan) — see Section 6.7.
2TL_S4HARM_I_WorkCenterCapacity (2TL_WCCap)
Type: TL — Table / Load object
Source: 1TL_S4Hx_I_WORKCENTERCAPACITY (1TXL_WCCap)
Purpose: Delta load of Work Center Capacity definition records. Sets composite key. Filled by 2TF_S4HARM_I_WorkCenterCapacity.
Keys:
WorkCenterInternalID
CapacityInternalID
ValidityStartDate
Supports: ERP-1092, ERP-1093, ERP-1096
2TF_S4HARM_I_WorkCenterCapacity
Type: TF — Transformation Flow
Source: 1TL_S4Hx_I_WORKCENTERCAPACITY (1TXL_WCCap)
Purpose: No transformations. Pass-through only.
2VR_S4HARM_I_WorkCenterCapacity (2VR_WCCap)
Type: VR — Harmonisation View
Source: 2TL_S4HARM_I_WorkCenterCapacity
Purpose: View on harmonised Work Center Capacity definition data. Interface object for Propagation Layer. Provides capacity quantity and formula fields used to derive available hours per Work Center per period.
Filter: WorkCenterInternalID IS NOT NULL AND ValidityStartDate <= current_date AND ValidityEndDate >= current_date
Projection:
WorkCenter
WorkCenterInternalID
WorkCenterTypeCode
WorkCenterCategoryCode
Plant
Capacity
CapacityInternalID
CapacityQuantityUnit
CapacityCategoryCode
CapacityCategoryAllocation
ProcgCapRequirementFormula
SetupCapRequirementFormula
TeardownCapRequirementFormula
OtherCapRequirementFormula
ValidityStartDate
ValidityEndDate
Formula / Aggregation: None — harmonisation only.
Notes: All 20 fields on I_WorkCenterCapacity are dimension-type. Capacity available hours are derived at Propagation Layer by applying the formula fields against shift/calendar data. WorkCenterInternalID is the join key to 2VR_MaintOps and 2VR_MOTech.
Note: The following two objects have been removed as the related KPIs have been deleted from ERP-1013.
2VR_S4HARM_xxxxxx (2VR_Recom) — BLOCKED
Type: VR — Harmonisation View
Source: 2TL_S4HARM_xxxxxx
Purpose: BLOCKED. APM recommendation view. Filter, projection and formula TBD.
Filter: BLOCKED
Projection: BLOCKED
Formula / Aggregation: BLOCKED
Notes: G-05.
2TL_S4HARM_xxxxxx (2TL_Recom) — BLOCKED
Type: TL — Table / Load object
Source: 1TXL_Recom (SSAL_APM) — Z_apm_tbd
Purpose: BLOCKED. APM recommendation data load. Object names and source TBD pending APM integration analysis.
Notes: G-05. Contact: Gokhan Yilmazturk.
WBS / Planned Cost (Placeholder)
Type: PLACEHOLDER
Source: CO / PS — source TBD
Purpose: WBS planned cost input for ERP-888 budget comparison KPI. No standard SAP PM CDS view exposes WBS planned values.
Filter: TBD
Projection: TBD
Formula / Aggregation: TBD
Notes: G-02. Source options: CO/PS extractor, SAC planning model (4MP_ARV), or manual input table.
Propagation Layer
3VR_A2DAMM_PMNotif (3VR_PMNotif)
Type: VR — Projection View
Source: 2VR_PMNotif
Purpose: Projects notification grain for downstream consumption. One row per notification. Includes breakdown flags, downtime duration, malfunction dates, priority, DamageCode, ObjectPartCode, and CauseCode.
Filter: None additional — inherits from 2VR_PMNotif
Projection: All fields from 2VR_PMNotif
Formula / Aggregation: None
Supports: ERP-1012, ERP-1013, ERP-1092, ERP-1096
3VR_A2DAMM_MOTech (3VR_MOTech)
Type: VR — Projection View
Source: 2VR_MOTech
Purpose: Projects order-centric grain. Includes scheduled dates, planner group, plant section, task list, order type, and MaintenanceActivityType.
Filter: None additional — inherits from 2VR_MOTech
Projection: All fields from 2VR_MOTech
Formula / Aggregation: None
Supports: ERP-1012, ERP-1013, ERP-1092, ERP-1093, ERP-1096, ERP-1098
3VR_A2DAMM_UnplannedDowntime (3VR_UnplanDT)
Type: VR — Projection / Calculation View
Source: 2VR_PMNotif
Purpose: Unplanned downtime projection. Filters notifications flagged as breakdown and derives downtime in hours.
Filter: MaintenanceObjectIsDown = 'X'
Projection: Equipment, FunctionalLocation, MaintenancePlant, PlannerGroup, StartDateTime, EndDateTime, DowntimeHours, PlannedVsUnplanned, SourceType
Formula / Aggregation:
- PlannedVsUnplanned = 'UNPLANNED'
- SourceType = 'NOTIF'
- DowntimeHours = MaintObjectDowntimeDuration / 3600
- StartDateTime = MalfunctionStartDate + MalfunctionStartTime
- EndDateTime = MalfunctionEndDate + MalfunctionEndTime
- FunctionalLocation sourced from RelevantFunctionalLocation
Notes: Input to union in 3VF_DTFact.
3VR_A2DAMM_PlannedDowntime (3VR_PlanDT)
Type: VR — Projection / Calculation View
Source: 2VR_MOTech
Purpose: Planned downtime projection. Derives downtime window from scheduled order dates.
Filter: MaintenanceOrderType IN planned types
Projection: Equipment, FunctionalLocation, MaintenancePlant, PlannerGroup, StartDateTime, EndDateTime, DowntimeHours, PlannedVsUnplanned, SourceType
Formula / Aggregation:
- PlannedVsUnplanned = 'PLANNED'
- SourceType = 'ORDER'
- DowntimeHours = (ScheduledBasicEndDateTime - ScheduledBasicStartDateTime) / 3600
Notes: Input to union in 3VF_DTFact.
3VF_A2DAMM_DowntimeFact (3VF_DTFact)
Type: VF — Union / Calculation View
Source: UNION: 3VR_UnplanDT + 3VR_PlanDT
Purpose: Unified downtime fact combining planned and unplanned downtime. No pre-aggregation — grain retained at event level.
Filter: None
Projection: Common union schema: Equipment, FunctionalLocation, MaintenancePlant, PlannerGroup, StartDateTime, EndDateTime, DowntimeHours, PlannedVsUnplanned, SourceType
Formula / Aggregation: Union — accept default union field mappings. No additional derivations.
Supports: ERP-1012
Union Detail
Two projections align schemas before the union:
- Unplanned: SourceType='NOTIF', PlannedVsUnplanned='UNPLANNED', DowntimeHours = MaintObjectDowntimeDuration/3600, FunctionalLocation from RelevantFunctionalLocation.
- Planned: SourceType='ORDER', PlannedVsUnplanned='PLANNED', DowntimeHours = (ScheduledBasicEndDateTime - ScheduledBasicStartDateTime)/3600.
Common union fields: Equipment, FunctionalLocation, MaintenancePlant, PlannerGroup, StartDateTime, EndDateTime, DowntimeHours, PlannedVsUnplanned, SourceType.
3VF_A2DAMM_PMNotifFact (3VF_PMNotif)
Type: VF — Calculation View
Source: 3VR_PMNotif
Purpose: Formula view on notification data. Adds derived binary and count measures for notification-level KPIs.
Filter: None
Projection: All fields from 3VR_PMNotif plus derived measures below
Formula / Aggregation:
- BreakdownNotificationCount = CASE WHEN MaintenanceObjectIsDown = 'X' THEN 1 ELSE 0 END
- EmergencyNotificationCount = CASE WHEN MaintPriority IN ('0','1') THEN 1 ELSE 0 END
- DowntimeHours = MaintObjectDowntimeDuration / 3600
- MalfunctionCount = 1 per notification where MaintenanceObjectIsDown = 'X'
- DamageCode — passthrough
- ObjectPartCode — passthrough
- CauseCode — passthrough
Supports: ERP-1012, ERP-1013, ERP-1092, ERP-1096
3VF_A2DAMM_MaintOrderTechFact (3VF_MOTech)
Type: VF — Calculation View
Source: 3VR_MOTech
Purpose: Formula view on order data. Adds derived flags for planning and task list usage.
Filter: None
Projection: All fields from 3VR_MOTech plus derived measures below
Formula / Aggregation:
- TaskListUsageFlag = CASE WHEN TaskListGroup IS NOT NULL THEN 'X' ELSE '' END
- PlannedWindowSeconds = ScheduledBasicEndDateTime - ScheduledBasicStartDateTime
- OrderCount = 1
Supports: ERP-1012, ERP-1092, ERP-1098
3VR_A2DAMM_MaintOrderActualCostCube (3VR_CostCube)
Type: VR — Projection View
Source: 2VR_CostCube
Purpose: Cost data projection for consumption by 3VF_MaintCosts. Applies company code filter.
Filter: CompanyCode IS NOT NULL
Projection: All fields from 2VR_CostCube
Formula / Aggregation: None
Supports: ERP-888, ERP-1013
3VR_A2DAMM_AssetReplacementValue (3VR_ARV) — GAP
Type: VR — Placeholder
Source: TBD — G-01
Purpose: Asset Replacement Value derivation for ERP-888 Asset Economical Viability KPI.
Filter: TBD
Projection: TBD
Formula / Aggregation: TBD
Notes: G-01. ARV source options: I_FixedAsset (FI-AA), manual input table, or SAC planning model (4MP_ARV). Blocked until source confirmed.
3VF_A2DAMM_MaintenanceCost (3VF_MaintCosts) — PARKED
Type: VF — Join / Calculation View
Source: JOIN: 3VR_CostCube + 3VR_ARV + WBS Planned Cost Placeholder
Purpose: Join of cost actuals, Asset Replacement Value, and WBS planned cost. MaintenanceActivityType available directly on 3VR_CostCube — no additional join to MOTech required for activity type split.
Filter: TBD
Projection: Cost fields, ARV, WBS planned cost
Join: Join key: MaintenanceOrder / Equipment
Formula / Aggregation: Cost type split by MaintenanceActivityType (confirmed on I_MaintOrderActualCostDataCube directly).
Notes: PARKED pending ERP-888 go/no-go and resolution of G-01 (ARV) and G-02 (WBS Planned Cost).
Join Detail
Joins 3VR_CostCube + 3VR_ARV + WBS Placeholder + 3VR_MOTech (for MaintenanceActivityType). Join key: MaintenanceOrder / Equipment.
GAP/ISSUE: ARV source not confirmed — G-01.
GAP/ISSUE: WBS Planned Cost source not confirmed — G-02.
3VR_A2DAMM_MaintOrderOperation (3VR_MaintOps)
Type: VR — Projection View
Source: 2VR_MaintOps
Purpose: Operation-grain projection for consumption by 3VF_MaintOps.
Filter: MaintenanceOrder IS NOT NULL
Projection: All fields from 2VR_MaintOps
Formula / Aggregation: None
3VF_A2DAMM_MaintOrderOperation (3VF_MaintOps)
Type: VF — Join / Calculation View
Source: JOIN: 3VR_MaintOps + 3VR_MOTech + 3VR_WCCap
Purpose: Formula view. Joins operation-grain data to order header (PlannerGroup, PlantSection) and Work Center Capacity definition (available capacity hours). Adds overdue, rework, task list, and capacity-derived flags.
Filter: None
Projection: All 3VR_MaintOps fields + PlannerGroup, PlantSection, TaskListGroup from MOTech + capacity fields from WCCap
Joins:
3VR_MaintOps.MaintenanceOrder = 3VR_MOTech.MaintenanceOrder
3VR_MaintOps.WorkCenterInternalID = 3VR_WCCap.WorkCenterInternalID
(LEFT JOIN — operations without a matched capacity record are retained)
Formula / Aggregation:
OverdueFlag = CASE WHEN OplTStSchedldExecEndDte < current_date AND order status is open THEN 'X' ELSE '' END
ReworkFlag = CASE WHEN MaintenanceActivityType = 'M08' THEN 'X' ELSE '' END
TaskListUsageFlag = CASE WHEN TaskListGroup IS NOT NULL THEN 'X' ELSE '' END
WorkCenterCapacityUnit = CapacityQuantityUnit from 3VR_WCCap
WorkCenterCapacityFormula = ProcgCapRequirementFormula from 3VR_WCCap
Note: Available capacity hours per period are calculated in SAC as a post-aggregation measure using the capacity formula fields and shift schedule — not pre-calculated in DSP.
Supports: ERP-1092, ERP-1093, ERP-1096
Join Detail
Joins 3VR_MaintOps (operation grain) to 3VR_MOTech (order header grain) via MaintenanceOrder to resolve PlannerGroup and PlantSection. No RESOURCEWORKCENTER field on I_MAINTORDEROPERATION_DEX; other WorkCenter fields available.
GAP/ISSUE: Work Center Capacity (KAKO/KAZY) not in any standard CDS — G-06.
GAP/ISSUE: Average Planning Lead Time: WO creation date field and notification-to-order join key to be confirmed — G-18.
GAP/ISSUE: % Repetitive Work without TL: notification failure code to order join pattern to be confirmed — G-17.
3VR_A2DAMM_EquipmentBomLink (3VR_EqBOM)
Type: VR — Projection View
Source: 2VR_EqBOM
Purpose: Equipment BOM link projection for consumption by 3VF_EqBOM.
Filter: None additional
Projection: All fields from 2VR_EqBOM
Formula / Aggregation: None
3VF_A2DAMM_EquipmentBomLink (3VF_EqBOM)
Type: VF — Join View
Source: JOIN: 3VR_EqBOM + 3VR_MOTech
Purpose: Enriches Equipment BOM link data with order and technical object attributes from MOTech.
Filter: None
Projection: All 3VR_EqBOM fields + Equipment attributes, FunctionalLocation, MaintenancePlant from MOTech
Join: 3VR_EqBOM.Equipment = 3VR_MOTech.Equipment
Formula / Aggregation: None — join only
Supports: ERP-1098
3VR_A2DAMM_MaintenancePlan (3VR_MaintPlan)
Type: VR — Projection View
Source: 2VR_MaintPlan
Purpose: Maintenance plan projection. Filters to active plans only.
Filter: MaintPlanIsLockedAgainstCalls = false
Projection: All fields from 2VR_MaintPlan
Formula / Aggregation: None
3VF_A2DAMM_MaintenancePlan (3VF_MaintPlan)
Type: VF — Join / Deduplication View
Source: JOIN: 3VR_MaintPlan + 3VR_MOTech
Purpose: Joins maintenance plan to order data to resolve PlantSection and PlannerGroup, which are not available on I_MaintenancePlan directly.
Filter: MaintPlanIsLockedAgainstCalls = false (inherited from 3VR_MaintPlan)
Projection: All 3VR_MaintPlan fields + PlantSection, MaintenancePlannerGroup from MOTech side
Join: 3VR_MaintPlan.MaintenancePlan = 3VR_MOTech.MaintenancePlan
Formula / Aggregation:
- DEDUPLICATE on MaintenancePlan grain after join — avoids order-level double counting
- PlantSection and PlannerGroup resolved from MOTech side of join
Notes: G-11 — PlantSection and PlannerGroup not on I_MaintenancePlan.
Supports: ERP-1098
Join Detail
LEFT JOIN 3VR_MaintPlan to 3VR_MOTech ON MaintenancePlan key. Resolves PlantSection and PlannerGroup from order side. DEDUPLICATE on MaintenancePlan grain after join to avoid order-level double counting.
GAP/ISSUE: PlantSection and PlannerGroup not on I_MaintenancePlan — G-11.
3VR_A2DAMM_WorkCenterCapacity (3VR_WCCap)
Type: VR — Projection View
Source: 2VR_WCCap
Purpose: Work Center Capacity projection for downstream join. Provides capacity formula and unit fields used to calculate available hours per Work Center per period.
Filter: Inherits validity date filter from 2VR_WCCap
Projection: All fields from 2VR_WCCap
Formula / Aggregation: None
Supports: ERP-1092, ERP-1093, ERP-1096
3VR_A2DAMM_xxxxxx (3VR_Recom) — BLOCKED
Type: VR — Placeholder
Source: 2VR_Recom (APM)
Purpose: APM recommendation propagation. Definition TBD.
Filter: BLOCKED
Projection: BLOCKED
Formula / Aggregation: BLOCKED
Notes: G-05. All APM objects are placeholders pending APM integration analysis.
Reporting Layer
The Reporting Layer (Layer 4) exposes Analytical Models (AMs) to SAC live connections. Objects in SPOD_A2DAMM are operational reporting models. Objects in SPLN_A2DAMM are planning models. SAC live connection constraint: all fields that must be reported together at the same grain must be joined in Propagation — they cannot be joined across separate AMs in SAC.
Code | AM Name (Tech) | Source | Supports ERPs | Notes | Status |
4MA_PMNotif | 4MA_A2DAMM_PMNotif | 3VF_PMNotif | ERP-1012, ERP-1013, ERP-1092, ERP-1096 | Notification-grain AM. Downtime, MTBF, MTTR, emergency notification KPIs. Failure reason analysis (DamageCode, ObjectPartCode, CauseCode). | |
4MA_MOTech | 4MA_A2DAMM_MOTech | 3VF_MOTech | ERP-1012, ERP-1013, ERP-1092, ERP-1098 | Maintenance order / technical object AM. Availability, planning compliance, task list, data compliance. | |
4MA_DownTime | 4MA_A2DAMM_DowntimeFact | 3VF_DTFact | ERP-1012 | Unified downtime fact AM (planned + unplanned union). | |
4MA_MaintCost | 4MA_A2DAMM_MaintCost | 3VF_MaintCosts | ERP-888, ERP-1013 | Maintenance cost AM. ERP-1013 requires: Top 10 by cost; cost split by MaintenanceActivityType for Reactive vs Proactive. MaintenanceActivityType confirmed on I_MaintOrderActualCostDataCube directly. PARKED pending ERP-888 go/no-go. | PARKED |
4MA_MaintOps | 4MA_A2DAMM_MaintOps | 3VF_MaintOps | ERP-1092, ERP-1093, ERP-1096 | Operations AM. Planning/scheduling/execution KPIs at operation grain. | |
4MA_EqBOM | 4MA_A2DAMM_EqBOM | 3VF_EqBOM | ERP-1098 | Equipment BOM AM. | |
4MA_MaintPlan | 4MA_A2DAMM_MaintPlan | 3VF_MaintPlan | ERP-1098 | Maintenance plan AM. Active preventive maintenance strategy KPI. | |
|
|
|
|
| BLOCKED |
4MP_ARV (SPLN) | 4MP_A2DAMM_ARV | 3VR_ARV (TBD) | ERP-888 | Planning AM — Asset Replacement Value input. SPLN_A2DAMM space. | TBD |
4MP_AMMKPI (SPLN) | 4MP_A2DAMM_AMMKPI | Multi-source | All | KPI targets planning AM. SPLN_A2DAMM space. | TBD |
4MA_A2DAMM_MaintCost
Source: 3VF_A2DAMM_MaintenanceCost (3VF_MaintCosts). Supports: ERP-888 (PARKED), ERP-1013.
Status: PARKED pending ERP-888 go/no-go decision. ERP-1013 cost KPIs (Top 10 Bad Actors, Reactive vs Proactive cost split) will be delivered from this AM once unparked. MaintenanceActivityType is confirmed available directly on I_MaintOrderActualCostDataCube — no join to MOTech required for activity type split. G-01 (ARV source) and G-02 (WBS Planned Cost / budget source) must be resolved before build.
Measure Name | Calculation / Source Field | Aggregation | Notes |
Total Actual Maintenance Cost | SUM(AmountInCompanyCodeCurrency) | SUM | Base cost measure. Company code currency. |
Actual Labour Cost | SUM(AmountInCompanyCodeCurrency) WHERE CostElementGroup = labour element | SUM | Cost element group classification to be confirmed with FI. |
Actual Material Cost | SUM(AmountInCompanyCodeCurrency) WHERE CostElementGroup = material element | SUM | |
Actual Service / Contractor Cost | SUM(AmountInCompanyCodeCurrency) WHERE CostElementGroup = service element | SUM | |
Preventive Maintenance Cost | SUM(AmountInCompanyCodeCurrency) WHERE MaintenanceActivityType IN preventive types | SUM (restricted) | MaintenanceActivityType confirmed on cost cube directly. No MOTech join required. |
Corrective Maintenance Cost | SUM(AmountInCompanyCodeCurrency) WHERE MaintenanceActivityType IN corrective types | SUM (restricted) | |
Emergency Maintenance Cost | SUM(AmountInCompanyCodeCurrency) WHERE MaintenanceActivityType IN emergency types | SUM (restricted) | |
% Preventive Cost | PreventiveCost / TotalActualMaintenanceCost * 100 | CALCULATED | Reactive vs Proactive split — ERP-1013. |
% Corrective Cost | CorrectiveCost / TotalActualMaintenanceCost * 100 | CALCULATED | |
% Emergency Cost | EmergencyCost / TotalActualMaintenanceCost * 100 | CALCULATED | |
Cost per Work Order | TotalActualMaintenanceCost / COUNT(DISTINCT MaintenanceOrder) | CALCULATED | ERP-888 Work Order Cost & Efficiency KPI. |
Cost Variance % | (TotalActualCost - TotalPlannedCost) / TotalPlannedCost * 100 | CALCULATED | Planned cost source TBD — G-02. |
Top 10 Equipment by Cost | Rank by SUM(AmountInCompanyCodeCurrency) DESC. Top 10 filter applied in SAC story. | Dimension / Rank | ERP-1013 Top 10 Bad Actors. Pareto filter in SAC. |
OPEX Budget | Budget input — source TBD | — | G-02. No standard CDS for WBS/budget planned values. |
CAPEX Budget | Budget input — source TBD | — | G-02. CAPEX/OPEX split via Z-field on WBS master — approach to be agreed with FI. |
Asset Replacement Value | ARV input from 3VR_ARV — source TBD | — | G-01. Required for Asset Economical Viability and cost-to-replacement ratio KPIs. |
Maintenance Cost / ARV % | TotalActualMaintenanceCost / AssetReplacementValue * 100 | CALCULATED | ERP-888 Asset Economical Viability KPI. Blocked on G-01. |
OPEX Budget Compliance % | TotalActualMaintenanceCost (OPEX) / OPEXBudget * 100 | CALCULATED | ERP-888 Total OPEX Compliance KPI. Blocked on G-02. |
CAPEX Budget Compliance % | TotalActualMaintenanceCost (CAPEX) / CAPEXBudget * 100 | CALCULATED | ERP-888 Total CAPEX Compliance KPI. Blocked on G-02. |
4MA_A2DAMM_PMNotif - Calculated Measures
Measure Name | Calculation / Source Field | Aggregation | Notes |
Notification Count | Constant 1 per record | SUM | |
Breakdown Notification Count | CASE WHEN MaintenanceObjectIsDown = 'X' THEN 1 ELSE 0 END | SUM | |
Downtime Duration (Seconds) | MaintObjectDowntimeDuration (AUSZT) | SUM | |
Downtime Hours (Unplanned) | MaintObjectDowntimeDuration / 3600 | SUM | |
Emergency Notification Count | CASE WHEN MaintPriority IN ('0','1') THEN 1 ELSE 0 END | SUM | |
% Emergency Work | EmergencyNotificationCount / TotalNotificationCount * 100 | CALCULATED | |
MTBF (Hours) | MTBF = (Total Operating Time - Planned Downtime) / Count(Malfunction) Total Operating Time = 8,760 hours (365 × 24) Planned Downtime = SUM(ScheduledBasicEndDateTime - ScheduledBasicStartDateTime) from MOTech Count(Malfunction) = COUNT WHERE MaintenanceObjectIsDown = 'X' | CALCULATED | G-03 / G-16 RESOLVED. 8,760-hour constant confirmed. Planned Downtime and Malfunction Count both derivable from existing views. |
MTBF (Hours) | MTBF = (Total Operating Time - Planned Downtime) / Count(Malfunction). Planned Downtime from ScheduledBasicEndDateTime-StartDateTime. Count(Malfunction) = COUNT where MaintenanceObjectIsDown=X. | CALCULATED | G-03 / G-16 — Total Operating Time not in SAP PM. |
Malfunction Count | COUNT of notifications WHERE MaintenanceObjectIsDown = X | SUM | Used as denominator in MTBF formula. |
Availability Before Malfunction (%) | AvailyBeforeMalfunctionPercent | AVG | Standard field. No reporting requirement confirmed — retained for completeness. |
Availability After Malfunction (%) | AvailyAfterMalfunctionPercent | AVG | Standard field. No reporting requirement confirmed — retained for completeness. |
Availability After Conclusion (%) | AvailyAfterConclusionPercent | AVG | Standard field. No reporting requirement confirmed — retained for completeness. |
Damage Code (Dimension) | DamageCode passthrough from I_PMNotifMaintenanceData. Failure reason analysis. | Dimension | New for ERP-1013. |
Object Part Code (Dimension) | ObjectPartCode passthrough. | Dimension | New for ERP-1013. |
Cause Code (Dimension) | CauseCode passthrough. | Dimension | New for ERP-1013. |
4MA_A2DAMM_DowntimeFact - Calculated Measures
MaintenanceObjectIsDown = X identifies breakdown downtime. Planned Downtime: anything not marked as breakdown is treated as planned preventive/corrective work. Total Operating Time assumption: 365 x 24 hours — approach to be agreed before build — G-03.
Measure Name | Calculation / Source Field | Aggregation | Notes |
Breakdown Notification Count | CASE WHEN MaintenanceObjectIsDown = 'X' THEN 1 ELSE 0 END | SUM | Unplanned side. |
Downtime Hours (Unplanned) | MaintObjectDowntimeDuration / 3600 | SUM | |
Planned Order Count | Constant 1 per planned order row | SUM | |
Planned Window Hours | (ScheduledBasicEndDateTime - ScheduledBasicStartDateTime) / 3600 | SUM | |
Unified Downtime Hours | CASE WHEN SourceType='NOTIF' THEN DowntimeHours ELSE PlannedWindowHours END | SUM | Down Time Type derived from Work Order Type / Breakdown Indicator from notification. |
Total Unplanned Downtime Hours | SUM(UnifiedDowntimeHours) WHERE PlannedVsUnplanned = 'UNPLANNED' | SUM (restricted) | |
Total Planned Downtime Hours | SUM(UnifiedDowntimeHours) WHERE PlannedVsUnplanned = 'PLANNED' | SUM (restricted) | |
Downtime Ratio (Planned / Unplanned) | TotalPlannedDowntime / NULLIF(TotalUnplannedDowntime, 0) | CALCULATED | |
Technical Availability % | (Total Operating Time - Breakdown Time - Planned Down Time) / Total Operating Time * 100 Total Operating Time = 8,760 hours (365 × 24). Constant — no source field required. | CALCULATED | G-03 RESOLVED. Assumption confirmed by business. Constant applied as fixed parameter in SAC or DSP input table. |
4MA_A2DAMM_MaintOps - Calculated Measures
No RESOURCEWORKCENTER field on I_MAINTORDEROPERATION_DEX; other WorkCenter fields available. Planning is at FieldGrp level.
Measure Name | Calculation / Source Field | Aggregation | Notes |
Order Count (Proactive) | COUNT WHERE MaintenanceActivityType IN proactive types | SUM | |
Order Count (Reactive) | COUNT WHERE MaintenanceActivityType IN reactive types | SUM | |
Planning Compliance % | Planned WO / Total WO (not completed, not breakdown) * 100 | CALCULATED | |
Planned Man-Hours | SUM(OperationPlannedWork) by WorkCenter / PlannerGroup | SUM | Planned vs actual comparison approach to be confirmed. |
Actual Man-Hours (Confirmed) | SUM(ConfirmationTotalQuantity) | SUM | Total hours worked = hours confirmed on orders. |
Backlog Hours | SUM(OperationPlannedWork) for open/planned orders by WorkCenter | SUM | Available from 3VF_MaintOps. Unit: OperationPlannedWorkUnit. |
Backlog Weeks | BacklogHours / WorkCenterAvailableHours per period WorkCenterAvailableHours derived from ProcgCapRequirementFormula on I_WorkCenterCapacity | CALCULATED | G-06 RESOLVED. Join key: WorkCenterInternalID. Available hours derived from capacity formula fields in SAC. CapacityQuantityUnit used for unit alignment. |
Overdue Order Count | Order Level: Overdue Order = Final Confirmation Date - Final Due Date > 3 days | SUM | G-09. Source: I_MAINTORDERTECHOBJCUBE. |
Overdue % | OverdueOrderCount / TotalScheduledOrderCount * 100 | CALCULATED | 3-day tolerance. G-09. |
Rework Order Count | Reactive maintenance orders in Repair activity type vs technically completed orders within defined timeframe on same equipment | SUM | G-10. Drilldown by maintenance order. |
Rework % | ReworkOrderCount / TotalOrderCount * 100 | CALCULATED | |
MTTR (Hours) | SUM(MaintObjectDowntimeDuration) / COUNT(BreakdownNotifications) / 3600 | CALCULATED | From PMNotif join. |
Technician Productivity | SUM(ConfirmationTotalQuantity) / WorkCenterAvailableHours * 100 WorkCenterAvailableHours from I_WorkCenterCapacity via WorkCenterInternalID join | CALCULATED | G-06 RESOLVED. Confirmed hours (ConfirmationTotalQuantity) as numerator. Available capacity hours from I_WorkCenterCapacity as denominator. Both in same unit via CapacityQuantityUnit. |
% Task List Usage | COUNT(OrdersWithTaskList) / TotalOrderCount * 100 | CALCULATED | |
% Emergency Work | COUNT(MaintPriority IN '0','1') / TotalNotificationCount * 100 | CALCULATED | From PMNotif join. |
Schedule Compliance % | Work completed as per weekly schedule (snapshot) / Total scheduled | CALCULATED | G-07 — frozen schedule flag not native. |
Schedule Attainment % | ConfirmationTotalQuantity / OperationPlannedWork for the frozen week * 100 | CALCULATED | Weekly grain. |
% Work Scheduled vs Available Capacity | SUM(OperationPlannedWork) / WorkCenterAvailableHours * 100 Grouped by WorkCenter / PlannerGroup / Period | CALCULATED | G-06 RESOLVED. Source: 3VF_MaintOps joined to 3VR_WCCap on WorkCenterInternalID. ValidityStartDate / ValidityEndDate used to match capacity record to scheduling period. |
% Break-In Work | Break-In Work Confirmation / Total Work Confirmation | CALCULATED | G-08. |
Frozen Schedule Adherence % | % Work rescheduled after freeze point | CALCULATED | G-07 — rescheduled flag not native. |
Planning Accuracy % (Hours) | OperationPlannedWork vs ConfirmationTotalQuantity / OperationPlannedWork * 100 | CALCULATED | |
Planning Accuracy % (Materials) | Planned Material Cost vs Actual Material Cost / Planned * 100 | CALCULATED | From cost cube join. Planned material cost field to be confirmed. |
Average Planning Lead Time (Days) | AVG(Work Order creation date - Notification creation date) for unplanned corrective, by MaintPriority | AVG | G-18 — WO creation date field to be confirmed on I_MaintOrderTechObjCube. |
% Repetitive Work without TL | COUNT(corrective orders without TaskListGroup on same Equipment, same ObjectPartCode, same DamageCode) / TotalCorrectiveOrders * 100 | CALCULATED | G-19 — join between PMNotif failure codes and order header required. |
4MA_A2DAMM_MaintPlan - Calculated Measures
Objects under evaluation for both Data Compliance and Active Preventive Maintenance Strategy not yet confirmed by business.
Measure Name | Calculation / Source Field | Aggregation | Notes |
Active Maintenance Plan Count | COUNT WHERE MaintPlanIsLockedAgainstCalls = false | SUM | G-11. |
Active Plans per Equipment | COUNT(Active Plans) grouped by Equipment | SUM | |
% Assets with Active PM Strategy | Assets with >= 1 active plan / Total assets * 100 | CALCULATED | Denominator definition to be agreed. |
% Data Compliance | Compliant Data Records / Total Data Records * 100 | CALCULATED | Objects under evaluation not yet confirmed by business. |
Variables (SAC Filters / Prompts)
Variable | Required / Optional | Type | Default | Notes |
Period (Date / Fiscal Period) | Optional | Interval | Last 30 days | Applied using CreationDate, ActualStartDate, or PostingDate depending on AM. |
Functional Location (Asset Hierarchy) | Optional | Hierarchy | No default | FunctionalLocation from I_PMNotifMaintenanceData or I_MaintOrderTechObjCube. |
Equipment | Optional | Multiple single values | No default | Direct equipment filter. |
Maintenance Plant | Optional | Multiple single values | No default | MaintenancePlant across all objects. |
Planner Group | Optional | Multiple single values | No default | Available in 4MA_MOTech and 4MA_MaintOps. Not on PMNotif alone - join required. |
Plant Section | Optional | Multiple single values | No default | PLANTSECTION (BEBER) - I_MaintOrderTechObjCube only. |
Maintenance Order Type | Optional | Multiple single values | No default | Used to split Capex/Opex, planned/unplanned. |
Work Center | Optional | Multiple single values | No default | WorkCenterInternalID in MaintOps and MOTech models. |
Notification Type | Optional | Multiple single values | No default | Available in PMNotif model (e.g. M2 = breakdown). |
Shared Objects with P2F DDFS
Objects used by ERP-1104 and ERP-1156 are defined in the P2F DDFS (ERP-1041). No new A2D objects are required for these requirements.
Object (Tech Name) | Defined In | Used By (A2D) | Action |
4MA_P2FINV_MaterialStock | P2F DDFS (ERP-1041) | ERP-1104, ERP-1156 | Reuse. Apply MRO SLOC/Plant filter in SAC story for ERP-1104. |
2VR_S4HARM_GoodsMovementDocumentDEX | P2F DDFS (ERP-1041) | ERP-1104, ERP-1156 | Reuse. No new extractor required. |
2VR_S4HARM_I_BatchWhereUsedLevel | P2F DDFS (ERP-1041) | ERP-1104 (batch traceability) | Reuse from P2F ERP-410 delivery. |
3VR_P2FINV_BatchDel (join pattern) | P2F DDFS (ERP-1041) | ERP-1156 (delivery data) | Reuse join pattern. Do not rebuild. |
ERP-1156 note: Cross-instance architecture (ROW S/4 + China S/4) requires DAE/ITAR review and sign-off before any build activity.
Effort Estimate and Object Count
System | Component | Count | Estimated Days | Comments |
S/4 CDS | Custom extractors (Z_I_...) | 6 | 6 x 5 = 30 | XE_PMNotif existing. XE_EqBOM new. XE_APMRecom blocked. |
S/4 CDS | VDM wrappers (standard views) | 5 | 5 x 3 = 15 | I_MaintOrderTechObjCube, I_MaintOrderActualCostDataCube, I_MaintOrderOperation_DEX, I_MaintenancePlan, I_EquipmentBomLink. |
DSP | Inbound Layer (TL pairs) | 6 | Included above | One TL per extractor. |
DSP | Harmonisation Layer (VR + VD) | 8 | 8 x 3 = 24 | Standard harmonisation pattern. No complex transforms. |
DSP | Propagation Layer (VR/VF) | 12 | 12 x 5 = 60 | Includes union (DTFact), joins (MaintCosts, MaintOps, MaintPlan, EqBOM), formula views. |
DSP | Analytical Models (4MA/4MP) | 7 + 2 planning | 7 x 5 = 35 | Excludes ERP-1104/1156 (P2F reuse). 4MP_ARV and 4MP_AMMKPI in SPLN space. |
SAC | Dashboards / Stories | 8 x medium | 8 x 10 = 80 | One story per ERP. ERP-888 deferred. |
Data Access Controls
Data access control requirements for A2D AMs to be confirmed with the security workstream.
- Plant-level access restriction expected — Maintenance Plant is available as a dimension across all AMs.
- Planner Group restriction may be required for ERP-1092/1093/1096.
- ERP-1156 cross-instance data subject to DAE/ITAR access control review — no design until sign-off.
Currency Conversions
- 4MA_A2DAMM_MaintCost: AmountInCompanyCodeCurrency is the base measure. Multi-currency requirements to be confirmed with ERP-888 functional spec.
- All other A2D AMs contain no monetary measures — no currency conversion required.
Appendix
Requirements, KPIs and Analytical Model Mapping
The table below provides a consolidated mapping of all in-scope ERPs, KPIs, CDS source views, and target analytical models.
ERP | KPI / Report | Type | Target AM (Code) | Primary Source CDS / View | Notes |
ERP-888 | Total Maintenance Cost | Strategic | 4MA_A2DAMM_MaintCost | I_MaintOrderActualCostDataCube | Capex/Opex determined by Z-field ZZ1_SYCAP_OPX_PSR on WBS master; budget at PPM item level (Category field). ARV required for asset viability KPI — G-01.
|
ERP-888 | Planned vs Unplanned Cost | Tactical | 4MA_A2DAMM_MaintCost | I_MaintOrderActualCostDataCube | MaintenanceOrderType available directly on cost cube. Cost type split (Preventive/Corrective/Predictive/Emergency) identified from Order Type + Maintenance Activity Type. ABC Indicator on Equipment/FLOC master for asset criticality filter. |
ERP-888 | Asset Economical Viability | Tactical | 4MA_A2DAMM_MaintCost | 3VR_A2DAMM_AssetReplacementValue (placeholder) | ARV source not confirmed — G-01 . Age of Completion = (Today - StartUpDate) / (EndOfLife - StartupDate). Number of Breakdowns = COUNT(I_PMNotifMaintenanceData.MaintenanceNotification). |
ERP-888 | Work Order Cost & Efficiency | Tactical | 4MA_A2DAMM_MaintCost | I_MaintOrderActualCostDataCube | PARKED. No RESOURCEWORKCENTER on I_MAINTORDEROPERATION_DEX; other WorkCenter fields available. Planned costs displayed alongside actuals on the work order. WBS planned cost source not confirmed — BARROW-ext, ian To provide 2VR object for WBS Planned Costs |
ERP-1012 | Technical Availability % | Strategic | 4MA_A2DAMM_DowntimeFact | I_MaintOrderTechObjCube + I_PMNotifMaintenanceData | MaintenanceObjectIsDown = X identifies breakdown downtime. Planned Downtime = any order not flagged as breakdown is planned/preventative work. Total Operating Time assumption: 365 x 24 hours — G-03 . Note: Loss Driver KPIs (breakdown hours pareto, notification count pareto) combined into MTTR/Execution per Change Log R2/R3. |
ERP-1012 | Asset Downtime Planned vs Unplanned | Tactical | 4MA_A2DAMM_DowntimeFact | I_MaintOrderTechObjCube + I_PMNotifMaintenanceData | Down Time Type is not a native SAP field. Derived from Work Order Type / Breakdown Indicator from notification. TBD: Planned = scheduled order window; Unplanned = MaintObjectDowntimeDuration. |
ERP-1013 | Top 10 Bad Actors | Strategic | 4MA_A2DAMM_MaintCost | I_MaintOrderActualCostDataCube | Top 10 Equipment by Maintenance Cost (descending) for defined period and MaintenanceActivityType Pareto filter in SAC. 4MA_MaintCost ABCIndicator confirmed on I_MaintOrderActualCostDataCube. For PMNotif-based filters, join to 2VR_MOTech on MaintenanceNotification key required. |
ERP-1013 | Failure Reasons of Asset | Operational | 4MA_A2DAMM_PMNotif + 4MA_A2DAMM_MaintCost | I_PMNotifMaintenanceData + I_MaintOrderActualCostDataCube | Count Failure Reasons by frequency, segmented by MaintenanceActivityType. DamageCode, ObjectPartCode, CauseCode added to 2VR_PMNotif and 3VF_PMNotif. Failure count from 4MA_PMNotif; cost per failure reason from 4MA_MaintCost — Cost split by MaintenanceActivityType — confirmed available on I_MaintOrderActualCostDataCube directly. |
ERP-1013 | Reactive vs Proactive Maintenance | Operational | 4MA_A2DAMM_MaintCost | I_MaintOrderActualCostDataCube | Cost split by MaintenanceActivityType (Preventive/Corrective/Emergency). MaintenanceActivityType is available directly on I_MaintOrderActualCostDataCube — no join required. |
ERP-1013 | MTBF | Tactical | 4MA_A2DAMM_PMNotif | I_PMNotifMaintenanceData | MTBF = (Total Operating Time - Planned Downtime) / Count(Malfunction). Planned Downtime from ScheduledBasicEndDateTime-StartDateTime. Count(Malfunction) = COUNT where MaintenanceObjectIsDown=X (Same as ERP-1012 Tech Avail %) Total Operating Time not in SAP PM — G-03/G-16 . (Same assumption as Tech Avail% ?) ABCIndicator confirmed on I_MaintOrderTechObjCube; join to 2VR_MOTech on MaintenanceNotification key for PMNotif-based filter. |
ERP-1092 | % Work Order Planned | Strategic | 4MA_A2DAMM_MOTech + 4MA_A2DAMM_MaintOps | I_MaintOrderTechObjCube + I_MaintOrderOperation_DEX | Planned WO / Total WO (not completed, not breakdown). Proactive and Corrective (not break-in).
Source for order counts: I_MaintOrderTechObjCube. Planning at FieldGrp level. |
ERP-1092 | Backlog (Weeks) | Tactical | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX | Total planned work in weeks of capacity. Based on Work Center of the notification. WC capacity not in CDS — G-06 . |
ERP-1092 | Planning Accuracy (%) | Tactical | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX + I_MaintOrderActualCostDataCube | Planned hours vs Actual hours (OperationPlannedWork vs ConfirmationTotalQuantity). Planned Materials vs Actual Consumption from cost cube. No new DSP objects required. |
ERP-1092 | Average Planning Lead Time | Tactical | 4MA_A2DAMM_MOTech + 4MA_A2DAMM_PMNotif | I_PMNotifMaintenanceData + I_MaintOrderTechObjCube | Average days from Unplanned Corrective Notification creation to Work Order creation, segmented by MaintPriority. Join PMNotif to MOTech on MaintenanceNotification key (confirmed present on both views). WO CreationDate (ORDERCREATIONDATE) confirmed on I_MaintOrderTechObjCube. Lead time = MOTech.CreationDate - PMNotif.CreationDate. Derivable without new objects. |
ERP-1092 | % Repetitive Work without TL | Tactical | 4MA_A2DAMM_MOTech + 4MA_A2DAMM_PMNotif | I_MaintOrderTechObjCube + I_PMNotifMaintenanceData | Corrective work orders where TaskListGroup IS NULL, on same Equipment with same ObjectPartCode and DamageCode within defined period. Requires join of notification failure codes to order. DamageCode and ObjectPartCode already projected in 2VR_PMNotif — G-17 . |
ERP-1093 | Schedule Compliance (%) | Strategic | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX | Work completed as per weekly schedule (snapshot). Average across weeks if period > 1 week. Frozen schedule flag required Explain snapshot requirement. — G-07 . The problem — to measure Schedule Compliance we need a snapshot of what was scheduled at the start of the week and then compare it to what was actually done by end of week. Without a snapshot, once an order is rescheduled the original committed date is overwritten. Standard SAP PM does not preserve that history. So the gap is: there is no standard CDS view or table in S/4HANA that stores the weekly schedule snapshot needed to calculate this KPI properly. It would require either a custom snapshot mechanism built in DSP, or an agreement with the business to use |
ERP-1093 | Schedule Attainment (%) | Tactical | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX | Total Work Confirmation (ConfirmationTotalQuantity) vs Scheduled work for the week (OperationPlannedWork). Weekly grain required. Frozen schedule flag required Explain snapshot requirement. — G-07 . |
ERP-1093 | % Work Scheduled (vs Available Capacity) | Tactical | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX | Scheduled hours / Work Center available capacity. Indicates scheduling effectiveness. WC capacity not in CDS — G-06 Also potentially: Frozen schedule flag required Explain snapshot requirement. — G-07 . |
ERP-1093 | % Break-In Work | Tactical | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX | Break-In Work Confirmation / Total Work Confirmation. Break-in flag not native — G-08 . |
ERP-1093 | Frozen Schedule Adherence (%) | Tactical | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX | % Work that is rescheduled. Requires identification of orders where planned date changed after freeze point — no native SAP field — G-07 . |
ERP-1096 | Technician Productivity | Strategic | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX | Work Center hours booked on orders / Work Center total hours worked. I_MAINTORDEROPERATION_DEX does not give total available hours — hours confirmed used as denominator. I am not sure this is a gap anymore. The total WC hours worked could be all hours booked by the WC? WC capacity gap — G-06. |
ERP-1096 | MTTR | Tactical | 4MA_A2DAMM_PMNotif | I_PMNotifMaintenanceData | MTTR = Total Length of Downtime / No. of Breakdowns. SUM(MaintObjectDowntimeDuration) / COUNT where MaintenanceObjectIsDown=X. Aggregation by FuncLoc hierarchy not required — simplified approach. |
ERP-1096 | Overdue % | Tactical | 4MA_A2DAMM_MaintOps | I_MaintOrderTechObjCube | Order Level Overdue. Overdue Order = Final Confirmation Date - Final Due Date > 3 days. Source: I_MAINTORDERTECHOBJCUBE for order-level. 3-day tolerance. G-09 . |
|
|
|
|
|
|
ERP-1096 | Open Emergency Work / Open Time Confirmations / Open Regulatory Work | Operational | 4MA_A2DAMM_MaintOps + 4MA_A2DAMM_PMNotif | I_MaintOrderOperation_DEX + I_PMNotifMaintenanceData | Open emergency work orders, open time confirmations and open regulatory work. MaintPriority 0/1 for emergency. % Emergency Work = EmergencyNotificationCount / TotalNotificationCount — from 4MA_PMNotif. |
ERP-1098 | % Data Compliance | Strategic | 4MA_A2DAMM_MOTech | I_MaintOrderTechObjCube | % Data Compliance = Compliant Data Records / Total Data Records * 100. Objects under evaluation not yet confirmed by business. |
ERP-1098 | Active Preventive Maintenance Strategy | Tactical | 4MA_A2DAMM_MaintPlan | I_MaintenancePlan + I_MaintOrderTechObjCube | Collect each asset's active maintenance strategy. MaintPlanIsLockedAgainstCalls = false. Objects/assets under evaluation not yet confirmed. Join via MaintenancePlan key — G-11. |
ERP-1098 | Asset Information Report | Operational | 4MA_A2DAMM_MOTech | I_MaintOrderTechObjCube | Contains all information related to assets including characteristics. Equipment/FuncLoc master data attributes. |
ERP-1104 | Stock Value Trend | Tactical | 4MA_P2FINV_MaterialStock (P2F) | 2VR_S4HARM_GoodsMovementDocumentDEX (P2F) | Stock value over time by SLOC/Plant. Reuse 4MA_P2FINV_MaterialStock with MRO filter. |
ERP-1104 | Stock Outs | Tactical | 4MA_P2FINV_MaterialStock (P2F) | 2VR_S4HARM_GoodsMovementDocumentDEX (P2F) | # items where stock qty = 0 with open reservations. Derivable from 4MA_P2FINV_MaterialStock with MRO filter. |
ERP-1104 | Stock Over Max | Tactical | 4MA_P2FINV_MaterialStock (P2F) + MRP master | 2VR_S4HARM_GoodsMovementDocumentDEX + MM MRP data | % items above max stock level. Max stock level (MRP parameter) not in current P2F objects. Additional source required — G-18. |
ERP-1104 | Delivery Accuracy | Tactical | TBD | Purchasing / Delivery CDS (TBD) | Goods receipt vs PO delivery date comparison. Not covered by 4MA_P2FINV_MaterialStock. Requires purchasing/delivery CDS — G-17 . |
ERP-1104 | Cycle Count Accuracy | Tactical | TBD | Physical Inventory CDS (TBD) | Physical inventory count accuracy for MRO/spare parts managed by maintenance team. Not in P2F DDFS objects. May relate to ERP-436 — G-18 . |
ERP-1104 | Cycle Count Completion YTD | Tactical | TBD | Physical Inventory CDS (TBD) | YTD completion of physical inventory cycles. Same source gap as Cycle Count Accuracy — G-18 . |
ERP-1104 | Inventory Turnover Analysis | Operational | TBD | Material stock + consumption CDS (TBD) | Stock value turnover rate by material/SLOC over time. Source: combination of 4MA_P2FINV_MaterialStock (P2F) and goods movement/consumption data. Detailed source and model TBD — no standard extractor identified yet. |
ERP-1156 | Cross-Instance Material Visibility | Operational | 4MA_P2FINV_MaterialStock (P2F) | 2VR_S4HARM_GoodsMovementDocumentDEX (P2F) | SHARED WITH P2F. Cross-instance (ROW + China). DAE/ITAR review mandatory. |
Gaps Register
Items flagged HIGH priority are blockers for functional sign-off and build.
ID | ERP | Gap / Issue | Description | Status | Priority | Comments |
G-01 | ERP-888 | Asset Replacement Value (ARV) | No standard PM CDS coverage. Options: I_FixedAsset (FI-AA), manual input table, SAC planning model (4MP_ARV). | OPEN | High | |
G-02 | ERP-888 | WBS Planned Cost | No standard PM CDS view exposes WBS planned values. CO/PS extractor or manual table required. Ian to advise on Plan/Actual comparison approach. | OPEN | High | |
|
|
|
|
|
| |
G-04 | ERP-1013 | MTBF Definition | MTBF = (Total Operating Time - Planned Downtime) / Count(Malfunction). Planned Downtime and Malfunction Count derivable from existing views. Total Operating Time still blocked — see G-03. | OPEN | High | |
|
|
|
|
|
| Removed from ERP-1013 |
|
|
|
|
|
| |
G-07 | ERP-1093 | Frozen Schedule Flag | No native SAP PM field for frozen week/day schedule. Custom Z-field or activity type mapping required. There is no standard CDS view or table in S/4HANA that stores the weekly schedule snapshot needed to calculate this KPI properly. It would require either a custom snapshot mechanism built in DSP, or an agreement with the business to use | OPEN | Medium | |
G-08 | ERP-1093 | Break-In Work Flag | No native SAP field. Custom MaintenanceActivityType or status required. | OPEN | Medium | |
G-09 | ERP-1096 | Overdue Date Definition | Order Level Overdue confirmed. Overdue Order = Final Confirmation Date - Final Due Date > 3 days. Source: I_MAINTORDERTECHOBJCUBE. | OPEN | Medium | |
G-10 | ERP-1096 | Rework Window | Timeframe (same equipment, same failure within N days) must be agreed with business. | OPEN | Low | |
G-11 | ERP-1098 | PlantSection on MaintenancePlan | PLANTSECTION not on I_MaintenancePlan. Join from I_MaintOrderTechObjCube. Double-count risk — see Section 6.4. | OPEN | Medium | |
G-12 | ERP-1104 | MRO Cross-reference P2F | ERP-1104 uses 4MA_P2FINV_MaterialStock. No new A2D object required. | CROSS-REF | Low | |
G-13 | ERP-1156 | Cross-instance + DAE/ITAR | ERP-1156 cross-instance (ROW + China). DAE/ITAR review mandatory before build. | ITAR | High | |
G-14 | ERP-888 | CAPEX/OPEX Mapping | Z-field on WBS master determines Capex/Opex. Budget at PPM item level (Category field). Mapping table from business required. | OPEN | Medium | |
G-15 | ERP-1013 | ABC Indicator join for PMNotif-based MTBF filter | ABCIndicator is confirmd on I_MaintOrderTechObjCube and I_MaintOrderActualCostDataCube. For PMNotif-based KPIs (MTBF, notification counts), a join to 2VR_MOTech on MaintenanceNotification key is required to bring ABCIndicator into the notification context. | OPEN | Low | |
|
|
|
|
|
| |
G-17 | ERP-1092 | % Repetitive Work without TL — notification-to-order join | % Repetitive Work without TL requires matching DamageCode and ObjectPartCode from notifications to corrective orders without a task list, on the same equipment. The join key between I_PMNotifMaintenanceData and I_MaintOrderTechObjCube for this pattern to be confirmed. DamageCode and ObjectPartCode already projected in 2VR_PMNotif. | OPEN | Medium | |
G-18 | ERP-1104 | Stock Over Max — MRP max stock level | Stock Over Max KPI requires the MRP maximum stock level per material/SLOC. This is not available in 4MA_P2FINV_MaterialStock or the current P2F harmonisation objects. Source: MM MRP master data. Additional extractor and harmonisation objects required. | OPEN | Medium | |
G-19 | ERP-1104 | Delivery Accuracy — purchasing/delivery CDS | Delivery Accuracy requires comparison of goods receipt date to PO confirmed delivery date. This is not covered by 4MA_P2FINV_MaterialStock. A purchasing or delivery CDS view (e.g. I_PurchaseOrderItemAPI01 or equivalent) is required. Source and object definition TBD. | OPEN | Medium | |
G-20 | ERP-1104 | Cycle Count KPIs — physical inventory CDS | Cycle Count Accuracy and Cycle Count Completion YTD require physical inventory CDS views (e.g. I_PhysicalInventoryDocument or equivalent) not currently in the P2F DDFS objects. Lambertus flagged potential alignment with ERP-436 (Physical Inventories managed by maintenance team). Scope alignment with ERP-436 required before build. | OPEN | Medium |
apps-fileview.texmex_20260329.08_p2 h1Document Linksh1.txt Displaying h1Document Linksh1.txt.