Document Links

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:


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_CostCube

S4H

I_MaintOrderActualCostDataCube

SCAL_TT_DATE, EQUZ, EQUI, SKA1 + others

ERP-888, ERP-1013

Standard VDM cost 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

c_maintenanceplandex_2

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_APMRecom

APM

Z_apm_tbd

APM system (TBD)

ERP-1013

BLOCKED — APM extractor not defined.


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. 


XE_APM TechObj

APM

GET /TechnicalObjects (EIoT Rules API)

PublicRulesRuntimeService .TechnicalObjects

ERP-2522

Primary grain entity. Carries technicalObject_type (EQUI/FLOC), technicalObject_number, executionState, indicatorDataAvailable, ruleResultAvailable, executionRuleId, executionRuleName, executionCreatedAt. OData v2 — native DSP connectivity. No wrapper required. Maintenance Plant not available on this entity — resolved by join to 2VD_Equip on technicalObject_number in DSP.


XE_APM Exec

APM

GET /Executions (EIoT Rules API)

PublicRulesRuntimeService .Executions

ERP-2522

Execution header entity. Carries ID, rule_ID, activation_ID, state, isCompleted, createdAt. Required for latest-execution-per-rule deduplication in DSP (RANK() OVER PARTITION BY executionRuleId ORDER BY createdAt DESC).


XE_APM Activ

APM

GET /Activations (EIoT Rules API)

PublicRulesRuntimeService .Activations

ERP-2522

Active-rule filter proxy. SAP confirmed no explicit active/inactive flag on Rules entity. GET /Activations returns only activated rules. Carries ID (activation ID), ruleType, schedulingStart, schedulingEnd. INNER JOIN to Executions on activation_ID in DSP Harmonisation Layer to restrict to active rules only. Confirmed workaround per Youcef / SAP response (Apr 2026).


XE_APM Rules

APM

GET /Rules (EIoT Rules API)

PublicRulesRuntimeService .Rules

ERP-2522

Rule master data. Carries ID, name, description, type. Joined on rule_ID to provide Rule description dimension on the AM. Note: if DSP OData v2 connector supports $expand, Rules may be resolved inline on the Executions load, eliminating this as a separate inbound object — confirm during build.


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_CostCube

1TL_S4Hx_I_MAINTORDERACTUALCOSTCUBE

I_MAINTORDERACTUALCOSTCUBE (XE_CostCube)

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_Recom (SSAL_APM)

TBD

SYQ_APM_TBD (XE_APMRecom)

BLOCKED — APM extractor not defined.

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.

1TXL_APM_TechObj

1TL_APM_TechnicalObjects

GET /TechnicalObjects (XE_APM_TechObj)

OData v2. Initial + delta load. Key: ID. Primary grain — one record per technical object per rule execution. Resides in SSAL_APM space.

1TXL_APM_Exec

1TL_APM_Executions

GET /Executions (XE_APM_Exec)

OData v2. Initial + delta load. Key: ID. Execution header — carries activation_ID, rule_ID, isCompleted, createdAt. Required for latest-execution-per-rule deduplication at Harmonisation Layer.

1TXL_APM_Activ

1TL_APM_Activations

GET /Activations (XE_APM_Activ)

OData v2. Full load — activation records change infrequently. Key: ID. Active-rule filter proxy: SAP confirmed GET /Activations returns only activated rules. INNER JOIN to 1TL_APM_Executions on activation_ID at Harmonisation Layer to restrict to active rules only.

1TXL_APM_Rules

1TL_APM_Rules

GET /Rules (XE_APM_Rules)

OData v2. Full load. Key: ID. Rule master data — carries name, description, type. Joined on rule_ID at Harmonisation Layer to provide Rule description dimension. Note: if DSP OData v2 connector supports $expand, Rules may be resolved inline on the Executions load — confirm during build.

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:

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:


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:

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:

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:

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:

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:

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:

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:

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:

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.


2TL_APMHARM_TechnicalObjects (2TL_APMTechObj)

Type: TL — Table / Load object

Source: 1TL_APM_TechnicalObjects (1TXL_APM_TechObj)

