I_MAINTNOTIFICATIONTECHOBJ
Technical Object for Maintenance Notification
I_MAINTNOTIFICATIONTECHOBJ is a CDS View in S/4HANA. Technical Object for Maintenance Notification. It contains 70 fields. 14 CDS views read from this table.
CDS Views using this table (14)
| View | Type | Join | VDM | Description |
|---|---|---|---|---|
| C_MaintNotificationQuickVw | view | from | CONSUMPTION | Quick View for Maintenance Notification |
| C_MaintNotificationTechObjTP | view | from | CONSUMPTION | Maintenance Notification Tech Object |
| C_Malfunctionreport | view | from | CONSUMPTION | Repair Malfunction Job List |
| I_LocationAnalysisCube | view | from | COMPOSITE | Location Analysis - Cube |
| I_MaintNotifDtaSrceOrdRecmdn | view_entity | from | COMPOSITE | Notifi Source data for Maintorder Recmdn |
| I_MaintNotificationChgHistory | view | inner | COMPOSITE | Maint. Notification Change History |
| I_MaintNotificationTP | view | from | TRANSACTIONAL | Maintenance Notification Tech. Object |
| I_NumberOfOpnNotifByTechObj | view | from | COMPOSITE | Number of Open Notifications by Technical Object |
| P_MaintNotifForScreeningC | view | from | COMPOSITE | |
| P_OpenMaintNotifForEquipment | view | from | COMPOSITE | Number of Open Notifs by Equipment |
| P_OpenMaintNotifForFuncnlLoc | view | from | COMPOSITE | Number of Open Notifs by functional loc |
| R_MaintenanceNotificationTP | view_entity | from | TRANSACTIONAL | Maintenance Notification Tech Object |
| R_MaintenanceWorkRequestTP | view_entity | from | TRANSACTIONAL | Maintenance Work Request |
| R_MaintNotificationPartnerTP | view_entity | from | TRANSACTIONAL | Maintenance Notification Partner |
Fields (70)
| Key | Field | CDS Fields | Used in Views |
|---|---|---|---|
| KEY | MaintenanceNotification | MaintenanceNotification,MaintNotificationForEdit | 7 |
| KEY | TechnicalObject | ActiveTechnicalObject,TechnicalObject | 5 |
| KEY | TechObjIsEquipOrFuncnlLoc | ActiveTechnicalObjectType,TechObjIsEquipOrFuncnlLoc | 6 |
| _IsDeleted | _IsDeleted | 1 | |
| _MaintenanceOrder | _MaintenanceOrder | 1 | |
| _MaintNotificationCode | _MaintNotificationCode | 1 | |
| _MaintNotificationCodeGroup | _MaintNotificationCodeGroup | 1 | |
| _PMNotificationPhase | _PMNotificationPhase | 1 | |
| _PMNotificationPriority | _PMNotificationPriority | 2 | |
| _PMNotificationPriorityType | _PMNotificationPriorityType | 1 | |
| _PMNotificationType | _PMNotificationType | 1 | |
| _TechObjIsEquipOrFuncnlLoc | _TechObjIsEquipOrFuncnlLoc | 1 | |
| CatalogProfile | CatalogProfile | 2 | |
| CompletionTime | CompletionTime | 3 | |
| CreatedByUser | CreatedByUser | 5 | |
| CreationDate | CreationDate | 4 | |
| CreationDateTime | CreationDateTime | 1 | |
| CreationTime | CreationTime | 3 | |
| Equipment | Equipment | 5 | |
| FunctionalLocation | FunctionalLocation | 4 | |
| InspectionLot | InspectionLot | 1 | |
| IsCompleted | IsCompleted | 1 | |
| IsDeleted | IsDeleted | 2 | |
| LastChangeDate | LastChangeDate | 3 | |
| LastChangeDateTime | LastChangeDateTime | 3 | |
| LastChangedByUser | LastChangedByUser | 3 | |
| LastChangeTime | LastChangeTime | 2 | |
| LatestAcceptableCompletionDate | LatestAcceptableCompletionDate | 1 | |
| LocationDescription | LocationDescription | 2 | |
| MaintenanceActivityType | MaintenanceActivityType | 2 | |
| MaintenanceItem | MaintenancePlanItemIntID | 1 | |
| MaintenanceObjectIsDown | MaintenanceObjectIsDown | 2 | |
| MaintenanceOrder | MaintenanceOrder | 4 | |
| MaintenancePlan | MaintenancePlan | 1 | |
| MaintenanceWorkCenterPlant | MaintenanceWorkCenterPlant,MainWorkCenterPlant | 3 | |
| MaintNotifDowntimeDuration | MaintNotifDowntimeDuration | 1 | |
| MaintNotifExtReferenceNumber | MaintNotifExtReferenceNumber | 1 | |
| MaintNotificationCatalog | MaintNotificationCatalog | 3 | |
| MaintNotificationCode | MaintNotificationCode | 3 | |
| MaintNotificationCodeGroup | MaintNotificationCodeGroup | 2 | |
| MaintNotifInternalID | MaintNotifInternalID | 5 | |
| MaintObjDowntimeDurationUnit | MaintObjDowntimeDurationUnit | 2 | |
| MaintObjectDowntimeDuration | MaintObjectDowntimeDuration | 1 | |
| MaintPriority | MaintPriority | 6 | |
| MaintPriorityType | MaintPriorityType | 6 | |
| MalfunctionEffect | MalfunctionEffect | 4 | |
| MalfunctionEndDate | MalfunctionEndDate | 4 | |
| MalfunctionEndTime | MalfunctionEndTime | 4 | |
| MalfunctionStartDate | MalfunctionStartDate | 4 | |
| MalfunctionStartTime | MalfunctionStartTime | 4 | |
| NotificationCompletionDate | NotificationCompletionDate | 3 | |
| NotificationCreationDate | NotificationCreationDate | 5 | |
| NotificationCreationTime | NotificationCreationTime | 5 | |
| NotificationHasLongText | NotificationHasLongText | 1 | |
| NotificationOrigin | NotificationOrigin | 1 | |
| NotificationReferenceDate | NotificationReferenceDate | 3 | |
| NotificationReferenceTime | NotificationReferenceTime | 2 | |
| NotificationText | NotificationText | 5 | |
| NotificationTimeZone | NotificationTimeZone | 4 | |
| NotificationType | NotificationType | 6 | |
| NotifProcessingPhase | NotifProcessingPhase | 5 | |
| PersonResponsible | PersonResponsible | 3 | |
| ReportedByUser | ReportedByUser | 4 | |
| ReporterFullName | ReporterFullName | 4 | |
| RequiredEndDate | RequiredEndDate | 3 | |
| RequiredEndTime | RequiredEndTime | 3 | |
| RequiredStartDate | ReferenceDate,RequiredStartDate | 4 | |
| RequiredStartTime | RequiredStartTime | 3 | |
| WorkCenterInternalID | WorkCenterInternalID | 3 | |
| WorkCenterTypeCode | WorkCenterTypeCode | 2 |
@EndUserText.label: 'Technical Object for Maintenance Notification'
--@Analytics: { dataCategory: #DIMENSION }
@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@AbapCatalog.sqlViewName: 'IMAINTNTFTECOBJ'
@AbapCatalog.preserveKey: true
@AbapCatalog.compiler.compareFilter: true
@ObjectModel.representativeKey: 'MaintenanceNotification'
@ObjectModel.semanticKey: [ 'MaintenanceNotification' ]
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XL
// Basic view on top of Maintenance Notification which also links to the assigned Technical Object
// QMEL, QMIH, ILOA
@ObjectModel.entityChangeStateId: 'LastChangeDateTime'
define view I_MaintNotificationTechObj
as select from I_MaintenanceNotification
association [0..1] to I_TechnicalObject as _TechnicalObject on _TechnicalObject.TechnicalObject = $projection.TechnicalObject
and _TechnicalObject.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
association [0..1] to I_TechObjIsEquipOrFuncnlLoc as _TechObjIsEquipOrFuncnlLoc on _TechObjIsEquipOrFuncnlLoc.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
association [0..*] to I_MaintNotifItemTechObj as _MaintenanceNotificationItem on _MaintenanceNotificationItem.MaintenanceNotification = $projection.MaintenanceNotification
association [0..*] to I_MaintNotifActivityTechObj as _MaintNotificationActivity on _MaintNotificationActivity.MaintenanceNotification = $projection.MaintenanceNotification
association [0..*] to I_MaintNotifTaskTechObj as _MaintenanceNotificationTask on _MaintenanceNotificationTask.MaintenanceNotification = $projection.MaintenanceNotification
association [0..1] to I_MaintNotifLongText as _MaintNotifLongText on _MaintNotifLongText.MaintenanceNotification = $projection.MaintenanceNotification
association [0..1] to I_MaintenanceItemTechObj as _MaintenanceItemTechObj on _MaintenanceItemTechObj.MaintenanceItem = $projection.maintenanceitem
association [0..1] to I_PMContactCardUser as _PMContactCardUser on _PMContactCardUser.UserID = $projection.ReportedByUser
association [0..1] to I_WorkforcePerson as _MaintNotifPersonResponsible on _MaintNotifPersonResponsible.PersonExternalID = $projection.PersonResponsible
association [0..1] to I_FunctionalLocationLabel as _FunctionalLocationLabel on _FunctionalLocationLabel.FunctionalLocation = $projection.functionallocation
association [1..1] to I_NotificationType as _NotificationType on $projection.NotificationType = _NotificationType.NotificationType
association [0..1] to I_UserDescription as _UserDescription on _UserDescription.UserID = $projection.ReportedByUser
association [0..1] to I_OrdMstrData as _MaintOrdMstrData on _MaintOrdMstrData.OrderID = $projection.MaintenanceOrder
association [0..1] to I_MaintNotifEffectCode as _MaintNotificationEffectCode on $projection.MaintenanceNotification = _MaintNotificationEffectCode.MaintenanceNotification
and _MaintNotificationEffectCode.MaintenanceNotificationEffect = '0001'
{
@ObjectModel.text.element: [ 'NotificationText' ]
key I_MaintenanceNotification.MaintenanceNotification,
@ObjectModel.foreignKey.association: '_TechnicalObject'
case when I_MaintenanceNotification._PMNotifMaintenanceData.Equipment != '' then
cast( I_MaintenanceNotification._PMNotifMaintenanceData.Equipment as eams_tec_obj )
when I_MaintenanceNotification._PMNotifMaintenanceData.Equipment = '' and
I_MaintenanceNotification._PMNotifMaintenanceData._LocationAccountAssignment.FunctionalLocation != '' then
cast( I_MaintenanceNotification._PMNotifMaintenanceData._LocationAccountAssignment.FunctionalLocation as eams_tec_obj)
end as TechnicalObject,
@ObjectModel.foreignKey.association: '_TechObjIsEquipOrFuncnlLoc'
@UI.textArrangement: #TEXT_ONLY
case when I_MaintenanceNotification._PMNotifMaintenanceData.Equipment != '' then
cast ( 'EAMS_EQUI' as eams_tec_obj_type_value)
when I_MaintenanceNotification._PMNotifMaintenanceData.Equipment = '' and
I_MaintenanceNotification._PMNotifMaintenanceData._LocationAccountAssignment.FunctionalLocation != '' then
cast ( 'EAMS_FL' as eams_tec_obj_type_value)
end as TechObjIsEquipOrFuncnlLoc,
@ObjectModel.foreignKey.association: '_PMNotificationPriority'
I_MaintenanceNotification.MaintPriority,
@ObjectModel.foreignKey.association: '_PMNotificationPriorityType'
I_MaintenanceNotification.MaintPriorityType,
@ObjectModel.foreignKey.association: '_PMNotificationType'
I_MaintenanceNotification.NotificationType,
@ObjectModel.foreignKey.association: '_PMNotificationPhase'
I_MaintenanceNotification.NotifProcessingPhase,
@Semantics.user.createdBy: true
I_MaintenanceNotification.CreatedByUser,
@Semantics.user.lastChangedBy: true
I_MaintenanceNotification.LastChangedByUser,
case _PMNotifMaintenanceData.MaintenanceTaskListType
when '' then ''
else concat(
concat(
concat(
concat(_PMNotifMaintenanceData.MaintenanceTaskListType,'/'),
ltrim(_PMNotifMaintenanceData.TaskListGroup,'0')
),'/'
), ltrim( _PMNotifMaintenanceData.TaskListGroupCounter,'0')
) end as TaskList,
case LastChangeTime when '240000'
then dats_add_days(I_MaintenanceNotification.LastChangeDate,1,'NULL')
else I_MaintenanceNotification.LastChangeDate
end as LastChangeDate, //Last Change Date
@Semantics.time: true
case LastChangeTime when '240000'
then '000000'
else I_MaintenanceNotification.LastChangeTime
end as LastChangeTime, //Last Change Time
case CreationTime when '240000'
then dats_add_days(I_MaintenanceNotification.CreationDate,1,'NULL')
else I_MaintenanceNotification.CreationDate
end as CreationDate, //Creation Date
@Semantics.time: true
case CreationTime when '240000'
then '000000'
else I_MaintenanceNotification.CreationTime
end as CreationTime, //Creation Time
@Semantics.systemDateTime.lastChangedAt: true
I_MaintenanceNotification.LastChangeDateTime,
I_MaintenanceNotification.CreationDateTime,
I_MaintenanceNotification.ReportedByUser,
_PMNotifMaintenanceData.NotificationPersonResponsible as PersonResponsible,
case when _UserDescription.UserDescription is not null and _UserDescription.UserDescription != '' then cast ( _UserDescription.UserDescription as ad_namtext )
when _UserDescription.UserID is not null and _UserDescription.UserID != '' then _UserDescription.UserID
when ReportedByUser is not null and ReportedByUser != '' then ReportedByUser end as ReporterFullName,
@Semantics.text: true
I_MaintenanceNotification.NotificationText,
@ObjectModel.foreignKey.association: '_MaintenanceOrder'
I_MaintenanceNotification.MaintenanceOrder,
case RequiredStartTime when '240000'
then dats_add_days(I_MaintenanceNotification.RequiredStartDate,1,'NULL')
else I_MaintenanceNotification.RequiredStartDate
end as RequiredStartDate, //Required Start Date
@Semantics.time: true
case RequiredStartTime when '240000'
then '000000'
else I_MaintenanceNotification.RequiredStartTime
end as RequiredStartTime, // Required Start Time
case RequiredEndTime when '240000'
then dats_add_days(I_MaintenanceNotification.RequiredEndDate,1,'NULL')
else I_MaintenanceNotification.RequiredEndDate
end as RequiredEndDate, //Required End Date
@Semantics.time: true
case RequiredEndTime when '240000'
then '000000'
else I_MaintenanceNotification.RequiredEndTime
end as RequiredEndTime, //Required End Time
case NotificationReferenceTime when '240000'
then dats_add_days(I_MaintenanceNotification.NotificationReferenceDate,1,'NULL')
else I_MaintenanceNotification.NotificationReferenceDate
end as NotificationReferenceDate, //Reference Date
@Semantics.time: true
case NotificationReferenceTime when '240000'
then '000000'
else I_MaintenanceNotification.NotificationReferenceTime
end as NotificationReferenceTime, //Reference Time
case NotificationCompletionTime when '240000'
then dats_add_days(I_MaintenanceNotification.NotificationCompletionDate,1,'NULL')
else I_MaintenanceNotification.NotificationCompletionDate
end as NotificationCompletionDate, //Completion Date
@Semantics.time: true
case NotificationCompletionTime when '240000'
then '000000'
else I_MaintenanceNotification.NotificationCompletionTime
end as CompletionTime, //Completion Time
case NotificationCreationTime when '240000'
then dats_add_days(I_MaintenanceNotification.NotificationCreationDate,1,'NULL')
else I_MaintenanceNotification.NotificationCreationDate
end as NotificationCreationDate, // Notification Creation Date
@Semantics.time: true
case NotificationCreationTime when '240000'
then '000000'
else I_MaintenanceNotification.NotificationCreationTime
end as NotificationCreationTime, //Notification Creation Time
I_MaintenanceNotification.MaintNotifInternalID,
I_MaintenanceNotification.NotificationTimeZone,
@ObjectModel.foreignKey.association: '_MainWorkCenter'
I_MaintenanceNotification.WorkCenterInternalID,
@ObjectModel.foreignKey.association: '_WorkCenterType'
I_MaintenanceNotification.WorkCenterTypeCode,
@ObjectModel.foreignKey.association: '_MaintenanceWorkCenterPlant'
I_MaintenanceNotification.MaintenanceWorkCenterPlant,
@ObjectModel.foreignKey.association: '_MaintNotificationCatalog'
I_MaintenanceNotification.MaintNotificationCatalog,
@ObjectModel.foreignKey.association: '_MaintNotificationCode'
I_MaintenanceNotification.MaintNotificationCode,
@ObjectModel.foreignKey.association: '_MaintNotificationCodeGroup'
I_MaintenanceNotification.MaintNotificationCodeGroup,
@ObjectModel.foreignKey.association: '_IsDeleted'
I_MaintenanceNotification.IsDeleted,
@ObjectModel.foreignKey.association: '_IsCompleted'
I_MaintenanceNotification.IsCompleted,
I_MaintenanceNotification.CatalogProfile,
I_MaintenanceNotification.NotificationOrigin,
I_MaintenanceNotification.InspectionLot,
_PMNotifMaintenanceData.MaintenanceTaskListType as MaintenanceTaskListType,
_PMNotifMaintenanceData.TaskListGroup as TaskListGroup,
_PMNotifMaintenanceData.TaskListGroupCounter as TaskListGroupCounter,
//payal
// QMIH fields
@ObjectModel.foreignKey.association: '_MalfunctionEffect'
I_MaintenanceNotification._PMNotifMaintenanceData.MalfunctionEffect,
I_MaintenanceNotification._PMNotifMaintenanceData.LocationDescription,
case I_MaintenanceNotification._PMNotifMaintenanceData.MalfunctionStartTime when '240000'
then dats_add_days(I_MaintenanceNotification._PMNotifMaintenanceData.MalfunctionStartDate,1,'NULL')
else I_MaintenanceNotification._PMNotifMaintenanceData.MalfunctionStartDate
end as MalfunctionStartDate, //Malfunction Start Date
@Semantics.time: true
case I_MaintenanceNotification._PMNotifMaintenanceData.MalfunctionStartTime when '240000'
then '000000'
else I_MaintenanceNotification._PMNotifMaintenanceData.MalfunctionStartTime
end as MalfunctionStartTime, //Malfunction Start Time
case I_MaintenanceNotification._PMNotifMaintenanceData.MalfunctionEndTime when '240000'
then dats_add_days(I_MaintenanceNotification._PMNotifMaintenanceData.MalfunctionEndDate,1,'NULL')
else I_MaintenanceNotification._PMNotifMaintenanceData.MalfunctionEndDate
end as MalfunctionEndDate, //Malfunction End Date
@Semantics.time: true
case I_MaintenanceNotification._PMNotifMaintenanceData.MalfunctionEndTime when '240000'
then '000000'
else I_MaintenanceNotification._PMNotifMaintenanceData.MalfunctionEndTime
end as MalfunctionEndTime, //Malfunction End Time
I_MaintenanceNotification._PMNotifMaintenanceData.MaintenanceObjectIsDown,
I_MaintenanceNotification._PMNotifMaintenanceData.MaintObjectDowntimeDuration,
I_MaintenanceNotification._PMNotifMaintenanceData.MaintObjDowntimeDurationUnit,
@ObjectModel.foreignKey.association: '_FunctionalLocation'
I_MaintenanceNotification._PMNotifMaintenanceData._LocationAccountAssignment.FunctionalLocation,
@ObjectModel.foreignKey.association: '_Equipment'
I_MaintenanceNotification._PMNotifMaintenanceData.Equipment,
@ObjectModel.foreignKey.association: '_MaintenanceItemTechObj'
I_MaintenanceNotification._PMNotifMaintenanceData.MaintenanceItem,
I_MaintenanceNotification._PMNotifMaintenanceData.MaintenancePlan,
I_MaintenanceNotification._PMNotifMaintenanceData.MaintenanceActivityType,
cast('' as pm_source_appl) as MaintNotifSourceApplication, // transient for now
NotificationHasLongText,
// IME: 2002 LACD
I_MaintenanceNotification._PMNotifMaintenanceData.LatestAcceptableCompletionDate,
I_MaintenanceNotification._PMNotifMaintenanceData.PreviousFinalDueDate,
// IME: 2002 LACD
I_MaintenanceNotification.MaintNotifExtReferenceNumber,
I_MaintenanceNotification._PMNotifMaintenanceData.MaintObjectLocAcctAssgmtNmbr,
cast( round( unit_conversion(
quantity => I_MaintenanceNotification._PMNotifMaintenanceData.MaintObjectDowntimeDuration,
source_unit => cast('S' as maueh),
target_unit => I_MaintenanceNotification._PMNotifMaintenanceData.MaintObjDowntimeDurationUnit,
error_handling=> 'SET_TO_NULL'
) , 2) as eauszt ) as MaintNotifDowntimeDuration,
I_MaintenanceNotification._PMNotifMaintenanceData.MaintenanceRevision,
/* Associations */
I_MaintenanceNotification._CreatedByUser,
I_MaintenanceNotification._IsCompleted,
I_MaintenanceNotification._IsDeleted,
I_MaintenanceNotification._StatusObject,
I_MaintenanceNotification._LastChangedByUser,
_MaintenanceNotificationItem, // #COMPOSITE
I_MaintenanceNotification._MaintenanceOrder,
I_MaintenanceNotification._MaintenanceWorkCenterPlant,
_MaintNotificationActivity, // #COMPOSITE
_MaintenanceNotificationTask, // #COMPOSITE
I_MaintenanceNotification._MaintNotificationCatalog,
I_MaintenanceNotification._MaintNotificationCode,
I_MaintenanceNotification._MaintNotificationCodeGroup,
I_MaintenanceNotification._MainWorkCenter,
I_MaintenanceNotification._PMNotificationPhase,
I_MaintenanceNotification._PMNotificationPriority,
I_MaintenanceNotification._PMNotificationPriorityType,
I_MaintenanceNotification._PMNotificationType,
I_MaintenanceNotification._PMNotifMaintenanceData,
I_MaintenanceNotification._ReportedByUser,
I_MaintenanceNotification._MaintenancePartner,
_MaintNotifLongText, // #COMPOSITE
_TechnicalObject,
_TechObjIsEquipOrFuncnlLoc,
_MaintenanceItemTechObj,
// _TaskListSimplDesc,
I_MaintenanceNotification._PMNotifMaintenanceData._MalfunctionEffect,
_FunctionalLocationLabel,
I_MaintenanceNotification._PMNotifMaintenanceData._LocationAccountAssignment._FunctionalLocation,
I_MaintenanceNotification._PMNotifMaintenanceData._Equipment,
_PMContactCardUser,
I_MaintenanceNotification._WorkCenterType,
I_MaintenanceNotification._StatusObjectActiveStatus,
_NotificationHasLongText,
_LinearAssetManagementData,
_MaintNotifPersonResponsible,
I_MaintenanceNotification._PMNotifMaintenanceData._LocationAccountAssignment,
_NotificationType,
_MaintOrdMstrData,
_MaintNotificationEffectCode
}