I_MaintenanceNotificationTask

DDL: I_MAINTENANCENOTIFICATIONTASK Type: view_entity BASIC Package: IWOC

Maintenance Notification Task

I_MaintenanceNotificationTask is a Basic CDS View (Dimension) that provides data about "Maintenance Notification Task" in SAP S/4HANA. It reads from 1 data source (qmsm) and exposes 47 fields with key fields MaintenanceNotificationTask, MaintenanceNotification. It has 16 associations to related views. Part of development package IWOC.

Data Sources (1)

SourceAliasJoin Type
qmsm qmsm from

Associations (16)

CardinalityTargetAliasCondition
[1..1] I_MaintenanceNotification _MaintenanceNotification $projection.MaintenanceNotification = _MaintenanceNotification.MaintenanceNotification
[0..1] I_MaintenanceNotificationItem _MaintenanceNotificationItem _MaintenanceNotificationItem.MaintenanceNotification = $projection.MaintenanceNotification and _MaintenanceNotificationItem.MaintenanceNotificationItem = $projection.MaintenanceNotificationItem
[0..1] I_StatusObject _StatusObject $projection.MaintNotifTaskInternalID = _StatusObject.StatusObject
[0..1] I_Indicator _IsDeleted $projection.IsDeleted = _IsDeleted.IndicatorValue
[0..*] I_StatusObjectStatus _StatusObjectStatus $projection.MaintNotifTaskInternalID = _StatusObjectStatus.StatusObject
[0..1] I_InspectionCode _MaintNotificationTaskCode $projection.MaintNotifTaskCode = _MaintNotificationTaskCode.InspectionCode and $projection.MaintNotifTaskCodeCatalog = _MaintNotificationTaskCode.InspectionCatalog and $projection.MaintNotifTaskCodeGroup = _MaintNotificationTaskCode.InspectionCodeGroup
[0..1] I_Inspectioncatalog _MaintNotifTaskCodeCatalog $projection.MaintNotifTaskCodeCatalog = _MaintNotifTaskCodeCatalog.InspectionCatalog
[0..1] I_InspectionCodeGroup _MaintNotifTaskCodeGroup $projection.MaintNotifTaskCodeGroup = _MaintNotifTaskCodeGroup.InspectionCodeGroup and $projection.MaintNotifTaskCodeCatalog = _MaintNotifTaskCodeGroup.InspectionCatalog
[0..1] I_PartnerFunction _PartnerFunction $projection.ResponsiblePersonFunctionCode = _PartnerFunction.PartnerFunction
[0..1] I_ContactPerson _ContactPerson _ContactPerson.ContactPerson = $projection.ResponsiblePerson
[0..1] I_Customer _Customer _Customer.Customer = $projection.ResponsiblePerson
[0..1] I_WorkforcePerson _Employee _Employee.PersonExternalID = $projection.ResponsiblePerson
[0..1] I_OrganizationalUnitText _OrganizationalUnitText _OrganizationalUnitText.OrganizationalUnit = $projection.ResponsiblePerson and _OrganizationalUnitText.Language = $session.system_language and _OrganizationalUnitText.StartDate <= $session.system_date and _OrganizationalUnitText.EndDate >= $session.system_date
[0..1] I_PMPositionText _PositionText _PositionText.PositionID = $projection.ResponsiblePerson and _PositionText.Language = $session.system_language and _PositionText.StartDate <= $session.system_date and _PositionText.EndDate >= $session.system_date
[0..1] I_Supplier _Supplier _Supplier.Supplier = $projection.ResponsiblePerson
[0..1] I_User _User _User.UserID = $projection.ResponsiblePerson

Annotations (10)

NameValueLevelField
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
Analytics.dataCategory #DIMENSION view
EndUserText.label Maintenance Notification Task view
ObjectModel.representativeKey MaintenanceNotificationTask view
Analytics.technicalName IMAINTNOTIFTASK view
ObjectModel.usageType.serviceQuality #A view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
VDM.viewType #BASIC view

Fields (47)

