R_MaintenanceWorkRequestTP

DDL: R_MAINTENANCEWORKREQUESTTP Type: view_entity TRANSACTIONAL Package: RAP_EAM_NTF

Maintenance Work Request

R_MaintenanceWorkRequestTP is a Transactional CDS View that provides data about "Maintenance Work Request" in SAP S/4HANA. It reads from 1 data source (I_MaintNotificationTechObj) and exposes 58 fields with key field MaintenanceNotification. It has 3 associations to related views. Part of development package RAP_EAM_NTF.

Data Sources (1)

SourceAliasJoin Type
I_MaintNotificationTechObj I_MaintNotificationTechObj from

Associations (3)

CardinalityTargetAliasCondition
[1..*] I_StatusObjectStatus _StatusObjectStatus $projection.MaintNotifInternalID = _StatusObjectStatus.StatusObject
[0..1] I_MaintenanceJobOverallStatus _OverallJobStatus $projection.MaintNotifInternalID = _OverallJobStatus.MaintenanceJobInternalID -- Extensions, do not expose as association:
[0..1] E_PMNotifMaintenanceData _NotifMaintenanceDataExtension $projection.MaintenanceNotification = _NotifMaintenanceDataExtension.MaintenanceNotification

Annotations (10)

NameValueLevelField
AccessControl.authorizationCheck #CHECK view
EndUserText.label Maintenance Work Request view
VDM.viewType #TRANSACTIONAL view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
ObjectModel.representativeKey MaintenanceNotification view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
VDM.lifecycle.status #DEPRECATED view
VDM.lifecycle.successor R_MaintenanceNotificationTP view

Fields (58)

KeyFieldSource TableSource FieldDescription
KEY MaintenanceNotification I_MaintNotificationTechObj MaintenanceNotification
NotificationType I_MaintNotificationTechObj NotificationType
MaintNotifInternalID I_MaintNotificationTechObj MaintNotifInternalID
MaintenanceOrder I_MaintNotificationTechObj MaintenanceOrder
MaintenanceOrderDesc
MaintPriority I_MaintNotificationTechObj MaintPriority
MaintPriorityType I_MaintNotificationTechObj MaintPriorityType
MaintPriorityColorCode
MaintPriorityDesc
TechnicalObject I_MaintNotificationTechObj TechnicalObject
TechObjIsEquipOrFuncnlLocDesc
TechObjIsEquipOrFuncnlLoc I_MaintNotificationTechObj TechObjIsEquipOrFuncnlLoc
Equipment I_MaintNotificationTechObj Equipment
FunctionalLocation
TechnicalObjectDescription
PersonResponsible I_MaintNotificationTechObj PersonResponsible
CreatedByUser I_MaintNotificationTechObj CreatedByUser
CreationDateTime I_MaintNotificationTechObj CreationDateTime
CreationDate I_MaintNotificationTechObj CreationDate
NotificationText I_MaintNotificationTechObj NotificationText
NotificationCreationDate I_MaintNotificationTechObj NotificationCreationDate
NotificationCreationTime I_MaintNotificationTechObj NotificationCreationTime
NotificationTimeZone I_MaintNotificationTechObj NotificationTimeZone
MalfunctionEffect I_MaintNotificationTechObj MalfunctionEffect
MaintNotificationCatalog I_MaintNotificationTechObj MaintNotificationCatalog
MaintNotificationCode I_MaintNotificationTechObj MaintNotificationCode
LocationDescription
ReportedByUser I_MaintNotificationTechObj ReportedByUser
ReporterFullName I_MaintNotificationTechObj ReporterFullName
MalfunctionStartDate I_MaintNotificationTechObj MalfunctionStartDate
MalfunctionStartTime I_MaintNotificationTechObj MalfunctionStartTime
MalfunctionEndDate I_MaintNotificationTechObj MalfunctionEndDate
MalfunctionEndTime I_MaintNotificationTechObj MalfunctionEndTime
AssetLocation
LocationName
MaintNotificationLongText
MaintenanceObjectIsDown
MaintNotifSourceApplication
EAMOverallObjectStatus _OverallJobStatus EAMOverallObjectStatus
EAMOverallStatusDescription
EAMOverallObjectStatusProfile _OverallJobStatus EAMOverallObjectStatusProfile
NotifProcessingPhase I_MaintNotificationTechObj NotifProcessingPhase
MaintWorkRequestAttchKey
MaintenancePlannerGroup
PlantSection
BusinessArea
CatalogProfile
CompanyCode
MainWorkCenter
MaintenancePlant
TechnicalObjectCategory
TechnicalObjectType
_TechObjIsEquipOrFuncnlLoc _TechObjIsEquipOrFuncnlLoc
_PMNotificationPriority _PMNotificationPriority
_StatusObjectStatus _StatusObjectStatus
_OverallJobStatus _OverallJobStatus
_PMNotificationType _PMNotificationType
_MalfunctionEffect _MalfunctionEffect



