I_MaintNotificationActivity

DDL: I_MAINTNOTIFICATIONACTIVITY SQL: IMAINTNOTIFACTV Type: view BASIC Package: IWOC

Maintenance Notification Activity

I_MaintNotificationActivity is a Basic CDS View (Dimension) that provides data about "Maintenance Notification Activity" in SAP S/4HANA. It reads from 1 data source (qmma) and exposes 29 fields with key fields MaintNotificationActivity, MaintenanceNotification. It has 6 associations to related views. Part of development package IWOC.

Data Sources (1)

SourceAliasJoin Type
qmma qmma from

Associations (6)

CardinalityTargetAliasCondition
[1..1] I_MaintenanceNotification _MaintenanceNotification $projection.MaintenanceNotification = _MaintenanceNotification.MaintenanceNotification
[0..1] I_MaintenanceNotificationItem _MaintenanceNotificationItem $projection.MaintenanceNotification = _MaintenanceNotificationItem.MaintenanceNotification and $projection.MaintenanceNotificationItem = _MaintenanceNotificationItem.MaintenanceNotificationItem
[0..1] I_Indicator _IsDeleted $projection.IsDeleted = _IsDeleted.IndicatorValue
[0..1] I_Inspectioncatalog _MaintNotifActivityCodeCatalog $projection.MaintNotifActivityCodeCatalog = _MaintNotifActivityCodeCatalog.InspectionCatalog
[0..1] I_InspectionCodeGroup _MaintNotifActivityCodeGroup $projection.MaintNotifActivityCodeGroup = _MaintNotifActivityCodeGroup.InspectionCodeGroup and $projection.MaintNotifActivityCodeCatalog = _MaintNotifActivityCodeGroup.InspectionCatalog
[0..1] I_InspectionCode _MaintNotificationActivityCode $projection.MaintNotificationActivityCode = _MaintNotificationActivityCode.InspectionCode and $projection.MaintNotifActivityCodeCatalog = _MaintNotificationActivityCode.InspectionCatalog and $projection.MaintNotifActivityCodeGroup = _MaintNotificationActivityCode.InspectionCodeGroup

Annotations (11)

NameValueLevelField
EndUserText.label Maintenance Notification Activity view
Analytics.dataCategory #DIMENSION view
VDM.viewType #BASIC view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #NOT_REQUIRED view
AbapCatalog.sqlViewName IMAINTNOTIFACTV view
ObjectModel.representativeKey MaintNotificationActivity view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #A view
ObjectModel.usageType.sizeCategory #L view

Fields (29)

