C_MaintNotificationQuickVw

DDL: C_MAINTNOTIFICATIONQUICKVW SQL: CNOTIFQV Type: view CONSUMPTION

Quick View for Maintenance Notification

C_MaintNotificationQuickVw is a Consumption CDS View that provides data about "Quick View for Maintenance Notification" in SAP S/4HANA. It reads from 1 data source (I_MaintNotificationTechObj) and exposes 2 fields with key field MaintenanceNotification. It has 5 associations to related views. It is exposed through 2 OData services (UI_MAINTENANCEITEM, UI_MAINTENANCEJOB_MANAGE). It is used in 2 Fiori applications: Perform Maintenance Jobs, Manage Maintenance Items.

Data Sources (1)

SourceAliasJoin Type
I_MaintNotificationTechObj I_MaintNotificationTechObj from

Associations (5)

CardinalityTargetAliasCondition
[0..1] I_FunctionalLocationText _FunctionalLocationText _FunctionalLocationText.FunctionalLocation = I_MaintNotificationTechObj.FunctionalLocation and _FunctionalLocationText.Language = $session.system_language
[0..1] I_EquipmentText _EquipmentText _EquipmentText.Equipment = I_MaintNotificationTechObj.Equipment and _EquipmentText.Language = $session.system_language
[0..1] I_MaintNotifEffectCode _MaintNotifEffectCode _MaintNotifEffectCode.MaintenanceNotification = $projection.MaintenanceNotification
[0..1] I_MalfunctionEffectText _MalfunctionEffectText _MalfunctionEffectText.MalfunctionEffect = $projection.MalfunctionEffect and _MalfunctionEffectText.Language = $session.system_language
[0..1] I_InspectionCodeText _InspectionCodeText _InspectionCodeText.InspectionCatalog = I_MaintNotificationTechObj.MaintNotificationCatalog and _InspectionCodeText.InspectionCodeGroup = I_MaintNotificationTechObj.MaintNotificationCodeGroup and _InspectionCodeText.InspectionCode = $projection.MaintNotificationCode and _InspectionCodeText.Language = $session.system_language

Annotations (11)

NameValueLevelField
VDM.viewType #CONSUMPTION view
AbapCatalog.sqlViewName CNOTIFQV view
AccessControl.authorizationCheck #PRIVILEGED_ONLY view
EndUserText.label Quick View for Maintenance Notification view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.representativeKey MaintenanceNotification view
UI.headerInfo.typeName Maintenance Notification view
UI.headerInfo.typeNamePlural Maintenance Notifications view

OData Services (2)

ServiceBindingVersionContractRelease
UI_MAINTENANCEITEM UI_MAINTENANCEITEM V2 C1 NOT_RELEASED
UI_MAINTENANCEJOB_MANAGE UI_MAINTENANCEJOB_MANAGE V2 C1 NOT_RELEASED

Fiori Apps (2)

App IDApp NameTypeDescription
F5104A Perform Maintenance Jobs Transactional Perform Maintenance Jobs app will help Maintenance Technician to see the list with all work items assigned to the him/her or to his/her team, several features like Assignment of an operation, Time recording for the Operations, create partial or final confirmations and the ability to display and change the malfunction information are possible with the app. The maintenance technician can post and return the planned components and can also record the measurement document.
F5356 Manage Maintenance Items Transactional An application to Manage Maintenance Items, provides and comprehensive Maintenance Item view, create new Maintenance Item, edit existing Maintenance Item.

Perform Maintenance Jobs

Business Role: Maintenance Technician

Technician records actual work, remaining work, confirmation text, and final confirmation for self as well as for team members working on the job.

Manage Maintenance Items

Business Role: Maintenance Planner

With the Manage Maintenance Items app, you as a maintenance planner can manage maintenance items. You can create maintenance items, decide how to evaluate final due date for a maintenance item, assign maintenance item to a maintenance plan, view details of a maintenance item, view status of an equipment or a functional location within a maintenance item, and so on.

Fields (2)