Purpose: Delta load of APM technical object execution records. One record per technical object per rule execution. Sets composite key.

Keys: ID

Supports: ERP-2522


2VR_APMHARM_TechnicalObjects (2VR_APMTechObj)

Type: VR — Harmonisation View

Source: 2TL_APMHARM_TechnicalObjects

Purpose: View on harmonised APM technical object execution data. INNER JOIN to 2VR_APMHARM_Activations on activation_ID restricts output to active rules only — records with no matching activation are excluded. Interface object for Propagation Layer. Latest-execution-per-rule deduplication is applied downstream in 3VF_A2DAMM_CBMCoverage using a DSP Rank node — it cannot be expressed as a graphical view filter at this layer.

Filter: execution_ID IS NOT NULL

Join: INNER JOIN 2VR_APMHARM_Activations ON activation_ID = ID — excludes technical object records where the parent execution has no active activation.

Formula / Aggregation: None — harmonisation only.

Notes: MaintenancePlant is not available on any APM API entity — resolved by LEFT JOIN to 2VD_S4HARM_Equipment in the Propagation Layer (3VF_A2DAMM_CBMCoverage). FLOC-type objects carry a null MaintenancePlant at that layer — confirmed acceptable for the list report scope per tech review.


2TL_APMHARM_Executions (2TL_APMExec)

Type: TL — Table / Load object

Source: 1TL_APM_Executions (1TXL_APM_Exec)

Purpose: Delta load of APM rule execution header records. Provides activation join key and completion flag used in the TechnicalObjects harmonisation join.

Keys: ID

Supports: ERP-2522


2VR_APMHARM_Executions (2VR_APMExec)

Type: VR — Harmonisation View

Source: 2TL_APMHARM_Executions

Purpose: View on harmonised execution header data. Projects ID, rule_ID, activation_ID, state, isCompleted, createdAt, scheduledAt. Consumed as the source for activation_ID resolution in 2VR_APMHARM_TechnicalObjects. Not directly consumed by the Propagation Layer — all required fields are carried on the TechnicalObjects entity.

Filter: ID IS NOT NULL

Formula / Aggregation: None — harmonisation only.


2TL_APMHARM_Activations (2TL_APMActiv)

Type: TL — Table / Load object

Source: 1TL_APM_Activations (1TXL_APM_Activ)

Purpose: Full load of APM activation records. Activation IDs serve as the active-rule filter proxy — SAP confirmed that GET /Activations returns only activated rules (no explicit active/inactive flag exists on the Rules entity). Records change infrequently; full load acceptable.

Keys: ID

Supports: ERP-2522


2FT_APMHARM_Activations

Type: TF — Transformation Flow

Source: 1TL_APM_Activations (1TXL_APM_Activ)

Purpose: No transformations. Pass-through only.


2VR_APMHARM_Activations (2VR_APMActiv)

Type: VR — Harmonisation View

Source: 2TL_APMHARM_Activations

Purpose: View on harmonised activation data. Projects ID, ruleType, schedulingStart, schedulingEnd, schedulingCronExpression. Consumed as the INNER JOIN target in 2VR_APMHARM_TechnicalObjects to enforce the active-rule restriction. Not directly consumed by the Propagation Layer.

Filter: ID IS NOT NULL

Formula / Aggregation: None — harmonisation only.


2TL_APMHARM_Rules (2TL_APMRules)

Type: TL — Table / Load object

Source: 1TL_APM_Rules (1TXL_APM_Rules)

Purpose: Full load of APM rule master data. Provides name, description, and type for the Rule dimension on the Analytical Model. Records change infrequently; full load acceptable.

Keys: ID

Supports: ERP-2522


2VR_APMHARM_Rules (2VR_APMRules)

Type: VR — Harmonisation View

Source: 2TL_APMHARM_Rules

Purpose: View on harmonised rule master data. Projects ID, name, description, type. Joined on executionRuleId = ID in the Propagation Layer (3VF_A2DAMM_CBMCoverage) to provide the Rule description dimension on 4MA_A2DAMM_CBMCoverage.

Filter: ID IS NOT NULL

Formula / Aggregation: None — harmonisation only.

