C_ObjPgMaintOrderAndOperation

DDL: C_OBJPGMAINTORDERANDOPERATION SQL: COPORDOP Type: view CONSUMPTION

Maintenance Order and Operation

C_ObjPgMaintOrderAndOperation is a Consumption CDS View that provides data about "Maintenance Order and Operation" in SAP S/4HANA. It reads from 1 data source (P_ObjPgMaintOrderAndOperation) and exposes 44 fields with key fields MaintenanceOrder, MaintenanceOrderOperation, MaintenanceOrderSubOperation. It has 37 associations to related views.

Data Sources (1)

SourceAliasJoin Type
P_ObjPgMaintOrderAndOperation _MntOperation from

Associations (37)

CardinalityTargetAliasCondition
[0..1] I_MaintOrderTP _MaintenanceOrder _MaintenanceOrder.MaintenanceOrder = $projection.MaintenanceOrder
[0..1] I_MaintenanceOrder _MaintenanceOrderVH _MaintenanceOrderVH.MaintenanceOrder = $projection.MaintenanceOrder
[0..1] C_MaintOrderQuickVw _MaintenanceOrderQuickView _MaintenanceOrderQuickView.MaintenanceOrder = $projection.MaintenanceOrder
[0..1] C_MaintOrderTypeVH _MaintOrderTypeVH _MaintOrderTypeVH.MaintenanceOrderType = $projection.maintenanceordertype
[0..1] C_MaintenanceOrderPhaseVH _MaintenanceOrderPhaseVH _MaintenanceOrderPhaseVH.MaintenanceProcessingPhase = $projection.maintenanceprocessingphase
[0..1] C_TechnicalObjectLabelVH _TechnicalObjectLabelVH _TechnicalObjectLabelVH.TechnicalObjectLabel = $projection.technicalobjectlabel and _TechnicalObjectLabelVH.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc and _TechnicalObjectLabelVH.TechnicalObject = $projection.TechnicalObject
[0..1] C_TechnicalObjectLabelVH _OperationTechObjLabelVH _OperationTechObjLabelVH.TechnicalObjectLabel = $projection.OperationTechnicalObjectLabel and _OperationTechObjLabelVH.TechObjIsEquipOrFuncnlLoc = $projection.OperationTechObjIsEquip and _OperationTechObjLabelVH.TechnicalObject = $projection.MaintOperationTechnicalObject
[0..1] I_MaintenanceNotification _OperationMaintenanceNotifVH _OperationMaintenanceNotifVH.MaintenanceNotification = $projection.OperationMaintenanceNotif
[0..1] I_CostCenterActivityType _CostCenterActivityTypeVH _CostCenterActivityTypeVH.CostCtrActivityType = $projection.CostCtrActivityType and _CostCenterActivityTypeVH.ControllingArea = $projection.controllingarea and _CostCenterActivityTypeVH.ValidityEndDate = '99991231'
[0..1] C_PMAssetLocationVH _AssetLocationVH _AssetLocationVH.Location = $projection.assetlocation and _AssetLocationVH.Plant = $projection.maintenanceplant
[0..*] I_StatusObjectStatus _StatusObjectStatus _StatusObjectStatus.StatusObject = $projection.MaintOrderOperationInternalID
[0..1] I_Indicator _IsFinallyConfirmed _IsFinallyConfirmed.IndicatorValue = $projection.IsFinallyConfirmed
[0..1] I_PMContactCardEmployee _ContactCardEmployee _ContactCardEmployee.PersonnelNumber = $projection.OperationPersonResponsible
[0..1] I_PMContactCardEmployee _OrdContactCardEmployee _OrdContactCardEmployee.PersonnelNumber = $projection.MaintOrdPersonResponsible
[0..1] I_MaintOrderOperAndSubOper _OperAndSubOper _OperAndSubOper.MaintOrderRoutingNumber = $projection.MaintOrderRoutingNumber and _OperAndSubOper.MaintOrderOperationCounter = $projection.MaintOrderOperationCounter
[0..1] C_OverdueMaintenanceOrderQ _OverdueMaintenanceOrderQ _OverdueMaintenanceOrderQ.MaintenanceOrder = $projection.MaintenanceOrder
[0..1] C_TechObjQuickVw _TechnicalObjQuickVw _TechnicalObjQuickVw.TechnicalObject = $projection.TechnicalObject and _TechnicalObjQuickVw.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc and _TechnicalObjQuickVw.TechnicalObjectLabel = $projection.technicalobjectlabel
[0..1] C_TechObjQuickVw _OpTechnicalObjQuickVw _OpTechnicalObjQuickVw.TechnicalObject = $projection.MaintOperationTechnicalObject and _OpTechnicalObjQuickVw.TechObjIsEquipOrFuncnlLoc = $projection.OperationTechObjIsEquip and _OpTechnicalObjQuickVw.TechnicalObjectLabel = $projection.OperationTechnicalObjectLabel
[0..*] C_StsObjActiveStatusCodeText _MaintOrdActiveSystemStatus _MaintOrdActiveSystemStatus.StatusObject = $projection.maintenanceorderinternalid and _MaintOrdActiveSystemStatus.IsUserStatus = ''
[0..*] C_StsObjActiveStatusCodeText _MaintOrdActiveUserStatus _MaintOrdActiveUserStatus.StatusObject = $projection.maintenanceorderinternalid and _MaintOrdActiveUserStatus.IsUserStatus = 'X'
[0..*] I_MaintOpExecStageCodeText _MaintOpExecStageCodeText _MaintOpExecStageCodeText.MaintOperationExecStageCode = $projection.MaintOperationExecStageCode
[0..1] I_MaintOperationExecStageCode _MaintOperationExecStageCode _MaintOperationExecStageCode.MaintOperationExecStageCode = $projection.MaintOperationExecStageCode -- Extensions, do not expose as association:
[0..1] E_MaintenanceOrder _MaintenanceOrderExtension $projection.MaintenanceOrder = _MaintenanceOrderExtension.MaintenanceOrder
[0..1] E_MaintenanceOrderOperation _MaintOrderOperExtension $projection.MaintOrderRoutingNumber = _MaintOrderOperExtension.MaintOrderRoutingNumber and $projection.MaintOrderOperationCounter = _MaintOrderOperExtension.MaintOrderOperationCounter --Phase Controls
[0..*] C_ObjPgMaintObjPhaseControl _ObjPgMaintObjPhaseControl _ObjPgMaintObjPhaseControl.StatusObject = $projection.maintenanceorderinternalid and _ObjPgMaintObjPhaseControl.EAMBlockerCodeEntityType = 'ORI' and _ObjPgMaintObjPhaseControl.MaintenanceOrderType = $projection.maintenanceordertype
[0..*] C_ObjPgMaintObjPhaseControl _ObjPgMaintObjOrdOpPhaseCntrl _ObjPgMaintObjOrdOpPhaseCntrl.StatusObject = $projection.MaintOrderOperationInternalID and _ObjPgMaintObjOrdOpPhaseCntrl.EAMBlockerCodeEntityType = 'OVG' and _ObjPgMaintObjOrdOpPhaseCntrl.MaintenanceOrderType = $projection.maintenanceordertype
[0..1] I_TechObjIsEquipOrFuncnlLoc _OperationTechObjIsEquip _OperationTechObjIsEquip.TechObjIsEquipOrFuncnlLoc = $projection.OperationTechObjIsEquip
[0..*] I_FunctionalLocationText _FunctionalLocationText _FunctionalLocationText.FunctionalLocation = $projection.functionallocation
[0..*] I_FunctionalLocationText _OpFunctionalLocationText _OpFunctionalLocationText.FunctionalLocation = $projection.OperationFunctionalLocation
[0..1] C_MaintOrderForAction _MaintOrderForAction _MaintOrderForAction.MaintenanceOrder = $projection.MaintenanceOrder
[0..1] I_MaintOrderProcessingContext _MaintOrderProcessingContext _MaintOrderProcessingContext.MaintOrderProcessingContext = $projection.maintorderprocessingcontext
[0..1] C_MaintOrdProcessingContextVH _MaintOrderProcessingContextVH _MaintOrderProcessingContextVH.MaintOrderProcessingContext = $projection.maintorderprocessingcontext
[0..1] I_MaintPlanningBucketVH _MaintPlanningBucketVH _MaintPlanningBucketVH.MaintPlanningBucketUUID = $projection.MaintPlanningBucketUUID
[0..*] I_FunclocationLabelInternal _FuncnlLocationLabel _FuncnlLocationLabel.FunctionalLocation = $projection.functionallocation
[0..1] I_MaintenanceRevisionValueHelp _MaintenanceRevisionValueHelp _MaintenanceRevisionValueHelp.MaintenancePlanningPlant = $projection.maintenanceplanningplant and _MaintenanceRevisionValueHelp.MaintenanceRevision = $projection.maintenancerevision
[0..1] C_MaintenanceChecklistTypeVH _MaintenanceChecklistTypeVH _MaintenanceChecklistTypeVH.MaintOperationalChecklistType = $projection.MaintOperationalChecklistType
[0..1] I_MaintenanceChecklistType _ChecklistType _ChecklistType.MaintOperationalChecklistType = $projection.MaintOperationalChecklistType

