@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":""
}
}*/