Notes: If the DSP OData v2 connector supports $expand, rule master fields may be resolved inline on the Executions load and this chain may be collapsed. Confirm during build before creating these objects.

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:


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:

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:

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:

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:

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:

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

 (
    ControllingDebitCreditCode = 'H'
    or ControllingDebitCreditCode = 'L'
    or ControllingDebitCreditCode = 'S')


and ( AccountAssignmentType = 'OR'
    or AccountAssignmentType = 'OV' )


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:

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:

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.


3VR_A2DAMM_CBMCoverage (3VR_CBMCov)

Type: VR — Projection View

Source: 2VR_APMHARM_TechnicalObjects (2VR_APMTechObj)

Purpose: Projection of harmonised APM technical object execution data for downstream consumption by 3VF_A2DAMM_CBMCoverage. Carries all execution, rule, and indicator fields from the Harmonisation Layer.

Latest-execution-per-rule filter and active-rule restriction are already applied upstream in 2VR_APMHARM_TechnicalObjects — no further deduplication required at this layer.

Filter: None additional — inherits from 2VR_APMTechObj.

Projection: All fields from 2VR_APMTechObj.

Formula / Aggregation: None.

Supports: ERP-2522


3VF_A2DAMM_CBMCoverage (3VF_CBMCov)

Type: VF — Join / Calculation View

Source: 3VR_A2DAMM_CBMCoverage (3VR_CBMCov)

Purpose: Formula view on CBM coverage data. LEFT JOINs to 2VD_S4HARM_Equipment on technicalObject_number to resolve MaintenancePlant — which is absent from all APM API entities. LEFT JOINs to 2VR_APMHARM_Rules to denormalise description and type from the Rule master. Adds derived coverage status flag. Exposes all dimension fields required by 4MA_A2DAMM_CBMCoverage. No measures — AM is dimension-only.

Filter: None.

Joins:

Join Target

Type

Join Key Fields

Fields Resolved

2VD_S4HARM_Equipment (2VD_Equip)

LEFT JOIN

technicalObject_number = Equipment WHERE technicalObject_type = 'EQUI'

MaintenancePlant. EQUI-type objects only — FLOC-type objects return null MaintenancePlant; confirmed acceptable for list report scope (tech review). 2VD_Equip already exists in A2D harmonisation space — no new object required.

2VR_APMHARM_Rules (2VR_APMRules)

LEFT JOIN

executionRuleId = ID

description (aliased: RuleDescription), type (aliased: RuleType). 1:1 on executionRuleId — no fan-out risk. Eliminate this join if $expand confirmed on OData v2 connector — rule fields will already be present on 2VR_APMTechObj.


Projection: All fields from 3VR_CBMCov plus:

MaintenancePlant — (2VD_Equip) — resolved via technicalObject_number join. Null for FLOC-type objects.

RuleDescription — (2VR_APMRules) — aliased from description. Rule name for AM dimension.

RuleType — (2VR_APMRules) — aliased from type.

CBMCoverageStatus — Derived — see Formula / Aggregation below.


Formula / Aggregation: 

CBMCoverageStatus =

CASE     WHEN executionState = 'ERROR'

THEN 'Error'     

WHEN indicatorDataAvailable = false

THEN 'No Indicator Data'     

WHEN ruleResultAvailable = false

THEN 'No Rule Result'     

WHEN indicatorDataAvailable = true AND ruleResultAvailable = true

THEN 'Coverage OK'     

ELSE 'Unknown'  

END


Supports: ERP-2522


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.


4MA_Recom

4MA_A2DAMM_xxxxxx

3VF_Recom (TBD)

ERP-1013 (APM)

APM recommendation AM. TBD pending APM integration — G-05.

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 CBM Cov

4MA_A2DAMM_CBMCoverage

3VF_CBMCov

ERP-2522

CBM coverage monitoring AM. List report grain — one row per technical object per active rule (latest execution only).

Single measure RuleExecutionCount. 

All other fields are dimensions. Parallel chain — no changes to existing A2D objects.



4MA_LocCube

Source: 3VF_A2DAMM_PMMaintenanceNotification


Measure Name

Calculation / Source Field

Aggregation