@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@EndUserText.label: 'Maintenance Work Request'
@VDM.viewType: #TRANSACTIONAL
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API

@ObjectModel.representativeKey: 'MaintenanceNotification'
@ObjectModel.semanticKey:  [ 'MaintenanceNotification' ]

@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XL

@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: 'R_MaintenanceNotificationTP'

define root view entity R_MaintenanceWorkRequestTP
  as select from I_MaintNotificationTechObj
  // association [0..1] to I_MaintNotifLongText        as _MaintNotifLongText        on  $projection.MaintenanceNotification = _MaintNotifLongText.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..1] to I_PMNotificationPriority    as _PMNotificationPriority    on  $projection.MaintPriority     = _PMNotificationPriority.MaintPriority

//                                                                                  and $projection.MaintPriorityType = _PMNotificationPriority.MaintPriorityType

  association [1..*] to I_StatusObjectStatus        as _StatusObjectStatus        on  $projection.MaintNotifInternalID = _StatusObjectStatus.StatusObject
  association [0..1] to I_MaintenanceJobOverallStatus as _OverallJobStatus         on  $projection.MaintNotifInternalID = _OverallJobStatus.MaintenanceJobInternalID

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

      //@ObjectModel.text.element:  [ 'NotificationText' ]

  key I_MaintNotificationTechObj.MaintenanceNotification,

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

      I_MaintNotificationTechObj.MaintNotifInternalID,
      I_MaintNotificationTechObj.MaintenanceOrder,
      I_MaintNotificationTechObj._MaintenanceOrder.MaintenanceOrderDesc,

//    @ObjectModel.foreignKey.association: '_PMNotificationPriority'

      @ObjectModel.text.element:  [ 'MaintPriorityDesc' ]
      I_MaintNotificationTechObj.MaintPriority,

