@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@EndUserText.label: 'Order Data for Technical Objects'
@Metadata.ignorePropagatedAnnotations: true
@VDM.viewType: #CONSUMPTION
@Metadata.allowExtensions: true
@ObjectModel.usageType:{
serviceQuality: #C,
sizeCategory: #L,
dataClass: #MIXED
}
@UI.presentationVariant: [ { id: 'OrderCreationDate',
qualifier: 'OrderQual',
sortOrder: [ { by: 'CreationDate', direction: #DESC },
{ by: 'CreationTime', direction: #DESC } ],
requestAtLeast: [ 'CreationDate',
'CreationTime'
],
visualizations: [ { type: #AS_LINEITEM } ] } ]
define view entity C_MaintAstMaintenanceOrderList
as select from I_MaintenanceOrder as _MaintOrderTechObj
association [0..1] to I_TechObjIsEquipOrFuncnlLocT as _TechObjIsEquipOrFuncnlLocT on _TechObjIsEquipOrFuncnlLocT.TechObjIsEquipOrFuncnlLoc = 'EAMS_EQUI'
and _TechObjIsEquipOrFuncnlLocT.Language = $session.system_language
association [0..1] to I_EquipmentText as _EquipmentText on _EquipmentText.Equipment = $projection.Equipment
and _EquipmentText.Language = $session.system_language
{
@Consumption: {semanticObject: 'MaintenanceOrder'}
@UI.lineItem: [{position: 10, importance: #HIGH }] // Order Number
@ObjectModel.text.element: [ 'MaintenanceOrderDesc' ]
@UI.textArrangement: #TEXT_FIRST
key _MaintOrderTechObj.MaintenanceOrder,
@UI.lineItem: [{position: 20, importance: #HIGH }] // Order Type
@UI.textArrangement: #TEXT_FIRST
@ObjectModel.text.element: [ 'OrderTypeName' ]
_MaintOrderTechObj.MaintenanceOrderType,
@Semantics.text: true
_MaintOrderTechObj._Order._OrderType._Text[1:Language=$session.system_language].OrderTypeName,
@Semantics.text: true
_MaintOrderTechObj.MaintenanceOrderDesc, // Order Description
@UI.lineItem: [{position: 30, importance: #HIGH }]
@ObjectModel.text.element: [ 'NotificationText' ]
@Consumption.semanticObject: 'MaintenanceNotification'
_MaintOrderTechObj.MaintenanceNotification,
@Semantics.text: true
_MaintOrderTechObj._MaintenanceNotification.NotificationText,
// @UI.hidden
_MaintOrderTechObj.CreationDate as CreationDate,
// @UI.hidden
@EndUserText.label: 'Created At'
_MaintOrderTechObj.CreationTime as CreationTime,
@UI.lineItem: [{position: 40, importance: #HIGH, criticality: 'MaintenanceOrderCrty', criticalityRepresentation: #WITHOUT_ICON }]
@ObjectModel.text.element: [ 'MaintPriorityDesc' ]
@UI.textArrangement: #TEXT_FIRST
_MaintOrderTechObj._MaintenancePriority._Text[1:Language=$session.system_language].MaintPriority,
@Semantics.text: true
_MaintOrderTechObj._MaintenancePriority._Text[1:Language=$session.system_language].MaintPriorityDesc,
@ObjectModel.text.element: [ 'EAMProcessPhaseCodeDesc' ]
@UI.hidden
_MaintOrderTechObj.MaintOrdProcessPhaseCode,
@EndUserText.label: 'Phase'
@UI.lineItem: [{position: 50, importance: #HIGH }]
@Semantics.text: true
_MaintOrderTechObj._EAMProcessPhase._EAMProcessPhaseText[1:Language=$session.system_language].EAMProcessPhaseCodeDesc,
@ObjectModel.text.element: [ 'EAMProcessSubPhaseCodeDesc' ]
@UI.hidden
_MaintOrderTechObj.MaintOrdProcessSubPhaseCode,
@EndUserText.label: 'Subphase'
@UI.lineItem: [{position: 60, importance: #HIGH }]
@Semantics.text: true
_MaintOrderTechObj._EAMProcessSubPhase._EAMProcessSubPhaseText[1:Language=$session.system_language].EAMProcessSubPhaseCodeDesc,
@EndUserText.label: 'Technical Object Description'
@UI.hidden
cast( _EquipmentText.EquipmentName as eams_tec_obj_des ) as TechnicalObjectDescription,
@ObjectModel.text.element: ['TechObjIsEquipOrFuncnlLocDesc']
@EndUserText.label: 'Technical Object Type'
@UI.textArrangement: #TEXT_ONLY
@UI.hidden
@Environment.sql.passValue: true
cast ( 'EAMS_EQUI' as eams_tec_obj_type_value) as TechObjIsEquipOrFuncnlLoc,
@Semantics.text: true
@EndUserText.label: 'Technical Object Type Description'
_TechObjIsEquipOrFuncnlLocT.TechObjIsEquipOrFuncnlLocDesc,
//hidden attributes
@Consumption.hidden: true
Equipment,
// attributes and assosiations required for authority check on maintnance order
@Consumption.hidden: true
MaintObjectLocAcctAssgmtNmbr,
@Consumption.hidden: true
MaintenancePlanningPlant,
@Consumption.hidden: true
MaintenancePlannerGroup,
@Consumption.hidden: true
ControllingArea,
@Consumption.hidden: true
ResponsibleCostCenter,
@Consumption.hidden: true
_Equipment,
@Consumption.hidden: true
_LocationAccountAssignment,
@UI.hidden: true
cast( Equipment as eams_tec_obj ) as TechnicalObject,
@UI.hidden: true
case _MaintOrderTechObj._MaintenancePriority._Text[1:Language=$session.system_language].MaintPriority
when '1' then 1
when '2' then 1
when '3' then 2
when '4' then 3
else 0
end as MaintenanceOrderCrty
}
where
Equipment <> ''
and(
_MaintOrderTechObj.MaintenanceProcessingPhase = '0'
or _MaintOrderTechObj.MaintenanceProcessingPhase = '1'
or _MaintOrderTechObj.MaintenanceProcessingPhase = '2'
)
union all select from I_MaintenanceOrder as _MaintOrderTechObj
association [0..1] to I_TechObjIsEquipOrFuncnlLocT as _TechObjIsEquipOrFuncnlLocT on _TechObjIsEquipOrFuncnlLocT.TechObjIsEquipOrFuncnlLoc = 'EAMS_FL'
and _TechObjIsEquipOrFuncnlLocT.Language = $session.system_language
{
key _MaintOrderTechObj.MaintenanceOrder,
_MaintOrderTechObj.MaintenanceOrderType,
_MaintOrderTechObj._Order._OrderType._Text[1:Language=$session.system_language].OrderTypeName,
_MaintOrderTechObj.MaintenanceOrderDesc,
_MaintOrderTechObj.MaintenanceNotification,
_MaintOrderTechObj._MaintenanceNotification.NotificationText,
_MaintOrderTechObj._Order.CreationDate,
_MaintOrderTechObj._Order.CreationTime,
_MaintOrderTechObj._MaintenancePriority._Text[1:Language=$session.system_language].MaintPriority,
_MaintOrderTechObj._MaintenancePriority._Text[1:Language=$session.system_language].MaintPriorityDesc,
_MaintOrderTechObj.MaintOrdProcessPhaseCode,
_MaintOrderTechObj._EAMProcessPhase._EAMProcessPhaseText[1:Language=$session.system_language].EAMProcessPhaseCodeDesc,
_MaintOrderTechObj.MaintOrdProcessSubPhaseCode,
_MaintOrderTechObj._EAMProcessSubPhase._EAMProcessSubPhaseText[1:Language=$session.system_language].EAMProcessSubPhaseCodeDesc,
cast( _LocationAccountAssignment._FunctionalLocation._FunctionalLocationText[1:Language=$session.system_language].FunctionalLocationName as eams_tec_obj_des ) as TechnicalObjectDescription,
cast ( 'EAMS_FL' as eams_tec_obj_type_value) as TechObjIsEquipOrFuncnlLoc,
_TechObjIsEquipOrFuncnlLocT.TechObjIsEquipOrFuncnlLocDesc,
Equipment,
MaintObjectLocAcctAssgmtNmbr,
MaintenancePlanningPlant,
MaintenancePlannerGroup,
ControllingArea,
ResponsibleCostCenter,
_Equipment,
_LocationAccountAssignment,
cast( _LocationAccountAssignment.FunctionalLocation as eams_tec_obj ) as TechnicalObject,
case _MaintOrderTechObj._MaintenancePriority._Text[1:Language=$session.system_language].MaintPriority
when '1' then 1
when '2' then 1
when '3' then 2
when '4' then 3
else 0
end as MaintenanceOrderCrty
}
where
Equipment = ''
and(
_MaintOrderTechObj.MaintenanceProcessingPhase = '0'
or _MaintOrderTechObj.MaintenanceProcessingPhase = '1'
or _MaintOrderTechObj.MaintenanceProcessingPhase = '2'
)