Notes

CountCountSUMUsed in NmbrOfEquipmentFailures
LinearDataLengthMaintNotifLinearDataLengthMaintNotifSUM
MaintObjectDowntimeDurationMaintObjectDowntimeDurationSUM
NmbrOfDeltdMaintNotificationsNmbrOfDeltdMaintNotificationsSUM
NmbrOfEquipmentFailuresCount Expression: MaintenanceObjectIsDown = 'x'SUM
NmbrOfOpenMaintNotificationsNmbrOfOpenMaintNotificationsSUM
NrOfMaintNotifActiveTasksNrOfMaintNotifActiveTasksSUM
NrOfMaintNotifCmpltdOnSchedNrOfMaintNotifCmpltdOnSchedSUM
NrOfMaintNotifSuccssflTasksNrOfMaintNotifSuccssflTasksSUM
NrOfOutstandingMaintNotifNrOfOutstandingMaintNotifSUM
NumberOfCompletedMaintNotifNumberOfCompletedMaintNotifSUM
NumberOfCreatedMaintNotifsNumberOfCreatedMaintNotifsSUM
NumberOfCreatedMaintOrdersNumberOfCreatedMaintOrdersSUM
NumberOfMaintNotifTasksNumberOfMaintNotifTasksSUM
NumberOfReportedBreakdownsNumberOfReportedBreakdownsSUM
TotalLeadTimeOfMaintNotifTotalLeadTimeOfMaintNotifSUM

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.

% Task List Usage

COUNT(OrdersWithTaskList) / TotalOrderCount * 100

CALCULATED


% Emergency Work

COUNT(MaintPriority IN '0','1') / TotalNotificationCount * 100

CALCULATED

From PMNotif join.

Schedule Compliance %

Work completed as per weekly schedule (snapshot) / Total scheduled

CALCULATED

G-07 — frozen schedule flag not native.

Schedule Attainment %

ConfirmationTotalQuantity / OperationPlannedWork for the frozen week * 100

CALCULATED

Weekly grain.

% Work Scheduled vs Available Capacity

SUM(OperationPlannedWork) / WorkCenterAvailableHours * 100

Grouped by WorkCenter / PlannerGroup / Period

CALCULATED

G-06 RESOLVED. Source: 3VF_MaintOps joined to 3VR_WCCap on WorkCenterInternalID. ValidityStartDate / ValidityEndDate used to match capacity record to scheduling period.

% Break-In Work

Break-In Work Confirmation / Total Work Confirmation

CALCULATED

G-08.

Frozen Schedule Adherence %

% Work rescheduled after freeze point

CALCULATED

G-07 — rescheduled flag not native.

Planning Accuracy % (Hours)

OperationPlannedWork vs ConfirmationTotalQuantity / OperationPlannedWork * 100

CALCULATED


Planning Accuracy % (Materials)

Planned Material Cost vs Actual Material Cost / Planned * 100

CALCULATED

From cost cube join. Planned material cost field to be confirmed.

Average Planning Lead Time (Days)

AVG(Work Order creation date - Notification creation date) for unplanned corrective, by MaintPriority

AVG

G-18 — WO creation date field to be confirmed on I_MaintOrderTechObjCube.

% Repetitive Work without TL

COUNT(corrective orders without TaskListGroup on same Equipment, same ObjectPartCode, same DamageCode) / TotalCorrectiveOrders * 100

CALCULATED

G-19 — join between PMNotif failure codes and order header required.


4MA_A2DAMM_MaintPlan - Calculated Measures

Objects under evaluation for both Data Compliance and Active Preventive Maintenance Strategy not yet confirmed by business.


Measure Name

Calculation / Source Field

Aggregation

Notes

Active Maintenance Plan Count

COUNT WHERE MaintPlanIsLockedAgainstCalls = false

SUM

G-11.

Active Plans per Equipment

COUNT(Active Plans) grouped by Equipment

SUM


% Assets with Active PM Strategy

Assets with >= 1 active plan / Total assets * 100

CALCULATED

Denominator definition to be agreed.

% Data Compliance

Compliant Data Records / Total Data Records * 100

CALCULATED

