@AbapCatalog.sqlViewName: 'INOTIFITEMDATA'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Maintenance Notification Item Data'
@VDM.viewType: #COMPOSITE
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.representativeKey: 'MaintenanceNotificationItem'
@Metadata.ignorePropagatedAnnotations: true
@Analytics: {
dataCategory: #FACT,
dataExtraction: {
enabled: true,
delta.byElement: {
name: 'LastChangeDateTime'
}
}
}
@ObjectModel: {
usageType: {
dataClass: #TRANSACTIONAL,
serviceQuality: #C,
sizeCategory: #L
}
}
@AccessControl.personalData.blocking: #NOT_REQUIRED
@ObjectModel.supportedCapabilities:[ #EXTRACTION_DATA_SOURCE]
// created as a replacement for BW extractor 2LIS_17_I0ITEM and 2LIS_18_I0ITEM
// with this CDS view only partial details of CS notification would be visible, CS is only in compatibility mode and no further details would be made available
define view I_MaintNotificationItemData
as select from I_MaintNotifItemTechObj
-- Extensions, do not expose as association:
association [0..1] to E_PMNotifMaintenanceData as _NotifMaintenanceDataExtension on _NotifMaintenanceDataExtension.MaintenanceNotification = $projection.MaintenanceNotification
{
@ObjectModel.text.element: [ 'MaintNotifItemText' ]
key MaintenanceNotificationItem,
@ObjectModel.foreignKey.association: '_MaintenanceNotification'
key MaintenanceNotification,
@Semantics.text: true
MaintNotifItemText,
@ObjectModel.foreignKey.association: '_MaintNotifDamageCodeCatalog'
MaintNotifDamageCodeCatalog,
@ObjectModel.foreignKey.association: '_MaintNotificationDamageCode'
MaintNotificationDamageCode,
@ObjectModel.foreignKey.association: '_MaintNotifDamageCodeGroup'
MaintNotifDamageCodeGroup,
@ObjectModel.foreignKey.association: '_IsDeleted'
IsDeleted,
@ObjectModel.foreignKey.association: '_MaintNotifObjPrtCode'
MaintNotifObjPrtCode,
@ObjectModel.foreignKey.association: '_MaintNotifObjPrtCodeGroup'
MaintNotifObjPrtCodeGroup,
@ObjectModel.foreignKey.association: '_MaintNotifObjPrtCodeCatalog'
MaintNotifObjPrtCodeCatalog,
@ObjectModel.foreignKey.association: '_DefectClass'
DefectClass,
@ObjectModel.foreignKey.association: '_Assembly'
Assembly,
@Semantics.systemDateTime.lastChangedAt: true
LastChangeDateTime,
@ObjectModel.foreignKey.association: '_AssemblyHeader'
_MaintenanceNotification._PMNotifMaintenanceData.Assembly as AssemblyHeader,
@ObjectModel.foreignKey.association: '_Equipment'
_MaintenanceNotification._PMNotifMaintenanceData.Equipment,
@ObjectModel.foreignKey.association: '_FunctionalLocation'
_MaintenanceNotification._PMNotifMaintenanceData._LocationAccountAssignment.FunctionalLocation,
@ObjectModel.foreignKey.association: '_MaintenancePlanningPlant'
_MaintenanceNotification._PMNotifMaintenanceData.MaintenancePlanningPlant,
@ObjectModel.foreignKey.association: '_MaintenancePlannerGroup'
_MaintenanceNotification._PMNotifMaintenanceData.MaintenancePlannerGroup,
@ObjectModel.foreignKey.association: '_MaintenancePlant'
_MaintenanceNotification._PMNotifMaintenanceData._LocationAccountAssignment.MaintenancePlant,
@ObjectModel.foreignKey.association: '_ControllingArea'
_MaintenanceNotification._PMNotifMaintenanceData._LocationAccountAssignment.ControllingArea,
@ObjectModel.foreignKey.association: '_CostCenter'
_MaintenanceNotification._PMNotifMaintenanceData._LocationAccountAssignment.CostCenter,
_MaintenanceNotification.NotificationOrigin,
@ObjectModel.foreignKey.association: '_PMNotificationType'
_MaintenanceNotification.NotificationType,
_MaintenanceNotification.NotificationCreationDate,
//LinearAssetManagementData
cast( cast( _LinearAssetManagementData.LinearDataStartPoint as abap.dec(11, 3) ) as eaml_start_point ) as LinearDataStartPoint,
cast( cast( _LinearAssetManagementData.LinearDataEndPoint as abap.dec(11, 3) ) as eaml_end_point ) as LinearDataEndPoint,
@Semantics.quantity.unitOfMeasure: 'LinearDataUnitOfMeasure'
_LinearAssetManagementData.LinearDataLength,
@Semantics.unitOfMeasure: true
_LinearAssetManagementData.LinearDataUnitOfMeasure,
//Problem Frequency
@DefaultAggregation: #SUM
cast( case when NumberOfDefects != 0 then NumberOfDefects
else 1 end as qzhlprobl preserving type ) as NumberOfDefects,
_Assembly,
_IsDeleted,
_MaintenanceNotification,
_MaintNotifDamageCodeCatalog,
_MaintNotificationDamageCode,
_MaintNotifDamageCodeGroup,
_DefectClass,
_MaintNotifObjPrtCode,
_MaintNotifObjPrtCodeGroup,
_MaintNotifObjPrtCodeCatalog,
_MaintenanceNotification._PMNotificationType,
_MaintenanceNotification._PMNotifMaintenanceData._Assembly as _AssemblyHeader,
_MaintenanceNotification._PMNotifMaintenanceData._Equipment,
_MaintenanceNotification._PMNotifMaintenanceData._MaintenancePlanningPlant,
_MaintenanceNotification._PMNotifMaintenanceData._MaintenancePlannerGroup,
_MaintenanceNotification._PMNotifMaintenanceData._LocationAccountAssignment._FunctionalLocation,
_MaintenanceNotification._PMNotifMaintenanceData._LocationAccountAssignment._MaintenancePlant,
_MaintenanceNotification._PMNotifMaintenanceData._LocationAccountAssignment._ControllingArea,
_MaintenanceNotification._PMNotifMaintenanceData._LocationAccountAssignment._CostCenter
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_LINEARASSETMANAGEMENTDATA",
"I_LOCATIONACCOUNTASSIGNMENT",
"I_MAINTENANCENOTIFICATION",
"I_MAINTNOTIFITEMTECHOBJ",
"I_PMNOTIFMAINTENANCEDATA"
],
"ASSOCIATED":
[
"E_PMNOTIFMAINTENANCEDATA",
"I_CONTROLLINGAREA",
"I_COSTCENTER",
"I_DEFECTCLASS",
"I_EQUIPMENT",
"I_FUNCTIONALLOCATION",
"I_INDICATOR",
"I_INSPECTIONCATALOG",
"I_INSPECTIONCODE",
"I_INSPECTIONCODEGROUP",
"I_MAINTENANCENOTIFICATION",
"I_MAINTENANCEPLANNERGROUP",
"I_MATERIAL",
"I_PLANT",
"I_PMNOTIFICATIONTYPE"
],
"BASE":
[
"I_LOCATIONACCOUNTASSIGNMENT",
"I_MAINTENANCENOTIFICATION",
"I_MAINTNOTIFITEMTECHOBJ",
"I_PMNOTIFMAINTENANCEDATA"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/