C_MaintPlanCallObject

DDL: C_MAINTPLANCALLOBJECT SQL: CMPLANCALLOBJ Type: view CONSUMPTION

Maintenance Plan Call Objects

C_MaintPlanCallObject is a Consumption CDS View that provides data about "Maintenance Plan Call Objects" in SAP S/4HANA. It reads from 1 data source (I_MaintPlanCallObject) and exposes 56 fields with key fields MaintenancePlan, MaintenancePlanCallNumber, MaintenanceItem. It has 8 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_MaintPlanCallObject I_MaintPlanCallObject from

Associations (8)

CardinalityTargetAliasCondition
[1..1] I_OrderType _MaintenanceOrderType _MaintenanceOrderType.OrderType = $projection.MaintenanceOrderType
[1..1] I_PMNotificationType _PMNotificationType _PMNotificationType.NotificationType = $projection.NotificationType
[0..1] I_ServiceDocumentType _ServiceDocumentType _ServiceDocumentType.ServiceDocumentType = $projection.ServiceDocumentType
[0..1] I_MaintCallSchedulingType _SchedulingType _SchedulingType.SchedulingType = $projection.SchedulingType
[0..1] C_MaintOrderQuickVw _MaintenanceOrderQuickView _MaintenanceOrderQuickView.MaintenanceOrder = $projection.MaintenanceOrder
[0..1] C_MaintenancePlanQuickVw _MaintenancePlanQuickVw _MaintenancePlanQuickVw.MaintenancePlan = $projection.MaintenancePlan
[0..1] C_MaintNotificationQuickVw _MaintNotificationQuickView _MaintNotificationQuickView.MaintenanceNotification = $projection.MaintenanceNotification
[0..1] I_MaintPlanMaintCall _MaintPlanCallHistory _MaintPlanCallHistory.MaintenancePlan = $projection.MaintenancePlan and _MaintPlanCallHistory.MaintenancePlanCallNumber = $projection.MaintenancePlanCallNumber

Annotations (11)

NameValueLevelField
AbapCatalog.sqlViewName CMPLANCALLOBJ view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
EndUserText.label Maintenance Plan Call Objects view
Metadata.allowExtensions true view
ClientHandling.algorithm #SESSION_VARIABLE view
VDM.viewType #CONSUMPTION view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #M view

Fields (56)