Objects under evaluation not yet confirmed by business.


4MA_A2DAMM_CBMCoverage

Source: 3VF_A2DAMM_CBMCoverage (3VF_CBMCov)

Supports: ERP-2522

CBM coverage monitoring Analytical Model. List report grain — one row per technical object per active rule, latest execution only (deduplication applied in 3VF_CBMCov via DSP Rank node). Single measure RuleExecutionCount enables count aggregation by any dimension combination. Parallel chain to existing A2D objects — no S/4HANA objects affected.

Measures

Measure Name

Calculation / Source Field

Aggregation

Notes

RuleExecutionCount

Constant 1 per row

SUM

Count of active rule executions. Enables slicing by CBMCoverageStatus, MaintenancePlant, RuleType, Equipment, FunctionalLocation etc. Primary KPI measure for CBM Coverage Monitoring report.


Dimensions

Dimension Field

Source

Notes

technicalObject_number

3VF_CBMCov (APM)

Equipment or FLOC number depending on technicalObject_type.

technicalObject_type

3VF_CBMCov (APM)

Values: 'EQUI' or 'FLOC'. Primary split dimension for asset type.

technicalObject_ssid

3VF_CBMCov (APM)

System ID of the technical object source system.

executionRuleId

3VF_CBMCov (APM)

Rule ID. Join key to Rule master.

RuleDescription

3VF_CBMCov via 2VR_APMRules

Rule name — aliased from Rules.name.

RuleType

3VF_CBMCov via 2VR_APMRules

Rule type — aliased from Rules.type. Values: 'MONITORING', 'DERIVATION', 'AGGREGATION'.

executionState

3VF_CBMCov (APM)

Execution state: 'OK', 'WARN', 'ERROR'.

CBMCoverageStatus

3VF_CBMCov (derived)

Derived status: 'Coverage OK', 'No Indicator Data', 'No Rule Result', 'Error', 'Unknown'. Primary filter dimension for the list report.

indicatorDataAvailable

3VF_CBMCov (APM)

Boolean. True if indicator data was available for the rule execution.

ruleResultAvailable

3VF_CBMCov (APM)

Boolean. True if a rule result was produced.

executionCreatedAt

3VF_CBMCov (APM)

Timestamp of rule execution creation. Basis for latest-execution-per-rule deduplication applied in 3VF.

executionScheduledAt

3VF_CBMCov (APM)

Timestamp of scheduled execution.

MaintenancePlant

3VF_CBMCov via 2VD_Equip

Resolved from Equipment master on technicalObject_number. Null for FLOC-type objects.

errorCode

3VF_CBMCov (APM)

Error code where executionState = ERROR. Null otherwise.

errorText

3VF_CBMCov (APM)

Error long text. Null otherwise.

errorLevel

3VF_CBMCov (APM)

Error level: 'INFO', 'WARN', 'ERROR'. Null otherwise.


Variables

Variable

Required / Optional

Type

Default

Notes

CBM Coverage Status

Optional

Single / Multiple

No default

Filter by CBMCoverageStatus. Primary operational filter — e.g. 'No Indicator Data' to identify gaps.

Rule Type

Optional

Single / Multiple

No default

Filter by RuleType — 'MONITORING', 'DERIVATION', 'AGGREGATION'.

Maintenance Plant

Optional

Multiple single values

No default

MaintenancePlant. Null for FLOC-type objects — confirm handling with business.

Technical Object Type

Optional

Single / Multiple

No default

technicalObject_type — 'EQUI' or 'FLOC'.

Execution State

Optional

Single / Multiple

No default

executionState — 'OK', 'WARN', 'ERROR'.

Execution Date

Optional

Interval

No default

Applied to executionCreatedAt. Supports period-based coverage review.


Notes

Data currency: 4-hour refresh cadence confirmed in ERP-2522 tech review. Driven by APM API polling interval — no real-time requirement.

FLOC MaintenancePlant: FLOC-type technical objects return null MaintenancePlant — the Equipment master join only resolves plant for EQUI-type objects. Confirm with business whether FLOC plant derivation (via I_FunctionalLocation) is required or whether null is acceptable for the list report.