KeyFieldSource TableSource FieldDescription
KEY MaintenanceNotificationTask qmsm manum
KEY MaintenanceNotification qmsm qmnum
MaintenanceNotificationItem qmsm fenum
MaintenanceNotificationCause qmsm urnum
MaintNotifTaskTxt qmsm matxt
MaintNotifTaskCodeCatalog qmsm mnkat
MaintNotifTaskCodeGroup qmsm mngrp
MaintNotifTaskCode qmsm mncod
psterendasPlannedStartDate
psturendasPlannedStartTime
peterendasPlannedEndDate
peturendasPlannedEndTime
erdatendasCreationDate
erzeitendasCreationTime
aedatendasLastChangeDate
aezeitendasLastChangeTime
erldatendasCompletionDate
erlzeitendasCompletionTime
CompletedByUser qmsm erlnam
ResponsiblePersonFunctionCode qmsm parvw
ResponsiblePerson qmsm parnr
MaintNotifTaskInternalID qmsm objnr
IsDeleted qmsm kzloesch
LastChangeDateTime qmsm changeddatetime
CreatedByUser qmsm ernam
LastChangedByUser qmsm aenam
MaintNotifTaskFollowUpAction qmsm folgeact
MaintNotifTaskHasFollowUpActn qmsm folactprot
MaintNotificationTaskIsDeleted qmsm kzloesch
MaintNotifTaskResubmissionTime qmsm wdvzeit
MaintNotifTaskSortNumber qmsm qsmnum
_MaintenanceNotification _MaintenanceNotification
_MaintenanceNotificationItem _MaintenanceNotificationItem
_MaintNotificationTaskCode _MaintNotificationTaskCode
_MaintNotifTaskCodeCatalog _MaintNotifTaskCodeCatalog
_MaintNotifTaskCodeGroup _MaintNotifTaskCodeGroup
_StatusObject _StatusObject
_IsDeleted _IsDeleted
_PartnerFunction _PartnerFunction
_StatusObjectStatus _StatusObjectStatus
_ContactPerson _ContactPerson
_Customer _Customer
_Employee _Employee
_OrganizationalUnitText _OrganizationalUnitText
_PositionText _PositionText
_Supplier _Supplier
_User _User
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
--@Analytics: { dataCategory: #DIMENSION }
@EndUserText.label: 'Maintenance Notification Task'
@ObjectModel.representativeKey: 'MaintenanceNotificationTask'
@Analytics.technicalName: 'IMAINTNOTIFTASK'
@ObjectModel.semanticKey:  [ 'MaintenanceNotificationTask', 'MaintenanceNotification' ]
@ObjectModel.usageType.serviceQuality: #A
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@VDM.viewType: #BASIC
@Consumption.dbHints: [ 'USE_HEX_PLAN' ]


define view entity I_MaintenanceNotificationTask
  as select from qmsm
  association [1..1] to I_MaintenanceNotification     as _MaintenanceNotification     on  $projection.MaintenanceNotification = _MaintenanceNotification.MaintenanceNotification
  association [0..1] to I_MaintenanceNotificationItem as _MaintenanceNotificationItem on  _MaintenanceNotificationItem.MaintenanceNotification     = $projection.MaintenanceNotification
                                                                                      and _MaintenanceNotificationItem.MaintenanceNotificationItem = $projection.MaintenanceNotificationItem
  association [0..1] to I_StatusObject                as _StatusObject                on  $projection.MaintNotifTaskInternalID = _StatusObject.StatusObject
  association [0..1] to I_Indicator                   as _IsDeleted                   on  $projection.IsDeleted = _IsDeleted.IndicatorValue
  association [0..*] to I_StatusObjectStatus          as _StatusObjectStatus          on  $projection.MaintNotifTaskInternalID = _StatusObjectStatus.StatusObject
  // Task Coding

  association [0..1] to I_InspectionCode              as _MaintNotificationTaskCode   on  $projection.MaintNotifTaskCode        = _MaintNotificationTaskCode.InspectionCode
                                                                                      and $projection.MaintNotifTaskCodeCatalog = _MaintNotificationTaskCode.InspectionCatalog
                                                                                      and $projection.MaintNotifTaskCodeGroup   = _MaintNotificationTaskCode.InspectionCodeGroup
  association [0..1] to I_Inspectioncatalog           as _MaintNotifTaskCodeCatalog   on  $projection.MaintNotifTaskCodeCatalog = _MaintNotifTaskCodeCatalog.InspectionCatalog
  association [0..1] to I_InspectionCodeGroup         as _MaintNotifTaskCodeGroup     on  $projection.MaintNotifTaskCodeGroup   = _MaintNotifTaskCodeGroup.InspectionCodeGroup
                                                                                      and $projection.MaintNotifTaskCodeCatalog = _MaintNotifTaskCodeGroup.InspectionCatalog
  association [0..1] to I_PartnerFunction             as _PartnerFunction             on  $projection.ResponsiblePersonFunctionCode = _PartnerFunction.PartnerFunction

  /* Associations - DPP */
  association [0..1] to I_ContactPerson               as _ContactPerson               on  _ContactPerson.ContactPerson = $projection.ResponsiblePerson
  association [0..1] to I_Customer                    as _Customer                    on  _Customer.Customer = $projection.ResponsiblePerson
  association [0..1] to I_WorkforcePerson             as _Employee                    on  _Employee.PersonExternalID = $projection.ResponsiblePerson
  association [0..1] to I_OrganizationalUnitText      as _OrganizationalUnitText      on  _OrganizationalUnitText.OrganizationalUnit = $projection.ResponsiblePerson
                                                                                      and _OrganizationalUnitText.Language           = $session.system_language
                                                                                      and _OrganizationalUnitText.StartDate          <= $session.system_date
                                                                                      and _OrganizationalUnitText.EndDate            >= $session.system_date
  association [0..1] to I_PMPositionText              as _PositionText                on  _PositionText.PositionID = $projection.ResponsiblePerson
                                                                                      and _PositionText.Language   = $session.system_language
                                                                                      and _PositionText.StartDate  <= $session.system_date
                                                                                      and _PositionText.EndDate    >= $session.system_date
  association [0..1] to I_Supplier                    as _Supplier                    on  _Supplier.Supplier = $projection.ResponsiblePerson
  association [0..1] to I_User                        as _User                        on  _User.UserID = $projection.ResponsiblePerson

{
  key qmsm.manum           as MaintenanceNotificationTask,
      @ObjectModel.foreignKey.association: '_MaintenanceNotification'
  key qmsm.qmnum           as MaintenanceNotification,
      @ObjectModel.foreignKey.association: '_MaintenanceNotificationItem'
      qmsm.fenum           as MaintenanceNotificationItem,

      qmsm.urnum           as MaintenanceNotificationCause,
      @Semantics.text: true
      qmsm.matxt           as MaintNotifTaskTxt,
      @ObjectModel.foreignKey.association: '_MaintNotifTaskCodeCatalog'
      qmsm.mnkat           as MaintNotifTaskCodeCatalog,
      @ObjectModel.foreignKey.association: '_MaintNotifTaskCodeGroup'
      qmsm.mngrp           as MaintNotifTaskCodeGroup,
      @ObjectModel.foreignKey.association: '_MaintNotificationTaskCode'
      qmsm.mncod           as MaintNotifTaskCode,
      case qmsm.pstur when '240000'
      then dats_add_days(qmsm.pster,1,'NULL')
      else  qmsm.pster
      end   as PlannedStartDate, //Activity Start Date

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

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

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

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

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

//      @Semantics.time: true

//      qmsm.pstur           as PlannedStartTime,

//      qmsm.peter           as PlannedEndDate,

//      @Semantics.time: true

//      qmsm.petur           as PlannedEndTime,

      qmsm.erlnam          as CompletedByUser,
//      qmsm.erldat          as CompletionDate,

//      @Semantics.time: true

//      qmsm.erlzeit         as CompletionTime,

      @ObjectModel.foreignKey.association: '_PartnerFunction'
      qmsm.parvw           as ResponsiblePersonFunctionCode,
      qmsm.parnr           as ResponsiblePerson,
      qmsm.objnr           as MaintNotifTaskInternalID,
      @ObjectModel.foreignKey.association: '_IsDeleted'
      qmsm.kzloesch        as IsDeleted,
      @Semantics.systemDateTime.lastChangedAt: true
      qmsm.changeddatetime as LastChangeDateTime,


      /*Fields for 2108*/
      qmsm.ernam           as CreatedByUser,
//      qmsm.erdat           as CreationDate,

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

//      @Semantics.time: true

//      qmsm.erzeit          as CreationTime,

//      @Semantics.time: true

//      qmsm.aezeit          as LastChangeTime,

      qmsm.folgeact        as MaintNotifTaskFollowUpAction,
      qmsm.folactprot      as MaintNotifTaskHasFollowUpActn,
      qmsm.kzloesch        as MaintNotificationTaskIsDeleted,
      @Semantics.time: true
      qmsm.wdvzeit         as MaintNotifTaskResubmissionTime,
      qmsm.qsmnum          as MaintNotifTaskSortNumber,

      /* Associations */
      _MaintenanceNotification,
      _MaintenanceNotificationItem,
      _MaintNotificationTaskCode,
      _MaintNotifTaskCodeCatalog,
      _MaintNotifTaskCodeGroup,
      _StatusObject,
      _IsDeleted,
      _PartnerFunction,
      _StatusObjectStatus,


      /* Associations - DPP */
      _ContactPerson,
      _Customer,
      _Employee,
      _OrganizationalUnitText,
      _PositionText,
      _Supplier,
      _User
} where
// Only show PM & CS relevant Tasks

_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)