//    @ObjectModel.foreignKey.association: '_PMNotificationPriority'

      I_MaintNotificationTechObj.MaintPriorityType,
      I_MaintNotificationTechObj._PMNotificationPriority.MaintPriorityColorCode,

      I_MaintNotificationTechObj._PMNotificationPriority._Text[1: Language = $session.system_language ].MaintPriorityDesc,

      // @ObjectModel.foreignKey.association: '_TechnicalObject'

      I_MaintNotificationTechObj.TechnicalObject,
      
      // @ObjectModel.foreignKey.association: '_TechnicalObject'

      @ObjectModel.text.element:  [ 'TechnicalObjectDescription' ]
      cast( case when I_MaintNotificationTechObj._TechnicalObject.TechObjIsEquipOrFuncnlLoc = 'EAMS_FL' then // Functional Location

                      I_MaintNotificationTechObj._TechnicalObject._FunctionalLocationLabel.FunctionalLocationLabelName
                 else I_MaintNotificationTechObj._TechnicalObject.TechnicalObject end as eams_tech_obj_alpha_conv )   
                 as TechnicalObjectLabel,

      I_MaintNotificationTechObj._TechObjIsEquipOrFuncnlLoc._Text[1: Language = $session.system_language ].TechObjIsEquipOrFuncnlLocDesc,

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

      I_MaintNotificationTechObj.Equipment,
      I_MaintNotificationTechObj._FunctionalLocation.FunctionalLocation,
      I_MaintNotificationTechObj._TechnicalObject._TechnicalObjectText[1: Language = $session.system_language ].TechnicalObjectDescription,

      I_MaintNotificationTechObj.PersonResponsible, 
      I_MaintNotificationTechObj.CreatedByUser,
      I_MaintNotificationTechObj.CreationDateTime,
      I_MaintNotificationTechObj.CreationDate,

      @Semantics.text: true
      I_MaintNotificationTechObj.NotificationText,

      I_MaintNotificationTechObj.NotificationCreationDate,
      @Semantics.time: true
      I_MaintNotificationTechObj.NotificationCreationTime,

      I_MaintNotificationTechObj.NotificationTimeZone,

      @ObjectModel.foreignKey.association: '_MalfunctionEffect'
      I_MaintNotificationTechObj.MalfunctionEffect,
      
      I_MaintNotificationTechObj.MaintNotificationCatalog,
      I_MaintNotificationTechObj.MaintNotificationCode,
      
      I_MaintNotificationTechObj._PMNotifMaintenanceData.LocationDescription,
      
 
      @ObjectModel.text.element:  [ 'ReporterFullName' ]
      I_MaintNotificationTechObj.ReportedByUser, 
          
      I_MaintNotificationTechObj.ReporterFullName,
      
      I_MaintNotificationTechObj.MalfunctionStartDate,
      I_MaintNotificationTechObj.MalfunctionStartTime,
      I_MaintNotificationTechObj.MalfunctionEndDate,
      I_MaintNotificationTechObj.MalfunctionEndTime,

      I_MaintNotificationTechObj._TechnicalObject._LocationAccountAssignment.AssetLocation,
      I_MaintNotificationTechObj._TechnicalObject._LocationAccountAssignment._Location.LocationName,
      
      I_MaintNotificationTechObj._MaintNotifLongText.MaintNotificationLongText,
            
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintenanceObjectIsDown,
      
      @ObjectModel.text.element:  [ 'EAMOverallStatusDescription' ]
      cast( case when _StatusObjectStatus[ StatusCode = 'I3350' and StatusIsInactive = '' ].StatusObject is not null then 'F2023' else '' end  as pm_source_appl) as MaintNotifSourceApplication,
       _OverallJobStatus.EAMOverallObjectStatus,
       
       _OverallJobStatus._OverallStatus._Text[Language = $session.system_language].EAMOverallStatusDescription,
       
       _OverallJobStatus.EAMOverallObjectStatusProfile,
       
       
       I_MaintNotificationTechObj.NotifProcessingPhase,       
      
      cast('' as objky)                                                                          as MaintWorkRequestAttchKey, // transient field for attachment ID (temp key)

      
      I_MaintNotificationTechObj._TechnicalObject.MaintenancePlannerGroup,
      I_MaintNotificationTechObj._TechnicalObject._LocationAccountAssignment.PlantSection,
      
       I_MaintNotificationTechObj._TechnicalObject._LocationAccountAssignment.BusinessArea,
       I_MaintNotificationTechObj._TechnicalObject.CatalogProfile,
       I_MaintNotificationTechObj._TechnicalObject._LocationAccountAssignment.CompanyCode,
       cast( I_MaintNotificationTechObj._TechnicalObject._WorkCenter.WorkCenter as gewrk )    as MainWorkCenter,
       I_MaintNotificationTechObj._TechnicalObject._LocationAccountAssignment.MaintenancePlant,
       I_MaintNotificationTechObj._TechnicalObject.TechnicalObjectCategory,
       I_MaintNotificationTechObj._TechnicalObject.TechnicalObjectType,
         
      
      // _TechnicalObject,

       _TechObjIsEquipOrFuncnlLoc,
      _PMNotificationPriority,
      _StatusObjectStatus,
      _OverallJobStatus,
      _PMNotificationType,
      _MalfunctionEffect
   

      //      I_MaintNotificationTechObj._PMNotificationType,

      //      I_MaintNotificationTechObj._MalfunctionEffect,

      //I_MaintNotificationTechObj._PMNotificationPriority,


}    where CreatedByUser = $session.user