Annotations (22)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.sqlViewName COPORDOP view
AbapCatalog.preserveKey true view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
EndUserText.label Maintenance Order and Operation view
Metadata.allowExtensions true view
Search.searchable true view
VDM.viewType #CONSUMPTION view
ObjectModel.usageType.serviceQuality #X view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.createEnabled true view
ObjectModel.updateEnabled true view
ObjectModel.deleteEnabled false view
ObjectModel.draftEnabled false view
UI.headerInfo.typeName Maintenance Order and Operation view
UI.headerInfo.typeNamePlural Maintenance Orders and Operations view
UI.headerInfo.description.value OrderAndOperationText view
UI.headerInfo.description.type #STANDARD view
UI.headerInfo.title.value MaintenanceOrderOperation view
UI.headerInfo.title.type #STANDARD view

Fields (44)

KeyFieldSource TableSource FieldDescription
KEY MaintenanceOrder P_ObjPgMaintOrderAndOperation MaintenanceOrder
KEY MaintenanceOrderOperation P_ObjPgMaintOrderAndOperation MaintenanceOrderOperation Operation
KEY MaintenanceOrderSubOperation P_ObjPgMaintOrderAndOperation MaintenanceOrderSubOperation Suboperation
MaintenanceOrderDesc _MaintenanceOrder MaintenanceOrderDesc
MaintenanceProcessingPhase _MaintenanceOrder MaintenanceProcessingPhase Order Status
MaintenanceOrderType _MaintenanceOrder MaintenanceOrderType
MaintenanceOrderTypeName
TechnicalObjectLabel
TechnicalObjectDescription Technical Object Description
TechObjIsEquipOrFuncnlLoc _MaintenanceOrder TechObjIsEquipOrFuncnlLoc Technical Object Type
TechObjIsEquipOrFuncnlLocDesc Technical Object Type Text
OperationDescription P_ObjPgMaintOrderAndOperation OperationDescription Operation Description
OperationTechnicalObjectLabel Operation Technical Object
OperationTechnicalObjectDesc Operation Technical Object Description
OperationTechObjIsEquip P_ObjPgMaintOrderAndOperation TechObjIsEquipOrFuncnlLoc Operation Technical Object Type
OperationTechObjIsEquipDesc Operation Technical Object Type Text
OperationMaintenanceNotif Operation Notification
OperationMaintNotificationText Operation Notification Text
OperationControlKey P_ObjPgMaintOrderAndOperation OperationControlKey Operation Control Key
OperationControlProfileName Operation Control Key Description
WorkCenter Operation Work Center
WorkCenterText Operation Work Center Text
OperationHasLongText P_ObjPgMaintOrderAndOperation OperationHasLongText Operation Has Long Text
OperationPurgInfoRecdSearchTxt P_ObjPgMaintOrderAndOperation OperationPurgInfoRecdSearchTxt
PlannedPlant P_ObjPgMaintOrderAndOperation Plant Operation Work Center Plant
PlantName Operation Work Center Plant Name
PurchaseRequisition P_ObjPgMaintOrderAndOperation PurchaseRequisition Purchase Requisition
PurchaseRequisitionItem P_ObjPgMaintOrderAndOperation PurchaseRequisitionItem Purchase Requisition Item
OperationRequisitionerName P_ObjPgMaintOrderAndOperation OperationRequisitionerName
OperationGoodsRecipientName P_ObjPgMaintOrderAndOperation OperationGoodsRecipientName Goods Recipient
OpExternalProcessingPrice P_ObjPgMaintOrderAndOperation OpExternalProcessingPrice
OpExternalProcessingCurrency P_ObjPgMaintOrderAndOperation OpExternalProcessingCurrency
OpExternalProcessingPriceUnit P_ObjPgMaintOrderAndOperation OpExternalProcessingPriceUnit Price Unit
OperationTrackingNumber P_ObjPgMaintOrderAndOperation OperationTrackingNumber Tracking Number
OperationPurchasingInfoRecord P_ObjPgMaintOrderAndOperation OperationPurchasingInfoRecord Purchasing Info Record
OperationUnloadingPointName P_ObjPgMaintOrderAndOperation OperationUnloadingPointName
OpPurchaseOutlineAgreement P_ObjPgMaintOrderAndOperation OpPurchaseOutlineAgreement Purchase Outline Agreement
OpPurchaseOutlineAgreementItem P_ObjPgMaintOrderAndOperation OpPurchaseOutlineAgreementItem Purchase Outline Agreement Item
OperationSupplier P_ObjPgMaintOrderAndOperation OperationSupplier Supplier
OperationSupplierName Supplier Name
OperationPersonResponsible Person Responsible (Operation)
Personnel P_ObjPgMaintOrderAndOperation OperationPersonResponsible
OperationPersonRespName Person Resonsible (Operation) Name
Assembly P_ObjPgMaintOrderAndOperation Assembly
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.sqlViewName: 'COPORDOP'
@AbapCatalog.preserveKey: true
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.privilegedAssociations: [ '_MaintenanceOrderQuickView','_TechnicalObjQuickVw','_OpTechnicalObjQuickVw','_StatusObjectStatus','_StatusObject', '_ObjPgMaintObjPhaseControl', '_ObjPgMaintObjOrdOpPhaseCntrl' ]// ,'_EAMOrderOpProcessPhase''_EAMOrderOpProcessSubPhase']