KeyFieldSource TableSource FieldDescription
KEY MaintNotificationActivity qmma manum
KEY MaintenanceNotification qmma qmnum
MaintenanceNotificationItem qmma fenum
MaintNotifActyTxt qmma matxt
MaintNotifActivitySortNumber qmma qmanum
MaintNotifActivityCodeCatalog
MaintNotificationActivityCode
MaintNotifActivityCodeGroup
IsDeleted qmma kzloesch
CreatedByUser qmma ernam
psterendasPlannedStartDate
psturendasPlannedStartTime
peterendasPlannedEndDate
peturendasPlannedEndTime
erdatendasCreationDate
erzeitendasCreationTime
aedatendasLastChangeDate
aezeitendasLastChangeTime
MaintNotifActyQtyFactor qmma mngfa
LastChangeDateTime qmma changeddatetime
LastChangedByUser qmma aenam
MaintNotifActivityEndDate qmma peter
NotificationHasLongText qmma indtx
_MaintenanceNotification _MaintenanceNotification
_MaintenanceNotificationItem _MaintenanceNotificationItem
_MaintNotifActivityCodeCatalog _MaintNotifActivityCodeCatalog
_MaintNotifActivityCodeGroup _MaintNotifActivityCodeGroup
_MaintNotificationActivityCode _MaintNotificationActivityCode
_IsDeleted _IsDeleted
@EndUserText.label: 'Maintenance Notification Activity'
--@Analytics: { dataCategory: #DIMENSION }
@VDM.viewType: #BASIC
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED
@AbapCatalog.sqlViewName: 'IMAINTNOTIFACTV'

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

@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@ObjectModel.usageType.serviceQuality: #A
@ObjectModel.usageType.sizeCategory: #L

define view I_MaintNotificationActivity
  as select from qmma
  association [1..1] to I_MaintenanceNotification     as _MaintenanceNotification       on  $projection.MaintenanceNotification = _MaintenanceNotification.MaintenanceNotification
  association [0..1] to I_MaintenanceNotificationItem as _MaintenanceNotificationItem   on  $projection.MaintenanceNotification     = _MaintenanceNotificationItem.MaintenanceNotification
                                                                                        and $projection.MaintenanceNotificationItem = _MaintenanceNotificationItem.MaintenanceNotificationItem
  association [0..1] to I_Indicator                   as _IsDeleted                     on  $projection.IsDeleted = _IsDeleted.IndicatorValue

  // Activity Coding

  association [0..1] to I_Inspectioncatalog           as _MaintNotifActivityCodeCatalog on  $projection.MaintNotifActivityCodeCatalog = _MaintNotifActivityCodeCatalog.InspectionCatalog
  association [0..1] to I_InspectionCodeGroup         as _MaintNotifActivityCodeGroup   on  $projection.MaintNotifActivityCodeGroup   = _MaintNotifActivityCodeGroup.InspectionCodeGroup
                                                                                        and $projection.MaintNotifActivityCodeCatalog = _MaintNotifActivityCodeGroup.InspectionCatalog
  association [0..1] to I_InspectionCode              as _MaintNotificationActivityCode on  $projection.MaintNotificationActivityCode = _MaintNotificationActivityCode.InspectionCode
                                                                                        and $projection.MaintNotifActivityCodeCatalog = _MaintNotificationActivityCode.InspectionCatalog
                                                                                        and $projection.MaintNotifActivityCodeGroup   = _MaintNotificationActivityCode.InspectionCodeGroup
{

  key qmma.manum                                      as MaintNotificationActivity,

      @ObjectModel.foreignKey.association: '_MaintenanceNotification'
  key qmma.qmnum                                      as MaintenanceNotification,

      @ObjectModel.foreignKey.association: '_MaintenanceNotificationItem'
      qmma.fenum                                      as MaintenanceNotificationItem,

      @Semantics.text: true
      qmma.matxt                                      as MaintNotifActyTxt,

      qmma.qmanum                                     as MaintNotifActivitySortNumber,

      @ObjectModel.foreignKey.association: '_MaintNotifActivityCodeCatalog'
      cast( qmma.mnkat as eam_activity_code_catalog ) as MaintNotifActivityCodeCatalog,
      @ObjectModel.foreignKey.association: '_MaintNotificationActivityCode'
      cast( qmma.mncod as eam_activity_code )         as MaintNotificationActivityCode,
      @ObjectModel.foreignKey.association: '_MaintNotifActivityCodeGroup'
      cast( qmma.mngrp as eam_activity_code_group )   as MaintNotifActivityCodeGroup,

      @ObjectModel.foreignKey.association: '_IsDeleted'
      qmma.kzloesch                                   as IsDeleted,

      qmma.ernam                                      as CreatedByUser,
      
      case qmma.pstur when '240000'
      then dats_add_days(qmma.pster,1,'NULL')
      else  qmma.pster
      end   as PlannedStartDate, //Activity Start Date

      @Semantics.time: true
      case qmma.pstur when '240000'
      then '000000'
      else qmma.pstur
      end  as PlannedStartTime, //Start Time of Activity

      case  qmma.petur when '240000'
      then dats_add_days(qmma.peter,1,'NULL')
      else  qmma.peter
      end   as PlannedEndDate, //Activity End Date

      @Semantics.time: true
      case  qmma.petur when '240000'
      then '000000'
      else  qmma.petur
      end as PlannedEndTime, //End Time of Activity                                          

      
     case qmma.erzeit when '240000'
     then dats_add_days(qmma.erdat,1,'NULL')
     else qmma.erdat 
     end as CreationDate,
     @Semantics.time: true
     case qmma.erzeit when '240000'
     then '000000' 
     else qmma.erzeit 
     end as CreationTime,

     case qmma.aezeit when '240000'
     then dats_add_days(qmma.aedat,1,'NULL')
     else qmma.aedat 
     end as LastChangeDate,
     @Semantics.time: true
     case qmma.aezeit when '240000'
     then '000000' 
     else qmma.aezeit
     end as LastChangeTime,
      
      
//      qmma.pster                                      as PlannedStartDate,

//      qmma.pstur                                      as PlannedStartTime,

      qmma.mngfa                                      as MaintNotifActyQtyFactor,
//      qmma.peter                                      as PlannedEndDate,

//      qmma.petur                                      as PlannedEndTime,


      @Semantics.systemDateTime.lastChangedAt: true
      qmma.changeddatetime                            as LastChangeDateTime,

      /* Fields for 2108 */
//     qmma.erdat                                      as CreationDate,

      qmma.aenam                                      as LastChangedByUser,
//      qmma.aedat                                      as LastChangeDate,

      qmma.peter                                      as MaintNotifActivityEndDate,
      qmma.indtx                                      as NotificationHasLongText,
//      @Semantics.time: true

//      qmma.erzeit                                     as CreationTime,

//      @Semantics.time: true

//      qmma.aezeit                                     as LastChangeTime,



      //Associations

      _MaintenanceNotification,
      _MaintenanceNotificationItem,
      _MaintNotifActivityCodeCatalog,
      _MaintNotifActivityCodeGroup,
      _MaintNotificationActivityCode,
      _IsDeleted
} where
// Only show PM & CS relevant Activities

_MaintenanceNotification.NotificationOrigin = '01' or   // General Maintenance Notification

_MaintenanceNotification.NotificationOrigin = '02' or   // Malfunction Report

_MaintenanceNotification.NotificationOrigin = '03' or   // Activity Report

_MaintenanceNotification.NotificationOrigin = '04' or   // Problem notification

_MaintenanceNotification.NotificationOrigin = '05' or   // Activity report (service)

_MaintenanceNotification.NotificationOrigin = '06'      // General notification (service)