C_ObjPgMaintNotification

DDL: C_OBJPGMAINTNOTIFICATION SQL: COBJPGMAINTNOTIF Type: view CONSUMPTION

Maintenance Notification

C_ObjPgMaintNotification is a Consumption CDS View that provides data about "Maintenance Notification" in SAP S/4HANA. It reads from 1 data source (I_MaintNotificationTP) and exposes 25 fields with key field MaintenanceNotification. It has 51 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_MaintNotificationTP _MaintNotificationTP from

Associations (51)

CardinalityTargetAliasCondition
[0..*] C_ObjPgMaintNotifActivity _ObjPgMaintNotifActivity _ObjPgMaintNotifActivity.MaintenanceNotification = $projection.MaintenanceNotification and _ObjPgMaintNotifActivity.MaintenanceNotificationItem = '0000'
[0..*] C_ObjPgMaintNotificationTask _ObjPgMaintNotificationTask _ObjPgMaintNotificationTask.MaintenanceNotification = $projection.MaintenanceNotification and _ObjPgMaintNotificationTask.MaintenanceNotificationItem = '0000' and _ObjPgMaintNotificationTask.IsDeleted = ''
[0..1] I_TextObjectPlainLongText _TextObjectPlainLongText _TextObjectPlainLongText.TextObjectKey = $projection.MaintenanceNotification and _TextObjectPlainLongText.TextObjectType = 'LTXT' and _TextObjectPlainLongText.TextObjectCategory = 'QMEL' and _TextObjectPlainLongText.Language = $session.system_language
[0..*] C_MaintNotificationChgHistory _MaintNotificationChgHistory $projection.MaintNotifWithLeadingZeros = _MaintNotificationChgHistory.ChangeDocObject
[0..*] C_ObjPgMaintNotificationItem _ObjPgMaintNotificationItem _ObjPgMaintNotificationItem.MaintenanceNotification = $projection.MaintenanceNotification
[1..1] C_MaintNotificationTypeVH _MaintNotificationTypeVH _MaintNotificationTypeVH.NotificationType = $projection.NotificationType
[0..1] I_WorkCenterBySemanticKey _WorkCenterBySemanticKey _WorkCenterBySemanticKey.WorkCenter = $projection.MainWorkCenter and _WorkCenterBySemanticKey.Plant = $projection.MainWorkCenterPlant
[1..1] I_MaintenanceNotification _MaintenanceNotification _MaintenanceNotification.MaintenanceNotification = $projection.MaintenanceNotification
[0..1] C_MaintNotificationItemCount _MaintNotificationItemCount _MaintNotificationItemCount.MaintenanceNotification = $projection.MaintenanceNotification
[0..1] C_MaintNotificationTaskCount _MaintNotificationTaskCount _MaintNotificationTaskCount.MaintenanceNotification = $projection.MaintenanceNotification and _MaintNotificationTaskCount.MaintenanceNotificationItem = '0000'
[0..1] C_MaintNotifActivityCount _MaintNotifActivityCount _MaintNotifActivityCount.MaintenanceNotification = $projection.MaintenanceNotification and _MaintNotifActivityCount.MaintenanceNotificationItem = '0000'
[0..1] C_TechnicalObjectLabelVH _MaintenancePlanTechObj _MaintenancePlanTechObj.TechnicalObjectLabel = $projection.MaintPlanTechnicalObjectLabel and _MaintenancePlanTechObj.TechObjIsEquipOrFuncnlLoc = $projection.MaintPlanTechObjIsEquipment and _MaintenancePlanTechObj.TechnicalObject = $projection.MaintenancePlanTechnicalObject
[0..1] C_TechnicalObjectLabelVH _TechnicalObjectLabelVH _TechnicalObjectLabelVH.TechnicalObjectLabel = $projection.TechnicalObjectLabel and _TechnicalObjectLabelVH.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc and _TechnicalObjectLabelVH.TechnicalObject = $projection.TechnicalObject
[0..1] I_TechObjIsEquipOrFuncnlLoc _MaintPlanTechObjIsEquipment _MaintPlanTechObjIsEquipment.TechObjIsEquipOrFuncnlLoc = $projection.MaintPlanTechObjIsEquipment
[0..1] C_MaintenanceNotificationVH _MaintenanceNotificationVH _MaintenanceNotificationVH.MaintenanceNotification = $projection.MaintenanceNotification
[0..1] I_PMContactCardUser _CreatedByUser _CreatedByUser.UserID = $projection.CreatedByUser
[0..1] I_PMContactCardEmployee _InspectedByUser _InspectedByUser.PersonnelNumber = $projection.inspectedbyuser
[0..1] I_PMContactCardEmployee _PlantSectionResponsible _PlantSectionResponsible.PersonnelNumber = $projection.plantsectionpersonrespname
[0..1] I_PMContactCardEmployee _PersonResponsible _PersonResponsible.PersonnelNumber = $projection.PersonResponsible
[0..1] I_WorkforcePerson _MaintNotifPersonResponsible _MaintNotifPersonResponsible.PersonExternalID = $projection.PersonResponsible_H
[0..1] I_NumberOfOpnNotifByTechObj _NumberOfOpnNotifByTechObj _NumberOfOpnNotifByTechObj.TechnicalObject = $projection.TechnicalObject and _NumberOfOpnNotifByTechObj.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
[0..1] P_OpenMaintNotifForEquipment _OPENMAINTNOTIFFOREQUIPMENT _OPENMAINTNOTIFFOREQUIPMENT.Equipment = $projection.Equipment
[0..1] P_OpenMaintNotifForFuncnlLoc _OPENMAINTNOTIFFORFUNCNLLOC _OPENMAINTNOTIFFORFUNCNLLOC.FunctionalLocation = $projection.FunctionalLocation
[0..1] I_PMContactCardUser _ReportedByUser _ReportedByUser.UserID = $projection.ReportedByUser
[0..1] I_MaintNotifAssignOrderInput _MaintNotifAssignOrderInput _MaintNotifAssignOrderInput.MaintenanceNotification = $projection.MaintenanceNotification
[0..1] C_PMAssetLocationVH _AssetLocationVH _AssetLocationVH.Location = $projection.assetlocation and _AssetLocationVH.Plant = $projection.maintenanceplant
[0..1] I_MaintenanceRevisionStdVH _MaintenanceRevisionVH _MaintenanceRevisionVH.MaintenancePlanningPlant = $projection.maintenanceplanningplant and _MaintenanceRevisionVH.MaintenanceRevision = $projection.maintenancerevision
[0..1] C_TechObjQuickVw _TechnicalObjQuickVw _TechnicalObjQuickVw.TechnicalObject = $projection.TechnicalObject and _TechnicalObjQuickVw.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc and _TechnicalObjQuickVw.TechnicalObjectLabel = $projection.TechnicalObjectLabel
[0..1] C_MaintOrderQuickVw _MaintenanceOrderQuickView _MaintenanceOrderQuickView.MaintenanceOrder = $projection.MaintenanceOrder
[0..1] C_MaintPrioSmltdDates _MaintPrioSmltdDates _MaintPrioSmltdDates.MaintPriority = $projection.MaintPriority and _MaintPrioSmltdDates.MaintPriorityType = $projection.MaintPriorityType
[0..1] C_MaintenancePlanQuickVw _MaintenancePlanQuickVw _MaintenancePlanQuickVw.MaintenancePlan = $projection.maintenanceplan
[0..*] C_StsObjActiveStatusCodeText _ActiveSystemStatus _ActiveSystemStatus.StatusObject = $projection.MaintNotifInternalID and _ActiveSystemStatus.IsUserStatus = ''
[0..*] C_StsObjActiveStatusCodeText _ActiveUserStatus _ActiveUserStatus.StatusObject = $projection.MaintNotifInternalID and _ActiveUserStatus.IsUserStatus = 'X'
[0..1] I_ABCIndicator _ABCIndicator $projection.abcindicator = _ABCIndicator.ABCIndicator -- Performance Improvements
[0..1] P_MaintUsrStsWithSqncNumber _ActiveUserStatusWthStsNmbr _ActiveUserStatusWthStsNmbr.StatusObject = $projection.MaintNotifInternalID
[0..1] I_StatusProfile _StatusProfile _StatusProfile.StatusProfile = $projection.StatusProfile
[0..*] C_MaintenanceObjectStatus _SystemStatus _SystemStatus.StatusObject = $projection.MaintNotifInternalID and _SystemStatus.IsUserStatus = ' '
[0..*] C_MaintenanceObjectStatus _UserStatusWthoutStsNmbr _UserStatusWthoutStsNmbr.StatusObject = $projection.MaintNotifInternalID and _UserStatusWthoutStsNmbr.StatusSequenceNumber = '00' and _UserStatusWthoutStsNmbr.IsUserStatus = 'X'
[0..1] C_MaintObjUserStatusWthStsNmbr _UserStatusWithStatusNumber _UserStatusWithStatusNumber.StatusObject = $projection.MaintNotifInternalID and _UserStatusWithStatusNumber.StatusSequenceNumber != '00' and _UserStatusWithStatusNumber.IsUserStatus = 'X'
[0..1] C_EAMProductQuickVw _EAMProductQuickVw _EAMProductQuickVw.Material = $projection.assembly -- Performance Improvements
[0..1] I_EquipmentText _EquipmentText _EquipmentText.Equipment = $projection.Equipment and _EquipmentText.Language = $session.system_language
[0..1] I_FunctionalLocationLabel _FunctionalLocationLabel _FunctionalLocationLabel.FunctionalLocation = $projection.FunctionalLocation
[0..1] I_FunctionalLocationText _FunctionalLocationText _FunctionalLocationText.FunctionalLocation = $projection.FunctionalLocation and _FunctionalLocationText.Language = $session.system_language
[0..1] I_PMNotifMaintenanceData _PMNotifMaintenanceData _PMNotifMaintenanceData.MaintenanceNotification = $projection.MaintenanceNotification
[0..1] P_NotifNmbrOfAttachedDocuments _NotifNmbrOfAttachedDocuments _NotifNmbrOfAttachedDocuments.LinkedSAPObjectKey = $projection.MaintenanceNotification
[0..1] C_MaintOrderTypeVH _MaintOrderTypeVH _MaintOrderTypeVH.MaintenanceOrderType = $projection.MaintenanceOrderType
[0..*] C_MaintWorkReqEventPrioznTP _EventPrio $projection.MaintenanceNotification = _EventPrio.MaintenanceNotification
[0..*] I_MaintNotifDetectionCodeText _MaintNotifDetectCodeTxt $projection.maintnotifdetectioncode = _MaintNotifDetectCodeTxt.MaintNotifDetectionCode
[0..*] I_MaintNotifDetectCodeGroupTxt _MaintNotifDetectCodeGroupTxt _MaintNotifDetectCodeGroupTxt.MaintNotifDetectionCodeGroup = $projection.maintnotifdetectioncodegroup
[0..1] I_MaintNotifProcgContextText _MaintNotifProcgContextTxt _MaintNotifProcgContextTxt.MaintNotifProcessingContext = $projection.MaintNotifProcessingContext and _MaintNotifProcgContextTxt.Language = $session.system_language -- Extensions, do not expose as association:
[0..1] E_PMNotifMaintenanceData _NotifMaintenanceDataExtension _NotifMaintenanceDataExtension.MaintenanceNotification = $projection.MaintenanceNotification

