C_MaintAstMaintenanceOrderList

DDL: C_MAINTASTMAINTENANCEORDERLIST Type: view_entity CONSUMPTION Package: IEQM

Order Data for Technical Objects

C_MaintAstMaintenanceOrderList is a Consumption CDS View that provides data about "Order Data for Technical Objects" in SAP S/4HANA. It reads from 2 data sources (I_MaintenanceOrder, I_MaintenanceOrder) and exposes 52 fields with key field MaintenanceOrder. It has 2 associations to related views. It is exposed through 1 OData service (EAM_SD_ASSETOVERVIEW). Part of development package IEQM.

Data Sources (2)

SourceAliasJoin Type
I_MaintenanceOrder _MaintOrderTechObj from
I_MaintenanceOrder _MaintOrderTechObj union_all

Associations (2)

CardinalityTargetAliasCondition
[0..1] I_TechObjIsEquipOrFuncnlLocT _TechObjIsEquipOrFuncnlLocT _TechObjIsEquipOrFuncnlLocT.TechObjIsEquipOrFuncnlLoc = 'EAMS_EQUI' and _TechObjIsEquipOrFuncnlLocT.Language = $session.system_language
[0..1] I_EquipmentText _EquipmentText _EquipmentText.Equipment = $projection.Equipment and _EquipmentText.Language = $session.system_language

Annotations (8)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Order Data for Technical Objects view
Metadata.ignorePropagatedAnnotations true view
VDM.viewType #CONSUMPTION view
Metadata.allowExtensions true view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MIXED view

OData Services (1)

ServiceBindingVersionContractRelease
EAM_SD_ASSETOVERVIEW EAM_SB_ASSETOVERVIEW V4 C1 NOT_RELEASED

Fields (52)

KeyFieldSource TableSource FieldDescription
KEY MaintenanceOrder I_MaintenanceOrder MaintenanceOrder
MaintenanceOrderType I_MaintenanceOrder MaintenanceOrderType
OrderTypeName
MaintenanceOrderDesc I_MaintenanceOrder MaintenanceOrderDesc
MaintenanceNotification I_MaintenanceOrder MaintenanceNotification
NotificationText
CreationDate I_MaintenanceOrder CreationDate
CreationTime I_MaintenanceOrder CreationTime Created At
MaintPriority
MaintPriorityDesc
MaintOrdProcessPhaseCode I_MaintenanceOrder MaintOrdProcessPhaseCode
EAMProcessPhaseCodeDesc Phase
MaintOrdProcessSubPhaseCode I_MaintenanceOrder MaintOrdProcessSubPhaseCode
EAMProcessSubPhaseCodeDesc Subphase
TechnicalObjectDescription Technical Object Description
TechObjIsEquipOrFuncnlLoc Technical Object Type
TechObjIsEquipOrFuncnlLocDesc _TechObjIsEquipOrFuncnlLocT TechObjIsEquipOrFuncnlLocDesc Technical Object Type Description
Equipment Equipment
MaintObjectLocAcctAssgmtNmbr MaintObjectLocAcctAssgmtNmbr
MaintenancePlanningPlant MaintenancePlanningPlant
MaintenancePlannerGroup MaintenancePlannerGroup
ControllingArea ControllingArea
ResponsibleCostCenter ResponsibleCostCenter
_Equipment _Equipment
_LocationAccountAssignment _LocationAccountAssignment
TechnicalObject
MaintenanceOrder
MaintenanceOrderType I_MaintenanceOrder MaintenanceOrderType
OrderTypeName
MaintenanceOrderDesc I_MaintenanceOrder MaintenanceOrderDesc
MaintenanceNotification I_MaintenanceOrder MaintenanceNotification
NotificationText
CreationDate
CreationTime
MaintPriority
MaintPriorityDesc
MaintOrdProcessPhaseCode I_MaintenanceOrder MaintOrdProcessPhaseCode
EAMProcessPhaseCodeDesc
MaintOrdProcessSubPhaseCode I_MaintenanceOrder MaintOrdProcessSubPhaseCode
EAMProcessSubPhaseCodeDesc
TechnicalObjectDescription
TechObjIsEquipOrFuncnlLoc
TechObjIsEquipOrFuncnlLocDesc _TechObjIsEquipOrFuncnlLocT TechObjIsEquipOrFuncnlLocDesc
Equipment Equipment
MaintObjectLocAcctAssgmtNmbr MaintObjectLocAcctAssgmtNmbr
MaintenancePlanningPlant MaintenancePlanningPlant
MaintenancePlannerGroup MaintenancePlannerGroup
ControllingArea ControllingArea
ResponsibleCostCenter ResponsibleCostCenter
_Equipment _Equipment
_LocationAccountAssignment _LocationAccountAssignment
TechnicalObject
@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'
  )