No cross-instance requirement: ERP-2522 is APM-sourced only. No S/4HANA cross-instance (ROW/China) consideration and no DAE/ITAR gate applies to this chain.

Rules chain: If DSP OData v2 connector supports $expand, the 2TL/2FT/2VR_APMHARM_Rules chain and the corresponding LEFT JOIN in 3VF_CBMCov may be eliminated — RuleDescription and RuleType will be present directly on the TechnicalObjects entity. Confirm during build.


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.


Currency Conversions



Appendix


Requirements, KPIs and Analytical Model Mapping

The table below provides a consolidated mapping of all in-scope ERPs, KPIs, CDS source views, and target analytical models.


ERP

KPI / Report

Type

Target AM (Code)

Primary Source CDS / View

Notes

ERP-888

Total Maintenance Cost

Strategic

4MA_A2DAMM_MaintCost

I_MaintOrderActualCostDataCube

Capex/Opex determined by Z-field ZZ1_SYCAP_OPX_PSR on WBS master; budget at PPM item level (Category field). ARV required for asset viability KPI —  G-01.

BARROW-ext, ian Provide reference to z-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 — G-02.

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 — SAC story joins via Equipment dimension.

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).

Sub-metrics: % Task List Usage (TaskListGroup IS NOT NULL), Planned vs Actual Man-Hours (OperationPlannedWork vs ConfirmationTotalQuantity).

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 ScheduledBasicEndDate as a proxy for "what was scheduled" — accepting that rescheduled orders corrupt the measurement.

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

% Rework

Tactical

4MA_A2DAMM_MaintOps

I_MaintOrderOperation_DEX

Change Log R12: Removed — no anticipated use case. Corrective/failure orders available via standard reports. Row retained for traceability.

ERP-1096

Open Emergency Work / Open Time Confirmations / Open Regulatory Work

Operational

4MA_A2DAMM_MaintOps + 4MA_A2DAMM_PMNotif

I_MaintOrderOperation_DEX + I_PMNotifMaintenanceData

Open emergency work orders, open time confirmations and open regulatory work. MaintPriority 0/1 for emergency. % Emergency Work = EmergencyNotificationCount / TotalNotificationCount — from 4MA_PMNotif.

ERP-1098

% Data Compliance

Strategic

4MA_A2DAMM_MOTech

I_MaintOrderTechObjCube

% Data Compliance = Compliant Data Records / Total Data Records * 100. Objects under evaluation not yet confirmed by business.

ERP-1098

Active Preventive Maintenance Strategy

Tactical

4MA_A2DAMM_MaintPlan

I_MaintenancePlan + I_MaintOrderTechObjCube

Collect each asset's active maintenance strategy. MaintPlanIsLockedAgainstCalls = false. Objects/assets under evaluation not yet confirmed. Join via MaintenancePlan key — G-11.

ERP-1098

Asset Information Report

Operational

4MA_A2DAMM_MOTech

I_MaintOrderTechObjCube

Contains all information related to assets including characteristics. Equipment/FuncLoc master data attributes.

ERP-1104

Stock Value Trend

Tactical

4MA_P2FINV_MaterialStock (P2F)

2VR_S4HARM_GoodsMovementDocumentDEX (P2F)

Stock value over time by SLOC/Plant. Reuse 4MA_P2FINV_MaterialStock with MRO filter.

ERP-1104

Stock Outs

Tactical

4MA_P2FINV_MaterialStock (P2F)

2VR_S4HARM_GoodsMovementDocumentDEX (P2F)

# items where stock qty = 0 with open reservations. Derivable from 4MA_P2FINV_MaterialStock with MRO filter.

ERP-1104

Stock Over Max

Tactical

4MA_P2FINV_MaterialStock (P2F) + MRP master

2VR_S4HARM_GoodsMovementDocumentDEX + MM MRP data

% items above max stock level. Max stock level (MRP parameter) not in current P2F objects. Additional source required — G-18.

ERP-1104

Delivery Accuracy

Tactical

TBD

Purchasing / Delivery CDS (TBD)

Goods receipt vs PO delivery date comparison. Not covered by 4MA_P2FINV_MaterialStock. Requires purchasing/delivery CDS — G-17 .

