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:
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.
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 | PARKED. Capex split via MaintenanceOrderType. ARV gap — no standard PM CDS field. |
ERP-888 | Planned vs Unplanned Cost | Tactical | 4MA_A2DAMM_MaintCost | I_MaintOrderActualCostDataCube | Cost by order type. Shared filter logic with downtime KPIs. |
ERP-888 | Asset Economical Viability | Tactical | 4MA_A2DAMM_MaintCost | 3VR_A2DAMM_AssetReplacementValue (placeholder) | ARV source TBD. WBS Planned Cost placeholder in harmonisation layer. |
ERP-888 | Work Order Cost & Efficiency | Tactical | 4MA_A2DAMM_MaintCost | I_MaintOrderActualCostDataCube | Budget comparison requires WBS/CO input — gap. |
ERP-1012 | Technical Availability % | Strategic | 4MA_A2DAMM_DowntimeFact | I_MaintOrderTechObjCube + I_PMNotifMaintenanceData | Total Operating Time not stored in SAP PM — gap. Must be agreed by business. |
ERP-1012 | Asset Downtime Planned vs Unplanned | Tactical | 4MA_A2DAMM_DowntimeFact | I_MaintOrderTechObjCube + I_PMNotifMaintenanceData | Planned = scheduled order window; Unplanned = MAINTOBJECTDOWNTIMEDURATION. |
ERP-1012 | Loss Driver (# breakdown hours) | Tactical | 4MA_A2DAMM_PMNotif | I_PMNotifMaintenanceData | MAINTOBJECTISDOWN = X filter. Unplanned only. |
ERP-1012 | Loss Driver (# notifications) | Tactical | 4MA_A2DAMM_PMNotif | I_PMNotifMaintenanceData | Notification count per asset per period. |
ERP-1013 | Mean Time Between Failure (MTBF) | Tactical | 4MA_A2DAMM_PMNotif | I_PMNotifMaintenanceData | Definition open: time between breakdown notifications or true operating hours? OT system STARTEK required for operating hours — gap / blocker. |
ERP-1013 | Top 10 Bad Actors | Strategic | 4MA_A2DAMM_MaintCost | I_MaintOrderActualCostDataCube | Cost by asset. Pareto filter in SAC. |
ERP-1013 | Failure Reasons of Asset | Operational | 4MA_A2DAMM_PMNotif | I_PMNotifMaintenanceData | NotificationType / DamageCode / ObjectPartCode. |
ERP-1013 | Reactive vs Proactive Maintenance | Operational | 4MA_A2DAMM_MaintCost | I_MaintOrderActualCostDataCube | MaintenanceOrderType split. |
ERP-1092 | Planning Compliance | Strategic | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX | Proactive WO / Total WO. MaintenanceActivityType filter. |
ERP-1092 | Backlog (Weeks) | Tactical | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX | Planned hours / WC capacity. WC capacity (KAKO/KAZY) not in any standard CDS — gap. |
ERP-1092 | % Task List Usage | Tactical | 4MA_A2DAMM_MOTech | I_MaintOrderTechObjCube | TaskListGroup IS NOT NULL on order. |
ERP-1092 | Planned vs Actual Man-Hours | Tactical | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX | OperationPlannedWork vs ConfirmationTotalQuantity. |
ERP-1092 | % Emergency Work | Tactical | 4MA_A2DAMM_PMNotif | I_PMNotifMaintenanceData | MaintPriority IN (0,1) / total notifications. |
ERP-1093 | Scheduling Compliance (Weekly) | Strategic | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX | Frozen week schedule — requires custom flag or order status — gap. |
ERP-1093 | Scheduling Compliance (Daily) | Tactical | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX | Frozen day schedule flag — gap. No native SAP field. |
ERP-1093 | % Break-In Work | Tactical | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX | Break-in flag not native — custom MaintenanceActivityType or status required. |
ERP-1096 | Technician Productivity | Strategic | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX | ConfirmationTotalQuantity / WC capacity. WC capacity gap (same as ERP-1092 backlog). |
ERP-1096 | Mean Time to Repair (MTTR) | Tactical | 4MA_A2DAMM_PMNotif | I_PMNotifMaintenanceData | SUM(MAINTOBJECTDOWNTIMEDURATION) / COUNT where MAINTENANCEOBJECTISDOWN=X. |
ERP-1096 | Overdue % | Tactical | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX | Compare OPLTSTSCHEDLDEXECENDDTE vs current date. Definition (order vs operation level) to be confirmed. |
ERP-1096 | % Rework | Tactical | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX | MAINTENANCEACTIVITYTYPE = M08 on same equipment within defined window. |
ERP-1096 | Open Emergency / Regulatory Work | Operational | 4MA_A2DAMM_MaintOps | I_MaintOrderOperation_DEX | Open order list. MaintPriority 0/1 filter for emergency. |
ERP-1098 | % Data Compliance | Strategic | 4MA_A2DAMM_MOTech | I_MaintOrderTechObjCube | MD completeness rule to be defined — gap. |
ERP-1098 | Active Preventive Maintenance Strategy | Tactical | 4MA_A2DAMM_MaintPlan | I_MaintenancePlan + I_MaintOrderTechObjCube | Join via MaintenancePlan key. PlantSection from I_MaintOrderTechObjCube only. MaintPlanIsLockedAgainstCalls = false filter for active. |
ERP-1098 | Asset Information Report | Operational | 4MA_A2DAMM_MOTech | I_MaintOrderTechObjCube | Equipment/FuncLoc master data attributes. |
ERP-1104 | MRO Stock Dashboard | Tactical | 4MA_P2FINV_MaterialStock (P2F) | 2VR_S4HARM_GoodsMovementDocumentDEX | SHARED WITH P2F. MRO SLOC/Plant filter. Reuse 4MA_P2FINV_MaterialStock. No new AM required. |
ERP-1156 | Cross-Instance Material Visibility | Operational | 4MA_P2FINV_MaterialStock (P2F) | 2VR_S4HARM_GoodsMovementDocumentDEX | SHARED WITH P2F. Cross-instance (ROW + China). DAE/ITAR review mandatory. |

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 | Z_I_PMNotifMaintenanceData | QMEL / QMIH / ILOA | ERP-1012, ERP-1013, ERP-1092, ERP-1096 | Existing. Custom Z-extractor for PM notification maintenance data. |
XE_MOTech | S4H | I_MaintOrderTechObjCube | IFLOT, ILOA, AUFK, AFKO, AFIH, CRHD, EQUZ, EQUI, JEST, JSTO + others | ERP-1012, ERP-1013, ERP-1092, ERP-1093, ERP-1096, ERP-1098 | Standard VDM cube view. Wrapper required for DSP extraction. |
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 export | ERP-1092, ERP-1093, ERP-1096 | Standard DEX view. Wrapper required. Note: I_MAINTORDEROPERATION_DEX. |
XE_EqBOM | S4H | Z_I_EquipmentBomLink | EQST (EQST table) | ERP-1098 | Custom Z-extractor for equipment BOM link. |
XE_MaintPlan | S4H | I_MaintenancePlan | MPLA / T399W | ERP-1098 | Standard view. Wrapper required. Note: MaintPlanIsLockedAgainstCalls (ABSTOP) for active status. |
XE_APMRecom | APM | Z_apm_tbd | APM system (TBD) | ERP-1013 | BLOCKED — APM extractor not yet defined. z_apm_tbd placeholder. |
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_S4Hx_I_PMNotifMaintenanceData | Z_I_PMNotifMaintenanceData (XE_PMNotif) | Initial + delta load via Z_I_PMNotifMaintenanceData. |
1TXL_MOTech | 1TL_S4Hx_I_MaintOrderTechObCube | I_MaintOrderTechObjCube (XE_MOTech) | Standard VDM wrapper. Delta load. |
1TXL_CostCube | 1TL_S4Hx_I_MaintOrderActualCostCube | I_MaintOrderActualCostDataCube (XE_CostCube) | Standard VDM wrapper. Delta load. |
1TXL_MaintOps | 1TL_S4Hx_I_MaintOrderOperation | I_MaintOrderOperation_DEX (XE_MaintOps) | DEX export. Delta load. |
1TXL_EqBOM | 1TL_S4Hx_I_EquipmentBomLink | Z_I_EquipmentBomLink (XE_EqBOM) | Custom Z-extractor. |
1TXL_MaintPlan | 1TL_S4Hx_I_MaintenancePlan | I_MaintenancePlan (XE_MaintPlan) | Standard view wrapper. |
1TXL_Recom (SSAL_APM) | 1TXL_Recom — TBD | Z_apm_tbd (XE_APMRecom) | BLOCKED — APM extractor not defined. |
The Harmonisation Layer (Layer 2) standardises objects within the SSAL_S4HARM space. For each source, a TL (table/load), TF (transformation flow), and VR (view) triplet is produced. The VR is the consumed object in Propagation. No business-logic transformations are applied; the purpose is to fix keys, apply BINTOHEX treatment to RAW UUID fields, and present a clean, stable interface.
The Harmonisation Layer (Layer 2) standardises objects within the SSAL_S4HARM space. For each source stream a TL (load), TF (transformation flow), and VR (view) triplet is produced. The VR is the interface object consumed by the Propagation Layer. The purpose is to establish stable keys, apply BINTOHEX treatment to RAW-type UUID fields, apply date format conversions where needed, and project only required fields downstream. No business-logic transformations are applied at this layer.
Row colour coding: Blue = TL, Purple = TF, Green = VR/VD, Amber = blocked or gap.
Type | Object Name | Source | Purpose | Filter | Projection | Formula / Aggregation | Notes |
TL | 2TL_S4HARM_I_PMNotifMaintenanceData (2TL_PMNotif) | 1TL_S4Hx_I_PMNotifMaintenanceData (1TXL_PMNotif) | Delta load of PM notification maintenance data. Set keys. Filled by 2TF_S4HARM_I_PMNotifMaintenanceData. | Add as Key: MaintenanceNotification Add as Key: NotificationItem | Supports ERP-1012, ERP-1013, ERP-1092, ERP-1096. | ||
TF | 2TF_S4HARM_I_PMNotifMaintenanceData | 1TL_S4Hx_I_PMNotifMaintenanceData (1TXL_PMNotif) | No transformations. | ||||
VR | 2VR_S4HARM_I_PMNotifMaintenanceData (2VR_PMNotif) | 2TL_S4HARM_I_PMNotifMaintenanceData | View on harmonised PM notification maintenance data. | MaintenanceNotification IS NOT NULL | Include: MaintenanceNotification Include: NotificationItem Include: Equipment Include: FunctionalLocation Include: RelevantFunctionalLocation Include: MaintenancePlant Include: MaintenancePlannerGroup Include: MaintenanceActivityType Include: NotificationType Include: MaintPriority Include: MaintenanceObjectIsDown Include: MaintObjectDowntimeDuration Include: MaintObjDowntimeDurationUnit Include: MalfunctionStartDate Include: MalfunctionStartTime Include: MalfunctionEndDate Include: MalfunctionEndTime Include: CreationDate Include: CreationTime Include: AvailyBeforeMalfunctionPercent Include: AvailyAfterMalfunctionPercent Include: AvailyAfterConclusionPercent Include: SystConditionBeforeMalfunction Include: SystConditionAfterMalfunction Include: SystConditionAfterCompletion Include: CompanyCode | ||
TL | 2TL_S4HARM_I_MaintOrderTechObCube (2TL_MOTech) | 1TL_S4Hx_I_MaintOrderTechObCube (1TXL_MOTech) | Delta load of maintenance order technical object data. Set keys. Filled by 2TF_S4HARM_I_MaintOrderTechObCube. | Add as Key: MaintenanceOrder | Supports ERP-1012, ERP-1092, ERP-1093, ERP-1096, ERP-1098. | ||
TF | 2TF_S4HARM_I_MaintOrderTechObCube | 1TL_S4Hx_I_MaintOrderTechObCube (1TXL_MOTech) | No transformations. | ||||
VR | 2VR_S4HARM_I_MaintOrderTechObCube (2VR_MOTech) | 2TL_S4HARM_I_MaintOrderTechObCube | View on harmonised maintenance order / technical object data. | MaintenanceOrder IS NOT NULL AND MaintenanceOrder <> '' | Include: MaintenanceOrder Include: Equipment Include: FunctionalLocation Include: MaintenancePlant Include: MaintenancePlannerGroup Include: PlantSection Include: MainWorkCenter Include: WorkCenterInternalID Include: MaintenanceOrderType Include: MaintenanceActivityType Include: MaintenancePlan Include: TaskListGroup Include: TaskListGroupCounter Include: TaskListType Include: OrderUserStatus Include: ScheduledBasicStartDate Include: ScheduledBasicStartTime Include: ScheduledBasicEndDate Include: ScheduledBasicEndTime Include: ScheduledBasicStartDateTime Include: ScheduledBasicEndDateTime Include: ActualStartDate Include: ConfirmedEndDate Include: CompanyCode Include: WBSElementInternalID | ||
TL | 2TL_S4HARM_I_MaintOrderActualCostCube (2TL_CostCube) | 1TL_S4Hx_I_MaintOrderActualCostCube (1TXL_CostCube) | Delta load of maintenance order actual cost postings. Set keys. Filled by 2TF_S4HARM_I_MaintOrderActualCostCube. | Add as Key: MaintenanceOrder Add as Key: AccountingDocument Add as Key: FiscalYear Add as Key: AccountingDocumentItem | Supports ERP-888, ERP-1013. | ||
TF | 2TF_S4HARM_I_MaintOrderActualCostCube | 1TL_S4Hx_I_MaintOrderActualCostCube (1TXL_CostCube) | No transformations. | ||||
VR | 2VR_S4HARM_I_MaintOrderActualCostCube (2VR_CostCube) | 2TL_S4HARM_I_MaintOrderActualCostCube | View on harmonised maintenance order actual cost data. | MaintenanceOrder IS NOT NULL AND MaintenanceOrder <> '' | Include: MaintenanceOrder Include: AccountingDocument Include: FiscalYear Include: AccountingDocumentItem Include: CompanyCode Include: CompanyCodeCurrency Include: AmountInCompanyCodeCurrency Include: TransactionCurrency Include: AmountInTransactionCurrency Include: GLAccount Include: CostElement Include: MaintenanceOrderType Include: Plant Include: Equipment Include: FunctionalLocation Include: WBSElementInternalID Include: CostCenter Include: ControllingArea Include: PostingDate | ||
TL | 2TL_S4HARM_I_MaintOrderOperation (2TL_MaintOps) | 1TL_S4Hx_I_MaintOrderOperation (1TXL_MaintOps) | Delta load of maintenance order operation records. Set keys. Filled by 2TF_S4HARM_I_MaintOrderOperation. | Add as Key: MaintenanceOrder Add as Key: MaintenanceOrderOperation | Supports ERP-1092, ERP-1093, ERP-1096. | ||
TF | 2TF_S4HARM_I_MaintOrderOperation | 1TL_S4Hx_I_MaintOrderOperation (1TXL_MaintOps) | No transformations. | ||||
VR | 2VR_S4HARM_I_MaintOrderOperation (2VR_MaintOps) | 2TL_S4HARM_I_MaintOrderOperation | View on harmonised maintenance order operation data. | MaintenanceOrder IS NOT NULL AND MaintenanceOrderOperation IS NOT NULL | Include: MaintenanceOrder Include: MaintenanceOrderOperation Include: Plant Include: WorkCenter Include: WorkCenterPlant Include: WorkCenterInternalID Include: MaintenancePlannerGroup Include: MaintenanceOrderType Include: MaintenanceActivityType Include: OperationPlannedWork Include: OperationPlannedWorkUnit Include: ConfirmationTotalQuantity Include: ConfirmationTotalQuantityUnit Include: MaintOrdOperationWorkDuration Include: OplTStSchedldExecEndDte Include: LatestAcceptableCompletionDate Include: MaintOrdProcessPhaseCode Include: ConfirmedEndDate Include: ConfirmedEndTime Include: Equipment Include: FunctionalLocation Include: MaintOrdMainWorkCenter Include: MaintOrdMainWorkCenterPlant | ||
TL | 2TL_S4HARM_I_EquipmentBomLink (2TL_EqBOM) | 1TL_S4Hx_I_EquipmentBomLink (1TXL_EqBOM) | Delta load of equipment BOM link data. Set keys. Filled by 2TF_S4HARM_I_EquipmentBomLink. | Add as Key: Equipment Add as Key: BillOfMaterial Add as Key: BillOfMaterialCategory Add as Key: BillOfMaterialVariant | Supports ERP-1098. | ||
TF | 2TF_S4HARM_I_EquipmentBomLink | 1TL_S4Hx_I_EquipmentBomLink (1TXL_EqBOM) | No transformations. | ||||
VR | 2VR_S4HARM_I_EquipmentBomLink (2VR_EqBOM) | 2TL_S4HARM_I_EquipmentBomLink | View on harmonised equipment BOM link data. | Equipment IS NOT NULL AND Equipment <> '' | Include: Equipment Include: BillOfMaterial Include: BillOfMaterialCategory Include: BillOfMaterialVariant Include: BillOfMaterialVariantUsage Include: Plant | ||
VD | 2VD_S4HARM_Equipment (2VD_Equip) | I_Equipment (standard VDM) | Equipment master data dimension. Provides Equipment description, object type, plant, manufacturer for lookups across analytical models. | No TL/TF required. Standard dimension object sourced directly. | |||
TL | 2TL_S4HARM_I_MaintenancePlan (2TL_MaintPlan) | 1TL_S4Hx_I_MaintenancePlan (1TXL_MaintPlan) | Delta load of maintenance plan data (MPLA / T399W). Set keys. Filled by 2TF_S4HARM_I_MaintenancePlan. | Add as Key: MaintenancePlan | Supports ERP-1098 (Active Preventive Maintenance Strategy KPI). | ||
TF | 2TF_S4HARM_I_MaintenancePlan | 1TL_S4Hx_I_MaintenancePlan (1TXL_MaintPlan) | No transformations. | ||||
VR | 2VR_S4HARM_I_MaintenancePlan (2VR_MaintPlan) | 2TL_S4HARM_I_MaintenancePlan | View on harmonised maintenance plan data. | MaintenancePlan IS NOT NULL AND MaintenancePlan <> '' | Include: MaintenancePlan Include: MaintenancePlanDesc Include: MaintenanceStrategy Include: MaintenancePlanCategory Include: FunctionalLocation Include: Equipment Include: SchedulingStartDate Include: SchedulingStartTime Include: SchedulingEndDate Include: MaintPlanIsLockedAgainstCalls Include: CallHorizonInDays Include: SchedulingDuration Include: SchedulingDurationUnit Include: Plant Include: AuthorizationGroup | NOTE: PlantSection (BEBER) and MaintenancePlannerGroup (INGRP) not on I_MaintenancePlan. Resolved by join to 2VR_MOTech in Propagation Layer (3VF_A2DAMM_MaintenancePlan). See Section 6.4. | |
TL | 2TL_S4HARM_xxxxxx (2TL_Recom) | 1TXL_Recom (SSAL_APM) Z_apm_tbd | BLOCKED — APM recommendation data load. Object names and source TBD pending APM integration analysis. | BLOCKED | |||
VR | 2VR_S4HARM_xxxxxx (2VR_Recom) | 2TL_S4HARM_xxxxxx | BLOCKED — APM recommendation view. Filter, projection and formula TBD. | BLOCKED | BLOCKED | BLOCKED | BLOCKED |
PLACEHOLDER | WBS / Planned Cost (Placeholder) | CO / PS — source TBD | WBS planned cost input for ERP-888 budget comparison KPI. No standard SAP PM CDS view exposes WBS planned values. | TBD | TBD | TBD | GAP G-03 — source options: CO/PS extractor, SAC planning model (4MP_ARV), or manual input table. |
The Propagation Layer (Layer 3) applies business logic, joins, unions, and derivations to produce the fact views consumed by Analytical Models. VR objects are projection views. VF objects apply formulas and/or perform joins/unions.
Type | Object Name | Source(s) | Purpose | Filter | Projection | Formula / Aggregation / Joins | Notes |
VR | 3VR_A2DAMM_PMNotif (3VR_PMNotif) | 2VR_PMNotif | Projects notification grain. 1 row per notification. Includes breakdown flags, downtime duration, malfunction dates, priority. | ||||
VR | 3VR_A2DAMM_MOTech (3VR_MOTech) | 2VR_MOTech | Projects order-centric grain. Includes scheduled dates, planner group, plant section, task list, order type. | ||||
VR | 3VR_A2DAMM_UnplannedDowntime (3VR_UnplanDT) | 2VR_PMNotif | Unplanned downtime projection. | MaintenanceObjectIsDown = 'X' | PlannedVsUnplanned = 'UNPLANNED' SourceType = 'NOTIF' DowntimeHours = MaintObjectDowntimeDuration / 3600 StartDateTime = MalfunctionStartDate + Time EndDateTime = MalfunctionEndDate + Time | ||
VR | 3VR_A2DAMM_PlannedDowntime (3VR_PlanDT) | 2VR_MOTech | Planned downtime projection. | MaintenanceOrderType IN planned types | PlannedVsUnplanned = 'PLANNED' SourceType = 'ORDER' DowntimeHours = (ScheduledBasicEndDateTime - ScheduledBasicStartDateTime) / 3600 | ||
VF | 3VF_A2DAMM_DowntimeFact (3VF_DTFact) | UNION: 3VR_UnplanDT + 3VR_PlanDT | Union of planned and unplanned downtime into shared fact. No pre-aggregation. | Union: Accept default union mappings | Supports ERP-1012. | ||
VF | 3VF_A2DAMM_PMNotifFact (3VF_PMNotif) | 3VR_PMNotif | Formula/calculation view. Adds derived measures for notification-level KPIs. | 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 | Supports ERP-1012, ERP-1013, ERP-1092, ERP-1096. | ||
VF | 3VF_A2DAMM_MaintOrderTechFact (3VF_MOTech) | 3VR_MOTech | Formula/calculation view on order data. Adds derived flags. | TaskListUsageFlag = CASE WHEN TaskListGroup IS NOT NULL THEN 'X' ELSE '' END PlannedWindowSeconds = ScheduledBasicEndDateTime - ScheduledBasicStartDateTime OrderCount = 1 | Supports ERP-1012, ERP-1092, ERP-1098. | ||
VR | 3VR_A2DAMM_MaintOrderActualCostCube (3VR_CostCube) | 2VR_CostCube | Cost data projection for join into 3VF_MaintCosts. | CompanyCode IS NOT NULL | Supports ERP-888, ERP-1013. | ||
VR | 3VR_A2DAMM_AssetReplacementValue (3VR_ARV) | Placeholder | Asset Replacement Value derivation. Source TBD. | TBD | TBD | TBD | GAP G-02. |
VF | 3VF_A2DAMM_MaintenanceCost (3VF_MaintCosts) | JOIN: 3VR_CostCube + 3VR_ARV + WBS Placeholder | Join of cost actuals, ARV, and planned cost. | TBD | Cost fields, ARV, WBS planned | Join key: MaintenanceOrder / Equipment | PARKED pending ERP-888 confirmation and G-02/G-03 resolution. |
VR | 3VR_A2DAMM_MaintOrderOperation (3VR_MaintOps) | 2VR_MaintOps | Operation-grain projection. | MaintenanceOrder IS NOT NULL | |||
VF | 3VF_A2DAMM_MaintOrderOperation (3VF_MaintOps) | JOIN: 3VR_MaintOps + 3VR_MOTech | Formula view. Adds overdue/rework flags. Joins order header for PlannerGroup/PlantSection. | OverdueFlag = CASE WHEN OplTStSchedldExecEndDte < current_date AND order open THEN 'X' ReworkFlag = CASE WHEN MaintenanceActivityType = 'M08' THEN 'X' TaskListUsageFlag = CASE WHEN TaskListGroup IS NOT NULL THEN 'X' Join key: MaintenanceOrder | Supports ERP-1092, ERP-1093, ERP-1096. | ||
VR | 3VR_A2DAMM_EquipmentBomLink (3VR_EqBOM) | 2VR_EqBOM | Equipment BOM link projection. | ||||
VF | 3VF_A2DAMM_EquipmentBomLink (3VF_EqBOM) | JOIN: 3VR_EqBOM + 3VR_MOTech | Equipment BOM enriched with order/technical object data. | Join key: Equipment | Supports ERP-1098. | ||
VR | 3VR_A2DAMM_MaintenancePlan (3VR_MaintPlan) | 2VR_MaintPlan | Maintenance plan projection. Active plans filter. | MaintPlanIsLockedAgainstCalls = false | |||
VF | 3VF_A2DAMM_MaintenancePlan (3VF_MaintPlan) | JOIN: 3VR_MaintPlan + 3VR_MOTech | Join of maintenance plan to order data. Resolves PlantSection and PlannerGroup from order side. | JOIN: 3VR_MaintPlan.MaintenancePlan = 3VR_MOTech.MaintenancePlan DEDUPLICATE on MaintenancePlan grain to avoid double-counting | Supports ERP-1098. See G-12. | ||
VR | 3VR_A2DAMM_xxxxxx (3VR_Recom) | 2VR_Recom (APM) | APM recommendation propagation. TBD. | BLOCKED | BLOCKED | BLOCKED | G-06. |
Two projections align schemas before the union:
Common union fields: Equipment, FunctionalLocation, MaintenancePlant, PlannerGroup, StartDateTime, EndDateTime, DowntimeHours, PlannedVsUnplanned, SourceType.
Joins 3VR_CostCube + 3VR_ARV + WBS Placeholder. Join key: MaintenanceOrder / Equipment.
GAP/ISSUE: 3VR_ARV source not confirmed - Gap G-02. Decision required before build.
GAP/ISSUE: WBS Planned Cost source not confirmed - Gap G-03.
Joins 3VR_MaintOps (operation grain) to 3VR_MOTech (order header grain) via MaintenanceOrder to resolve PlannerGroup and PlantSection not available at operation level.
GAP/ISSUE: Work Center Capacity (KAKO/KAZY) not in any standard CDS - Backlog (Weeks) and Technician Productivity blocked - Gap G-07.
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 - Gap G-12.
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 (KPI targets and ARV input). 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. | |
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. ARV placeholder. PARKED. | 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. | |
4MA_Recom | 4MA_A2DAMM_xxxxxx | 3VF_Recom (TBD) | ERP-1013 (APM) | APM recommendation AM. TBD pending APM integration. | 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 |
Measure Name | Calculation / Source Field | Aggregation | Notes / Gaps |
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 | |
MTTR (Hours) | SUM(MaintObjectDowntimeDuration) / COUNT(BreakdownNotifications) / 3600 | CALCULATED | |
MTBF (Hours) | Time between consecutive breakdown records per equipment. Definition open. | CALCULATED | G-05 - definition not confirmed. |
Availability Before Malfunction (%) | AvailyBeforeMalfunctionPercent | AVG | |
Availability After Malfunction (%) | AvailyAfterMalfunctionPercent | AVG | |
Availability After Conclusion (%) | AvailyAfterConclusionPercent | AVG |
Measure Name | Calculation / Source Field | Aggregation | Notes / Gaps |
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 | |
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 % | (AvailableTime - TotalUnplannedDowntime) / AvailableTime * 100 | CALCULATED | G-01 - AvailableTime source TBD. |
Measure Name | Calculation / Source Field | Aggregation | Notes / Gaps |
Order Count (Proactive) | COUNT WHERE MaintenanceActivityType IN proactive types | SUM | |
Order Count (Reactive) | COUNT WHERE MaintenanceActivityType IN reactive types | SUM | |
Planning Compliance % | ProactiveOrderCount / TotalOrderCount * 100 | CALCULATED | |
Planned Man-Hours | SUM(OperationPlannedWork) by WorkCenter / PlannerGroup | SUM | |
Actual Man-Hours (Confirmed) | SUM(ConfirmationTotalQuantity) | SUM | |
Backlog Hours | SUM(OperationPlannedWork) for open/planned orders | SUM | |
Backlog Weeks | BacklogHours / WorkCenterCapacityHours | CALCULATED | G-07 - WC capacity not in CDS. |
Overdue Order Count | COUNT WHERE OplTStSchedldExecEndDte < CurrentDate AND order open | SUM | G-10. |
Overdue % | OverdueOrderCount / TotalScheduledOrderCount * 100 | CALCULATED | |
Rework Order Count | COUNT WHERE MaintenanceActivityType = 'M08' on same equipment in window | SUM | G-11. |
Rework % | ReworkOrderCount / TotalOrderCount * 100 | CALCULATED | |
MTTR (Hours) | SUM(MaintObjectDowntimeDuration) / COUNT(BreakdownNotifications) / 3600 | CALCULATED | From PMNotif join. |
Technician Productivity | ConfirmationTotalQuantity / WCCapacityHours | CALCULATED | G-07. |
% Task List Usage | COUNT(OrdersWithTaskList) / TotalOrderCount * 100 | CALCULATED | |
% Emergency Work | COUNT(MaintPriority IN '0','1') / TotalNotificationCount * 100 | CALCULATED | From PMNotif join. |
Measure Name | Calculation / Source Field | Aggregation | Notes / Gaps |
Active Maintenance Plan Count | COUNT WHERE MaintPlanIsLockedAgainstCalls = false | SUM | G-12. |
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 | Assets where mandatory MD fields populated / Total assets * 100 | CALCULATED | G-01 - mandatory fields to be defined. |
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). |
Items flagged HIGH priority are blockers for functional sign-off and build.
ID | ERP | Gap / Issue | Description | Status | Priority |
G-01 | ERP-888 / 1098 | Total Operating Time / MD completeness rule | Total Operating Time not in SAP PM — business rule required. MD completeness fields not defined by business. | OPEN | High |
G-02 | 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-03 | ERP-888 | WBS Planned Cost | No standard PM CDS view exposes WBS planned values. CO/PS extractor or manual table required. | OPEN | High |
G-04 | ERP-888 | ERP-888 Parked | 4MA_A2DAMM_MaintCost build deferred until ERP-888 status confirmed. | PARKED | Medium |
G-05 | ERP-1013 | MTBF Definition | Open: time between breakdown notifications vs true operating hours (STARTEK). STARTEK connection not confirmed. | OPEN | High |
G-06 | ERP-1013 | APM Recommendations | Z_apm_tbd not defined. All APM objects placeholders. | BLOCKED | High |
G-07 | ERP-1092 / 1096 | Work Center Capacity | KAKO/KAZY not in any standard CDS. Backlog (Weeks) and Technician Productivity blocked without this. | OPEN | High |
G-08 | ERP-1093 | Frozen Schedule Flag | No native SAP PM field for frozen week/day schedule. Custom Z-field or activity type mapping required. | OPEN | Medium |
G-09 | ERP-1093 | Break-In Work Flag | No native SAP field. Custom MaintenanceActivityType or status required. | OPEN | Medium |
G-10 | ERP-1096 | Overdue Date Definition | OplTStSchedldExecEndDte (operation) vs LatestAcceptableCompletionDate (order). Business must confirm. | OPEN | Medium |
G-11 | ERP-1096 | Rework Window | Timeframe (same equipment, same failure within N days) must be agreed with business. | OPEN | Low |
G-12 | ERP-1098 | PlantSection on MaintenancePlan | PLANTSECTION not on I_MaintenancePlan. Join from I_MaintOrderTechObjCube. Double-count risk — see Section 6.4. | OPEN | Medium |
G-13 | ERP-1104 | MRO Cross-reference P2F | ERP-1104 uses 4MA_P2FINV_MaterialStock. No new A2D object required. | CROSS-REF | Low |
G-14 | ERP-1156 | Cross-instance + DAE/ITAR | ERP-1156 cross-instance (ROW + China). DAE/ITAR review mandatory before build. | ITAR | High |
G-15 | ERP-888 | CAPEX/OPEX Mapping | MaintenanceOrderType to Capex/Opex mapping table must be provided by business. | OPEN | Medium |
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.
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. |
APM / STARTEK | TBD - blocked | TBD | TBD | Cannot estimate until APM extractor and STARTEK connection defined. |