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.
Note: This document is in DRAFT, any items in Strikethrough will be cleaned up before final version.
This DDFS covers the following Jira requirements:
- ERP-888 - Getting issue details... STATUS – Maintenance and Asset Management Cost Dashboard
- ERP-1012 - Getting issue details... STATUS – Asset Availability Dashboard (Planned vs Unplanned Downtime)
- ERP-1013 - Getting issue details... STATUS – Reliability Engineering Dashboard (MTBF, Top 10 Bad Actors)
- ERP-1093 - Getting issue details... STATUS – Maintenance Planning Dashboard
- ERP-1093 - Getting issue details... STATUS – Maintenance Scheduling Dashboard
- ERP-1096 - Getting issue details... STATUS – Maintenance Execution Dashboard (MTTR, Overdue%, Technician Productivity)
- ERP-1098 - Getting issue details... STATUS – Asset Information Dashboard (Preventive Maintenance Strategy, Data Compliance)
- ERP-1104 - Getting issue details... STATUS – MRO Dashboard
- ERP-1156 - Getting issue details... STATUS – Cross-Instance Material Visibility – MRO Spares
- ERP-2522 - Getting issue details... STATUS - CBM Coverage Monitoring for SAP APM (Tech review in progress)
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
Note: NofifCause is duplicated. Remove once unpublished draft is complete
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_LocCube | S4H | I_LocationAnalysisCube (extended) | ILOA | QMEL | QMIH | EQUZ | EQUI | EQKT | IFLOTX | IFLOT | CRHD + others | ERP-1012, ERP-1013, ERP-1092, ERP-1096 | Standard VDM. Extraction-enabled. Delta via LastChangeDateTime. Extended to add fields not projected in standard view (RelevantFunctionalLocation, MaintenanceActivityType, AvailyPercent fields, SystCondition fields). Replaces XE_PMNotif as primary notification 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. | |
|
|
|
|
|
| |
XE_MaintOps | S4H | I_MaintOrderOperation_DEX | Operation-level DEX | ERP-1092, ERP-1093, ERP-1096 | Standard DEX view. | |
XE_EqBOM | S4H | SYQ_I_EQUIPMENTBOMLINK | EQST | ERP-1098 | Wrapper required. | |
XE_MaintPlan | S4H | I_MAINTENANCEPLANBASIC | MPLA / T399W | ERP-1098 | Standard view. Wrapper required. We require equipment and functional location as join condition to MaintOperatonDex to determine the plant section. Other mentioned views do not have equipment/functional location. | |
|
|
|
|
|
| |
XE_WCCap | S4H | I_WORKCENTERCAPLVL_4 | 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. | |
XE_PMNotif | S4H | SYQ_I_PMNotifMaintenanceData | QMEL | QMIH | ILOA | QMFE | QMUR | ERP-1013 | Custom wrapper. Retained for: • AvailyBeforeMalfunctionPercent, AvailyAfterMalfunctionPercent, AvailyAfterConclusionPercent — confirmed present on this view; absent from I_LocationAnalysisCube. • SystConditionBeforeMalfunction, SystConditionAfterMalfunction, SystConditionAfterCompletion — confirmed present on this view only. DamageCode, ObjectPartCode, and CauseCode are NOT fields on SYQ_I_PMNotifMaintenanceData per the standard CDS schema. These catalog fields reside on I_MaintNotificationCauseData at cause grain. See XE_NotifCause below and G-25. Joined into 3VR_PMNotif in Propagation Layer on MaintenanceNotification key. | |
XE_NotifCause | S4H | I_MaintNotificationCauseData | QMUR | QMEL | ILOA | ERP-1013 | Standard VDM. Carries MaintNotificationDamageCode, MaintNotifObjPrtCode, and MaintNotificationCauseCode at cause grain (key: MaintenanceNotification + MaintenanceNotificationCause). Wrapper required. Resolves G-25. | |
XE_NotifItem | S4H | I_MAINTNOTIFICATIONITEMDATA | INOTIFITEMDATA | QMFE | QMEL | QMIH | ILOA | ERP-1098 | Standard VDM. Provides item-grain defect data: LinearDataLengthMaintNotif, NumberOfDefects, ObjectPartCode, DamageCode at notification + item level. | |
XE_NotifAct | S4H | I_MaintNotificationActyData | INOTIFACTYDATA | QMMA | QMEL | ILOA | ERP-1098 | Standard VDM. Provides activity-grain data: activity code, responsible person, planned/actual dates, completion status. | |
XE_NotifTask | S4H | I_MAINTNOTIFICATIONTASKDATA | INOTIFTASKDATA | QMMA | QMEL | ILOA | ERP-1098 | Standard VDM. Provides task-grain data: task code, planned/actual completion date, task status flags. |
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_S4Hx_SYQ_I_PMNOTIFMAINTENANCEDATA | SYQ_I_PMNOTIFMAINTENANCEDATA (XE_PMNotif) | Wrapper required. |
1TXL_MOTech | 1TL_S4Hx_I_MAINTORDERTECHOBJCUBE | I_MAINTORDERTECHOBJCUBE (XE_MOTech) | Standard VDM. Delta load. |
|
|
|
|
1TXL_MaintOps | 1TL_S4Hx_I_MAINTORDEROPERATION | I_MAINTORDEROPERATION_DEX (XE_MaintOps) | DEX export. |
1TXL_EqBOM | 1TL_S4Hx_SYQI_EQUIPMENTBOMLINK | SYQI_EQUIPMENTBOMLINK (XE_EqBOM) | Wrapper required. |
1TXL_MaintPlan | 1TL_S4Hx_I_MAINTENANCEPLANBASIC | I_MAINTENANCEPLANBASIC (XE_MaintPlan) | Standard view wrapper. |
|
|
|
|
1TXL_WCCap | 1TL_S4Hx_I_WORKCENTERCAPACITY_3 | I_WORKCENTERCAPACITY_3 (XE_WCCap) | Initial + delta load. Capacity definitions change infrequently — full load acceptable. Resolves G-06. |
1TXL_NotifCause | 1TL_S4Hx_I_MAINTNOTIFICATIONCAUSEDATA | I_MaintNotificationCauseData (XE_NotifCause) | Standard VDM. Delta load. Key: MaintenanceNotification + MaintenanceNotificationCause. |
1TXL_LocCube | 1TL_S4Hx_I_LOCATIONANALYSISCUBE | I_LOCATIONANALYSISCUBE (XE_LocCube) | Standard VDM. Delta via LastChangeDateTime. Extended view. |
1TXL_NotifItem | 1TL_S4Hx_I_MAINTNOTIFICATIONITEMDATA | I_MAINTNOTIFICATIONITEMDATA (XE_NotifItem) | Delta load. Key: MaintenanceNotification + MaintenanceNotificationItem. |
1TXL_NotifAct | 1TL_S4Hx_I_MAINTNOTIFICATIONACTYDATA | I_MaintNotificationActyData (XE_NotifAct) | Delta load. Key: MaintenanceNotification + MaintenanceNotificationActivity. |
1TXL_NotifTask | 1TL_S4Hx_I_MAINTNOTIFICATIONTASKDATA | I_MAINTNOTIFICATIONTASKDATA (XE_NotifTask) | Delta load. Key: MaintenanceNotification + MaintenanceNotificationTask. |
Harmonisation Layer
2TL_S4HARM_I_LocationAnalysisCube (2TL_LocCube)
Type: TL — Table / Load object
Source: 1TL_S4Hx_I_LOCATIONANALYSISCUBE (1TXL_LocCube)
Purpose: Union ROW and China
Keys:
- MaintenanceNotification
2VR_S4HARM_I_MaintenanceNotifications (2VR_LocCube)
Type: VR — Harmonisation View
Source: 2TL_S4HARM_I_LocationAnalysisCube (2TL_LocCube)
Purpose: Within this view columns are converted from data type string to time.
Formula: Apply to_time(<fieldname>) or to_date(<fieldname>) to ALL date & time fields.
2TL_S4HARM_I_MaintNotificationCauseData (2TL_NotifCause)
Type: TL — Table / Load object
Source: 1TL_S4Hx_I_MAINTNOTIFICATIONCAUSEDATA (1TXL_NotifCause)
Purpose: Delta load of notification cause records. Sets composite key.union ROW and China
Keys:
- MaintenanceNotification
- MaintenanceNotificationCause
Supports: ERP-1013
2FT_S4HARM_I_MaintNotificationCauseData
Type: TF — Transformation Flow
Source: 1TL_S4Hx_I_MAINTNOTIFICATIONCAUSEDATA (1TXL_NotifCause)
Purpose: No transformations. Pass-through only.
2VR_S4HARM_I_MaintNotificationCauseData (2VR_NotifCause)
Type: VR — Harmonisation View
Source: 2TL_S4HARM_I_MaintNotificationCauseData
Purpose: View on harmonised notification cause data. Provides catalog failure analysis fields at cause grain. Interface object for Propagation Layer join into 3VR_PMNotif.
Filter: MaintenanceNotification IS NOT NULL AND MaintenanceNotificationCause IS NOT NULL
Formula / Aggregation: None — harmonisation only
2TL_S4HARM_I_MaintNotificationItemData (2TL_NotifItem)
Type: TL — Table / Load object
Source: 1TL_S4Hx_I_MAINTNOTIFICATIONITEMDATA (1TXL_NotifItem)
Purpose: Union ROW and China
Keys: MaintenanceNotification, MaintenanceNotificationItem
2FT_S4HARM_I_MaintNotificationItemData (2FT_NotifItem)
Type: TF — Transformation Flow
Source: 1TL_S4Hx_I_MAINTNOTIFICATIONITEMDATA (1TXL_NotifItem)
Purpose: No transformations. Pass-through only.
2VR_S4HARM_I_MaintNotificationItemData (2VR_NotifItem)
Type: VR — Harmonisation View
Source: 2TL_S4HARM_I_MaintNotificationItemData (2TL_NotifItem)
Purpose: View on harmonised notification item data. Interface object for Propagation Layer. Provides item-grain defect and linear length data.
Filter: MaintenanceNotification IS NOT NULL AND MaintenanceNotificationItem IS NOT NULL
Formula / Aggregation: Apply to_time(<fieldname>) or to_date(<fieldname>) to ALL date and time fields. No other transformations.
2TL_S4HARM_I_MaintNotificationActyData (2TL_NotifAct)
Type: TL — Table / Load object
Source: 1TL_S4Hx_I_MAINTNOTIFICATIONACTYDATA (1TXL_NotifAct)
Purpose: Union ROW and China
Keys: MaintenanceNotification, MaintenanceNotificationActivity
2FT_S4HARM_I_MaintNotificationActyData (2FT_NotifAct)
Type: TF — Transformation Flow
Source: 1TL_S4Hx_I_MAINTNOTIFICATIONACTYDATA (1TXL_NotifAct)
Purpose: No transformations. Pass-through only.
2VR_S4HARM_I_MaintNotificationActyData (2VR_NotifAct)
Type: VR — Harmonisation View
Source: 2TL_S4HARM_I_MaintNotificationActyData (2TL_NotifAct)
Purpose: View on harmonised notification activity data. Interface object for Propagation Layer.
Filter: MaintenanceNotification IS NOT NULL AND MaintenanceNotificationActivity IS NOT NULL
Formula / Aggregation: Apply to_time(<fieldname>) or to_date(<fieldname>) to ALL date and time fields. No other transformations.
2TL_S4HARM_I_MaintNotificationTaskData (2TL_NotifTask)
Type: TL — Table / Load object
Source: 1TL_S4Hx_I_MAINTNOTIFICATIONTASKDATA (1TXL_NotifTask)
Purpose: . Union ROW and China
Keys: MaintenanceNotification, MaintenanceNotificationTask
2FT_S4HARM_I_MaintNotificationTaskData (2FT_NotifTask)
Type: TF — Transformation Flow
Source: 1TL_S4Hx_I_MAINTNOTIFICATIONTASKDATA (1TXL_NotifTask)
Purpose: No transformations. Pass-through only.
2VR_S4HARM_I_MaintNotificationTaskData (2VR_NotifTask)
Type: VR — Harmonisation View
Source: 2TL_S4HARM_I_MaintNotificationTaskData (2TL_NotifTask)
Purpose: View on harmonised notification task data. Interface object for Propagation Layer. Provides task-grain completion status data. Note: aggregate task counts (NrOfMaintNotifActiveTasks, NrOfMaintNotifSuccssflTasks, NumberOfMaintNotifTasks) are also available pre-aggregated on I_LocationAnalysisCube via 2VR_LocCube. This chain provides task-grain detail only.
Filter: MaintenanceNotification IS NOT NULL AND MaintenanceNotificationTask IS NOT NULL
Formula / Aggregation: Apply to_time(<fieldname>) or to_date(<fieldname>) to ALL date and time fields. No other transformations.
2TL_S4HARM_I_PMNotifMaintenanceData (2TL_PMNotif)
Type: TL — Table / Load object
Source: 1TL_S4Hx_SYQ_I_PMNOTIFMAINTENANCEDATA (1TXL_PMNotif)
Purpose: Union ROW and China
Keys:
- MaintenanceNotification
- NotificationItem
Supports: ERP-1012, ERP-1013, ERP-1092, ERP-1096
2FT_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)
Projection and Notes updated only. Type, Source, Filter, and Formula / Aggregation unchanged.
Type: VR — Harmonisation View
Source: 2TL_S4HARM_SYQ_IPMNOTIFMAINTENANCEDATA
Purpose: View on harmonised PM notification maintenance data. Interface object for Propagation Layer.
Filter: MaintenanceNotification IS NOT NULL
Notes: AvailyBeforeMalfunctionPercent, AvailyAfterMalfunctionPercent, AvailyAfterConclusionPercent, and all SystCondition fields are sourced from SYQ_I_PMNotifMaintenanceData — confirmed absent from I_LocationAnalysisCube.
DamageCode, ObjectPartCode, and CauseCode are NOT on SYQI_PMNotifMaintenanceData; these are sourced via the new 2VR_NotifCause harmonisation stream (see below). The three amber projection entries for these fields have been removed from this view and struck through above for traceability. ABCIndicator join pattern documented in G-15.
2TL_S4HARM_I_MaintOrderTechObCube (2TL_MOTech)
Type: TL — Table / Load object
Source: 1TL_S4Hx_I_MAINTORDERTECHOBCUBE (1TXL_MOTech)
Purpose: Union ROW and China
Keys:
- MaintenanceOrder
Supports: ERP-1012, ERP-1092, ERP-1093, ERP-1096, ERP-1098
2FT_S4HARM_I_MaintOrderTechObCube
Type: TF — Transformation Flow
Source: 1TL_S4Hx_I_MAINTORDERTECHOBCUBE (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 <> ''
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:
MaintenanceOrderAccountingDocumentFiscalYearAccountingDocumentItem
Supports: ERP-888, ERP-1013
2FT_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:
MaintenanceOrderAccountingDocumentFiscalYearAccountingDocumentItemCompanyCodeCompanyCodeCurrencyAmountInCompanyCodeCurrencyGlobalCurrencyAmountInGlobalCurrencyTransactionCurrencyAmountInTransactionCurrencyGLAccountCostElementGroupMaintenanceOrderTypeMaintenanceActivityTypeMaintenanceOrderIsPlannedPlantPlantSectionEquipmentFunctionalLocationMaintenancePlantMaintenancePlannerGroupMainWorkCenterInternalIDMaintOrdMainWorkCenterMaintOrdMainWorkCenterPlantCostCenterControllingAreaPostingDatePostingMonthFiscalPeriod
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: Union ROW and China
Keys:
- MaintenanceOrder
- MaintenanceOrderOperation
Supports: ERP-1092, ERP-1093, ERP-1096
2FT_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: Union ROW and China
Keys:
- Equipment
- BillOfMaterial
- BillOfMaterialCategory
- BillOfMaterialVariant
Supports: ERP-1098
2FT_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 <> ''
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: Union ROW and China
Keys:
- MaintenancePlan
Supports: ERP-1098 — Active Preventive Maintenance Strategy KPI
2FT_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 <> ''
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_3 (2TL_WCCap)
Type: TL — Table / Load object
Source: 1TL_S4Hx_I_WORKCENTERCAPACITY (1TXL_WCCap)
Purpose: Union ROW and China
Keys:
WorkCenterInternalID
CapacityInternalID
ValidityStartDate
Supports: ERP-1092, ERP-1093, ERP-1096
2FT_S4HARM_I_WorkCenterCapacity_3
Type: TF — Transformation Flow
Source: 1TL_S4Hx_I_WORKCENTERCAPACITY (1TXL_WCCap)
Purpose: No transformations. Pass-through only.
2VR_S4HARM_I_WorkCenterCapacity_3 (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
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_NotifItem (3VR_NotifItem)
Type: VR — Projection View
Source: 2VR_S4HARM_I_MaintNotificationItemData (2VR_NotifItem)
Purpose: Item-grain projection for downstream consumption by 3VF_A2DAMM_NotifItem.
Filter: None additional — inherits from 2VR_NotifItem
Projection: All fields from 2VR_NotifItem
Formula / Aggregation: None
3VF_A2DAMM_NotifItem (3VF_NotifItem)
Type: VF — Calculation View
Source: 3VR_A2DAMM_NotifItem (3VR_NotifItem)
Purpose: Formula view on notification item data. Master data associations are added to the view to add attributes, texts and time dimensions. Exposes item-grain defect measures for 4MA_A2DAMM_NotifItem.
Filter: None
Projection: All fields from 3VR_NotifItem plus master data association attributes
Formula / Aggregation: NumberOfDefects passthrough — SUM in AM. LinearDataLengthMaintNotif passthrough — SUM in AM.
3VR_A2DAMM_NotifCause (3VR_NotifCause)
Type: VR — Projection View
Source: 2VR_S4HARM_I_MaintNotificationCauseData (2VR_NotifCause)
Purpose: Standalone cause-grain projection. Enables cause-grain analysis as a discrete entity independent of the notification header join in 3VR_PMNotif. The join of cause data into 3VR_PMNotif is unchanged.
Filter: None additional — inherits from 2VR_NotifCause
Projection: All fields from 2VR_NotifCause
Formula / Aggregation: None
3VF_A2DAMM_NotifCause (3VF_NotifCause)
Type: VF — Calculation View
Source: 3VR_A2DAMM_NotifCause (3VR_NotifCause)
Purpose: Formula view on cause data. Master data associations are added to the view to add attributes, texts and time dimensions (damage reason, business area, equipment, functional location). Exposes cause-grain failure analysis for 4MA_A2DAMM_NotifCause.
Filter: None
Projection: All fields from 3VR_NotifCause plus master data association attributes
Formula / Aggregation: NumberOfMaintNotifCauses: constant 1 per cause row — SUM in AM.
3VR_A2DAMM_NotifAct (3VR_NotifAct)
Type: VR — Projection View
Source: 2VR_S4HARM_I_MaintNotificationActyData (2VR_NotifAct)
Purpose: Activity-grain projection for downstream consumption by 3VF_A2DAMM_NotifAct.
Filter: None additional — inherits from 2VR_NotifAct
Projection: All fields from 2VR_NotifAct
Formula / Aggregation: None
3VF_A2DAMM_NotifAct (3VF_NotifAct)
Type: VF — Calculation View
Source: 3VR_A2DAMM_NotifAct (3VR_NotifAct)
Purpose: Formula view on notification activity data. Master data associations are added to the view to add attributes, texts and time dimensions. Exposes activity-grain measures for 4MA_A2DAMM_NotifAct.
Filter: None
Projection: All fields from 3VR_NotifAct plus master data association attributes
Formula / Aggregation: NumberOfMaintNotifActivities: constant 1 per activity row — SUM in AM.
3VR_A2DAMM_NotifTask (3VR_NotifTask)
Type: VR — Projection View
Source: 2VR_S4HARM_I_MaintNotificationTaskData (2VR_NotifTask)
Purpose: Task-grain projection for downstream consumption by 3VF_A2DAMM_NotifTask. Provides task-grain detail behind the pre-aggregated task counts carried on 4MA_PMNotif via I_LocationAnalysisCube.
Filter: None additional — inherits from 2VR_NotifTask
Projection: All fields from 2VR_NotifTask
Formula / Aggregation: None
3VF_A2DAMM_NotifTask (3VF_NotifTask)
Type: VF — Calculation View
Source: 3VR_A2DAMM_NotifTask (3VR_NotifTask)
Purpose: Formula view on notification task data. Master data associations are added to the view to add attributes, texts and time dimensions (controlling area, damage codes, equipment, functional location). Exposes task-grain measures for 4MA_A2DAMM_NotifTask. Note: aggregate task counts (NrOfMaintNotifActiveTasks etc.) remain available pre-aggregated in 4MA_PMNotif via LocCube — this chain provides task-grain drill-through only and does not replace those counts.
Filter: None
Projection: All fields from 3VR_NotifTask plus master data association attributes
Formula / Aggregation: NrOfMaintNotifActiveTasks passthrough — SUM in AM. NrOfMaintNotifSuccssflTasks passthrough — SUM in AM. NumberOfMaintNotifTasks passthrough — SUM in AM.
3VR_A2DAMM_LocationAnalysisCube (3VR_PLocCube)
Type, Filter, and Supports unchanged. Source, Purpose, Projection, Join, and Formula / Aggregation updated.
Type: VR — Projection / Join View
Source: 2VR_S4HARM_I_LocationAnalysisCube (2VR_LocCube)
Purpose: The harmonization layer also contains the following calculated column, which is the basis for calculation of the key figures in the reporting layer:
Calculated column | Transformation Rule |
|---|---|
Count | Fill with “1” |
ConstructionCalMonth | CONCAT(ConstructionYear,ConstructionMonth) |
3VF_A2DAMM_LocationAnalysisCube (3VR_LocCube)
Type: VF — Join / Calculation View
Source: 3VR_A2DAMM_LocationAnalysisCube (3VR_LocCube)
Purpose: Master data associations are added to the view to add attributes, texts and time dimensions
3VR_A2DAMM_PMNotif (3VR_PMNotif)
Type: VR — Projection / Join View
Source: 2VR_PMNotif LEFT JOIN 2VR_NotifCause LEFT JOIN 2VR_LocCube
Purpose: Projects notification grain for downstream consumption. One row per notification. Includes all notification header dimensions and pre-aggregated counts from I_LocationAnalysisCube (via 2VR_LocCube), supplementary fields from SYQ_I_PMNotifMaintenanceData (via 2VR_PMNotif), and failure catalog codes from I_MaintNotificationCauseData (via 2VR_NotifCause). Single source for 4MA_PMNotif — replaces separate 4MA_LocCube AM.
Filter: None additional — inherits from 2VR_LocCube
Joins:
Join Target | Type | Join Key | Fields Resolved |
2VR_S4HARM_I_MaintNotificationCauseData (2VR_NotifCause) | LEFT JOIN | MaintenanceNotification = MaintenanceNotification WHERE MaintenanceNotificationCause = MIN per notification | MaintNotificationDamageCode (aliased: DamageCode), MaintNotifObjPrtCode (aliased: ObjectPartCode), MaintNotificationCauseCode (aliased: CauseCode) |
2VR_S4HARM_I_LocationAnalysisCube (2VR_LocCube) | LEFT JOIN | MaintenanceNotification = MaintenanceNotification | FunctionalLocation, NotificationType, MaintPriority, CreationDate, CreationTime, ABCIndicator, PlantSection, NumberOfReportedBreakdowns, NumberOfCreatedMaintNotifs, MaintObjectDowntimeDuration (LocCube instance), NmbrOfOpenMaintNotifications, NrOfMaintNotifActiveTasks, NrOfMaintNotifCmpltdOnSched, NrOfMaintNotifSuccssflTasks, NrOfOutstandingMaintNotif, NumberOfCompletedMaintNotif, NumberOfCreatedMaintOrders, NumberOfMaintNotifTasks, TotalLeadTimeOfMaintNotif, NmbrOfDeltdMaintNotifications |
Projection:
All fields from 2VR_PMNotif plus:
- FunctionalLocation (2VR_LocCube)
- NotificationType (2VR_LocCube)
- MaintPriority (2VR_LocCube)
- CreationDate (2VR_LocCube)
- CreationTime (2VR_LocCube)
- ABCIndicator (2VR_LocCube)
- PlantSection (2VR_LocCube)
- NumberOfReportedBreakdowns (2VR_LocCube) — replaces CASE WHEN MaintenanceObjectIsDown derived measures
- NumberOfCreatedMaintNotifs (2VR_LocCube) — replaces constant 1 NotificationCount derivation
- TotalLeadTimeOfMaintNotif (2VR_LocCube) — candidate for ERP-1092 Average Planning Lead Time
- NmbrOfOpenMaintNotifications, NrOfMaintNotifActiveTasks, NrOfMaintNotifCmpltdOnSched, NrOfMaintNotifSuccssflTasks, NrOfOutstandingMaintNotif, NumberOfCompletedMaintNotif, NumberOfCreatedMaintOrders, NumberOfMaintNotifTasks, NmbrOfDeltdMaintNotifications (2VR_LocCube)
- MaintNotificationDamageCode aliased: DamageCode (2VR_NotifCause)
- MaintNotifObjPrtCode aliased: ObjectPartCode (2VR_NotifCause)
- MaintNotificationCauseCode aliased: CauseCode (2VR_NotifCause)
Formula / Aggregation: DEDUPLICATE on MaintenanceNotification grain after NotifCause join — retain lowest MaintenanceNotificationCause per notification. 2VR_LocCube join is 1:1 on MaintenanceNotification — no deduplication required.
Supports: ERP-1012, ERP-1013, ERP-1092, ERP-1096
Notes: MaintObjectDowntimeDuration is present on both 2VR_LocCube and 2VR_PMNotif — project from 2VR_LocCube (LocCube) as primary. RelevantFunctionalLocation from 2VR_PMNotif and FunctionalLocation from 2VR_LocCube are both projected — different concepts (affected FL vs header FL). NumberOfReportedBreakdowns confirmed as notification-grain attribute (DIM/DEC on I_LocationAnalysisCube) — verify value = 1 where MaintenanceObjectIsDown = X and 0 otherwise via SE16 spot-check before removing CASE expression in 4MA_PMNotif.
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_MaintOrderCost (3VR_CostCube)
Type: VR — Projection View
Source: 2VR_HARM_GLAccountLineItemLeadingLedger (R2R space, ERP-1044), left join 2VR_MOTech on MaintenanceOrder = OrderID
Purpose: Filters GL line items to PM order cost postings (OrderCategory = 30, ControllingDebitCreditCode IN H/L/S). Joins to 2VR_S4HARM_I_MaintOrderTechObCube to resolve PM-specific attributes not present on the GL view. Projects the field set required by 3VF_MaintCosts and 4MA_MaintCost..
Filter:
Condition | Source / Notes |
( | |
and ( AccountAssignmentType = 'OR' |
Joins
The following joins replace the associations that were implicit inside I_MaintOrderActualCostDataCube via I_MaintenanceOrder and I_LogisticsOrder. They are now explicit LEFT JOINs in DSP.
Join Target | Type | Join Key | Fields Resolved |
2VR_S4HARM_I_MaintOrderTechObCube (2VR_MOTech) | LEFT JOIN | OrderID = MaintenanceOrder | MaintenanceOrderType, PlantSection, MaintenancePlant, MaintenancePlannerGroup, MainWorkCenterInternalID, MaintOrdMainWorkCenter, MaintOrdMainWorkCenterPlant, MaintenancePlan, MaintenancePlanningPlant, ResponsibleCostCenter, ABCIndicator |
2VD_S4HARM_Equipment (2VD_Equip) | LEFT JOIN | Equipment = Equipment | TechnicalObjectType. New for ERP-888 Cost Control tab dimension requirement. G-21. |
2VD_S4HARM_GLAccountHierarchy (2VD_GLAcctHier) | LEFT JOIN | GLAccount = GLAccount AND HierarchyType = 'FSVN' AND ValidityEndDate = '99991231' AND GLAccountHierarchy = '<hierarchy name — confirm with FI>' | CostElementGroup (source: ParentNode). Replicates _GLAccountHierarchyForFilter association pattern from S/4 cost cube. |
The cost cube resolved these fields via associations to I_MaintenanceOrder and I_LogisticsOrder in S/4. In DSP, 2VR_MOTech already carries this data from its own harmonisation chain. This join avoids any new extractor or harmonisation object.
Projection:
Fields derived from 2VR_LeadLed directly (no join required):
Target Field | Source Field (2VR_LeadLed) | Notes |
MaintenanceOrder | OrderID | |
AccountingDocument | AccountingDocument | Key field — unchanged. |
FiscalYear | FiscalYear | Key field — unchanged. |
LedgerGLLineItem | LedgerGLLineItem | Key field — replaces AccountingDocumentItem from cost cube. |
CompanyCode | CompanyCode | Key field — unchanged. |
CompanyCodeCurrency | CompanyCodeCurrency | |
AmountInCompanyCodeCurrency | AmountInCompanyCodeCurrency | |
GlobalCurrency | GlobalCurrency | |
AmountInGlobalCurrency | AmountInGlobalCurrency | |
TransactionCurrency | TransactionCurrency | |
AmountInTransactionCurrency | AmountInTransactionCurrency | |
GLAccount | GLAccount | |
MaintenanceActivityType | MaintenanceActivityType | . |
MaintenanceOrderIsPlanned | MaintenanceOrderIsPlanned | |
Plant | Plant | |
Equipment | Equipment | |
FunctionalLocation | FunctionalLocation | |
ControllingArea | ControllingArea | |
CostCenter | CostCenter | |
PostingDate | PostingDate | |
PostingMonth | MONTH(PostingDate) | Derived — PostingMonth not present on GL view. Derive in this object. |
FiscalPeriod | FiscalPeriod | |
WorkCenterInternalID | WorkCenterInternalID | |
OrderOperation | OrderOperation | |
OrderSuboperation | OrderSuboperation | |
LastChangeDateTime | LastChangeDateTime | |
ChartOfAccounts | ChartOfAccounts | |
FiscalYearVariant | FiscalYearVariant | |
IsSettlement | IsSettlement |
Fields resolved via LEFT JOIN to 2VR_MOTech:
Target Field | Source Field (2VR_MOTech) | Notes |
MaintenanceOrderType | MaintenanceOrderType | |
PlantSection | PlantSection | |
MaintenancePlant | MaintenancePlant | Not on GL view. Was resolved via I_LogisticsOrder.LocationPlant in cost cube. |
MaintenancePlannerGroup | MaintenancePlannerGroup | |
MainWorkCenterInternalID | WorkCenterInternalID | Rename to match cost cube field name. |
MaintOrdMainWorkCenter | MainWorkCenter | |
MaintOrdMainWorkCenterPlant | MainWorkCenterPlant | |
MaintenancePlan | MaintenancePlan | |
MaintenancePlanningPlant | MaintenancePlanningPlant | |
ResponsibleCostCenter | ResponsibleCostCenter | |
ABCIndicator | ABCIndicator | Confirm field available on 2VR_MOTech — was via _LocationAccountAssignment in cost cube. G-15. |
TechnicalObjectType | TechnicalObjectType | New. Resolved from Equipment master via 2VD_Equip join. Where Equipment is blank, FunctionalLocation will also be blank (PM posting with no technical object assigned) — TechnicalObjectType is correctly null in this case. G-21. |
OperationStartDate | OperationStartDate | New. Start-up date of equipment (ILOM_DATAB). Input to Age Completion calculation. G-24 RESOLVED. |
EquipmentEndOfUseDate | EquipmentEndOfUseDate | New. End-of-Use date (ENDOFUSE_DATE). Maps to business concept of End of Life. Input to Age Completion calculation. G-24 RESOLVED. |
CostElementGroup | ParentNode | Reinstated. Derived via GL account hierarchy join (HierarchyType = 'FSVN'). Replicates _GLAccountHierarchyNode.ParentNode pattern from S/4 cost cube (commented-out line). GLAccountHierarchy name must be confirmed with FI. LEFT JOIN — postings with no hierarchy match return null CostElementGroup. |
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)
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: MaintenanceActivityType is available directly on 2VR_HARM_GLAccountLineItemLeadingLedger and is projected in 3VR_CostCube without requiring an additional join. Cost type split by MaintenanceActivityType (Preventive / Corrective / Emergency) is derivable at this layer.
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
3VF_A2DAMM_PMNotifFact (3VF_PMNotif)
Formula / Aggregation block updated only. Type, Source, Filter, Projection header, and Supports unchanged.
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 from 3VR_PMNotif (source: 2VR_NotifCause via join)
- ObjectPartCode — passthrough from 3VR_PMNotif (source: 2VR_NotifCause via join)
- CauseCode — passthrough from 3VR_PMNotif (source: 2VR_NotifCause via join)
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. Consolidates all notification data from I_LocationAnalysisCube, SYQ_I_PMNotifMaintenanceData, and I_MaintNotificationCauseData chains. Provides: Downtime, MTBF, MTTR, emergency notification KPIs, failure reason analysis (DamageCode, ObjectPartCode, CauseCode), and all LocCube pre-aggregated counts (NumberOfReportedBreakdowns, TotalLeadTimeOfMaintNotif etc.). Replaces 4MA_LocCube — see struck-through row below. | |
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_LocCube | 4MA_A2DAMM_LocCube | 3VF_LocCube | TBD | Standard Content. Joins between 3VF_PMNotif and 3VF_LocCube under investigation. | TBD |
4MA_LocCube
Source: 3VF_A2DAMM_PMMaintenanceNotification
Measure Name | Calculation / Source Field | Aggregation | Notes |
| Count | Count | SUM | Used in NmbrOfEquipmentFailures |
| LinearDataLengthMaintNotif | LinearDataLengthMaintNotif | SUM | |
| MaintObjectDowntimeDuration | MaintObjectDowntimeDuration | SUM | |
| NmbrOfDeltdMaintNotifications | NmbrOfDeltdMaintNotifications | SUM | |
| NmbrOfEquipmentFailures | Count Expression: MaintenanceObjectIsDown = 'x' | SUM | |
| NmbrOfOpenMaintNotifications | NmbrOfOpenMaintNotifications | SUM | |
| NrOfMaintNotifActiveTasks | NrOfMaintNotifActiveTasks | SUM | |
| NrOfMaintNotifCmpltdOnSched | NrOfMaintNotifCmpltdOnSched | SUM | |
| NrOfMaintNotifSuccssflTasks | NrOfMaintNotifSuccssflTasks | SUM | |
| NrOfOutstandingMaintNotif | NrOfOutstandingMaintNotif | SUM | |
| NumberOfCompletedMaintNotif | NumberOfCompletedMaintNotif | SUM | |
| NumberOfCreatedMaintNotifs | NumberOfCreatedMaintNotifs | SUM | |
| NumberOfCreatedMaintOrders | NumberOfCreatedMaintOrders | SUM | |
| NumberOfMaintNotifTasks | NumberOfMaintNotifTasks | SUM | |
| NumberOfReportedBreakdowns | NumberOfReportedBreakdowns | SUM | |
| TotalLeadTimeOfMaintNotif | TotalLeadTimeOfMaintNotif | SUM |
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. |
Age Completion % | (TODAY - OperationStartDate) / NULLIF(EquipmentEndOfUseDate - OperationStartDate, 0) * 100 | CALCULATED | ERP-888 Asset Economical Viability. OperationStartDate = Start-up date (ILOM_DATAB). EquipmentEndOfUseDate = End-of-Use date (ENDOFUSE_DATE). NULLIF protects against zero denominator where dates are equal. Result expressed as %. G-24 RESOLVED. |
Remaining Life % | (EquipmentEndOfUseDate - TODAY) / NULLIF(EquipmentEndOfUseDate - OperationStartDate, 0) * 100 | CALCULATED | ERP-888 Asset Economical Viability. Complement of Age Completion %. Negative value indicates equipment past end-of-use date — confirm business handling with functional team. |
OperationStartDate | OperationStartDate from 2VD_Equip via 3VR_CostCube | DIMENSION | Exposed as dimension for Equipment start-up date filter on Asset Economical Viability report. |
EquipmentEndOfUseDate | EquipmentEndOfUseDate from 2VD_Equip via 3VR_CostCube | DIMENSION | Exposed as dimension. Maps to business End of Life concept. Confirm field is populated for assets in scope — null end-of-use date will cause Age Completion to return null. |
Actual Labour Cost | SUM(AmountInCompanyCodeCurrency) WHERE CostElementGroup = labour element | SUM | ostElementGroup now derived via GL account hierarchy. Labour element node value to be confirmed with FI. |
Actual Material Cost | SUM(AmountInCompanyCodeCurrency) WHERE CostElementGroup = material element | SUM | Material element node value to be confirmed with FI. |
Actual Service / Contractor Cost | SUM(AmountInCompanyCodeCurrency) WHERE CostElementGroup = service element | SUM | Service element node value to be confirmed with FI. |
4MA_A2DAMM_PMNotif - Calculated Measures
Measure Name | Calculation / Source Field | Aggregation | Notes |
Notification Count | NumberOfCreatedMaintNotifs (from 2VR_LocCube — I_LocationAnalysisCube) | SUM | |
Breakdown Notification Count | NumberOfReportedBreakdowns (from 2VR_LocCube — I_LocationAnalysisCube) | SUM | |
Downtime Duration (Seconds) | MaintObjectDowntimeDuration — from 2VR_LocCube (I_LocationAnalysisCube) | 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) | ( 8,760 - SUM(ScheduledBasicEndDateTime - ScheduledBasicStartDateTime) ) / SUM(NumberOfReportedBreakdowns) * 100 Total Operating Time = 8,760 hours constant. Planned Downtime from MOTech. Denominator = NumberOfReportedBreakdowns (replaces MalfunctionCount CASE expression). | CALCULATED | G-03/G-16 RESOLVED. Denominator now uses NumberOfReportedBreakdowns from LocCube — pending SE16 verification of semantics. |
Total Lead Time Of Maint Notif | TotalLeadTimeOfMaintNotif (from 2VR_LocCube — I_LocationAnalysisCube) | SUM | New. SAP pre-computed notification lead time. Candidate for ERP-1092 Average Planning Lead Time — confirm with business whether this matches agreed KPI definition before using in preference to derived MOTech.CreationDate - PMNotif.CreationDate calculation. |
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. |
Damage Code (Dimension) | DamageCode passthrough (from 2VR_NotifCause via 3VR_PMNotif join) | DIMENSION | Source corrected — I_MaintNotificationCauseData, not SYQ_I_PMNotifMaintenanceData. |
Object Part Code (Dimension) | ObjectPartCode passthrough (from 2VR_NotifCause via 3VR_PMNotif join) | DIMENSION | Source corrected. |
Cause Code (Dimension) | CauseCode passthrough (from 2VR_NotifCause via 3VR_PMNotif join) | DIMENSION | Source corrected. |
Number Of Reported Breakdowns | NumberOfReportedBreakdowns passthrough | SUM | New. From LocCube via 2VR_LocCube. Primary breakdown count — used as MTBF denominator. |
Number Of Created Maint Notifs | NumberOfCreatedMaintNotifs passthrough | SUM | New. From LocCube. |
Number Of Open Maint Notifications | NmbrOfOpenMaintNotifications passthrough | SUM | New. From LocCube. ERP-1096 open notification context. |
Nr Of Maint Notif Active Tasks | NrOfMaintNotifActiveTasks passthrough | SUM | New. From LocCube. ERP-1098 Data Compliance candidate. |
Nr Of Maint Notif Cmpltd On Sched | NrOfMaintNotifCmpltdOnSched passthrough | SUM | New. From LocCube. ERP-1098 Data Compliance candidate. |
Nr Of Maint Notif Successfl Tasks | NrOfMaintNotifSuccssflTasks passthrough | SUM | New. From LocCube. ERP-1098 Data Compliance candidate. |
Nr Of Outstanding Maint Notif | NrOfOutstandingMaintNotif passthrough | SUM | New. From LocCube. |
Number Of Completed Maint Notif | NumberOfCompletedMaintNotif passthrough | SUM | New. From LocCube. |
Number Of Created Maint Orders | NumberOfCreatedMaintOrders passthrough | SUM | New. From LocCube. |
Number Of Maint Notif Tasks | NumberOfMaintNotifTasks passthrough | SUM | New. From LocCube. ERP-1098 Data Compliance candidate. |
Total Lead Time Of Maint Notif | TotalLeadTimeOfMaintNotif passthrough | SUM | New. From LocCube. ERP-1092 Average Planning Lead Time candidate — confirm definition with business. |
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. |
|
|
| |
% 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
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).
|
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-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 | |
G-21 | ERP-888 | TechnicalObjectType — unassigned order postings | TechnicalObjectType is required as a dimension on Total Maintenance Cost, Planned vs Unplanned Cost, and Asset Economical Viability reports. Resolved via LEFT JOIN to 2VD_S4HARM_Equipment on Equipment key — covers all postings where a technical object is assigned. Where Equipment is blank, FunctionalLocation is also blank (SAP PM constraint: both are empty on orders with no technical object assignment). TechnicalObjectType is correctly null for these postings — no additional FLOC join is needed or possible. Discuss with business: are order-level postings with no technical object assignment in scope for these reports, and is null acceptable in the TechnicalObjectType dimension? | OPEN | Medium | Potential gap to discuss with business before build. |
G-22 | ERP-888 | Predictive cost type — no activity type mapping | The Cost Control tab requires Predictive as a distinct cost type split alongside Preventive, Corrective, and Emergency. No MaintenanceActivityType code for Predictive maintenance is defined in the DDFS. Business must confirm the activity type code(s) for Predictive, or confirm it is identified via Order Type filter instead. | OPEN | Medium | |
G-23 | ERP-888 | Planning Bucket Type dimension undefined | Planning Bucket Type is listed as a dimension on the Total Maintenance Cost report in the Cost Control tab. This is not a standard SAP PM field and is not present in any A2D DSP object. Business must clarify what this maps to — likely MaintenanceOrderType or MaintenancePlannerGroup used as a proxy, or a custom Z-field on the work order. | OPEN | Medium | |
|
|
|
|
|
|
|
apps-fileview.texmex_20260329.08_p2 h1Document Linksh1.txt Displaying h1Document Linksh1.txt.