KeyFieldSource TableSource FieldDescription
KEY MaintenanceNotification MaintenanceNotification Maintenance Notification
InspectionCodeText Image
@VDM.viewType: #CONSUMPTION
@AbapCatalog.sqlViewName: 'CNOTIFQV'
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@EndUserText.label: 'Quick View for Maintenance Notification'
@ClientHandling.algorithm: #SESSION_VARIABLE

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

@UI.headerInfo : { typeName: 'Maintenance Notification',
                   typeNamePlural: 'Maintenance Notifications'}

define view C_MaintNotificationQuickVw
  as select from I_MaintNotificationTechObj
  association [0..1] to I_FunctionalLocationText       as _FunctionalLocationText        on  _FunctionalLocationText.FunctionalLocation     = I_MaintNotificationTechObj.FunctionalLocation
                                                                                         and _FunctionalLocationText.Language               = $session.system_language
  association [0..1] to I_EquipmentText                as _EquipmentText                 on  _EquipmentText.Equipment                       = I_MaintNotificationTechObj.Equipment
                                                                                         and _EquipmentText.Language                        = $session.system_language
  association [0..1] to I_MaintNotifEffectCode         as _MaintNotifEffectCode          on  _MaintNotifEffectCode.MaintenanceNotification  = $projection.MaintenanceNotification
  association [0..1] to I_MalfunctionEffectText        as _MalfunctionEffectText         on  _MalfunctionEffectText.MalfunctionEffect       = $projection.MalfunctionEffect
                                                                                         and _MalfunctionEffectText.Language                = $session.system_language
  association [0..1] to I_InspectionCodeText           as _InspectionCodeText            on  _InspectionCodeText.InspectionCatalog          = I_MaintNotificationTechObj.MaintNotificationCatalog
                                                                                         and _InspectionCodeText.InspectionCodeGroup        = I_MaintNotificationTechObj.MaintNotificationCodeGroup
                                                                                         and _InspectionCodeText.InspectionCode             = $projection.MaintNotificationCode
                                                                                         and _InspectionCodeText.Language                   = $session.system_language
{

      @UI.facet: [{ purpose: #QUICK_VIEW, type: #FIELDGROUP_REFERENCE, targetQualifier: 'MaintNotificationQuickVw', label:'General Details', position: 10},
                  { purpose: #QUICK_VIEW, type: #FIELDGROUP_REFERENCE, targetQualifier: 'MaintNotifMalfunctionInfoQuickVw', label:'Malfunction Information', position: 20}]

      // Maintenance Notification ID (Key)

      @UI: { fieldGroup:     [{ qualifier:'MaintNotificationQuickVw', position: 10 }]}
      @UI.hidden: true
      @EndUserText.label: 'Maintenance Notification'
  key MaintenanceNotification,

      // Maintenance Notification Image

      @Semantics.imageUrl: true
      @EndUserText.label: 'Image'
      @Consumption.filter.hidden: true
      //      'sap-icon://request'                                                            as MaintNotificationThumbnailURL,

      cast( 'sap-icon://request' as string128 )                                               as MaintNotificationThumbnailURL,

      // Maintenance Notification Internal ID ( Status Object Mapping)

      @UI.hidden: true
      MaintNotifInternalID,

      // Maintenance Notification Description

      @UI: { fieldGroup:     [{ qualifier:'MaintNotificationQuickVw', position: 20}] }
      @EndUserText.label: 'Description'
      @UI.hidden: true
      NotificationText,

      // Maintenance Notification Long Text

      @Semantics.text: true
      @ObjectModel.virtualElement
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EAM_NTF_LTXT_EXIT'
      @UI.fieldGroup: [{ qualifier: 'MaintNotificationQuickVw', position: 30 }]
      @UI.multiLineText: true
      @EndUserText.label: 'Long Text'
      @UI.hidden: true
      cast( '' as eams_ltext )                                                                as MaintNotificationLongText,

      // Maintenance Notification Type

      @UI: { fieldGroup:     [{ qualifier:'MaintNotificationQuickVw', position: 40 }]}
      @ObjectModel.text.element:  [ 'NotificationTypeName' ]
      @EndUserText.label: 'Notification Type'
      @UI.textArrangement: #TEXT_FIRST
      @UI.hidden: true
      NotificationType,

      @EndUserText.label: 'Notification Type Name'
      _PMNotificationType._Text[1:Language=$session.system_language].NotificationTypeName,


      // Maintenance Notification Priority

      @UI: { fieldGroup:     [{ qualifier:'MaintNotificationQuickVw', position: 50}] }
      @ObjectModel.text.element: ['MaintPriorityDesc']
      @EndUserText.label: 'Priority'
      @UI.textArrangement: #TEXT_FIRST
      @UI.hidden: true
      MaintPriority,
      @UI: { fieldGroup:     [{ qualifier:'MaintNotificationQuickVw', position: 50}] }
      @EndUserText.label: 'Priority'
      _PMNotificationPriority._Text[1:Language=$session.system_language].MaintPriorityDesc,

      // Maintenance Notification IsBreakdown?

      @UI: { fieldGroup:     [{ qualifier:'MaintNotifMalfunctionInfoQuickVw', position:  40 }] }
      @EndUserText.label: 'Breakdown'
      @EndUserText.quickInfo: 'Breakdown'
      MaintenanceObjectIsDown,

      // Maintenance Notification Creation Date

      @UI: { fieldGroup:     [{ qualifier:'MaintNotificationQuickVw', position: 80}] }
      @EndUserText.label: 'Notification Date'
      @UI.hidden: true
      NotificationCreationDate,

      // Maintenance Notification Person Responsible

      @UI: { fieldGroup:     [{ qualifier:'MaintNotificationQuickVw', position: 90}] }
      @EndUserText.label: 'Person Responsible'
      @ObjectModel.text.element:  [ 'PersonResponsibleName' ]
      @UI.textArrangement: #TEXT_FIRST
      @UI.hidden: true
      PersonResponsible,

      // Maintenance Notification Person Responsible Name

      @ObjectModel.virtualElement
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EAM_OBJPG_MNTNTF_PART_EXIT'
      @EndUserText.label: 'Person Responsible Name'
      @UI.hidden: true
      cast('' as eams_person_responsible_name)                                                  as PersonResponsibleName,

      // Maintenance Notification Parnter Function (Person Responsible)

      @UI.hidden: true
      cast(_PMNotificationType.MaintNotifRespPartnerFunction  as  char2)                        as MaintNotifRespPartnerFunction,

      // Maintanence Notification System Status

      @UI: { fieldGroup:     [{ qualifier:'MaintNotificationQuickVw', position: 100}] }
      @EndUserText.label: 'System Status'
      @ObjectModel: { virtualElement: true, virtualElementCalculatedBy: 'ABAP:CL_EAM_MNTNTF_STS_EXIT' }
      @UI.hidden: true
      cast ('' as vdm_j_system_status_concat_t)                                                 as ConcatenatedActiveSystStsName,

      // Maintanence Notification User Status

      @UI: { fieldGroup:     [{ qualifier:'MaintNotificationQuickVw', position: 110}] }
      @EndUserText.label: 'User Status'
      @ObjectModel: { virtualElement: true, virtualElementCalculatedBy: 'ABAP:CL_EAM_MNTNTF_STS_EXIT' }
      @UI.hidden: true
      cast ('' as vdm_j_user_status_concat_t)                                                   as ConcatenatedActiveUserStsName,

      //    // IME: 2002 LACD

      @UI: { fieldGroup:     [{ qualifier:'MaintNotificationQuickVw', position: 60}] }
      @EndUserText.quickInfo: 'Last Completion Date'
      LatestAcceptableCompletionDate,
      //    // IME: 2002 LACD

      
      // Technical Object

      @UI: { fieldGroup:     [{ qualifier:'MaintNotificationQuickVw', position: 30}] }
      @EndUserText.label: 'Technical Object'
      @UI.textArrangement: #TEXT_FIRST
      @ObjectModel.text.element: ['TechnicalObjectDescription']
      cast (_TechnicalObject.TechnicalObjectLabel as eams_tech_obj_alpha_conv preserving type ) as TechnicalObjectLabel,
      
      case when Equipment = '' then
            cast( _FunctionalLocationText.FunctionalLocationName as eams_tec_obj_des )
            else cast( _EquipmentText.EquipmentName as eams_tec_obj_des ) end                   as TechnicalObjectDescription,
      
      
      @UI: { fieldGroup:     [{ qualifier:'MaintNotifMalfunctionInfoQuickVw', position: 10}] }
      @EndUserText.label: 'Failure Mode'
      @UI.textArrangement: #TEXT_FIRST
      @ObjectModel.text.element: ['InspectionCodeText']
      @EndUserText.quickInfo: 'Failure Mode Text'
      MaintNotificationCode,
      
      
      @UI: { fieldGroup:     [{ qualifier:'MaintNotifMalfunctionInfoQuickVw', position: 20}] }
      @EndUserText.label: 'Malfunction Start'
      @Semantics.dateTime: true
      dats_tims_to_tstmp( MalfunctionStartDate,
                          MalfunctionStartTime,
                          NotificationTimeZone,
                          $session.client,
                          'NULL' )                                                              as MalfunctionStartDateTime,
      
      @UI: { fieldGroup:     [{ qualifier:'MaintNotifMalfunctionInfoQuickVw', position: 30}] }
      @EndUserText.label: 'Malfunction End'
      @Semantics.dateTime: true
      dats_tims_to_tstmp( MalfunctionEndDate,
                          MalfunctionEndTime,
                          NotificationTimeZone,
                          $session.client,
                          'NULL' )                                                              as MalfunctionEndDateTime,
                          
      @UI: { fieldGroup:     [{ qualifier:'MaintNotifMalfunctionInfoQuickVw', position: 50}] }
      @EndUserText.label: 'Breakdown Duration'
      @EndUserText.quickInfo: 'Duration'
      @Semantics.quantity.unitOfMeasure: 'MaintObjDowntimeDurationUnit'
      cast(unit_conversion(
             quantity => MaintObjectDowntimeDuration,
             source_unit => cast('S' as maueh),
             target_unit => MaintObjDowntimeDurationUnit,
             error_handling=> 'SET_TO_NULL'
             ) as auszt )                                                                       as MaintObjectDowntimeDuration,
      
      @Semantics.unitOfMeasure: true
      MaintObjDowntimeDurationUnit,
      
      @UI: { fieldGroup:     [{ qualifier:'MaintNotifMalfunctionInfoQuickVw', position: 60}] }
      @EndUserText.label: 'Operational Effect'
       @EndUserText.quickInfo: 'Operational Effect Mode'
      @UI.textArrangement: #TEXT_FIRST
      @ObjectModel.text.element: ['MalfunctionEffectText']
      MalfunctionEffect,
      
      @EndUserText.label : 'Failure Effect' 
      @EndUserText.quickInfo: 'Failure Effect'
      @ObjectModel.text.element: ['MaintNotifEffectCtlgCodeText']
      _MaintNotifEffectCode.MaintNotifEffectCode,
      @UI.hidden: true
      _MaintNotifEffectCode._MaintNotificationEffectCode._Text[1: Language = $session.system_language ].InspectionCodeText as MaintNotifEffectCtlgCodeText,
      
      @ObjectModel.virtualElement
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EAM_NTF_ITM_EXIT'
      @UI.textArrangement: #TEXT_FIRST
      @ObjectModel.text.element: ['MaintNotifDamageCodeName']
      cast (''  as  eam_damage_code)                                                            as MaintNotificationDamageCode,
      
      
      @ObjectModel.virtualElement
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EAM_NTF_ITM_EXIT'
      cast (''  as  eam_damage_code_group)                                                      as MaintNotifDamageCodeGroup,
      
      @ObjectModel.virtualElement
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EAM_NTF_ITM_EXIT'
      cast (''  as  eam_damage_code_catalog)                                                    as MaintNotifDamageCodeCatalog,
      
      @ObjectModel.virtualElement
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EAM_NTF_ITM_EXIT'
      cast (''  as  fetxt)                                                                      as MaintNotifItemText,
      
      @ObjectModel.virtualElement
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EAM_NTF_ITM_EXIT'
      cast (''  as  vdm_qtxt_code)                                                              as MaintNotifDamageCodeName,
      
      _MalfunctionEffectText.MalfunctionEffectText,
      
      _InspectionCodeText.InspectionCodeText
      
}