@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@EndUserText.label: 'Maintenance Order and Operation'
@Metadata.allowExtensions: true
@Search.searchable: true
@VDM.viewType: #CONSUMPTION

@ObjectModel.usageType.serviceQuality: #X
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.createEnabled: true
@ObjectModel.updateEnabled: true
@ObjectModel.deleteEnabled: false
@ObjectModel.draftEnabled: false

@UI: {
    headerInfo:
    {
        typeName: 'Maintenance Order and Operation',
        typeNamePlural: 'Maintenance Orders and Operations',
        description: {
            value: 'OrderAndOperationText',
            type: #STANDARD
        },
        title: {
            value: 'MaintenanceOrderOperation',
            type: #STANDARD
        }
    },
    presentationVariant: {
        requestAtLeast:  [ 'TechObjIsEquipOrFuncnlLoc', 'TechnicalObject', 'OperationTechObjIsEquip', 'MaintOperationTechnicalObject', 'MaintOrderConfirmation', 'OperationHasLongText', 'OperationPersonResponsible',
                           'OperationPlannedWorkUnit', 'Plant', 'WorkCenter', 'CompleteBusinessAndSetNotifSts', 'CompleteTechlyAndSetNotifSts', 'DoNotExectOrderAndSetNotifSts', 'ResetTechCompltnAndSetNotifSts', 'RefTimeForOrderCompletion', 'SetDeletionFlagAndNotifStatus',
                           'ResetDeltnFlagAndSetNotifSts' ]
    }
}