ERP-1104

Cycle Count Accuracy

Tactical

TBD

Physical Inventory CDS (TBD)

Physical inventory count accuracy for MRO/spare parts managed by maintenance team. Not in P2F DDFS objects. May relate to ERP-436 — G-18 .

ERP-1104

Cycle Count Completion YTD

Tactical

TBD

Physical Inventory CDS (TBD)

YTD completion of physical inventory cycles. Same source gap as Cycle Count Accuracy — G-18 .

ERP-1104

Inventory Turnover Analysis

Operational

TBD

Material stock + consumption CDS (TBD)

Stock value turnover rate by material/SLOC over time. Source: combination of 4MA_P2FINV_MaterialStock (P2F) and goods movement/consumption data. Detailed source and model TBD — no standard extractor identified yet.

ERP-1156

Cross-Instance Material Visibility

Operational

4MA_P2FINV_MaterialStock (P2F)

2VR_S4HARM_GoodsMovementDocumentDEX (P2F)

SHARED WITH P2F. Cross-instance (ROW + China). DAE/ITAR review mandatory.



Gaps Register

Items flagged HIGH priority are blockers for functional sign-off and build.


ID

ERP

Gap / Issue

Description

Status

Priority

Comments

G-01

ERP-888

Asset Replacement Value (ARV)

No standard PM CDS coverage. Options: I_FixedAsset (FI-AA), manual input table, SAC planning model (4MP_ARV).

OPEN

High

Removed from requirements

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-03

ERP-888 / ERP-1012

Total Operating Time

Assumption confirmed: Total Operating Time = 365 × 24 = 8,760 hours per asset per year. No SAP source field required. Constant applied in DSP calculated measure or as a fixed input parameter in SAC. No new extractor or DSP object needed.

RESOLVED

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


G-05

ERP-1013

APM Recommendations

Z_apm_tbd not defined. All APM objects placeholders. Contact: Gokhan Yilmazturk.

BLOCKED

High

Removed from ERP-1013

G-06

ERP-1092 / ERP-1093 / ERP-1096

Work Center Capacity

I_WorkCenterCapacity (standard VDM, base tables KAKO/CRHD/CRCA) identified as capacity source. Join key: WorkCenterInternalID — present on I_MaintOrderOperation_DEX and I_MaintOrderTechObjCube. Available hours derived from ProcgCapRequirementFormula / CapacityQuantityUnit fields. New extractor XE_WCCap, inbound object 1TXL_WCCap, harmonisation stream 2VR_WCCap, and propagation view 3VR_WCCap added. Join incorporated into 3VF_MaintOps. Backlog Weeks, Technician Productivity, and % Work Scheduled vs Available Capacity unblocked.

RESOLVED

High


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 ScheduledBasicEndDate as a proxy for "what was scheduled" — accepting that rescheduled orders corrupt the measurement.

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-16

ERP-1013

Total Operating Time for MTBF

Same assumption as G-03. MTBF = (8,760 - Planned Downtime Hours) / Count(Malfunction). Planned Downtime derivable from existing views. Resolved together with G-03.

RESOLVED

High


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


G-24

ERP-888

Age Completion — OperationStartDate / EquipmentEndOfUseDate

Age Completion is required on the Asset Economical Viability report. Fields confirmed on I_Equipment: OperationStartDate (ILOM_DATAB — Start-up date) and EquipmentEndOfUseDate (ENDOFUSE_DATE — End-of-Use date, maps to End of Life concept). Both added to 3VR_CostCube projection via LEFT JOIN to 2VD_S4HARM_Equipment. AgeCompletion % calculated in 4MA_MaintCost as (TODAY - OperationStartDate) / (EquipmentEndOfUseDate - OperationStartDate) * 100. RemainingLife % = (EquipmentEndOfUseDate - TODAY) / (EquipmentEndOfUseDate - OperationStartDate) * 100.

RESOLVED

Medium

Fields confirmed on I_Equipment from field catalogue.




apps-fileview.texmex_20260329.08_p2 h1Document Linksh1.txt Displaying h1Document Linksh1.txt.