C_TechObjMaintNotification

DDL: C_TECHOBJMAINTNOTIFICATION SQL: CTOMAINTNOTIF Type: view CONSUMPTION Package: ODATA_EAM_TECHOBJ_MAN

Maintenance Notifications for Technical Object

C_TechObjMaintNotification is a Consumption CDS View that provides data about "Maintenance Notifications for Technical Object" in SAP S/4HANA. It reads from 2 data sources (I_MaintenanceNotification, I_MaintenanceNotification) and exposes 87 fields with key field MaintenanceNotification. It has 1 association to related views. Part of development package ODATA_EAM_TECHOBJ_MAN.

Data Sources (2)

SourceAliasJoin Type
I_MaintenanceNotification I_MaintNotificationTechObj from
I_MaintenanceNotification I_MaintNotificationTechObj union_all

Associations (1)

CardinalityTargetAliasCondition
[0..1] I_TechObjIsEquipOrFuncnlLocT _TechObjIsEquipOrFuncnlLocT _TechObjIsEquipOrFuncnlLocT.TechObjIsEquipOrFuncnlLoc = 'EAMS_EQUI' and _TechObjIsEquipOrFuncnlLocT.Language = $session.system_language

Annotations (10)

NameValueLevelField
AbapCatalog.sqlViewName CTOMAINTNOTIF view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #NOT_REQUIRED view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Maintenance Notifications for Technical Object view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
VDM.viewType #CONSUMPTION view

Fields (87)

KeyFieldSource TableSource FieldDescription
KEY MaintenanceNotification I_MaintenanceNotification MaintenanceNotification
NotificationText I_MaintenanceNotification NotificationText
NotificationType
NotificationTypeName Notification Type Text
TechnicalObjectLabel
TechnicalObjectDescription Technical Object Description
TechObjIsEquipOrFuncnlLoc Technical Object Type
TechObjIsEquipOrFuncnlLocDesc _TechObjIsEquipOrFuncnlLocT TechObjIsEquipOrFuncnlLocDesc Technical Object Type Description
MaintPriority I_MaintenanceNotification MaintPriority
MaintPriorityDesc
MaintenancePlanningPlant
MaintenancePlanningPlantName
MaintenancePlannerGroup Maintenance Planner Group
MaintenancePlannerGroupName
ABCIndicator
ABCIndicatorDesc ABC Indicator Text
CreationDate I_MaintenanceNotification CreationDate
CreationTime I_MaintenanceNotification CreationTime
CreatedByUser I_MaintenanceNotification CreatedByUser
Assembly
AssemblyName Assembly Name
MalfunctionStartDate Malfunction Start On
MalfunctionStartTime Malfunction Start At
MalfunctionEndDate Malfunction End On
MalfunctionEndTime Malfunction End At
MaintenanceWorkCenter
MaintenanceWorkCenterText
RequiredStartDate I_MaintenanceNotification RequiredStartDate Required Start On
RequiredStartTime I_MaintenanceNotification RequiredStartTime Required Start At
RequiredEndDate I_MaintenanceNotification RequiredEndDate Required End On
RequiredEndTime I_MaintenanceNotification RequiredEndTime Required End At
MaintenanceWorkCenterPlant I_MaintenanceNotification MaintenanceWorkCenterPlant
MaintenanceWorkCenterPlantName Maintenance Work Center Plant Name
AssetLocation
AssetLocationName
AssetRoom
MaintenancePlant
MaintenancePlantName Maintenance Plant Name
PlantSection
MaintPriorityType I_MaintenanceNotification MaintPriorityType
TechnicalObject
AuthorizationGroup
MaintNotifInternalID I_MaintenanceNotification MaintNotifInternalID
MaintenanceNotification
NotificationText I_MaintenanceNotification NotificationText
NotificationType
NotificationTypeName
TechnicalObjectLabel
TechnicalObjectDescription
TechObjIsEquipOrFuncnlLoc
TechObjIsEquipOrFuncnlLocDesc _TechObjIsEquipOrFuncnlLocT TechObjIsEquipOrFuncnlLocDesc
MaintPriority I_MaintenanceNotification MaintPriority
MaintPriorityDesc
MaintenancePlanningPlant
MaintenancePlanningPlantName
MaintenancePlannerGroup
MaintenancePlannerGroupName
ABCIndicator
ABCIndicatorDesc
CreationDate I_MaintenanceNotification CreationDate
CreationTime I_MaintenanceNotification CreationTime
CreatedByUser I_MaintenanceNotification CreatedByUser
Assembly
AssemblyName
MalfunctionStartDate
MalfunctionStartTime
MalfunctionEndDate
MalfunctionEndTime
MaintenanceWorkCenter
MaintenanceWorkCenterText
RequiredStartDate I_MaintenanceNotification RequiredStartDate
RequiredStartTime I_MaintenanceNotification RequiredStartTime
RequiredEndDate I_MaintenanceNotification RequiredEndDate
RequiredEndTime I_MaintenanceNotification RequiredEndTime
MaintenanceWorkCenterPlant I_MaintenanceNotification MaintenanceWorkCenterPlant
MaintenanceWorkCenterPlantName
AssetLocation
AssetLocationName
AssetRoom
MaintenancePlant
MaintenancePlantName
PlantSection
MaintPriorityType I_MaintenanceNotification MaintPriorityType
TechnicalObject
AuthorizationGroup
MaintNotifInternalID I_MaintenanceNotification MaintNotifInternalID
MaintenanceOrderType
@AbapCatalog.sqlViewName: 'CTOMAINTNOTIF'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Maintenance Notifications for Technical Object'
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #MIXED
@VDM.viewType: #CONSUMPTION