Annotations (21)

NameValueLevelField
AbapCatalog.compiler.compareFilter true view
AbapCatalog.sqlViewName COBJPGMAINTNOTIF view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Maintenance Notification view
Metadata.allowExtensions true view
Search.searchable true view
ObjectModel.draftEnabled false view
ObjectModel.transactionalProcessingDelegated true view
ObjectModel.usageType.serviceQuality #X view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
VDM.viewType #CONSUMPTION view
UI.headerInfo.typeName Maintenance Notification view
UI.headerInfo.typeNamePlural Maintenance Notifications view
UI.headerInfo.description.value NotificationText view
UI.headerInfo.description.type #STANDARD view
UI.headerInfo.title.value MaintenanceNotification view
UI.headerInfo.title.type #STANDARD view
UI.headerInfo.imageUrl MaintNotificationThumbnailURL view

Fields (25)

KeyFieldSource TableSource FieldDescription
KEY MaintenanceNotification I_MaintNotificationTP MaintenanceNotification
NotificationText I_MaintNotificationTP NotificationText Notification Text
NotificationType I_MaintNotificationTP NotificationType
NotificationTypeName Notification Type Name
FunctionalLocationName _FunctionalLocationText FunctionalLocationName
EquipmentName _EquipmentText EquipmentName
TechObjIsEquipOrFuncnlLoc Technical Object Type
TechObjIsEquipOrFuncnlLocDesc Technical Object Type Text
MaintenanceOrder I_MaintNotificationTP MaintenanceOrder Maintenance Order
MaintenanceOrderDesc Order Text
MainWorkCenter Main Work Center
MainWorkCenterText Main Work Center Text
WorkCenterTypeCode I_MaintNotificationTP WorkCenterTypeCode
MainWorkCenterPlant Main Work Center Plant
MainWorkCenterPlantName Main Work Center Plant Name
MaintPriority I_MaintNotificationTP MaintPriority
LatestAcceptableCompletionDate
MaintPriorityColorCode
MaintPriorityDesc Priority Text
NotifProcessingPhase I_MaintNotificationTP NotifProcessingPhase Notification Status
NotifProcessingPhaseDesc Notification Status Text
MaintenancePlanningPlant
MaintenancePlanningPlantName Planning Plant Name
MaintenancePlannerGroup Planner Group
MaintenancePlannerGroupName Planner Group Name
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.sqlViewName: 'COBJPGMAINTNOTIF'
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.privilegedAssociations: [ '_SystemStatus', '_UserStatusWthoutStsNmbr', '_MaintNotifAssignOrderInput', '_TechnicalObjQuickVw', '_MaintenanceOrderQuickView', '_MaintenancePlanQuickVw', '_EAMProductQuickVw' ]
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Maintenance Notification'
@Metadata.allowExtensions: true
 //@Metadata.ignorePropagatedAnnotations: true