define view C_ObjPgMaintOrderAndOperation
  as select from           P_ObjPgMaintOrderAndOperation as _MntOperation
    left outer to one join I_EAMUserDefaultValues        as _EAMUserDefaultValues on _EAMUserDefaultValues.UserID = $session.user
  association [0..1] to I_MaintOrderTP                 as _MaintenanceOrder              on  _MaintenanceOrder.MaintenanceOrder = $projection.MaintenanceOrder
  association [0..1] to I_MaintenanceOrder             as _MaintenanceOrderVH            on  _MaintenanceOrderVH.MaintenanceOrder = $projection.MaintenanceOrder
  association [0..1] to C_MaintOrderQuickVw            as _MaintenanceOrderQuickView     on  _MaintenanceOrderQuickView.MaintenanceOrder = $projection.MaintenanceOrder
  association [0..1] to C_MaintOrderTypeVH             as _MaintOrderTypeVH              on  _MaintOrderTypeVH.MaintenanceOrderType = $projection.maintenanceordertype
  association [0..1] to C_MaintenanceOrderPhaseVH      as _MaintenanceOrderPhaseVH       on  _MaintenanceOrderPhaseVH.MaintenanceProcessingPhase = $projection.maintenanceprocessingphase
  association [0..1] to C_TechnicalObjectLabelVH       as _TechnicalObjectLabelVH        on  _TechnicalObjectLabelVH.TechnicalObjectLabel      = $projection.technicalobjectlabel
                                                                                         and _TechnicalObjectLabelVH.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
                                                                                         and _TechnicalObjectLabelVH.TechnicalObject           = $projection.TechnicalObject
  association [0..1] to C_TechnicalObjectLabelVH       as _OperationTechObjLabelVH       on  _OperationTechObjLabelVH.TechnicalObjectLabel      = $projection.OperationTechnicalObjectLabel
                                                                                         and _OperationTechObjLabelVH.TechObjIsEquipOrFuncnlLoc = $projection.OperationTechObjIsEquip
                                                                                         and _OperationTechObjLabelVH.TechnicalObject           = $projection.MaintOperationTechnicalObject
  association [0..1] to I_MaintenanceNotification      as _OperationMaintenanceNotifVH   on  _OperationMaintenanceNotifVH.MaintenanceNotification = $projection.OperationMaintenanceNotif
  association [0..1] to I_CostCenterActivityType       as _CostCenterActivityTypeVH      on  _CostCenterActivityTypeVH.CostCtrActivityType = $projection.CostCtrActivityType
                                                                                         and _CostCenterActivityTypeVH.ControllingArea     = $projection.controllingarea
                                                                                         and _CostCenterActivityTypeVH.ValidityEndDate     = '99991231'
  association [0..1] to C_PMAssetLocationVH            as _AssetLocationVH               on  _AssetLocationVH.Location = $projection.assetlocation
                                                                                         and _AssetLocationVH.Plant    = $projection.maintenanceplant
  association [0..*] to I_StatusObjectStatus           as _StatusObjectStatus            on  _StatusObjectStatus.StatusObject = $projection.MaintOrderOperationInternalID
  association [0..1] to I_Indicator                    as _IsFinallyConfirmed            on  _IsFinallyConfirmed.IndicatorValue = $projection.IsFinallyConfirmed
  association [0..1] to I_PMContactCardEmployee        as _ContactCardEmployee           on  _ContactCardEmployee.PersonnelNumber = $projection.OperationPersonResponsible
  association [0..1] to I_PMContactCardEmployee        as _OrdContactCardEmployee        on  _OrdContactCardEmployee.PersonnelNumber = $projection.MaintOrdPersonResponsible
  association [0..1] to I_MaintOrderOperAndSubOper     as _OperAndSubOper                on  _OperAndSubOper.MaintOrderRoutingNumber    = $projection.MaintOrderRoutingNumber
                                                                                         and _OperAndSubOper.MaintOrderOperationCounter = $projection.MaintOrderOperationCounter

  /* Selection helper for Maintenance Planning Overview Page */
  association [0..1] to C_OverdueMaintenanceOrderQ     as _OverdueMaintenanceOrderQ      on  _OverdueMaintenanceOrderQ.MaintenanceOrder = $projection.MaintenanceOrder
  association [0..1] to C_TechObjQuickVw               as _TechnicalObjQuickVw           on  _TechnicalObjQuickVw.TechnicalObject           = $projection.TechnicalObject
                                                                                         and _TechnicalObjQuickVw.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
                                                                                         and _TechnicalObjQuickVw.TechnicalObjectLabel      = $projection.technicalobjectlabel
  association [0..1] to C_TechObjQuickVw               as _OpTechnicalObjQuickVw         on  _OpTechnicalObjQuickVw.TechnicalObject           = $projection.MaintOperationTechnicalObject
                                                                                         and _OpTechnicalObjQuickVw.TechObjIsEquipOrFuncnlLoc = $projection.OperationTechObjIsEquip
                                                                                         and _OpTechnicalObjQuickVw.TechnicalObjectLabel      = $projection.OperationTechnicalObjectLabel

  association [0..*] to C_StsObjActiveStatusCodeText   as _MaintOrdActiveSystemStatus    on  _MaintOrdActiveSystemStatus.StatusObject = $projection.maintenanceorderinternalid
                                                                                         and _MaintOrdActiveSystemStatus.IsUserStatus = ''

  association [0..*] to C_StsObjActiveStatusCodeText   as _MaintOrdActiveUserStatus      on  _MaintOrdActiveUserStatus.StatusObject = $projection.maintenanceorderinternalid
                                                                                         and _MaintOrdActiveUserStatus.IsUserStatus = 'X'

  association [0..*] to I_MaintOpExecStageCodeText     as _MaintOpExecStageCodeText      on  _MaintOpExecStageCodeText.MaintOperationExecStageCode = $projection.MaintOperationExecStageCode
  association [0..1] to I_MaintOperationExecStageCode  as _MaintOperationExecStageCode   on  _MaintOperationExecStageCode.MaintOperationExecStageCode = $projection.MaintOperationExecStageCode

  -- Extensions, do not expose as association:
  association [0..1] to E_MaintenanceOrder             as _MaintenanceOrderExtension     on  $projection.MaintenanceOrder = _MaintenanceOrderExtension.MaintenanceOrder
  association [0..1] to E_MaintenanceOrderOperation    as _MaintOrderOperExtension       on  $projection.MaintOrderRoutingNumber    = _MaintOrderOperExtension.MaintOrderRoutingNumber
                                                                                         and $projection.MaintOrderOperationCounter = _MaintOrderOperExtension.MaintOrderOperationCounter

  --Phase Controls
  association [0..*] to C_ObjPgMaintObjPhaseControl    as _ObjPgMaintObjPhaseControl     on  _ObjPgMaintObjPhaseControl.StatusObject             = $projection.maintenanceorderinternalid
                                                                                         and _ObjPgMaintObjPhaseControl.EAMBlockerCodeEntityType = 'ORI'
                                                                                         and _ObjPgMaintObjPhaseControl.MaintenanceOrderType     = $projection.maintenanceordertype
  association [0..*] to C_ObjPgMaintObjPhaseControl    as _ObjPgMaintObjOrdOpPhaseCntrl  on  _ObjPgMaintObjOrdOpPhaseCntrl.StatusObject             = $projection.MaintOrderOperationInternalID
                                                                                         and _ObjPgMaintObjOrdOpPhaseCntrl.EAMBlockerCodeEntityType = 'OVG'
                                                                                         and _ObjPgMaintObjOrdOpPhaseCntrl.MaintenanceOrderType     = $projection.maintenanceordertype

  association [0..1] to I_TechObjIsEquipOrFuncnlLoc    as _OperationTechObjIsEquip       on  _OperationTechObjIsEquip.TechObjIsEquipOrFuncnlLoc = $projection.OperationTechObjIsEquip

  association [0..*] to I_FunctionalLocationText       as _FunctionalLocationText        on  _FunctionalLocationText.FunctionalLocation = $projection.functionallocation

  association [0..*] to I_FunctionalLocationText       as _OpFunctionalLocationText      on  _OpFunctionalLocationText.FunctionalLocation = $projection.OperationFunctionalLocation
  association [0..1] to C_MaintOrderForAction          as _MaintOrderForAction           on  _MaintOrderForAction.MaintenanceOrder = $projection.MaintenanceOrder
  //  association [0..*] to I_EAMProcessPhaseText              as _EAMOrderOpProcessPhase              on  _EAMOrderOpProcessPhase.EAMProcessPhaseCode = $projection.MaintOrdOpProcessPhaseCode

  //  association [0..*] to I_EAMProcessSubPhaseText           as _EAMOrderOpProcessSubPhase           on  _EAMOrderOpProcessSubPhase.EAMProcessSubPhaseCode = $projection.MaintOrdOpProcessSubPhaseCode


  association [0..1] to I_MaintOrderProcessingContext  as _MaintOrderProcessingContext   on  _MaintOrderProcessingContext.MaintOrderProcessingContext = $projection.maintorderprocessingcontext
  association [0..1] to C_MaintOrdProcessingContextVH  as _MaintOrderProcessingContextVH on  _MaintOrderProcessingContextVH.MaintOrderProcessingContext = $projection.maintorderprocessingcontext

  association [0..1] to I_MaintPlanningBucketVH        as _MaintPlanningBucketVH         on  _MaintPlanningBucketVH.MaintPlanningBucketUUID = $projection.MaintPlanningBucketUUID
  association [0..*] to I_FunclocationLabelInternal    as _FuncnlLocationLabel           on  _FuncnlLocationLabel.FunctionalLocation = $projection.functionallocation
  association [0..1] to I_MaintenanceRevisionValueHelp as _MaintenanceRevisionValueHelp  on  _MaintenanceRevisionValueHelp.MaintenancePlanningPlant = $projection.maintenanceplanningplant
                                                                                         and _MaintenanceRevisionValueHelp.MaintenanceRevision      = $projection.maintenancerevision
  association [0..1] to C_MaintenanceChecklistTypeVH   as _MaintenanceChecklistTypeVH    on  _MaintenanceChecklistTypeVH.MaintOperationalChecklistType = $projection.MaintOperationalChecklistType
  association [0..1] to I_MaintenanceChecklistType     as _ChecklistType                 on  _ChecklistType.MaintOperationalChecklistType = $projection.MaintOperationalChecklistType