KeyFieldSource TableSource FieldDescription
KEY MaintenancePlan MaintenancePlan
KEY MaintenancePlanCallNumber MaintenancePlanCallNumber Maintenance Plan Call Number
KEY MaintenanceItem MaintenanceItem
MaintenanceItemDescription _MaintenanceItem MaintenanceItemDescription
MaintenancePlanDesc _MaintenancePlan MaintenancePlanDesc
MaintenanceOrder MaintenanceOrder
MaintenanceOrderDesc _MaintenanceOrder MaintenanceOrderDesc
MaintenanceOrderType _MaintenanceOrder MaintenanceOrderType
OrderTypeName
MaintOrdBasicStartDate _MaintenanceOrder MaintOrdBasicStartDate Basic Start Date
MaintOrdBasicStartTime _MaintenanceOrder MaintOrdBasicStartTime Basic Start Time
MaintOrdBasicEndDate _MaintenanceOrder MaintOrdBasicEndDate
MaintOrdBasicEndTime _MaintenanceOrder MaintOrdBasicEndTime
ScheduledBasicStartDate _MaintenanceOrder ScheduledBasicStartDate Scheduled Start Date
ScheduledBasicEndDate _MaintenanceOrder ScheduledBasicEndDate Scheduled End Date
MaintenanceNotification MaintenanceNotification
MaintenanceNotificationText _MaintenanceNotification NotificationText
NotificationType _MaintenanceNotification NotificationType
NotificationTypeName
RequiredStartDate _MaintenanceNotification RequiredStartDate Required Start Date
RequiredEndDate _MaintenanceNotification RequiredEndDate
MaintNotifRqdStartDateTime Required Start Date Time
MaintNotifRqdEndDateTime Required End Date Time
ServiceOrder ServiceOrder Service Order
ServiceOrderDescription _ServiceOrder ServiceDocumentDescription
ServiceDocumentType _ServiceOrder ServiceDocumentType Service Order Type
ServiceOrderTypeName
RequestedServiceStartDateTime _ServiceOrder RequestedServiceStartDateTime Service Start Date Time
RequestedServiceEndDateTime _ServiceOrder RequestedServiceEndDateTime
SchedulingStatus Scheduling Status
SchedulingStatusText
PlannedStartDate PlannedStartDate
ReleasedByUserName ReleasedByUserName User Scheduling
CompletionDate CompletionDate
CompletionTime CompletionTime
SchedulingType _MaintPlanCallHistory SchedulingType Scheduling Type
SchedulingTypeName
MaintCallIsInvokedOnPlndDate _MaintPlanCallHistory MaintCallIsInvokedOnPlndDate
MaintenanceCallIsOutstanding _MaintPlanCallHistory MaintenanceCallIsOutstanding
MaintPlanStatusCriticality
MaintPriorityelseendasMaintPriority Priority
ServiceDocumentPriority _ServiceOrder ServiceDocumentPriority
_MaintenancePlan _MaintenancePlan
_MaintenanceItem _MaintenanceItem
_MaintenanceOrder _MaintenanceOrder
_MaintenanceNotification _MaintenanceNotification
_MaintPlanCallHistory _MaintPlanCallHistory
_ServiceOrder _ServiceOrder
_ServiceDocumentType _ServiceDocumentType
_ServiceDocumentPriority _ServiceOrder _ServiceDocumentPriority
_MaintenanceOrderType _MaintenanceOrderType
_PMNotificationType _PMNotificationType
_SchedulingType _SchedulingType
_MaintenancePlanQuickVw _MaintenancePlanQuickVw
_MaintenanceOrderQuickView _MaintenanceOrderQuickView
_MaintNotificationQuickView _MaintNotificationQuickView
@AbapCatalog.sqlViewName: 'CMPLANCALLOBJ'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.privilegedAssociations: [ '_MaintNotificationQuickView', '_MaintenancePlanQuickVw', '_MaintenanceOrderQuickView' ]
@EndUserText.label: 'Maintenance Plan Call Objects'
@Metadata.allowExtensions: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM.viewType: #CONSUMPTION
@ObjectModel: {
  usageType: {
    dataClass: #TRANSACTIONAL,
    serviceQuality: #C,
    sizeCategory: #M
  }
}


