I_MaintOrdOpNotification is a Composite CDS View that provides data about "Maintenance Order operation notifications" in SAP S/4HANA. It reads from 2 data sources (I_MaintOrderTechObj, I_MaintOrderOperAndSubOper) and exposes 14 fields with key fields MaintenanceOrder, MaintenanceOrderOperation, MaintenanceOrderSubOperation. It has 3 associations to related views.
@AbapCatalog.viewEnhancementCategory: [#NONE]@AccessControl.authorizationCheck: #MANDATORY@VDM.viewType: #COMPOSITE@EndUserText.label: 'Maintenance Order operation notifications'
@Metadata.ignorePropagatedAnnotations: true@ObjectModel.usageType:{
serviceQuality: #X,
sizeCategory: #XL,
dataClass: #MIXED
}defineviewentity I_MaintOrdOpNotification
asselectfrom I_MaintOrderOperAndSubOper as OrderOpSubOp
innerjoin I_MaintOrderTechObj as _Order on _Order.MaintenanceOrder = OrderOpSubOp.MaintenanceOrder
leftouter to one join I_MaintOrdObjListDfltNotif as _ObjList1 on _Order.MaintenanceOrderObjectList = _ObjList1.MaintenanceOrderObjectList
and ( ( _ObjList1.TechnicalObject = OrderOpSubOp.Equipment and OrderOpSubOp.Equipment <> '' ) or
( _ObjList1.TechnicalObject = OrderOpSubOp.FunctionalLocation and OrderOpSubOp.Equipment = ''
and OrderOpSubOp.FunctionalLocation <> '' ) or
( _ObjList1.TechnicalObject = '' and OrderOpSubOp.FunctionalLocation = '' and OrderOpSubOp.Equipment = '') )
leftouter to one join I_MaintenanceOrderObjectList as _ObjList on _ObjList.MaintenanceOrderObjectList = _ObjList1.MaintenanceOrderObjectList and
_ObjList.MaintenanceOrderObjectListItem = _ObjList1.MaintenanceOrderObjectListItem
association [0..1] to I_MaintNotificationTechObj as _MaintNotifTechObj on $projection.MaintenanceNotification = _MaintNotifTechObj.MaintenanceNotification
association [0..1] to I_MaintenanceNotification as _MaintenanceNotification on $projection.MaintenanceNotification = _MaintenanceNotification.MaintenanceNotification
association [0..1] to I_MaintJobCtrlParamAggregator as _MaintJobControlParameter on _Order.MaintenanceOrderType = _MaintJobControlParameter.MaintenanceOrderType
and _Order.MaintenancePlant = _MaintJobControlParameter.Plant
// and _MaintJobControlParameter.MaintJobWrkItmCtrlParameter = '4'
{
key OrderOpSubOp.MaintenanceOrder,
key OrderOpSubOp.MaintenanceOrderOperation,
keycast ( OrderOpSubOp.MaintenanceOrderSubOperation as maintenanceordersuboperation preserving type ) as MaintenanceOrderSubOperation,
cast( casewhen OrderOpSubOp.Equipment <> '' then OrderOpSubOp.Equipment
when OrderOpSubOp.FunctionalLocation <> '' then OrderOpSubOp.FunctionalLocation
else '' endas eams_tec_obj )as TechnicalObject ,
_Order.MaintenanceOrderObjectList,
OrderOpSubOp._MaintOrderOperObjectListLink._MaintenanceObjectListItem.MaintenanceObjectListItem as MaintenanceOrderObjectListItem,
// _ObjList1.MaintenanceOrderObjectListItem,
@Semantics.booleanIndicator: true
_ObjList1.MaintNotifTechObjIsDefault,
// casewhen OrderOpSubOp._MaintOrderOperObjectListLink._MaintenanceObjectListItem.MaintenanceNotification isnotnull //and//// OrderOpSubOp._MaintOrderOperObjectListLink.MaintOrderRoutingNumber isnotnull// then OrderOpSubOp._MaintOrderOperObjectListLink._MaintenanceObjectListItem.MaintenanceNotification
// //the below condition is commented since create notification functionality is reverted and header notification will be just displayed now
//// when ( _Order.TechnicalObject = $projection.TechnicalObject or $projection.TechnicalObject = '' ) and _Order.MaintenanceNotification <> ''
// when _Order.MaintenanceNotification <> ''
// then _Order.MaintenanceNotification
//// when OrderOpSubOp._MaintOrderOperObjectListLink._MaintenanceObjectListItem.MaintenanceNotification isnullthen//// _ObjList.MaintenanceNotification
// else '' endas MaintenanceNotification,
casewhen _MaintJobControlParameter.MaintNotifCrtnIsAllowed = 'X'
then ( casewhen OrderOpSubOp._MaintOrderOperObjectListLink._MaintenanceObjectListItem.MaintenanceNotification isnotnulland
OrderOpSubOp._MaintOrderOperObjectListLink.MaintOrderRoutingNumber isnotnullthen OrderOpSubOp._MaintOrderOperObjectListLink._MaintenanceObjectListItem.MaintenanceNotification
when ( _Order.TechnicalObject = $projection.TechnicalObject or $projection.TechnicalObject = '' ) and _Order.MaintenanceNotification <> ''
then _Order.MaintenanceNotification
when OrderOpSubOp._MaintOrderOperObjectListLink._MaintenanceObjectListItem.MaintenanceNotification isnullthen
_ObjList.MaintenanceNotification
else '' end )
else _Order.MaintenanceNotification endas MaintenanceNotification,
@Semantics.booleanIndicator: truecasewhen OrderOpSubOp._MaintOrderOperObjectListLink._MaintenanceObjectListItem.MaintenanceNotification <> '' then 'X' else '' endas MaintOrdOpHasNotifAssigned,
_MaintNotifTechObj,
_MaintenanceNotification,
OrderOpSubOp.OperationSupplier,
OrderOpSubOp._Supplier,
OrderOpSubOp.OperationPersonResponsible,
OrderOpSubOp._PersonResponsible,
OrderOpSubOp._MaintenanceOrder
} where
(
OrderOpSubOp.MaintOrdOpProcessPhaseCode = '07' //Execution
or OrderOpSubOp.MaintOrdOpProcessPhaseCode = '08' //Post Execution
or OrderOpSubOp.MaintOrdOpProcessPhaseCode = ''
)