{
         @Consumption.semanticObject: 'MaintenanceOrder'
         @ObjectModel.text.element:  [ 'MaintenanceOrderDesc' ]
         @UI: {
             lineItem: [{ position: 10, importance: #HIGH }],
             selectionField: { position: 10 },
             fieldGroup: {qualifier: 'Order', groupLabel: 'Order'}
         }
         @Search: { defaultSearchElement: true, ranking: #HIGH}
         @ObjectModel: { foreignKey.association: '_MaintenanceOrderQuickView', mandatory: true }
  key    _MntOperation.MaintenanceOrder,
         @EndUserText.label: 'Operation'
         @EndUserText.quickInfo: 'Operation'
         @UI: {
             lineItem: { position: 30, importance: #HIGH },
             fieldGroup: {qualifier: 'Operation', groupLabel: 'Operation'}
         }
         @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
  key    _MntOperation.MaintenanceOrderOperation,
         @EndUserText.label: 'Suboperation'
         @UI: {
             lineItem: { position: 40, importance: #HIGH },
             fieldGroup: {qualifier: 'Operation'}
         }
         @EndUserText.quickInfo: 'Suboperation'
  key    _MntOperation.MaintenanceOrderSubOperation,
         @Semantics.text: true
         @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
         @UI:{ fieldGroup.qualifier: 'Order'}
         _MaintenanceOrder.MaintenanceOrderDesc,
         //@Feature: 'BF:EAM_PHASE_MODEL_PROCESSING'

         @UI: {
            selectionField: { position: 30 },
            fieldGroup: {qualifier: 'Order'}
         }
         @EndUserText.label: 'Order Status'
         @ObjectModel.foreignKey.association: '_MaintenanceOrderPhaseVH'
         _MaintenanceOrder.MaintenanceProcessingPhase,
         @ObjectModel.text.element:  [ 'MaintenanceOrderTypeName' ]
         @UI:{
             lineItem: { position: 20, importance: #HIGH },
             selectionField: { position: 20 },
             fieldGroup: {qualifier: 'Order'}
         }
         @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
         @ObjectModel.foreignKey.association: '_MaintOrderTypeVH'
         @UI.textArrangement: #TEXT_FIRST
         _MaintenanceOrder.MaintenanceOrderType,
         @Semantics.text: true
         @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
         @UI:{ fieldGroup.qualifier: 'Order'}
         _MaintenanceOrder._Order._OrderType._Text[1:Language = $session.system_language].OrderTypeName                                                                                                   as MaintenanceOrderTypeName,
         @Consumption.semanticObject: 'MaintenanceObject'
         @ObjectModel.text.element:  [ 'TechnicalObjectDescription' ]
         @UI:{
             lineItem: { position: 60, importance: #HIGH },
             selectionField: { position: 40 },
             fieldGroup: {qualifier: 'Order'}
         }
         @Consumption.valueHelp: '_TechnicalObjectLabelVH'
         @ObjectModel: { foreignKey.association: '_TechnicalObjQuickVw', mandatory: true}
         _MaintenanceOrder._TechnicalObject.TechnicalObjectLabel,
         @EndUserText.label: 'Technical Object Description'
         @Semantics.text: true
         @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
         @UI:{ fieldGroup.qualifier: 'Order'}
         _MaintenanceOrder._TechnicalObject._TechnicalObjectText[1:Language = $session.system_language].TechnicalObjectDescription,
         @EndUserText.label: 'Technical Object Type'
         @UI:{
             lineItem: { position: 70, importance: #HIGH },
             fieldGroup: {qualifier: 'Order'}
         }
         @ObjectModel.text.element: 'TechObjIsEquipOrFuncnlLocDesc'
         @ObjectModel.foreignKey.association: '_TechObjIsEquipOrFuncnlLoc'
         _MaintenanceOrder.TechObjIsEquipOrFuncnlLoc,
         @EndUserText.label: 'Technical Object Type Text'
         @Semantics.text: true
         @UI:{ fieldGroup.qualifier: 'Order'}
         _MaintenanceOrder._TechObjIsEquipOrFuncnlLoc._Text[1:Language=$session.system_language].TechObjIsEquipOrFuncnlLocDesc,

         @EndUserText.label: 'Operation Description'
         @Semantics.text: true
         @UI:{
             -- is implemented as custom column
             lineItem: { exclude: true },
             fieldGroup: {qualifier: 'Operation'}
         }
         @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
         _MntOperation.OperationDescription,
         @Consumption.semanticObject: 'MaintenanceObject'
         @EndUserText.label: 'Operation Technical Object'
         @ObjectModel.text.element:  [ 'OperationTechnicalObjectDesc' ]
         @UI:{
             lineItem: { position: 80, importance: #HIGH },
             fieldGroup: {qualifier: 'Operation'}
         }
         @Consumption.valueHelp: '_OperationTechObjLabelVH'
         @ObjectModel: { foreignKey.association: '_OpTechnicalObjQuickVw', mandatory: true}
         //         @EndUserText.quickInfo: 'Operation Technical Object'

         _MntOperation._TechnicalObject.TechnicalObjectLabel                                                                                                                                              as OperationTechnicalObjectLabel,
         @EndUserText.label: 'Operation Technical Object Description'
         @Semantics.text: true
         @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation._TechnicalObject._TechnicalObjectText[1:Language = $session.system_language].TechnicalObjectDescription                                                                            as OperationTechnicalObjectDesc,
         @EndUserText.label: 'Operation Technical Object Type'
         @ObjectModel.text.element: 'OperationTechObjIsEquipDesc'
         @UI:{
             lineItem: { position: 90, importance: #HIGH },
             fieldGroup: {qualifier: 'Operation'}
         }
         @EndUserText.quickInfo: 'Operation Technical Object Type'
         @ObjectModel.foreignKey.association: '_OperationTechObjIsEquip'
         _MntOperation.TechObjIsEquipOrFuncnlLoc                                                                                                                                                          as OperationTechObjIsEquip,
         @EndUserText.label: 'Operation Technical Object Type Text'
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation._TechObjIsEquipOrFuncnlLoc._Text[1:Language=$session.system_language].TechObjIsEquipOrFuncnlLocDesc                                                                                as OperationTechObjIsEquipDesc,
         //--[ GENERATED:012:GFBfhxvv7kY4iKHbrSfDhm

         @Consumption.valueHelpDefinition: [
           { entity:  { name:    'I_MaintNotifStdVH',
                        element: 'MaintenanceNotification' }
           }]
         // ]--GENERATED

         @Consumption.semanticObject: 'MaintenanceNotification'
         @EndUserText.label: 'Operation Notification'
         @EndUserText.quickInfo: 'Operation Notification'
         @ObjectModel.foreignKey.association: '_OperationMaintenanceNotifVH'
         @ObjectModel.text.element:  'OperationMaintNotificationText'
         @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
         _MntOperation._MaintOrderOperObjectListLink._MaintenanceItemObject.MaintenanceNotification                                                                                                       as OperationMaintenanceNotif,
         @EndUserText.label: 'Operation Notification Text'
         @EndUserText.quickInfo: 'Operation Notification Text'
         @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation._MaintOrderOperObjectListLink._MaintenanceItemObject._MaintenanceNotification.NotificationText                                                                                     as OperationMaintNotificationText,
         @EndUserText.label: 'Operation Control Key'
         @UI:{
             fieldGroup: {qualifier: 'Operation'}
         }
         @ObjectModel.text.element:  'OperationControlProfileName'
         @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
         @Consumption : {
            valueHelpDefinition: [{ entity.name: 'C_MaintOrderOpCtrlKeyVH',
                                     entity.element: 'OperationControlProfile' }],
            filter.multipleSelections: true,
            filter.selectionType: #SINGLE
         }
         _MntOperation.OperationControlKey,
         @EndUserText.label: 'Operation Control Key Description'
         @Semantics.text: true
         @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation._OperationControlKey._Text[1:Language=$session.system_language].OperationControlProfileName,
         @Consumption.valueHelpDefinition: [ {
                entity: {  name: 'C_PMWorkCenterVH',
                           element: 'WorkCenter'
                        },
               additionalBinding : [{
                  localElement: 'PlannedPlant',
                  element: 'Plant'
                    }]
            }]
         @EndUserText.label: 'Operation Work Center'
         @EndUserText.quickInfo: 'Operation Work Center'
         @ObjectModel.text.element:  [ 'WorkCenterText' ]
         @ObjectModel.foreignKey.association: '_WorkCenter'
         @UI:{
             lineItem: { position: 110, importance: #HIGH },
             selectionField: { position: 90 },
             fieldGroup: {qualifier: 'Operation'}
         }
         @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
         _MntOperation._WorkCenter.WorkCenter,
         @EndUserText.label: 'Operation Work Center Text'
         @Semantics.text: true
         @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation._WorkCenter._Text[1:Language=$session.system_language].WorkCenterText,
         @Consumption.filter.multipleSelections: false
         @Consumption.filter.selectionType: #SINGLE
         @EndUserText.label: 'Operation Has Long Text'
         @EndUserText.quickInfo: 'Operation Long Text'
         @UI:{ fieldGroup.qualifier: 'Operation'}
         @UI.textArrangement: #TEXT_ONLY
         _MntOperation.OperationHasLongText,
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation.OperationPurgInfoRecdSearchTxt,
         @EndUserText.label: 'Operation Work Center Plant'
         @EndUserText.quickInfo: 'Operation Work Center Plant'
         @ObjectModel.foreignKey.association: '_Plant'
         @UI:{ selectionField: { position: 100 },
               fieldGroup.qualifier: 'Operation'}
         @ObjectModel.text.element: 'PlantName'
         _MntOperation.Plant                                                                                                                                                                              as PlannedPlant,
         @EndUserText.label: 'Operation Work Center Plant Name'
         @EndUserText.quickInfo: 'Operation Work Center Plant Name'
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation._Plant.PlantName,
         @Consumption.semanticObject: 'PurchaseRequisition'
         @EndUserText.label: 'Purchase Requisition'
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation.PurchaseRequisition,
         @Consumption.semanticObject: 'PurchaseRequisitionItem'
         @EndUserText.label: 'Purchase Requisition Item'
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation.PurchaseRequisitionItem,
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation.OperationRequisitionerName,
         @EndUserText.label: 'Goods Recipient'
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation.OperationGoodsRecipientName,
         //    @Semantics.quantity.unitOfMeasure: 'OpExternalProcessingCurrency'

         @Semantics.amount.currencyCode: 'OpExternalProcessingCurrency'
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation.OpExternalProcessingPrice,
         @UI:{ fieldGroup.qualifier: 'Operation'}
         @Consumption.valueHelpDefinition: [
          {
             entity: {
                 element: 'Currency',
                 name: 'I_CurrencyStdVH'
             }
          }]
         _MntOperation.OpExternalProcessingCurrency,
         @EndUserText.label: 'Price Unit'
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation.OpExternalProcessingPriceUnit,
         @EndUserText.label: 'Tracking Number'
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation.OperationTrackingNumber,
         @EndUserText.label: 'Purchasing Info Record'
         @UI:{ fieldGroup.qualifier: 'Operation'}
         @Consumption.valueHelpDefinition: [
         {
            entity: {
                element: 'PurchasingInfoRecord',
                name: 'I_PurchasingInfoRecordStdVH'
            }
         }]
         _MntOperation.OperationPurchasingInfoRecord,
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation.OperationUnloadingPointName,
         @EndUserText.label: 'Purchase Outline Agreement'
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation.OpPurchaseOutlineAgreement,
         @EndUserText.label: 'Purchase Outline Agreement Item'
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation.OpPurchaseOutlineAgreementItem,
         //--[ GENERATED:012:GFBfhxvv7kY4iKHbrSfDhm

         @Consumption.valueHelpDefinition: [
           { entity:  { name:    'I_Supplier_VH',
                        element: 'Supplier' }
           }]
         // ]--GENERATED

         @EndUserText.label: 'Supplier'
         @ObjectModel.text.element:  [ 'OperationSupplierName' ]
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation.OperationSupplier,
         @EndUserText.label: 'Supplier Name'
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation._Supplier.SupplierName                                                                                                                                                             as OperationSupplierName,
         //--[ GENERATED:012:GFBfhxvv7kY4iKHbrSfDhm

         @Consumption.valueHelpDefinition: [
           { entity:  { name:    'I_PersWrkAgrmtSrchHelp',
                        element: 'PersonWorkAgreement' }
           }]
         // ]--GENERATED

         @ObjectModel.filter.transformedBy: 'ABAP:CL_EAM_OPPERSNRESP_EXIT'
         @EndUserText.quickInfo: 'Person Responsible (Operation)'
         @EndUserText.label: 'Person Responsible (Operation)'
         @ObjectModel.text.element:  [ 'OperationPersonRespName' ]
         @UI:{ fieldGroup.qualifier: 'Operation', lineItem: { type: #AS_CONTACT, value: '_ContactCardEmployee', label: 'Contact Information (Person Responsible Operation)', importance: #LOW, position: 110 } }
         //         cast( _MntOperation.OperationPersonResponsible as eam_person_responsible )          as  OperationPersonResponsible,

         cast( _MntOperation.OperationPersonResponsible as eam_personresp_char8 )                                                                                                                         as OperationPersonResponsible,
         @Consumption.hidden: true
         _MntOperation.OperationPersonResponsible                                                                                                                                                         as Personnel,

         @EndUserText.label: 'Person Resonsible (Operation) Name'
         @UI:{ hidden : true, fieldGroup.qualifier: 'Operation' }
         _MntOperation._PersonResponsible.PersonFullName                                                                                                                                                  as OperationPersonRespName,
         @UI:{ fieldGroup.qualifier: 'Operation'}
         @ObjectModel.text.element:  [ 'AssemblyName' ]
         _MntOperation.Assembly,
         @EndUserText.label: 'Assembly Name'
         @EndUserText.quickInfo: 'Assembly Name'
         @UI:{ fieldGroup.qualifier: 'Operation'}
         _MntOperation._Assembly._Text[1:Language = $session.system_language].MaterialName                                                                                                                as AssemblyName,
         @EndUserText.label: 'System Condition'
         @ObjectModel.text.element:  [ 'OperationSystemConditionText' ]