@UI.presentationVariant.sortOrder: [
  { by: 'CreationDate', direction: #DESC },
  { by: 'CreationTime', direction: #DESC }
]

define view C_TechObjMaintNotification
  as select from I_MaintenanceNotification as I_MaintNotificationTechObj
  association [0..1] to I_TechObjIsEquipOrFuncnlLocT as _TechObjIsEquipOrFuncnlLocT on  _TechObjIsEquipOrFuncnlLocT.TechObjIsEquipOrFuncnlLoc = 'EAMS_EQUI'
                                                                                    and _TechObjIsEquipOrFuncnlLocT.Language                  = $session.system_language

{
      @Consumption.semanticObject: 'MaintenanceNotification'
      @UI: { lineItem: {position: 10, importance: #HIGH}}
      @ObjectModel.text.element:  [ 'NotificationText' ]
      @UI.textArrangement: #TEXT_FIRST
  key I_MaintNotificationTechObj.MaintenanceNotification,
      @Semantics.text: true
      I_MaintNotificationTechObj.NotificationText,
      @UI: {lineItem: {position: 20, importance: #HIGH }}
      @ObjectModel.text.element:  [ 'NotificationTypeName' ]
      @UI.textArrangement: #TEXT_FIRST
      I_MaintNotificationTechObj._PMNotificationType.NotificationType,
      @Semantics.text: true
      @EndUserText.label: 'Notification Type Text'
      I_MaintNotificationTechObj._PMNotificationType._Text[1:Language=$session.system_language].NotificationTypeName,

      @ObjectModel.text.element:  'TechnicalObjectDescription'
      @UI.textArrangement: #TEXT_FIRST
      cast( _PMNotifMaintenanceData.Equipment as eams_tech_obj_conv )                                                                                     as TechnicalObjectLabel,
      @EndUserText.label: 'Technical Object Description'
      cast( _PMNotifMaintenanceData._Equipment._EquipmentText[ 1: Language = $session.system_language ].EquipmentName as eams_tec_obj_des )               as TechnicalObjectDescription,

      @ObjectModel.text.element:  'TechObjIsEquipOrFuncnlLocDesc'
      @EndUserText.label: 'Technical Object Type'
      @UI.textArrangement: #TEXT_ONLY
      @UI.hidden
      @Environment.sql.passValue: true
      cast ( 'EAMS_EQUI' as eams_tec_obj_type_value)                                                                                                      as TechObjIsEquipOrFuncnlLoc,
      @Semantics.text: true
      @EndUserText.label: 'Technical Object Type Description'
      _TechObjIsEquipOrFuncnlLocT.TechObjIsEquipOrFuncnlLocDesc,

      @UI: { lineItem: {position: 60, importance: #HIGH }}
      @ObjectModel.text.element:  [ 'MaintPriorityDesc' ]
      @UI.textArrangement: #TEXT_FIRST
      I_MaintNotificationTechObj.MaintPriority,
      @Semantics.text: true
      I_MaintNotificationTechObj._PMNotificationPriority._Text[1:Language=$session.system_language].MaintPriorityDesc,

      @ObjectModel: {
        virtualElement: true,
        virtualElementCalculatedBy: 'ABAP:CL_EAM_MNTNTF_STS_EXIT'
      }
      @Semantics.text: true
      @UI: { lineItem: {position: 30, importance: #HIGH } }
      @EndUserText.label: 'System Status'
      cast ('' as vdm_j_system_status_concat_t)                                                                                                           as ConcatenatedActiveSystStsName,

      @ObjectModel.text.element: 'MaintenancePlanningPlantName'
      @UI.textArrangement: #TEXT_FIRST
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintenancePlanningPlant,
      @Semantics.text: true
      I_MaintNotificationTechObj._PMNotifMaintenanceData._MaintenancePlanningPlant.PlantName                                                              as MaintenancePlanningPlantName,

      @ObjectModel.text.element: 'MaintenancePlannerGroupName'
      @EndUserText.label: 'Maintenance Planner Group'
      @UI.textArrangement: #TEXT_FIRST
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintenancePlannerGroup,
      @Semantics.text: true
      I_MaintNotificationTechObj._PMNotifMaintenanceData._MaintenancePlannerGroup.MaintenancePlannerGroupName,

      @ObjectModel.text.element: 'ABCIndicatorDesc'
      @UI.textArrangement: #TEXT_FIRST
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.ABCIndicator,
      @Semantics.text: true
      @EndUserText.label: 'ABC Indicator Text'
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._ABCIndicator._Text[1:Language = $session.system_language].ABCIndicatorDesc,

      @UI: { lineItem: {position: 40, importance: #HIGH } }
      @Semantics.systemDate.createdAt: true
      I_MaintNotificationTechObj.CreationDate,

      @UI: { lineItem: {position: 50, importance: #HIGH } }
      I_MaintNotificationTechObj.CreationTime,

      @EndUserText.label: 'User Status'
      @ObjectModel: {
        virtualElement: true,
        virtualElementCalculatedBy: 'ABAP:CL_EAM_MNTNTF_STS_EXIT'
      }
      cast ('' as vdm_j_user_status_concat_t)                                                                                                             as ConcatenatedActiveUserStsName,

      I_MaintNotificationTechObj.CreatedByUser,

      @ObjectModel.text.element: 'AssemblyName'
      I_MaintNotificationTechObj._PMNotifMaintenanceData.Assembly,
      @Semantics.text: true
      @EndUserText.label: 'Assembly Name'
      I_MaintNotificationTechObj._PMNotifMaintenanceData._Assembly._Text[1:Language=$session.system_language].MaterialName                                as AssemblyName,

      //      I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintenanceObjectIsDown,

      @Semantics.businessDate.at: true
      @EndUserText.label: 'Malfunction Start On'
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MalfunctionStartDate,

      @EndUserText.label: 'Malfunction Start At'
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MalfunctionStartTime,

      @Semantics.businessDate.at: true
      @EndUserText.label: 'Malfunction End On'
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MalfunctionEndDate,

      @EndUserText.label: 'Malfunction End At'
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MalfunctionEndTime,

      @ObjectModel.text.element: 'MaintenanceWorkCenterText'
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._WorkCenter.WorkCenter                                                as MaintenanceWorkCenter,
      @Semantics.text: true
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._WorkCenter._Text[1:Language=$session.system_language].WorkCenterText as MaintenanceWorkCenterText,

      @Semantics.businessDate.at: true
      @EndUserText.label: 'Required Start On'
      I_MaintNotificationTechObj.RequiredStartDate,
      @EndUserText.label: 'Required Start At'
      I_MaintNotificationTechObj.RequiredStartTime,
      @Semantics.businessDate.at: true
      @EndUserText.label: 'Required End On'
      I_MaintNotificationTechObj.RequiredEndDate,
      @EndUserText.label: 'Required End At'
      I_MaintNotificationTechObj.RequiredEndTime,
      @ObjectModel.text.element: 'MaintenanceWorkCenterPlantName'
      I_MaintNotificationTechObj.MaintenanceWorkCenterPlant,
      @Semantics.text: true
      @EndUserText.label: 'Maintenance Work Center Plant Name'
      I_MaintNotificationTechObj._MaintenanceWorkCenterPlant.PlantName                                                                                    as MaintenanceWorkCenterPlantName,
      @ObjectModel.text.element: 'AssetLocationName'
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.AssetLocation,
      @Semantics.text: true
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._Location.LocationName                                                as AssetLocationName,

      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.AssetRoom,
      @ObjectModel.text.element: 'MaintenancePlantName'
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.MaintenancePlant,
      @Semantics.text: true
      @EndUserText.label: 'Maintenance Plant Name'
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._MaintenancePlant.PlantName                                           as MaintenancePlantName,

      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.PlantSection,

      // Technical fields

      @UI.hidden: true
      I_MaintNotificationTechObj.MaintPriorityType,
      @UI.hidden: true
      cast( _PMNotifMaintenanceData.Equipment as eams_tec_obj )                                                                                           as TechnicalObject,
      @UI.hidden: true
      _PMNotifMaintenanceData._Equipment.AuthorizationGroup,
      @UI.hidden: true
      I_MaintNotificationTechObj.MaintNotifInternalID,
      @UI.hidden: true
      I_MaintNotificationTechObj._MaintenanceOrder.MaintenanceOrderType
}
where
  _PMNotifMaintenanceData.Equipment <> ''

union all select from I_MaintenanceNotification as I_MaintNotificationTechObj
association [0..1] to I_TechObjIsEquipOrFuncnlLocT as _TechObjIsEquipOrFuncnlLocT on  _TechObjIsEquipOrFuncnlLocT.TechObjIsEquipOrFuncnlLoc = 'EAMS_FL'
                                                                                  and _TechObjIsEquipOrFuncnlLocT.Language                  = $session.system_language

{
  key I_MaintNotificationTechObj.MaintenanceNotification,
      I_MaintNotificationTechObj.NotificationText,
      I_MaintNotificationTechObj._PMNotificationType.NotificationType,
      I_MaintNotificationTechObj._PMNotificationType._Text[1:Language=$session.system_language].NotificationTypeName,
      cast( _PMNotifMaintenanceData._LocationAccountAssignment._FunctionalLocation._FunctionalLocationLabel.FunctionalLocationLabelName as eams_tech_obj_conv )                                    as TechnicalObjectLabel,
      cast(  _PMNotifMaintenanceData._LocationAccountAssignment._FunctionalLocation._FunctionalLocationText[ 1: Language = $session.system_language ].FunctionalLocationName as eams_tec_obj_des ) as TechnicalObjectDescription,
      cast ( 'EAMS_FL' as eams_tec_obj_type_value)                                                                                                                                                 as TechObjIsEquipOrFuncnlLoc,
      _TechObjIsEquipOrFuncnlLocT.TechObjIsEquipOrFuncnlLocDesc,
      I_MaintNotificationTechObj.MaintPriority,
      I_MaintNotificationTechObj._PMNotificationPriority._Text[1:Language=$session.system_language].MaintPriorityDesc,
      cast ('' as vdm_j_system_status_concat_t)                                                                                                                                                    as ConcatenatedActiveSystStsName,
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintenancePlanningPlant,
      I_MaintNotificationTechObj._PMNotifMaintenanceData._MaintenancePlanningPlant.PlantName                                                                                                       as MaintenancePlanningPlantName,
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MaintenancePlannerGroup,
      I_MaintNotificationTechObj._PMNotifMaintenanceData._MaintenancePlannerGroup.MaintenancePlannerGroupName,
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.ABCIndicator,
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._ABCIndicator._Text[1:Language = $session.system_language].ABCIndicatorDesc,
      I_MaintNotificationTechObj.CreationDate,
      I_MaintNotificationTechObj.CreationTime,
      cast ('' as vdm_j_user_status_concat_t)                                                                                                                                                      as ConcatenatedActiveUserStsName,
      I_MaintNotificationTechObj.CreatedByUser,
      I_MaintNotificationTechObj._PMNotifMaintenanceData.Assembly,
      I_MaintNotificationTechObj._PMNotifMaintenanceData._Assembly._Text[1:Language=$session.system_language].MaterialName                                                                         as AssemblyName,
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MalfunctionStartDate,
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MalfunctionStartTime,
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MalfunctionEndDate,
      I_MaintNotificationTechObj._PMNotifMaintenanceData.MalfunctionEndTime,
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._WorkCenter.WorkCenter                                                                                         as MaintenanceWorkCenter,
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._WorkCenter._Text[1:Language=$session.system_language].WorkCenterText                                          as MaintenanceWorkCenterText,
      I_MaintNotificationTechObj.RequiredStartDate,
      I_MaintNotificationTechObj.RequiredStartTime,
      I_MaintNotificationTechObj.RequiredEndDate,
      I_MaintNotificationTechObj.RequiredEndTime,
      I_MaintNotificationTechObj.MaintenanceWorkCenterPlant,
      I_MaintNotificationTechObj._MaintenanceWorkCenterPlant.PlantName                                                                                                                             as MaintenanceWorkCenterPlantName,
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.AssetLocation,
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._Location.LocationName                                                                                         as AssetLocationName,
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.AssetRoom,
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.MaintenancePlant,
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment._MaintenancePlant.PlantName                                                                                    as MaintenancePlantName,
      I_MaintNotificationTechObj._PMNotifMaintenanceData._LocationAccountAssignment.PlantSection,
      // Technical fields

      I_MaintNotificationTechObj.MaintPriorityType,
      cast(  _PMNotifMaintenanceData._LocationAccountAssignment.FunctionalLocation as eams_tec_obj )                                                                                               as TechnicalObject,
      _PMNotifMaintenanceData._LocationAccountAssignment._FunctionalLocation.AuthorizationGroup,
      I_MaintNotificationTechObj.MaintNotifInternalID,
      I_MaintNotificationTechObj._MaintenanceOrder.MaintenanceOrderType
}
where
  _PMNotifMaintenanceData.Equipment = ''