R_MaintenanceNotificationTP

DDL: R_MAINTENANCENOTIFICATIONTP Type: view_entity TRANSACTIONAL Package: RAP_EAM_NTF

Maintenance Notification Tech Object

R_MaintenanceNotificationTP is a Transactional CDS View that provides data about "Maintenance Notification Tech Object" in SAP S/4HANA. It reads from 1 data source (I_MaintNotificationTechObj) and exposes 148 fields with key field MaintenanceNotification. It has 35 associations to related views. Part of development package RAP_EAM_NTF.

Data Sources (1)

SourceAliasJoin Type
I_MaintNotificationTechObj I_MaintNotificationTechObj from

Associations (35)

CardinalityTargetAliasCondition
[0..1] P_OpenMaintNotifForEquipment _OpenMaintNotifForEquipment _OpenMaintNotifForEquipment.Equipment = I_MaintNotificationTechObj.Equipment
[0..1] P_OpenMaintNotifForFuncnlLoc _OpenMaintNotifForFuncnlLoc _OpenMaintNotifForFuncnlLoc.FunctionalLocation = $projection.FunctionalLocation and $projection.FunctionalLocation is not initial and I_MaintNotificationTechObj.Equipment is initial
[0..*] I_TechnicalObjectCategoryT _TechnicalObjectCategoryT _TechnicalObjectCategoryT.TechnicalObjectCategory = $projection.TechnicalObjectCategory and _TechnicalObjectCategoryT.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
[0..*] C_TechObjCstmHierVH _TechObjHier _TechObjHier.TechnicalObject = $projection.TechnicalObject and _TechObjHier.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc and _TechObjHier.ValidityEndDate = $projection.MalfunctionStartDate and _TechObjHier.ValidityEndTime = $projection.MalfunctionStartTime and _TechObjHier.TechnicalObjectLabel = $projection.TechnicalObjectLabel
[0..1] I_PMContactCardUser _CreatedByUser _CreatedByUser.UserID = $projection.CreatedByUser
[0..1] I_Plant _MaintPlant _MaintPlant.Plant = $projection.MaintenancePlanningPlant
[0..1] I_MaintenancePlannerGroup _MaintPlantGroup _MaintPlantGroup.MaintenancePlannerGroup = $projection.MaintenancePlannerGroup and _MaintPlantGroup.MaintenancePlanningPlant = $projection.MaintenancePlanningPlant
[0..1] I_GenericPriorityData _GenericPriorityData _GenericPriorityData.GenericPriorityType = $projection.MaintPriorityType and _GenericPriorityData.PriorityCode = $projection.MaintPriority
[0..*] I_StatusObjectActiveStatus _ActiveSystemStatus _ActiveSystemStatus.StatusObject = $projection.MaintNotifInternalID and _ActiveSystemStatus.IsUserStatus = ''
[0..*] I_StatusObjectActiveStatus _SystemStatus _SystemStatus.StatusObject = $projection.MaintNotifInternalID --and _SystemStatus.IsUserStatus = '' and ( _SystemStatus.StatusCode = 'I052R' or _SystemStatus.StatusCode = 'I0527' )
[0..1] I_TextObjectPlainLongText _TextObjectPlainLongText _TextObjectPlainLongText.TextObjectKey = I_MaintNotificationTechObj.MaintenanceNotification and _TextObjectPlainLongText.TextObjectType = 'LTXT' and _TextObjectPlainLongText.TextObjectCategory = 'QMEL' and _TextObjectPlainLongText.Language = $session.system_language
[0..*] I_MaintNotifRejectionReasonTxt _MaintNotifRejectionReasonTxt _MaintNotifRejectionReasonTxt.MaintNotifRejectionReasonCode = $projection.maintnotifrejectionreasoncode
[0..1] I_TechObjWorkReqQuickVw _TechnicalObjQuickVw _TechnicalObjQuickVw.TechnicalObject = $projection.TechnicalObject and _TechnicalObjQuickVw.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc and _TechnicalObjQuickVw.TechnicalObjectLabel = $projection.TechnicalObjectLabel
[0..*] I_FunctionalLocationText _SupFunctionalLocationText _SupFunctionalLocationText.FunctionalLocation = $projection.FunctionalLocation
[0..1] I_MaintenanceTaskList _TaskListDesc _TaskListDesc.TaskListType = $projection.maintenancetasklisttype and _TaskListDesc.TaskListGroup = $projection.tasklistgroup and _TaskListDesc.TaskListGroupCounter = $projection.tasklistgroupcounter
[0..*] I_TechObjIsEquipOrFuncnlLocT _TechObjIsEquipOrFuncnlLocDesc $projection.TechObjIsEquipOrFuncnlLoc = _TechObjIsEquipOrFuncnlLocDesc.TechObjIsEquipOrFuncnlLoc
[0..*] I_TechnicalObjectText _TechnicalObjectText _TechnicalObjectText.TechnicalObject = $projection.TechnicalObject and _TechnicalObjectText.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
[0..1] I_EAMProcessSubPhase _SubPhase $projection.maintnotifprocesssubphasecode = _SubPhase.EAMProcessSubPhaseCode
[0..1] I_EAMProcessPhase _Phase $projection.maintnotifprocessphasecode = _Phase.EAMProcessPhaseCode
[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
[0..1] I_OrderType _MaintOrderType _MaintOrderType.OrderType = $projection.MaintenanceOrderType
[0..1] I_FunctionalLocationLabel _SupFunctionalLocationLabel $projection.SuperiorFunctionalLocation = _SupFunctionalLocationLabel.FunctionalLocation
[0..*] I_FunctionalLocationText _SuperiorFuncLocText $projection.SuperiorFunctionalLocation = _SuperiorFuncLocText.FunctionalLocation
[0..1] I_Plant _MaintenanceWorkCenterPlant $projection.MaintenanceWorkCenterPlant = _MaintenanceWorkCenterPlant.Plant
[0..1] I_UserDescription _CreatedByUserSimpl _CreatedByUserSimpl.UserID = $projection.CreatedByUser
[0..*] I_ABCIndicatorText _ABCIndicatorText $projection.ABCIndicator = _ABCIndicatorText.ABCIndicator
[0..1] I_MaintNotifFuncLocEquipment _MaintNotifFuncLocEquipment _MaintNotifFuncLocEquipment.MaintenanceNotification = $projection.MaintenanceNotification -- Extensions, do not expose as association:
[0..1] E_PMNotifMaintenanceData _NotifMaintenanceDataExtension _NotifMaintenanceDataExtension.MaintenanceNotification = $projection.MaintenanceNotification
[0..*] R_MaintNotificationItemTP _Item
[0..*] R_MaintNotifEventPrioznTP _EventPrio
[0..*] R_MaintNotificationPartnerTP _Partner
[0..*] R_MaintNotificationTaskTP _Task
[0..*] R_MaintNotificationActivityTP _Activity

Annotations (9)

NameValueLevelField
AccessControl.authorizationCheck #CHECK view
EndUserText.label Maintenance Notification Tech Object view
ObjectModel.transactionalProcessingEnabled true view
VDM.viewType #TRANSACTIONAL view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.sapObjectNodeType.name MaintenanceNotification view

Fields (148)

KeyFieldSource TableSource FieldDescription
KEY MaintenanceNotification I_MaintNotificationTechObj MaintenanceNotification
MaintNotifInternalID I_MaintNotificationTechObj MaintNotifInternalID
NotificationText I_MaintNotificationTechObj NotificationText
MaintPriority I_MaintNotificationTechObj MaintPriority
MaintPriorityType I_MaintNotificationTechObj MaintPriorityType
GenericPriorityColorCode
NotificationType I_MaintNotificationTechObj NotificationType
NotifProcessingPhase I_MaintNotificationTechObj NotifProcessingPhase
CreatedByUser I_MaintNotificationTechObj CreatedByUser
LastChangedByUser I_MaintNotificationTechObj LastChangedByUser
CreationDate I_MaintNotificationTechObj CreationDate
LastChangeTime I_MaintNotificationTechObj LastChangeTime
LastChangeDate I_MaintNotificationTechObj LastChangeDate
LastChangeDateTime I_MaintNotificationTechObj LastChangeDateTime
CreationTime
CreationDateTime
ReportedByUser I_MaintNotificationTechObj ReportedByUser
ReporterFullName I_MaintNotificationTechObj ReporterFullName
PersonResponsible I_MaintNotificationTechObj PersonResponsible
MalfunctionEffect
MalfunctionStartDate I_MaintNotificationTechObj MalfunctionStartDate
MalfunctionStartTime I_MaintNotificationTechObj MalfunctionStartTime
MalfunctionStartDateTime
MalfunctionEndDate I_MaintNotificationTechObj MalfunctionEndDate
MalfunctionEndTime I_MaintNotificationTechObj MalfunctionEndTime
MalfunctionEndDateTime
MaintNotificationCatalog
MaintNotificationCode I_MaintNotificationTechObj MaintNotificationCode
MaintNotificationCodeGroup I_MaintNotificationTechObj MaintNotificationCodeGroup
CatalogProfile I_MaintNotificationTechObj CatalogProfile
NotificationCreationDate I_MaintNotificationTechObj NotificationCreationDate
NotificationCreationTime I_MaintNotificationTechObj NotificationCreationTime
NotificationCreationDateTime
NotificationTimeZone I_MaintNotificationTechObj NotificationTimeZone
RequiredStartDate I_MaintNotificationTechObj RequiredStartDate
RequiredStartTime I_MaintNotificationTechObj RequiredStartTime
MaintNotifRqdStartDateTime
RequiredEndDate I_MaintNotificationTechObj RequiredEndDate
RequiredEndTime I_MaintNotificationTechObj RequiredEndTime
MaintNotifRqdEndDateTime
LatestAcceptableCompletionDate I_MaintNotificationTechObj LatestAcceptableCompletionDate
MaintenanceObjectIsDown I_MaintNotificationTechObj MaintenanceObjectIsDown
TextObjectCategory
TextObjectType
MaintNotifLongTextForEdit
TechnicalObject
TechObjIsEquipOrFuncnlLoc I_MaintNotificationTechObj TechObjIsEquipOrFuncnlLoc
MaintenancePlanningPlant
MaintenancePlannerGroup
PlantSection
ABCIndicator
FunctionalLocation
FunctionalLocationLabelName
AssetLocation
LocationName
MaintenancePlant
WorkCenterInternalID I_MaintNotificationTechObj WorkCenterInternalID
MaintenanceWorkCenterPlant
MainWorkCenter
MaintenanceWorkCenter
WorkCenterTypeCode I_MaintNotificationTechObj WorkCenterTypeCode
MainWorkCenterPlant
LocationDescription I_MaintNotificationTechObj LocationDescription
NmbrOfOpenMaintNotifications
NumberOfOrders
MaintWorkRequestAttchKey
MaintNotifWithLeadingZeros
MaintNotifSourceApplication
ActiveTechnicalObject I_MaintNotificationTechObj TechnicalObject
ActiveTechnicalObjectType I_MaintNotificationTechObj TechObjIsEquipOrFuncnlLoc
MaintNotifRespPartnerFunction
PersonResponsibleName
MaintenanceOrder I_MaintNotificationTechObj MaintenanceOrder
MaintenanceOrderType
MaintEvtIsCreatedByCurrentUser
MaintenanceActivityType I_MaintNotificationTechObj MaintenanceActivityType
MaintObjDowntimeDurationUnit I_MaintNotificationTechObj MaintObjDowntimeDurationUnit
NotificationReferenceDate I_MaintNotificationTechObj NotificationReferenceDate
NotificationReferenceTime I_MaintNotificationTechObj NotificationReferenceTime
NotificationCompletionDate I_MaintNotificationTechObj NotificationCompletionDate
CompletionTime I_MaintNotificationTechObj CompletionTime
AssetRoom
MaintNotifProcessPhaseCode
MaintNotifProcessSubPhaseCode
MaintNotifRejectionReasonCode
MaintNotifExtReferenceNumber I_MaintNotificationTechObj MaintNotifExtReferenceNumber
MaintenanceTaskListType
TaskListGroup
TaskListGroupCounter
TaskListGroupCounter0endendasTaskList
TaskListKeyDate
MaintNotifDetectionCatalog
MaintNotifDetectionCodeGroup
MaintNotifDetectionCode
MaintNotifProcessingContext
TechObjInstallationLocation
IdentifyingLabel
WorkRequestTextTemplate
MaintNotifProcgCntxtIsAllwd
HierarchyNodeLevel
PreviousFinalDueDate
MaintNotifReferenceDateTime
MaintNotifCompletionDateTime
MaintNotifDowntimeDuration I_MaintNotificationTechObj MaintNotifDowntimeDuration
_TechObjHier _TechObjHier
_MalfunctionEffect _MalfunctionEffect
_CreatedByUser _CreatedByUser
_TechObjIsEquipOrFuncnlLoc _TechObjIsEquipOrFuncnlLoc
_MaintPlant _MaintPlant
_MaintPlantGroup _MaintPlantGroup
_NotificationType _NotificationType
_PMNotificationType _PMNotificationType
_PMNotifMaintenanceData _PMNotifMaintenanceData
_PMNotificationPriority _PMNotificationPriority
_TechnicalObject _TechnicalObject
_MainWorkCenter _MainWorkCenter
_PMNotificationPhase _PMNotificationPhase
_MaintenanceWorkCenterPlant _MaintenanceWorkCenterPlant
_MaintNotifPersonResponsible _MaintNotifPersonResponsible
_TextObjectPlainLongText _TextObjectPlainLongText
_ActiveSystemStatus _ActiveSystemStatus
_SupFunctionalLocationText _SupFunctionalLocationText
_TechObjIsEquipOrFuncnlLocDesc _TechObjIsEquipOrFuncnlLocDesc
_TechnicalObjectText _TechnicalObjectText
_MaintNotifRejectionReasonTxt _MaintNotifRejectionReasonTxt
_TechnicalObjQuickVw _TechnicalObjQuickVw
_TaskListDesc _TaskListDesc
_MaintenanceOrder I_MaintNotificationTechObj _MaintenanceOrder
_MaintNotificationCode I_MaintNotificationTechObj _MaintNotificationCode
_MaintNotificationCodeGroup I_MaintNotificationTechObj _MaintNotificationCodeGroup
_MaintNotifDetectCodeGroupTxt _MaintNotifDetectCodeGroupTxt
_MaintNotifDetectCodeTxt _MaintNotifDetectCodeTxt
_TechnicalObjectCategoryT _TechnicalObjectCategoryT
_SupFunctionalLocationLabel _SupFunctionalLocationLabel
_SuperiorFuncLocText _SuperiorFuncLocText
_CreatedByUserSimpl _CreatedByUserSimpl
_MaintOrdMstrData _MaintOrdMstrData
_ABCIndicatorText _ABCIndicatorText
_MaintNotifFuncLocEquipment _MaintNotifFuncLocEquipment
_Item _Item
_EventPrio _EventPrio
_Partner _Partner
_Task _Task
_Activity _Activity
_SubPhase _SubPhase
_Phase _Phase
_MaintNotifProcgContextTxt _MaintNotifProcgContextTxt
_MaintOrderType _MaintOrderType
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Maintenance Notification Tech Object'
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@ObjectModel.transactionalProcessingEnabled: true
@AccessControl.privilegedAssociations: ['_ActiveSystemStatus', '_TechnicalObjectCategoryT', '_TaskListDesc' ]
@VDM.viewType: #TRANSACTIONAL
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
@ObjectModel.semanticKey: ['MaintenanceNotification']

@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XL

@ObjectModel.sapObjectNodeType.name: 'MaintenanceNotification'



define root view entity R_MaintenanceNotificationTP
  as select from I_MaintNotificationTechObj

  // Add Child Composition

  composition [0..*] of R_MaintNotificationItemTP      as _Item
  composition [0..*] of R_MaintNotifEventPrioznTP      as _EventPrio
  composition [0..*] of R_MaintNotificationPartnerTP   as _Partner
  composition [0..*] of R_MaintNotificationTaskTP      as _Task
  composition [0..*] of R_MaintNotificationActivityTP  as _Activity

  association [0..1] to P_OpenMaintNotifForEquipment   as _OpenMaintNotifForEquipment    on  _OpenMaintNotifForEquipment.Equipment = I_MaintNotificationTechObj.Equipment
  association [0..1] to P_OpenMaintNotifForFuncnlLoc   as _OpenMaintNotifForFuncnlLoc    on  _OpenMaintNotifForFuncnlLoc.FunctionalLocation = $projection.FunctionalLocation
                                                                                         and $projection.FunctionalLocation                 is not initial
                                                                                         and I_MaintNotificationTechObj.Equipment           is initial


  association [0..*] to I_TechnicalObjectCategoryT     as _TechnicalObjectCategoryT      on  _TechnicalObjectCategoryT.TechnicalObjectCategory   = $projection.TechnicalObjectCategory
                                                                                         and _TechnicalObjectCategoryT.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc

  association [0..*] to C_TechObjCstmHierVH            as _TechObjHier                   on  _TechObjHier.TechnicalObject           = $projection.TechnicalObject
                                                                                         and _TechObjHier.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
                                                                                         and _TechObjHier.ValidityEndDate           = $projection.MalfunctionStartDate
                                                                                         and _TechObjHier.ValidityEndTime           = $projection.MalfunctionStartTime
                                                                                         and _TechObjHier.TechnicalObjectLabel      = $projection.TechnicalObjectLabel

  association [0..1] to I_PMContactCardUser            as _CreatedByUser                 on  _CreatedByUser.UserID = $projection.CreatedByUser

  association [0..1] to I_Plant                        as _MaintPlant                    on  _MaintPlant.Plant = $projection.MaintenancePlanningPlant

  association [0..1] to I_MaintenancePlannerGroup      as _MaintPlantGroup               on  _MaintPlantGroup.MaintenancePlannerGroup  = $projection.MaintenancePlannerGroup
                                                                                         and _MaintPlantGroup.MaintenancePlanningPlant = $projection.MaintenancePlanningPlant

  association [0..1] to I_GenericPriorityData          as _GenericPriorityData           on  _GenericPriorityData.GenericPriorityType = $projection.MaintPriorityType
                                                                                         and _GenericPriorityData.PriorityCode        = $projection.MaintPriority


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

  association [0..*] to I_StatusObjectActiveStatus     as _SystemStatus                  on  _SystemStatus.StatusObject = $projection.MaintNotifInternalID
  --and _SystemStatus.IsUserStatus = ''
                                                                                         and (
                                                                                            _SystemStatus.StatusCode    = 'I052R'
                                                                                            or _SystemStatus.StatusCode = 'I0527'
                                                                                          )

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

  association [0..*] to I_MaintNotifRejectionReasonTxt as _MaintNotifRejectionReasonTxt  on  _MaintNotifRejectionReasonTxt.MaintNotifRejectionReasonCode = $projection.maintnotifrejectionreasoncode

  association [0..1] to I_TechObjWorkReqQuickVw        as _TechnicalObjQuickVw           on  _TechnicalObjQuickVw.TechnicalObject           = $projection.TechnicalObject
                                                                                         and _TechnicalObjQuickVw.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
                                                                                         and _TechnicalObjQuickVw.TechnicalObjectLabel      = $projection.TechnicalObjectLabel
  association [0..*] to I_FunctionalLocationText       as _SupFunctionalLocationText     on  _SupFunctionalLocationText.FunctionalLocation = $projection.FunctionalLocation

  association [0..1] to I_MaintenanceTaskList          as _TaskListDesc                  on  _TaskListDesc.TaskListType         = $projection.maintenancetasklisttype
                                                                                         and _TaskListDesc.TaskListGroup        = $projection.tasklistgroup
                                                                                         and _TaskListDesc.TaskListGroupCounter = $projection.tasklistgroupcounter

  association [0..*] to I_TechObjIsEquipOrFuncnlLocT   as _TechObjIsEquipOrFuncnlLocDesc on  $projection.TechObjIsEquipOrFuncnlLoc = _TechObjIsEquipOrFuncnlLocDesc.TechObjIsEquipOrFuncnlLoc

  association [0..*] to I_TechnicalObjectText          as _TechnicalObjectText           on  _TechnicalObjectText.TechnicalObject           = $projection.TechnicalObject
                                                                                         and _TechnicalObjectText.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc


  association [0..1] to I_EAMProcessSubPhase           as _SubPhase                      on  $projection.maintnotifprocesssubphasecode = _SubPhase.EAMProcessSubPhaseCode
  association [0..1] to I_EAMProcessPhase              as _Phase                         on  $projection.maintnotifprocessphasecode = _Phase.EAMProcessPhaseCode

  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

  association [0..1] to I_OrderType                    as _MaintOrderType                on  _MaintOrderType.OrderType = $projection.MaintenanceOrderType

  association [0..1] to I_FunctionalLocationLabel      as _SupFunctionalLocationLabel    on  $projection.SuperiorFunctionalLocation = _SupFunctionalLocationLabel.FunctionalLocation
  association [0..*] to I_FunctionalLocationText       as _SuperiorFuncLocText           on  $projection.SuperiorFunctionalLocation = _SuperiorFuncLocText.FunctionalLocation
  association [0..1] to I_Plant                        as _MaintenanceWorkCenterPlant    on  $projection.MaintenanceWorkCenterPlant = _MaintenanceWorkCenterPlant.Plant
  association [0..1] to I_UserDescription              as _CreatedByUserSimpl            on  _CreatedByUserSimpl.UserID = $projection.CreatedByUser
  association [0..*] to I_ABCIndicatorText             as _ABCIndicatorText              on  $projection.ABCIndicator = _ABCIndicatorText.ABCIndicator

  association [0..1] to I_MaintNotifFuncLocEquipment   as _MaintNotifFuncLocEquipment    on  _MaintNotifFuncLocEquipment.MaintenanceNotification = $projection.MaintenanceNotification

  -- Extensions, do not expose as association:
  association [0..1] to E_PMNotifMaintenanceData       as _NotifMaintenanceDataExtension on  _NotifMaintenanceDataExtension.MaintenanceNotification = $projection.MaintenanceNotification

{

  key I_MaintNotificationTechObj.MaintenanceNotification,
      I_MaintNotificationTechObj.MaintNotifInternalID,

      @Semantics.text: true
      I_MaintNotificationTechObj.NotificationText,

      I_MaintNotificationTechObj.MaintPriority,
      I_MaintNotificationTechObj.MaintPriorityType,
      cast( _GenericPriorityData.GenericPriorityColorCode as abap.int1)                                                                                                                         as GenericPriorityColorCode,

      @ObjectModel.text.association: '_PMNotificationType'
      I_MaintNotificationTechObj.NotificationType,

      I_MaintNotificationTechObj.NotifProcessingPhase,

      @ObjectModel.text.association: '_CreatedByUser'
      I_MaintNotificationTechObj.CreatedByUser,
      I_MaintNotificationTechObj.LastChangedByUser,
      I_MaintNotificationTechObj.CreationDate,
      I_MaintNotificationTechObj.LastChangeTime,
      I_MaintNotificationTechObj.LastChangeDate,
      @Semantics.systemDateTime.lastChangedAt: true
      I_MaintNotificationTechObj.LastChangeDateTime, -- Last  Change Date Time for ETAG
      I_MaintNotificationTechObj.CreationTime,
      cast (dats_tims_to_tstmp( CreationDate, CreationTime, abap_system_timezone( $session.client,'NULL' ) , $session.client, 'NULL') as  tzntstmps preserving type )                           as CreationDateTime, //Timestamp


      @ObjectModel.text.element:  [ 'ReporterFullName' ]
      I_MaintNotificationTechObj.ReportedByUser,

      I_MaintNotificationTechObj.ReporterFullName,

      I_MaintNotificationTechObj.PersonResponsible,

      -- Malfunction Details
      @ObjectModel.foreignKey.association: '_MalfunctionEffect'
      I_MaintNotificationTechObj.MalfunctionEffect,
      I_MaintNotificationTechObj.MalfunctionStartDate,
      I_MaintNotificationTechObj.MalfunctionStartTime,
      cast (dats_tims_to_tstmp( MalfunctionStartDate, MalfunctionStartTime, I_MaintNotificationTechObj.NotificationTimeZone, $session.client, 'NULL') as  tzntstmps preserving type )           as MalfunctionStartDateTime,
      I_MaintNotificationTechObj.MalfunctionEndDate,
      I_MaintNotificationTechObj.MalfunctionEndTime,
      cast (dats_tims_to_tstmp( MalfunctionEndDate, MalfunctionEndTime, I_MaintNotificationTechObj.NotificationTimeZone, $session.client, 'NULL') as  tzntstmps preserving type )               as MalfunctionEndDateTime,

      --Catalogs/Cause/Code
      I_MaintNotificationTechObj.MaintNotificationCatalog,
      I_MaintNotificationTechObj.MaintNotificationCode,
      I_MaintNotificationTechObj.MaintNotificationCodeGroup,
      I_MaintNotificationTechObj.CatalogProfile,

      I_MaintNotificationTechObj.NotificationCreationDate,
      @Semantics.time: true
      I_MaintNotificationTechObj.NotificationCreationTime,
      cast (dats_tims_to_tstmp( NotificationCreationDate, NotificationCreationTime, I_MaintNotificationTechObj.NotificationTimeZone , $session.client, 'NULL') as  tzntstmps preserving type )  as NotificationCreationDateTime,
      I_MaintNotificationTechObj.NotificationTimeZone,

      I_MaintNotificationTechObj.RequiredStartDate,
      @Semantics.time: true
      I_MaintNotificationTechObj.RequiredStartTime,
      cast (dats_tims_to_tstmp( RequiredStartDate, RequiredStartTime, I_MaintNotificationTechObj.NotificationTimeZone , $session.client, 'NULL') as  tzntstmps preserving type )                as MaintNotifRqdStartDateTime,
      I_MaintNotificationTechObj.RequiredEndDate, // Work Request End Date

      @Semantics.time: true
      I_MaintNotificationTechObj.RequiredEndTime, // Work Request End Time

      cast (dats_tims_to_tstmp( RequiredEndDate, RequiredEndTime,I_MaintNotificationTechObj.NotificationTimeZone, $session.client, 'NULL') as  tzntstmps preserving type )                      as MaintNotifRqdEndDateTime,
      I_MaintNotificationTechObj.LatestAcceptableCompletionDate                                                                                                                                 as LatestAcceptableCompletionDate, //LACD Date

      I_MaintNotificationTechObj.MaintenanceObjectIsDown                                                                                                                                        as MaintenanceObjectIsDown,        //Breakdown



      cast( 'QMEL' as tdobject )                                                                                                                                                                as TextObjectCategory,
      cast( 'LTXT' as tdid preserving type )                                                                                                                                                    as TextObjectType,
      cast('' as eams_ltext )                                                                                                                                                                   as MaintNotifLongTextForEdit,


      -- Technical Object Details
      @ObjectModel: { foreignKey.association: '_TechnicalObjQuickVw'}
      I_MaintNotificationTechObj.TechnicalObject,

      @ObjectModel.foreignKey.association:  '_TechObjIsEquipOrFuncnlLoc'
      I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc,


      //      cast ( case when I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc = 'EAMS_EQUI'

      //                  then I_MaintNotificationTechObj.Equipment

      //                  when I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc != 'EAMS_EQUI'

      //                  then _FunctionalLocationLabel.FunctionalLocationLabelName  end as eams_tec_obj preserving type)                                                                               as TechnicalObjectLabel,     //Technical Object Label


      cast ( case when I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc = 'EAMS_EQUI'
                  then case replace(
                              replace(
                                  replace(
                                      replace(
                                          replace(
                                              replace(
                                                  replace(
                                                      replace(
                                                          replace(
                                                              replace(I_MaintNotificationTechObj.Equipment, '0', ''),
                                                          '1', ''),
                                                      '2', ''),
                                                  '3', ''),
                                              '4', ''),
                                           '5', ''),
                                        '6', ''),
                                     '7', ''),
                                  '8', ''),
                               '9', '')
                       when '' then ltrim( I_MaintNotificationTechObj.Equipment , '0' )
                       else I_MaintNotificationTechObj.Equipment end
                  when I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc != 'EAMS_EQUI'
                  then I_MaintNotificationTechObj._FunctionalLocationLabel.FunctionalLocationLabelName  end as eams_tec_obj preserving type)                                                    as TechnicalObjectLabel,

      I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintenancePlanningPlant                                                                                                               as MaintenancePlanningPlant, //Planning Plant

      I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintenancePlannerGroup                                                                                                                as MaintenancePlannerGroup,  //PLanner Group


      case when I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc = 'EAMS_EQUI'
           then I_MaintNotificationTechObj._Equipment.AssetManufacturerName
           when I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc != 'EAMS_EQUI'
           then I_MaintNotificationTechObj._FunctionalLocation.AssetManufacturerName end                                                                                                        as AssetManufacturerName,

      I_MaintNotificationTechObj._LocationAccountAssignment.PlantSection                                                                                                                        as PlantSection,             //Plant Section

      I_MaintNotificationTechObj._LocationAccountAssignment.ABCIndicator                                                                                                                        as ABCIndicator,             //ABC Indicator


      cast(
        case
          when I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc = 'EAMS_EQUI'
          then case
                when I_MaintNotificationTechObj._Equipment._CurrentTimeSegment.SuperordinateEquipment != ''
                then I_MaintNotificationTechObj._Equipment._CurrentTimeSegment.SuperordinateEquipment
                when I_MaintNotificationTechObj._Equipment._CurrentTimeSegment.SuperordinateEquipment = ''
                then I_MaintNotificationTechObj._Equipment._CurrentTimeSegment._LocationAccountAssignment._FunctionalLocation._FunctionalLocationLabel.FunctionalLocationLabelName end
          when I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc != 'EAMS_EQUI'
          then I_MaintNotificationTechObj._FunctionalLocation._SuperiorFunctionalLocation._FunctionalLocationLabel.FunctionalLocationLabelName end as eams_tech_obj_alpha_conv)                 as SuperiorTechnicalObjectLabel,


      case when I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc = 'EAMS_EQUI'
           then I_MaintNotificationTechObj._Equipment.ManufacturerPartTypeName
           when I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc != 'EAMS_EQUI'
           then I_MaintNotificationTechObj._FunctionalLocation.ManufacturerPartTypeName end                                                                                                     as ManufacturerPartTypeName,
      cast(I_MaintNotificationTechObj.FunctionalLocation as eams_ui_oid_name preserving type )                                                                                                  as FunctionalLocation, // Functional Location


      I_MaintNotificationTechObj._FunctionalLocation._FunctionalLocationLabel.FunctionalLocationLabelName                                                                                       as FunctionalLocationLabelName,

      I_MaintNotificationTechObj._LocationAccountAssignment.AssetLocation                                                                                                                       as AssetLocation,      // Location

      I_MaintNotificationTechObj._LocationAccountAssignment._Location.LocationName                                                                                                              as LocationName,       // Location Name


      cast( case when I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc = 'EAMS_EQUI'
                 then I_MaintNotificationTechObj._Equipment.EquipmentCategory
                 when I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc != 'EAMS_EQUI'
                 then I_MaintNotificationTechObj._FunctionalLocation.FunctionalLocationCategory end as eams_tec_obj_cat preserving type )                                                       as TechnicalObjectCategory,

      cast( case when I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc = 'EAMS_EQUI'
                 then I_MaintNotificationTechObj._Equipment.TechnicalObjectType
                 when I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc != 'EAMS_EQUI'
                 then I_MaintNotificationTechObj._FunctionalLocation.TechnicalObjectType end as eqart preserving type)                                                                          as TechnicalObjectType,

      I_MaintNotificationTechObj._LocationAccountAssignment.MaintenancePlant                                                                                                                    as MaintenancePlant, //Maintenance Plant


      // Work Center Details

      I_MaintNotificationTechObj.WorkCenterInternalID,
      I_MaintNotificationTechObj._LocationAccountAssignment._WorkCenter.Plant                                                                                                                   as MaintenanceWorkCenterPlant,
      I_MaintNotificationTechObj._MainWorkCenter.WorkCenter                                                                                                                                     as MainWorkCenter, // Maint Work Center From Notification

      I_MaintNotificationTechObj._LocationAccountAssignment._WorkCenter.WorkCenter                                                                                                              as MaintenanceWorkCenter,

      I_MaintNotificationTechObj.WorkCenterTypeCode, //Work Center Type Code

      I_MaintNotificationTechObj._MainWorkCenter.Plant                                                                                                                                          as MainWorkCenterPlant, // Maint Work Center Plant From Notification


      //Generic Details

      I_MaintNotificationTechObj.LocationDescription                                                                                                                                            as LocationDescription, //  Location Description

// Performance Issue with Number of Orders(TechOnj Union) _NumberOfOpnOrderByTechObj.NumberOfOrders

//      --_NumberOfOpnNotifByTechObj.NmbrOfOpenMaintNotifications                                                                                                                                   as NmbrOfOpenMaintNotifications,

//      cast( case when TechObjIsEquipOrFuncnlLoc = 'EAMS_EQUI'

//                 then _OpenMaintNotifForEquipment.NmbrOfOpenMaintNotifications

//                 when TechObjIsEquipOrFuncnlLoc = 'EAMS_FL'

//                 then _OpenMaintNotifForFuncnlLoc.NmbrOfOpenMaintNotifications end as eam_open_notifications preserving type )                                                                  as NmbrOfOpenMaintNotifications,

      cast ( 0 as eam_open_notifications )                                                                                                                                                      as NmbrOfOpenMaintNotifications,

      // Performance Issue with Number of Orders(TechOnj Union) _NumberOfOpnOrderByTechObj.NumberOfOrders

      cast ( 0  as eam_open_notifications )                                                                                                                                                     as NumberOfOrders,

      // For Attachment

      cast('' as objky)                                                                                                                                                                         as MaintWorkRequestAttchKey, // transient field for attachment ID (temp key)

      cast(I_MaintNotificationTechObj.MaintenanceNotification as char12 preserving type )                                                                                                       as MaintNotifWithLeadingZeros,

      // Source Application to control one draft per application

      cast('' as pm_source_appl)                                                                                                                                                                as MaintNotifSourceApplication,

      // Active Technical Object for Open Orders and Open Request

      I_MaintNotificationTechObj.TechnicalObject                                                                                                                                                as ActiveTechnicalObject,     //Technical Object

      I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc                                                                                                                                      as ActiveTechnicalObjectType, //Technical Object is Equi or Floc


      cast(I_MaintNotificationTechObj._NotificationType.NotifPartnerRoleResponsible as parvw_unv)                                                                                               as MaintNotifRespPartnerFunction,



      cast('' as eams_person_responsible_name)                                                                                                                                                  as PersonResponsibleName,

      // System Stasts and User Status

      cast ('' as vdm_j_system_status_concat_t)                                                                                                                                                 as ConcatenatedActiveSystStsName,
      cast ( case when _SystemStatus.StatusCode = 'I052R' then 'I052R'
                  when _SystemStatus.StatusCode = 'I0527' then 'I0527'
                  else '' end as vdm_j_user_status_concat_t )                                                                                                                                   as ConcatenatedActiveUserStsName,

      // Order Fields

      I_MaintNotificationTechObj.MaintenanceOrder,
      I_MaintNotificationTechObj._MaintOrdMstrData.OrderType                                                                                                                                    as MaintenanceOrderType,

      //Dynamic Tile for My Work Request

      cast('' as abap_boolean preserving type)                                                                                                                                                  as MaintEvtIsCreatedByCurrentUser,

      // new fields

      I_MaintNotificationTechObj.MaintenanceActivityType,
      I_MaintNotificationTechObj.MaintObjDowntimeDurationUnit,
      cast(unit_conversion(
          quantity => I_MaintNotificationTechObj.MaintObjectDowntimeDuration,
          source_unit => cast('S' as maueh),
          target_unit => I_MaintNotificationTechObj.MaintObjDowntimeDurationUnit,
          error_handling=> 'SET_TO_NULL'
          ) as auszt )                                                                                                                                                                          as MaintObjectDowntimeDuration,
      I_MaintNotificationTechObj.NotificationReferenceDate,
      I_MaintNotificationTechObj.NotificationReferenceTime,
      I_MaintNotificationTechObj.NotificationCompletionDate,
      I_MaintNotificationTechObj.CompletionTime,
      I_MaintNotificationTechObj._LocationAccountAssignment.AssetRoom,
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintNotifProcessPhaseCode,
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintNotifProcessSubPhaseCode,

      I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintNotifRejectionReasonCode,
      I_MaintNotificationTechObj.MaintNotifExtReferenceNumber                                                                                                                                   as MaintNotifExtReferenceNumber,

      I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintenanceTaskListType,
      I_MaintNotificationTechObj._PMNotifMaintenanceData.TaskListGroup,
      I_MaintNotificationTechObj._PMNotifMaintenanceData.TaskListGroupCounter,
      case ltrim( I_MaintNotificationTechObj._PMNotifMaintenanceData.TaskListGroup, '0')
          when '' then case ltrim( I_MaintNotificationTechObj._PMNotifMaintenanceData.TaskListGroupCounter, '0')
                          when '' then concat( I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintenanceTaskListType, '' )
                          else concat( concat( I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintenanceTaskListType, '/0/' ),
                                                   ltrim( I_MaintNotificationTechObj._PMNotifMaintenanceData.TaskListGroupCounter, '0') )
                       end
          else case ltrim( I_MaintNotificationTechObj._PMNotifMaintenanceData.TaskListGroupCounter, '0')
                  when '' then concat( concat( concat( I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintenanceTaskListType, '/' ),
                                       ltrim( I_MaintNotificationTechObj._PMNotifMaintenanceData.TaskListGroup, '0') ), '/0' )
                  else concat( concat( concat( concat( I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintenanceTaskListType, '/' ),
                                                   ltrim(I_MaintNotificationTechObj._PMNotifMaintenanceData.TaskListGroup, '0') ), '/' ),
                                                   ltrim( I_MaintNotificationTechObj._PMNotifMaintenanceData.TaskListGroupCounter, '0') )
               end
      end                                                                                                                                                                                       as TaskList,


      $session.system_date                                                                                                                                                                      as TaskListKeyDate,
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintNotifDetectionCatalog,
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintNotifDetectionCodeGroup,
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintNotifDetectionCode,

      //   Emergency Process


      I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintNotifProcessingContext,
      //_PMNotifMaintenanceData.Assembly,

      // Move inside feature toggle

      cast ( ''       as eam_techobj_installation_loc )                                                                                                                                         as TechObjInstallationLocation,
      cast ( ''       as ilom_level_kz_kz2_desc)                                                                                                                                                as IdentifyingLabel,
      cast ( ''       as eam_ltxt_tmplt_desc )                                                                                                                                                  as WorkRequestTextTemplate,
      cast ( ''       as abap_boolean )                                                                                                                                                         as MaintNotifProcgCntxtIsAllwd,
      cast ( '000000' as hrylevel)                                                                                                                                                              as HierarchyNodeLevel,

      I_MaintNotificationTechObj._PMNotifMaintenanceData.PreviousFinalDueDate,

      cast (dats_tims_to_tstmp( NotificationReferenceDate, NotificationReferenceTime, abap_system_timezone( $session.client,'NULL' ) , $session.client, 'NULL') as  tzntstmps preserving type ) as MaintNotifReferenceDateTime,
      cast (dats_tims_to_tstmp( NotificationCompletionDate, CompletionTime, I_MaintNotificationTechObj.NotificationTimeZone, $session.client, 'NULL') as  tzntstmps preserving type )           as MaintNotifCompletionDateTime,

      //       Superior Functional Location

      case when I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc = 'EAMS_EQUI'
           then I_MaintNotificationTechObj.FunctionalLocation
           when I_MaintNotificationTechObj.TechObjIsEquipOrFuncnlLoc = 'EAMS_FL'
           then cast ( I_MaintNotificationTechObj._FunctionalLocation.SuperiorFunctionalLocation as char30 preserving type )   end                                                              as SuperiorFunctionalLocation,

      I_MaintNotificationTechObj.MaintNotifDowntimeDuration,

      @ObjectModel.filter.enabled: false
      _TechObjHier,
      _MalfunctionEffect,
      _CreatedByUser,
      _TechObjIsEquipOrFuncnlLoc,
      _MaintPlant,
      _MaintPlantGroup,
      _NotificationType,
      _PMNotificationType,
      _PMNotifMaintenanceData,
      _PMNotificationPriority,
      _TechnicalObject,
      _MainWorkCenter,
      _PMNotificationPhase,
      _MaintenanceWorkCenterPlant,
      _MaintNotifPersonResponsible,
      _TextObjectPlainLongText,
      _ActiveSystemStatus,
      _SupFunctionalLocationText,
      //      _SystemStatus,

      _TechObjIsEquipOrFuncnlLocDesc,
      _TechnicalObjectText,
      _MaintNotifRejectionReasonTxt,
      _TechnicalObjQuickVw,
      _TaskListDesc,
      I_MaintNotificationTechObj._MaintenanceOrder,
      I_MaintNotificationTechObj._MaintNotificationCode,
      I_MaintNotificationTechObj._MaintNotificationCodeGroup,
      _MaintNotifDetectCodeGroupTxt,
      _MaintNotifDetectCodeTxt,
      _TechnicalObjectCategoryT,
      _SupFunctionalLocationLabel,
      _SuperiorFuncLocText,
      _CreatedByUserSimpl,
      _MaintOrdMstrData,
      _ABCIndicatorText,
      _MaintNotifFuncLocEquipment,

      //Child

      _Item,
      _EventPrio,
      _Partner,
      _Task,
      _Activity,

      _SubPhase,
      _Phase,
      _MaintNotifProcgContextTxt,
      _MaintOrderType

}