define view C_MaintPlanCallObject
  as select from I_MaintPlanCallObject

  association [1..1] to I_OrderType                as _MaintenanceOrderType       on _MaintenanceOrderType.OrderType = $projection.MaintenanceOrderType
  association [1..1] to I_PMNotificationType       as _PMNotificationType         on _PMNotificationType.NotificationType = $projection.NotificationType
  association [0..1] to I_ServiceDocumentType      as _ServiceDocumentType        on _ServiceDocumentType.ServiceDocumentType = $projection.ServiceDocumentType
  association [0..1] to I_MaintCallSchedulingType  as _SchedulingType             on _SchedulingType.SchedulingType = $projection.SchedulingType

  association [0..1] to C_MaintOrderQuickVw        as _MaintenanceOrderQuickView  on _MaintenanceOrderQuickView.MaintenanceOrder = $projection.MaintenanceOrder
  association [0..1] to C_MaintenancePlanQuickVw   as _MaintenancePlanQuickVw     on _MaintenancePlanQuickVw.MaintenancePlan = $projection.MaintenancePlan
  association [0..1] to C_MaintNotificationQuickVw as _MaintNotificationQuickView on _MaintNotificationQuickView.MaintenanceNotification = $projection.MaintenanceNotification
  association [0..1] to I_MaintPlanMaintCall       as _MaintPlanCallHistory    on  _MaintPlanCallHistory.MaintenancePlan           = $projection.MaintenancePlan
                                                                              and _MaintPlanCallHistory.MaintenancePlanCallNumber = $projection.MaintenancePlanCallNumber
{

       @Consumption.semanticObject: 'MaintenancePlan'
       @ObjectModel: { foreignKey.association: '_MaintenancePlanQuickVw' }
       @ObjectModel.text.element: ['MaintenancePlanDesc']
       @UI.textArrangement: #TEXT_FIRST
  key  MaintenancePlan,
  
       @EndUserText.label: 'Maintenance Plan Call Number'
  key  MaintenancePlanCallNumber,

       @Consumption.semanticObject: 'MaintenanceItem'
       @ObjectModel.text.element: ['MaintenanceItemDescription']
       @UI.textArrangement: #TEXT_FIRST
  key  MaintenanceItem,

       @UI.hidden: true
       @Semantics.text: true
       _MaintenanceItem.MaintenanceItemDescription                                                                                 as MaintenanceItemDescription,

       @UI.hidden: true
       @Semantics.text: true
       _MaintenancePlan.MaintenancePlanDesc,

       @Consumption.semanticObject: 'MaintenanceOrder'
       @ObjectModel.text.element:  [ 'MaintenanceOrderDesc' ]
       @UI.textArrangement: #TEXT_FIRST
       @ObjectModel: { foreignKey.association: '_MaintenanceOrderQuickView' }
       MaintenanceOrder,

       @UI.hidden: true
       @Semantics.text: true
       _MaintenanceOrder.MaintenanceOrderDesc                                                                                      as MaintenanceOrderDesc,

       @ObjectModel.foreignKey.association: '_MaintenanceOrderType'
       @ObjectModel.text.element:  [ 'OrderTypeName' ]
       @UI.textArrangement: #TEXT_FIRST
       _MaintenanceOrder.MaintenanceOrderType                                                                                      as MaintenanceOrderType,

       @UI.hidden: true
       @Semantics.text: true
       _MaintenanceItem._MaintenanceOrderType._Text[1:Language = $session.system_language ].OrderTypeName,

       @EndUserText.label: 'Basic Start Date'
       _MaintenanceOrder.MaintOrdBasicStartDate                                                                                    as MaintOrdBasicStartDate,

       @EndUserText.label: 'Basic Start Time'
       _MaintenanceOrder.MaintOrdBasicStartTime                                                                                    as MaintOrdBasicStartTime,
       
      @EndUserText.label: 'Basic Start Date Time'
      case _MaintenanceOrder.MaintOrdBasicStartTime when '240000'
      then cast(dats_tims_to_tstmp( dats_add_days( _MaintenanceOrder.MaintOrdBasicStartDate, 1, 'NULL'), cast( '000000' as abap.tims ),
                                    abap_system_timezone( $session.client,'NULL' ),
                                    $session.client, 'NULL') as timestamp preserving type)
      else cast(dats_tims_to_tstmp( _MaintenanceOrder.MaintOrdBasicStartDate, _MaintenanceOrder.MaintOrdBasicStartTime,
                                    abap_system_timezone( $session.client,'NULL' ),
                                    $session.client,'NULL') as timestamp preserving type)
      end                                                                                                                          as MaintOrdBasicStartDateTime,

       _MaintenanceOrder.MaintOrdBasicEndDate                                                                                      as MaintOrdBasicEndDate,

       _MaintenanceOrder.MaintOrdBasicEndTime                                                                                      as MaintOrdBasicEndTime,
       
       @EndUserText.label: 'Basic End Date Time'
       case _MaintenanceOrder.MaintOrdBasicEndTime when '240000'
      then cast(dats_tims_to_tstmp( dats_add_days( _MaintenanceOrder.MaintOrdBasicEndDate  , 1, 'NULL'), cast( '000000' as abap.tims ),
                                    abap_system_timezone( $session.client,'NULL' ),
                                    $session.client, 'NULL') as timestamp preserving type)
      else cast(dats_tims_to_tstmp( _MaintenanceOrder.MaintOrdBasicEndDate  , _MaintenanceOrder.MaintOrdBasicEndTime,
                                    abap_system_timezone( $session.client,'NULL' ),
                                    $session.client, 'NULL') as timestamp preserving type)
      end                                                                                                                          as MaintOrdBasicEndDateTime,

       @EndUserText.label: 'Scheduled Start Date'
       _MaintenanceOrder.ScheduledBasicStartDate                                                                                   as ScheduledBasicStartDate,
       
      @EndUserText.label: 'Scheduled Start Date Time'
      case _MaintenanceOrder.ScheduledBasicStartTime when '240000'
      then cast(dats_tims_to_tstmp( dats_add_days( _MaintenanceOrder.ScheduledBasicStartDate, 1, 'NULL'), cast( '000000' as abap.tims ),
                                    abap_system_timezone( $session.client,'NULL' ),
                                    $session.client, 'NULL') as timestamp preserving type)
      else cast(dats_tims_to_tstmp( _MaintenanceOrder.ScheduledBasicStartDate, _MaintenanceOrder.ScheduledBasicStartTime,
                                    abap_system_timezone( $session.client,'NULL' ),
                                    $session.client,'NULL') as timestamp preserving type)
      end                                                                                                                          as MaintOrdSchedldBscStrtDateTime,

       @EndUserText.label: 'Scheduled End Date'
       _MaintenanceOrder.ScheduledBasicEndDate                                                                                     as ScheduledBasicEndDate,
       
      @EndUserText.label: 'Scheduled End Date Time'
      case _MaintenanceOrder.ScheduledBasicEndTime when '240000'
      then cast(dats_tims_to_tstmp( dats_add_days( _MaintenanceOrder.ScheduledBasicEndDate, 1, 'NULL'), cast( '000000' as abap.tims ),
                                    abap_system_timezone( $session.client,'NULL' ),
                                    $session.client, 'NULL') as timestamp preserving type)
      else cast(dats_tims_to_tstmp( _MaintenanceOrder.ScheduledBasicEndDate, _MaintenanceOrder.ScheduledBasicEndTime,
                                    abap_system_timezone( $session.client,'NULL' ),
                                    $session.client,'NULL') as timestamp preserving type)
      end                                                                                                                          as MaintOrdSchedldBscEndDateTime,

       @ObjectModel.text.element:  [ 'MaintenanceNotificationText' ]
       @Consumption.semanticObject: 'MaintenanceNotification'
       @ObjectModel: { foreignKey.association: '_MaintNotificationQuickView' }
       @UI.textArrangement: #TEXT_FIRST
       MaintenanceNotification,

       @Semantics.text: true
       _MaintenanceNotification.NotificationText                                                                                   as MaintenanceNotificationText,

       @ObjectModel.foreignKey.association: '_PMNotificationType'
       @ObjectModel.text.element: ['NotificationTypeName']
       @UI.textArrangement: #TEXT_FIRST
       _MaintenanceNotification.NotificationType                                                                                   as NotificationType,

       @UI.hidden: true
       @Semantics.text: true
       _MaintenanceItem._PMNotificationType._Text[1:Language = $session.system_language ].NotificationTypeName                     as NotificationTypeName,

       @EndUserText.label: 'Required Start Date'
       _MaintenanceNotification.RequiredStartDate                                                                                  as RequiredStartDate,

       _MaintenanceNotification.RequiredEndDate                                                                                    as RequiredEndDate,
       
       @EndUserText.label: 'Required Start Date Time'
       cast (dats_tims_to_tstmp( _MaintenanceNotification.RequiredStartDate, _MaintenanceNotification.RequiredStartTime, _MaintenanceNotification.NotificationTimeZone , $session.client, 'NULL') as  tzntstmps preserving type )                as MaintNotifRqdStartDateTime,
      
       @EndUserText.label: 'Required End Date Time'
       cast (dats_tims_to_tstmp( _MaintenanceNotification.RequiredEndDate, _MaintenanceNotification.RequiredEndTime, _MaintenanceNotification.NotificationTimeZone, $session.client, 'NULL') as  tzntstmps preserving type )                      as MaintNotifRqdEndDateTime,
       
       @Consumption.semanticObject: 'ServiceOrder'
       @EndUserText.label: 'Service Order'
       @EndUserText.quickInfo: 'Service Order'
       @ObjectModel.text.element: ['ServiceOrderDescription']
       @UI.textArrangement: #TEXT_FIRST
       ServiceOrder,

       @UI.hidden: true
       @Semantics.text: true
       _ServiceOrder.ServiceDocumentDescription                                                                                    as ServiceOrderDescription,


       @EndUserText.label: 'Service Order Type'
       @EndUserText.quickInfo: 'Service Order Type '
       @ObjectModel.foreignKey.association: '_ServiceDocumentType'
       @ObjectModel.text.element: ['ServiceOrderTypeName']
       @UI.textArrangement: #TEXT_FIRST
       _ServiceOrder.ServiceDocumentType                                                                                           as ServiceDocumentType,

       @UI.hidden: true
       @Semantics.text: true
       _ServiceOrder._ServiceDocumentType._ServiceDocumentTypeText[1:Language = $session.system_language ].ServiceDocumentTypeName as ServiceOrderTypeName,

       @EndUserText.label: 'Service Start Date Time'
       _ServiceOrder.RequestedServiceStartDateTime                                                                                 as RequestedServiceStartDateTime,

       _ServiceOrder.RequestedServiceEndDateTime                                                                                   as RequestedServiceEndDateTime,
  
////       MaintCallHorizonIsNotReached,

//

       @ObjectModel.text.element:  [ 'SchedulingStatusText' ]
       @EndUserText.label: 'Scheduling Status'
       @EndUserText.quickInfo: 'Scheduling Status'
       @UI.textArrangement: #TEXT_ONLY
       @UI.hidden:true
       cast(SchedulingStatus as char1 preserving type )                                                                            as SchedulingStatus,

       @UI.hidden: true
       @ObjectModel.virtualElement: true
       @ObjectModel.virtualElementCalculatedBy: 'CL_EAM_MPLAN_CALL_STATUS_EXIT'
       cast ('' as abap.sstring(256) )                                                                                             as SchedulingStatusText,


       @UI.hidden: true
       PlannedStartDate,

       @EndUserText.label: 'User Scheduling'
       ReleasedByUserName,

       @UI.hidden: true
       CompletionDate,
      
      @UI.hidden: true
       CompletionTime,
       
       @EndUserText.label: 'Maintenance Plan Completion Date Time'
       @Semantics.dateTime: true
      dats_tims_to_tstmp( CompletionDate,
                          CompletionTime,
                          abap_system_timezone($session.client,'NULL'),
                          $session.client,
                         'NULL' )  as MaintPlnCallCompletionDateTime,

       @ObjectModel.foreignKey.association: '_SchedulingType'
       @ObjectModel.text.element: ['SchedulingTypeName']
       @UI.textArrangement: #TEXT_FIRST
       @EndUserText.label: 'Scheduling Type'
       _MaintPlanCallHistory.SchedulingType                                                                                        as SchedulingType,

       @UI.hidden: true
       _MaintPlanCallHistory._SchedulingType._Text[1: Language = $session.system_language ].SchedulingTypeName                     as SchedulingTypeName,         
         
       @Consumption.hidden: true
       _MaintPlanCallHistory.MaintCallIsInvokedOnPlndDate,

       @Consumption.hidden: true
       _MaintPlanCallHistory.MaintenanceCallIsOutstanding,

       @Consumption.hidden: true
       cast ( 000 as int1 preserving type )                                                                                        as MaintPlanStatusCriticality,
//

//       //       _MaintenanceItem.MaintPriorityType                                                                                          as MaintPriorityType,

//

       @ObjectModel.text.element: ['MaintPriorityDesc']
       @UI.textArrangement: #TEXT_FIRST
       @EndUserText.label: 'Priority'
       case _MaintenanceItem.MaintenancePlanCallObject
        when ''  then _MaintenanceOrder.MaintPriority
        when '2' then _MaintenanceNotification.MaintPriority
        else '' end                                                                                                                as MaintPriority,

       @UI.hidden: true
       @Semantics.text: true
       case _MaintenanceItem.MaintenancePlanCallObject
        when ''  then _MaintenanceOrder._MaintenancePriority._Text[1:Language=$session.system_language].MaintPriorityDesc
        when '2' then _MaintenanceNotification._PMNotificationPriority._Text[1:Language=$session.system_language].MaintPriorityDesc
        else '' end                                                                                                                as MaintPriorityDesc,

        @UI.hidden: true
       case _MaintenanceItem.MaintenancePlanCallObject
        when '' then _MaintenanceOrder._MaintenancePriority.MaintPriorityColorCode
        when '2' then _MaintenanceNotification._PMNotificationPriority.MaintPriorityColorCode
        else 0 end                                                                                                                 as MaintPriorityColorCode,


       @ObjectModel.text.element: [ 'ServiceDocumentPriorityName' ]
       @UI.textArrangement: #TEXT_FIRST
       _ServiceOrder.ServiceDocumentPriority                                                                                       as ServiceDocumentPriority,

       @UI.hidden: true
       @Semantics.text: true
       _ServiceOrder.
       _ServiceDocumentPriority.
       _ServiceDocumentPriorityText[1:Language = $session.system_language].ServiceDocumentPriorityName                             as ServiceDocumentPriorityName,

       _MaintenancePlan,
       _MaintenanceItem,
       _MaintenanceOrder,
       _MaintenanceNotification,
       _MaintPlanCallHistory,
       _ServiceOrder,
       _ServiceDocumentType,
       _ServiceOrder._ServiceDocumentPriority,
       _MaintenanceOrderType,
       _PMNotificationType,
       _SchedulingType,
       _MaintenancePlanQuickVw,
       _MaintenanceOrderQuickView,
       _MaintNotificationQuickView

}
where
     MaintenanceOrder        <> ''
  or MaintenanceNotification <> ''
  or ServiceOrder            <> ''
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_MAINTCALLSCHEDULINGTYPE",
"I_MAINTCALLSCHEDULINGTYPETEXT",
"I_MAINTENANCEITEM",
"I_MAINTENANCENOTIFICATION",
"I_MAINTENANCEORDER",
"I_MAINTENANCEPLANBASIC",
"I_MAINTPLANCALLOBJECT",
"I_MAINTPLANMAINTCALL",
"I_ORDERTYPE",
"I_ORDERTYPETEXT",
"I_PMNOTIFICATIONPRIORITY",
"I_PMNOTIFICATIONPRIORITYTEXT",
"I_PMNOTIFICATIONTYPE",
"I_PMNOTIFICATIONTYPETEXT",
"I_SERVICEDOCUMENT",
"I_SERVICEDOCUMENTPRIORITY",
"I_SERVICEDOCUMENTPRIORITYTEXT",
"I_SERVICEDOCUMENTTYPE",
"I_SERVICEDOCUMENTTYPETEXT"
],
"ASSOCIATED":
[
"C_MAINTENANCEPLANQUICKVW",
"C_MAINTNOTIFICATIONQUICKVW",
"C_MAINTORDERQUICKVW",
"I_MAINTCALLSCHEDULINGTYPE",
"I_MAINTENANCEITEM",
"I_MAINTENANCENOTIFICATION",
"I_MAINTENANCEORDER",
"I_MAINTENANCEPLANBASIC",
"I_MAINTPLANMAINTCALL",
"I_ORDERTYPE",
"I_PMNOTIFICATIONTYPE",
"I_SERVICEDOCUMENT",
"I_SERVICEDOCUMENTPRIORITY",
"I_SERVICEDOCUMENTTYPE"
],
"BASE":
[
"I_MAINTPLANCALLOBJECT",
"I_SERVICEDOCUMENT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/