@Search.searchable: true
@ObjectModel.draftEnabled: false
@ObjectModel.transactionalProcessingDelegated: true
@ObjectModel.usageType.serviceQuality: #X
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #MIXED
@VDM.viewType: #CONSUMPTION


@UI: {
    headerInfo: {
        typeName: 'Maintenance Notification',
        typeNamePlural: 'Maintenance Notifications',
        description   : {
            value: 'NotificationText',
            type: #STANDARD
        },
        title: {
            value: 'MaintenanceNotification',
            type: #STANDARD
        },
        imageUrl: 'MaintNotificationThumbnailURL'
    },
    presentationVariant: {
        requestAtLeast:  [ 'NotificationType', 'TechObjIsEquipOrFuncnlLoc', 'TechnicalObject' ] //Performance Improvements , 'MaintenancePlanTechnicalObject', 'MaintPlanTechObjIsEquipment' ]

    }
}

define view C_ObjPgMaintNotification
  as select from I_MaintNotificationTP as _MaintNotificationTP
  association [0..*] to C_ObjPgMaintNotifActivity      as _ObjPgMaintNotifActivity       on  _ObjPgMaintNotifActivity.MaintenanceNotification     = $projection.MaintenanceNotification
                                                                                         and _ObjPgMaintNotifActivity.MaintenanceNotificationItem = '0000'
  association [0..*] to C_ObjPgMaintNotificationTask   as _ObjPgMaintNotificationTask    on  _ObjPgMaintNotificationTask.MaintenanceNotification     = $projection.MaintenanceNotification
                                                                                         and _ObjPgMaintNotificationTask.MaintenanceNotificationItem = '0000'
                                                                                         and _ObjPgMaintNotificationTask.IsDeleted                   = '' // n3086741

  association [0..1] to I_TextObjectPlainLongText      as _TextObjectPlainLongText       on  _TextObjectPlainLongText.TextObjectKey      = $projection.MaintenanceNotification
                                                                                         and _TextObjectPlainLongText.TextObjectType     = 'LTXT'
                                                                                         and _TextObjectPlainLongText.TextObjectCategory = 'QMEL'
                                                                                         and _TextObjectPlainLongText.Language           = $session.system_language

  association [0..*] to C_MaintNotificationChgHistory  as _MaintNotificationChgHistory   on  $projection.MaintNotifWithLeadingZeros = _MaintNotificationChgHistory.ChangeDocObject

  association [0..*] to C_ObjPgMaintNotificationItem   as _ObjPgMaintNotificationItem    on  _ObjPgMaintNotificationItem.MaintenanceNotification = $projection.MaintenanceNotification
  //association [1..1] to C_ObjPgMaintNotifWithDesc      as _ObjPgMaintNotifWithDesc       on  _ObjPgMaintNotifWithDesc.MaintenanceNotification = $projection.MaintenanceNotification //Obsolete CDS view

  association [1..1] to C_MaintNotificationTypeVH      as _MaintNotificationTypeVH       on  _MaintNotificationTypeVH.NotificationType = $projection.NotificationType
  association [0..1] to I_WorkCenterBySemanticKey      as _WorkCenterBySemanticKey       on  _WorkCenterBySemanticKey.WorkCenter = $projection.MainWorkCenter
                                                                                         and _WorkCenterBySemanticKey.Plant      = $projection.MainWorkCenterPlant
  association [1..1] to I_MaintenanceNotification      as _MaintenanceNotification       on  _MaintenanceNotification.MaintenanceNotification = $projection.MaintenanceNotification
  association [0..1] to C_MaintNotificationItemCount   as _MaintNotificationItemCount    on  _MaintNotificationItemCount.MaintenanceNotification = $projection.MaintenanceNotification
  association [0..1] to C_MaintNotificationTaskCount   as _MaintNotificationTaskCount    on  _MaintNotificationTaskCount.MaintenanceNotification     = $projection.MaintenanceNotification
                                                                                         and _MaintNotificationTaskCount.MaintenanceNotificationItem = '0000'
  association [0..1] to C_MaintNotifActivityCount      as _MaintNotifActivityCount       on  _MaintNotifActivityCount.MaintenanceNotification     = $projection.MaintenanceNotification
                                                                                         and _MaintNotifActivityCount.MaintenanceNotificationItem = '0000'
  association [0..1] to C_TechnicalObjectLabelVH       as _MaintenancePlanTechObj        on  _MaintenancePlanTechObj.TechnicalObjectLabel      = $projection.MaintPlanTechnicalObjectLabel
                                                                                         and _MaintenancePlanTechObj.TechObjIsEquipOrFuncnlLoc = $projection.MaintPlanTechObjIsEquipment
                                                                                         and _MaintenancePlanTechObj.TechnicalObject           = $projection.MaintenancePlanTechnicalObject
  association [0..1] to C_TechnicalObjectLabelVH       as _TechnicalObjectLabelVH        on  _TechnicalObjectLabelVH.TechnicalObjectLabel      = $projection.TechnicalObjectLabel
                                                                                         and _TechnicalObjectLabelVH.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
                                                                                         and _TechnicalObjectLabelVH.TechnicalObject           = $projection.TechnicalObject
  association [0..1] to I_TechObjIsEquipOrFuncnlLoc    as _MaintPlanTechObjIsEquipment   on  _MaintPlanTechObjIsEquipment.TechObjIsEquipOrFuncnlLoc = $projection.MaintPlanTechObjIsEquipment
  association [0..1] to C_MaintenanceNotificationVH    as _MaintenanceNotificationVH     on  _MaintenanceNotificationVH.MaintenanceNotification = $projection.MaintenanceNotification

  association [0..1] to I_PMContactCardUser            as _CreatedByUser                 on  _CreatedByUser.UserID = $projection.CreatedByUser
  association [0..1] to I_PMContactCardEmployee        as _InspectedByUser               on  _InspectedByUser.PersonnelNumber = $projection.inspectedbyuser
  association [0..1] to I_PMContactCardEmployee        as _PlantSectionResponsible       on  _PlantSectionResponsible.PersonnelNumber = $projection.plantsectionpersonrespname
  association [0..1] to I_PMContactCardEmployee        as _PersonResponsible             on  _PersonResponsible.PersonnelNumber = $projection.PersonResponsible
  association [0..1] to I_WorkforcePerson              as _MaintNotifPersonResponsible   on  _MaintNotifPersonResponsible.PersonExternalID = $projection.PersonResponsible_H

  association [0..1] to I_NumberOfOpnNotifByTechObj    as _NumberOfOpnNotifByTechObj     on  _NumberOfOpnNotifByTechObj.TechnicalObject           = $projection.TechnicalObject
                                                                                         and _NumberOfOpnNotifByTechObj.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc

  association [0..1] to P_OpenMaintNotifForEquipment   as _OPENMAINTNOTIFFOREQUIPMENT    on  _OPENMAINTNOTIFFOREQUIPMENT.Equipment = $projection.Equipment


  association [0..1] to P_OpenMaintNotifForFuncnlLoc   as _OPENMAINTNOTIFFORFUNCNLLOC    on  _OPENMAINTNOTIFFORFUNCNLLOC.FunctionalLocation = $projection.FunctionalLocation


  association [0..1] to I_PMContactCardUser            as _ReportedByUser                on  _ReportedByUser.UserID = $projection.ReportedByUser
  association [0..1] to I_MaintNotifAssignOrderInput   as _MaintNotifAssignOrderInput    on  _MaintNotifAssignOrderInput.MaintenanceNotification = $projection.MaintenanceNotification
  association [0..1] to C_PMAssetLocationVH            as _AssetLocationVH               on  _AssetLocationVH.Location = $projection.assetlocation
                                                                                         and _AssetLocationVH.Plant    = $projection.maintenanceplant     // n3293392


  association [0..1] to I_MaintenanceRevisionStdVH     as _MaintenanceRevisionVH         on  _MaintenanceRevisionVH.MaintenancePlanningPlant = $projection.maintenanceplanningplant
                                                                                         and _MaintenanceRevisionVH.MaintenanceRevision      = $projection.maintenancerevision

  association [0..1] to C_TechObjQuickVw               as _TechnicalObjQuickVw           on  _TechnicalObjQuickVw.TechnicalObject           = $projection.TechnicalObject
                                                                                         and _TechnicalObjQuickVw.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
                                                                                         and _TechnicalObjQuickVw.TechnicalObjectLabel      = $projection.TechnicalObjectLabel

  association [0..1] to C_MaintOrderQuickVw            as _MaintenanceOrderQuickView     on  _MaintenanceOrderQuickView.MaintenanceOrder = $projection.MaintenanceOrder

  association [0..1] to C_MaintPrioSmltdDates          as _MaintPrioSmltdDates           on  _MaintPrioSmltdDates.MaintPriority     = $projection.MaintPriority
                                                                                         and _MaintPrioSmltdDates.MaintPriorityType = $projection.MaintPriorityType
  association [0..1] to C_MaintenancePlanQuickVw       as _MaintenancePlanQuickVw        on  _MaintenancePlanQuickVw.MaintenancePlan = $projection.maintenanceplan

  association [0..*] to C_StsObjActiveStatusCodeText   as _ActiveSystemStatus            on  _ActiveSystemStatus.StatusObject = $projection.MaintNotifInternalID
                                                                                         and _ActiveSystemStatus.IsUserStatus = ''

  association [0..*] to C_StsObjActiveStatusCodeText   as _ActiveUserStatus              on  _ActiveUserStatus.StatusObject = $projection.MaintNotifInternalID
                                                                                         and _ActiveUserStatus.IsUserStatus = 'X'

  association [0..1] to I_ABCIndicator                 as _ABCIndicator                  on  $projection.abcindicator = _ABCIndicator.ABCIndicator
  -- Performance Improvements
  association [0..1] to P_MaintUsrStsWithSqncNumber    as _ActiveUserStatusWthStsNmbr    on  _ActiveUserStatusWthStsNmbr.StatusObject = $projection.MaintNotifInternalID

  association [0..1] to I_StatusProfile                as _StatusProfile                 on  _StatusProfile.StatusProfile = $projection.StatusProfile

  association [0..*] to C_MaintenanceObjectStatus      as _SystemStatus                  on  _SystemStatus.StatusObject = $projection.MaintNotifInternalID
                                                                                         and _SystemStatus.IsUserStatus = ' '

  association [0..*] to C_MaintenanceObjectStatus      as _UserStatusWthoutStsNmbr       on  _UserStatusWthoutStsNmbr.StatusObject         = $projection.MaintNotifInternalID
                                                                                         and _UserStatusWthoutStsNmbr.StatusSequenceNumber = '00'
                                                                                         and _UserStatusWthoutStsNmbr.IsUserStatus         = 'X'

  association [0..1] to C_MaintObjUserStatusWthStsNmbr as _UserStatusWithStatusNumber    on  _UserStatusWithStatusNumber.StatusObject = $projection.MaintNotifInternalID
                                                                                         and _UserStatusWithStatusNumber.StatusSequenceNumber != '00'
                                                                                         and _UserStatusWithStatusNumber.IsUserStatus = 'X'

  association [0..1] to C_EAMProductQuickVw            as _EAMProductQuickVw             on  _EAMProductQuickVw.Material = $projection.assembly
  -- Performance Improvements
  association [0..1] to I_EquipmentText                as _EquipmentText                 on  _EquipmentText.Equipment = $projection.Equipment
                                                                                         and _EquipmentText.Language  = $session.system_language
  association [0..1] to I_FunctionalLocationLabel      as _FunctionalLocationLabel       on  _FunctionalLocationLabel.FunctionalLocation = $projection.FunctionalLocation
  association [0..1] to I_FunctionalLocationText       as _FunctionalLocationText        on  _FunctionalLocationText.FunctionalLocation = $projection.FunctionalLocation
                                                                                         and _FunctionalLocationText.Language           = $session.system_language
  association [0..1] to I_PMNotifMaintenanceData       as _PMNotifMaintenanceData        on  _PMNotifMaintenanceData.MaintenanceNotification = $projection.MaintenanceNotification
  association [0..1] to P_NotifNmbrOfAttachedDocuments as _NotifNmbrOfAttachedDocuments  on  _NotifNmbrOfAttachedDocuments.LinkedSAPObjectKey = $projection.MaintenanceNotification
  association [0..1] to C_MaintOrderTypeVH             as _MaintOrderTypeVH              on  _MaintOrderTypeVH.MaintenanceOrderType = $projection.MaintenanceOrderType
  association [0..*] to C_MaintWorkReqEventPrioznTP    as _EventPrio                     on  $projection.MaintenanceNotification = _EventPrio.MaintenanceNotification
  association [0..*] to I_MaintNotifDetectionCodeText  as _MaintNotifDetectCodeTxt       on  $projection.maintnotifdetectioncode = _MaintNotifDetectCodeTxt.MaintNotifDetectionCode
  association [0..*] to I_MaintNotifDetectCodeGroupTxt as _MaintNotifDetectCodeGroupTxt  on  _MaintNotifDetectCodeGroupTxt.MaintNotifDetectionCodeGroup = $projection.maintnotifdetectioncodegroup

  association [0..1] to I_MaintNotifProcgContextText   as _MaintNotifProcgContextTxt     on  _MaintNotifProcgContextTxt.MaintNotifProcessingContext = $projection.MaintNotifProcessingContext
                                                                                         and _MaintNotifProcgContextTxt.Language                    = $session.system_language
  -- Extensions, do not expose as association:
  association [0..1] to E_PMNotifMaintenanceData       as _NotifMaintenanceDataExtension on  _NotifMaintenanceDataExtension.MaintenanceNotification = $projection.MaintenanceNotification

{
      @UI:{ selectionField: [{position: 10}],
             lineItem: [{position: 10, importance: #HIGH},
                       {type: #FOR_ACTION, dataAction: 'BOPF:Putinprocess', label: 'Put in Process', importance: #HIGH},
                       {type: #FOR_ACTION, dataAction: 'BOPF:Complete', label: 'Complete', importance: #HIGH},
                       {type: #FOR_ACTION, dataAction: 'BOPF:Postpone', label: 'Postpone', importance: #HIGH },
                       {type: #FOR_ACTION, dataAction: 'BOPF:Setdeletion', label: 'Set Deletion Flag', importance: #HIGH},
                       {type: #FOR_ACTION, dataAction: 'BOPF:Resetdeletion', label: 'Reset Deletion Flag', importance: #HIGH }],
      //                       {type: #FOR_ACTION, dataAction: 'BOPF:Determine_output_items', label: 'Determine Output Items', importance: #HIGH }],

             identification:[
                       {type: #FOR_ACTION, dataAction: 'BOPF:Putinprocess', label: 'Put in Process', importance: #HIGH},
                       {type: #FOR_ACTION, dataAction: 'BOPF:Complete', label: 'Complete', importance: #HIGH },
                       {type: #FOR_ACTION, dataAction: 'BOPF:Postpone', label: 'Postpone', importance: #HIGH },
                       {type: #FOR_ACTION, dataAction: 'BOPF:Setdeletion', label: 'Set Deletion Flag', importance: #HIGH },
                       {type: #FOR_ACTION, dataAction: 'BOPF:Resetdeletion', label: 'Reset Deletion Flag', importance: #HIGH },
                       {type: #FOR_ACTION, dataAction: 'BOPF:Determine_output_items', label: 'Determine Output Items', importance: #HIGH }]}
      @ObjectModel.text.element: 'NotificationText'
      @Consumption.semanticObject: 'MaintenanceNotification'
      @Search: {defaultSearchElement: true, ranking: #HIGH}
      @Consumption.valueHelpDefinition: [{ 
        entity:{
          element:'MaintenanceNotification',
          name:'C_MaintenanceNotificationVH' }
      }]
  key _MaintNotificationTP.MaintenanceNotification,

      @Search: {defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8}
      @Semantics.text: true
      @EndUserText.label: 'Notification Text'
      _MaintNotificationTP.NotificationText,

      @UI: { selectionField: {position: 20},
      //perf             lineItem: [{position: 20, importance: #HIGH}],

             fieldGroup: [{qualifier:'General', position:10, groupLabel: 'General'} ,
                          {qualifier:'HeaderGeneral',position:10, groupLabel: 'Priority'}]}
      @ObjectModel.text.element:  [ 'NotificationTypeName' ]
      @ObjectModel.foreignKey.association: '_MaintNotificationTypeVH'
      @Search: {defaultSearchElement: true, ranking: #HIGH}
      @UI.textArrangement: #TEXT_FIRST
      _MaintNotificationTP.NotificationType,
      @EndUserText.label: 'Notification Type Name'
      @Semantics.text: true
      @Search: {defaultSearchElement: true, ranking: #HIGH}
      _MaintNotificationTP._PMNotificationType._Text[1:Language=$session.system_language].NotificationTypeName,


      @UI:{  selectionField: {position: 40},
             lineItem: {position: 30, importance: #HIGH },
             fieldGroup: [{qualifier:'Reference', position:10, groupLabel: 'Reference Objects'},
                          {qualifier:'HeaderReference', position:10, importance: #HIGH} ]}
      @ObjectModel.text.element:  'TechnicalObjectDescription'
      @Consumption.semanticObject: 'MaintenanceObject'
      @Consumption.valueHelpDefinition: [{
         entity:{name: 'C_TechnicalObjectLabelVH',
                 element: 'TechnicalObjectLabel'} }]
      @ObjectModel.filter.transformedBy: 'CL_EAM_TECHOBJ_FILTER_EXIT'
      //      @Consumption.valueHelp: '_TechnicalObjectLabelVH' //- no search bar

      @ObjectModel: { foreignKey.association: '_TechnicalObjQuickVw', mandatory: true}
      -- Performance Improvements
      //case when Equipment = '' then

      case when _PMNotifMaintenanceData.Equipment = '' then
            cast( _FunctionalLocationLabel.FunctionalLocationLabelName as eams_tech_obj_conv )
      else cast( Equipment as eams_tech_obj_conv ) end                                                                                                                                                         as TechnicalObjectLabel,
      //_MaintNotificationTP._TechnicalObject.TechnicalObjectLabel                                                                                                                          as TechnicalObjectLabel,

      @Semantics.text: true
      @EndUserText.label: 'Technical Object Description'
      case when Equipment = '' then
            cast( _FunctionalLocationText.FunctionalLocationName as eams_tec_obj_des )
      else cast( _EquipmentText.EquipmentName as eams_tec_obj_des ) end                                                                                                                                        as TechnicalObjectDescription,
      //@Search: {defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8}

      //_MaintNotificationTP._TechnicalObject._TechnicalObjectText[1:Language=$session.system_language].TechnicalObjectDescription,

      @Consumption.hidden: true
      @Search: {defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8}
      _FunctionalLocationText.FunctionalLocationName,
      @Consumption.hidden: true
      @Search: {defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8}
      _EquipmentText.EquipmentName,
      --End of Performance Improvements

      @UI:{  fieldGroup: [{qualifier:'Reference', position:20},
                          {qualifier:'HeaderReference',position:20, importance: #HIGH} ]}
      @ObjectModel.text.element:  'TechObjIsEquipOrFuncnlLocDesc'
      @EndUserText.label: 'Technical Object Type'
      @ObjectModel.foreignKey.association: '_TechObjIsEquipOrFuncnlLoc'
      _MaintNotificationTP.TechObjIsEquipOrFuncnlLoc,
      @Semantics.text: true
      @EndUserText.label: 'Technical Object Type Text'
      _MaintNotificationTP._TechObjIsEquipOrFuncnlLoc._Text[1:Language=$session.system_language].TechObjIsEquipOrFuncnlLocDesc,

      //--[ GENERATED:012:GFBfhxvv7kY4iEDxI5XBNW

      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_MaintenanceOrderStdVH',
                     element: 'MaintenanceOrder' }
        }]
      // ]--GENERATED

      @UI: { selectionField: {position: 110},
      //           lineItem: {position: 120, importance: #HIGH },

             fieldGroup: [{qualifier:'General', position:20} ,
                         {qualifier:'HeaderGeneral', position:20, label: 'Maintenance Order', importance: #HIGH }]}
      @Consumption: {semanticObject: 'MaintenanceOrder'}
      @ObjectModel.text.element:  'MaintenanceOrderDesc'
      @EndUserText.label: 'Maintenance Order'
      @Search: {defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8}
      @ObjectModel: { foreignKey.association: '_MaintenanceOrderQuickView', mandatory: true }
      _MaintNotificationTP.MaintenanceOrder,
      @Semantics.text: true
      @EndUserText.label: 'Order Text'
      @Search: {defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8}
      _MaintNotificationTP._MaintenanceOrder.MaintenanceOrderDesc,

      @UI: { selectionField: {position: 60},
      //perf             lineItem: {position: 70, importance: #HIGH },

             fieldGroup: {qualifier:'Responsibility', position:10, importance: #HIGH, groupLabel: 'Responsibility'} }
      @ObjectModel.text.element: 'MainWorkCenterText'
      @EndUserText.quickInfo: 'Main Work Center'
      @EndUserText.label: 'Main Work Center'
      @ObjectModel.foreignKey.association: '_WorkCenterBySemanticKey'
      @Search: {defaultSearchElement: true, ranking: #MEDIUM}
      @Consumption.valueHelpDefinition: [ {
        entity: {
          name: 'C_PMWorkCenterVH',
          element: 'WorkCenter'
        },
        additionalBinding : [{
          localElement: 'MainWorkCenterPlant',
          element: 'Plant'
        }]
      }]


      _MaintNotificationTP._MainWorkCenter.WorkCenter                                                                                                                                                          as MainWorkCenter,
      @Semantics.text: true
      @EndUserText.quickInfo: 'Main Work Center Text'
      @EndUserText.label: 'Main Work Center Text'
      @Search: {defaultSearchElement: true, ranking: #MEDIUM}
      _MaintNotificationTP._MainWorkCenter._Text[1:Language=$session.system_language].WorkCenterText                                                                                                           as MainWorkCenterText,
      _MaintNotificationTP.WorkCenterTypeCode,
      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_PlantStdVH',
                     element: 'Plant' }
        }]
      @UI: {
      //      selectionField: {position: 70},

      //perf             lineItem: {position: 80, importance: #HIGH },

             fieldGroup: {qualifier:'Responsibility', position:20, importance: #HIGH} }
      @EndUserText.label: 'Main Work Center Plant'
      @ObjectModel.text.element: 'MainWorkCenterPlantName'
      @Search: {defaultSearchElement: true, ranking: #MEDIUM}
      @ObjectModel.foreignKey.association: '_Plant'
      _MaintNotificationTP._MainWorkCenter.Plant                                                                                                                                                               as MainWorkCenterPlant,
      @Semantics.text: true
      @EndUserText.label: 'Main Work Center Plant Name'
      @Search: {defaultSearchElement: true, ranking: #MEDIUM}
      @Consumption.filter.hidden: true
      _MaintNotificationTP._MainWorkCenter._Plant.PlantName                                                                                                                                                    as MainWorkCenterPlantName,

      @UI: { selectionField: {position: 120},
             lineItem: [{position: 50, importance: #HIGH,criticality: 'MaintPriorityColorCode', criticalityRepresentation: #WITHOUT_ICON}],
             dataPoint : { title: 'Priority', criticality: 'MaintPriorityColorCode'},
             fieldGroup: [{qualifier:'General', position:50, importance: #HIGH},
                          {qualifier:'HeaderGeneral',position:30, importance: #HIGH}],
                          textArrangement: #TEXT_FIRST }
      @ObjectModel.text.element: 'MaintPriorityDesc'
      @Consumption.valueHelp: '_PMNotificationPriority'
      _MaintNotificationTP.MaintPriority,

      // IME: 2002 LACD

      @UI: { selectionField: {position: 130},
      //             lineItem: [{position: 140, importance: #HIGH }],

             fieldGroup: [{qualifier:'General', position:60, importance: #HIGH}] }
      @Consumption.filter.multipleSelections: false
      @Consumption.filter.selectionType: #INTERVAL
      //      @feature: 'EAM_WORKREQUEST'

      _MaintNotificationTP._PMNotifMaintenanceData.LatestAcceptableCompletionDate,
      // IME: 2002 LACD


      @UI.hidden: true
      _MaintNotificationTP._PMNotificationPriority.MaintPriorityColorCode,
      @Semantics.text: true
      @EndUserText.label: 'Priority Text'
      _MaintNotificationTP._PMNotificationPriority._Text[1:Language=$session.system_language].MaintPriorityDesc,

      @UI: { fieldGroup: {qualifier:'HeaderStatus', position:10, importance: #HIGH, groupLabel: 'System and User Statuses'} }
      @Semantics.text: true
      @EndUserText.label: 'System Status'
      @ObjectModel.filter.transformedBy: 'ABAP:CL_EAM_MNTNTF_STS_EXIT'
      @ObjectModel.virtualElement
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EAM_MNTNTF_STS_EXIT'
      cast ('' as vdm_j_system_status_concat_t)                                                                                                                                                                as ConcatenatedActiveSystStsName,

      @UI: { selectionField: {position: 90},
             lineItem: [{position: 100, importance: #HIGH}]}
      @ObjectModel.text.element: 'NotifProcessingPhaseDesc'
      @EndUserText.label: 'Notification Status'
      @UI.textArrangement: #TEXT_ONLY
      _MaintNotificationTP.NotifProcessingPhase,
      @EndUserText.label: 'Notification Status Text'
      _MaintNotificationTP._PMNotificationPhase._Text[1:Language=$session.system_language].NotifProcessingPhaseDesc,
      @Consumption.valueHelpDefinition: [{
        entity: { name: 'C_MaintenancePlanPlantVH', element: 'MaintenancePlanningPlant' }
      }]
      @UI: { selectionField: {position: 140},
             fieldGroup: {qualifier:'Responsibility', position:30}}
      _MaintNotificationTP._PMNotifMaintenanceData.MaintenancePlanningPlant,
      @Semantics.text: true
      @EndUserText.label: 'Planning Plant Name'
      _MaintNotificationTP._PMNotifMaintenanceData._MaintenancePlanningPlant.PlantName                                                                                                                         as MaintenancePlanningPlantName,

      //--[ GENERATED:012:GFBfhxvv7kY4iEDxI5XBNW

      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_MaintPlnrGrpStdVH',
                     element: 'MaintenancePlannerGroup' },
          additionalBinding: [{ localElement: 'MaintenancePlanningPlant',
                                element: 'MaintenancePlanningPlant' }]
        }]
      // ]--GENERATED

      @UI: { fieldGroup: {qualifier:'Responsibility', position:40}}
      @ObjectModel.text.element: 'MaintenancePlannerGroupName'
      @EndUserText.label: 'Planner Group'
      _MaintNotificationTP._PMNotifMaintenanceData.MaintenancePlannerGroup,
      @Semantics.text: true
      @EndUserText.label: 'Planner Group Name'
      _MaintNotificationTP._PMNotifMaintenanceData._MaintenancePlannerGroup.MaintenancePlannerGroupName,

      @UI: { fieldGroup: {qualifier:'Responsibility', position:50} }
      @ObjectModel.text.element: 'MaintenanceWorkCenterText'
      @EndUserText.label: 'Production Work Center'
      @EndUserText.quickInfo: 'Production Work Center'
      _MaintNotificationTP._PMNotifMaintenanceData._LocationAccountAssignment._WorkCenter.WorkCenter