R_MaintenanceJobWorkItemTP

DDL: R_MAINTENANCEJOBWORKITEMTP Type: view_entity COMPOSITE Package: VDM_EAM_MAINTJOB_MANAGE_OPRTN

Maintenance Order Operation TP

R_MaintenanceJobWorkItemTP is a Composite CDS View that provides data about "Maintenance Order Operation TP" in SAP S/4HANA. It reads from 2 data sources (P_ObjPgMaintOrderAndOperation, I_MaintOrderTechObj) and exposes 145 fields with key fields MaintenanceOrder, MaintenanceOrderOperation, MaintenanceOrderSubOperation. It has 43 associations to related views. Part of development package VDM_EAM_MAINTJOB_MANAGE_OPRTN.

Data Sources (2)

SourceAliasJoin Type
P_ObjPgMaintOrderAndOperation _MaintOrderOpSubOp from
I_MaintOrderTechObj I_MaintOrderTechObj inner

Associations (43)

CardinalityTargetAliasCondition
[0..1] I_MaintOrdOpNotification _OrdOpNotification _OrdOpNotification.MaintenanceOrder = _MaintOrderOpSubOp.MaintenanceOrder and _OrdOpNotification.MaintenanceOrderOperation = _MaintOrderOpSubOp.MaintenanceOrderOperation and _OrdOpNotification.MaintenanceOrderSubOperation = _MaintOrderOpSubOp.MaintenanceOrderSubOperation
[1..1] I_MaintenanceOrderOperation _MaintenanceOrderOp _MaintenanceOrderOp.MaintenanceOrder = $projection.MaintenanceOrder and _MaintenanceOrderOp.MaintenanceOrderOperation = $projection.MaintenanceOrderOperation
[0..*] C_MaintJobWorkItemService _MaintJobWorkItemService $projection.MaintenanceOrder = _MaintJobWorkItemService.MaintenanceOrder and $projection.MaintenanceOrderOperation = _MaintJobWorkItemService.MaintenanceOrderOperation and $projection.MaintenanceOrderSubOperation = _MaintJobWorkItemService.MaintenanceOrderSubOperation
[0..*] C_MaintJobWorkItemUnplndCompTP _MaintJobWorkItemUnplndComp $projection.MaintenanceOrder = _MaintJobWorkItemUnplndComp.MaintenanceOrder
[0..1] I_PMNotificationPriority _MaintenancePriority $projection.MaintPriority = _MaintenancePriority.MaintPriority and $projection.MaintPriorityType = _MaintenancePriority.MaintPriorityType
[0..1] I_MaintenanceJobSelection _MaintenanceJobSelection _MaintenanceJobSelection.MaintenanceJobSelection = $projection.MaintenanceJobSelection
[0..*] I_WorkCenterText _WorkCenterText _WorkCenterText.WorkCenterInternalID = $projection.OperationWorkCenterInternalID and _WorkCenterText.WorkCenterTypeCode = 'A'
[1..*] C_MaintNotificationItemTP_3 _MaintNotificationItemTP $projection.MaintenanceNotification = _MaintNotificationItemTP.MaintenanceNotification
[0..1] I_Indicator _IsFinallyConfirmed $projection.IsFinallyConfirmed = _IsFinallyConfirmed.IndicatorValue
[0..1] C_MaintOrderQuickVw _MaintOrderQuickView $projection.MaintenanceOrder = _MaintOrderQuickView.MaintenanceOrder
[0..1] C_MaintNotificationQuickVw _MaintNotificationQuickView $projection.MaintenanceNotification = _MaintNotificationQuickView.MaintenanceNotification
[0..*] I_MaintNotifDetectionCodeText _MaintNotifDetectCodeTxt $projection.MaintNotifDetectionCode = _MaintNotifDetectCodeTxt.MaintNotifDetectionCode
[0..1] I_PMTimeUnitVH _PlannedWorkUnitOfMeasure $projection.operationplannedworkunit = _PlannedWorkUnitOfMeasure.UnitOfMeasure
[0..1] I_MaintenanceOrderSubOperation _MaintOrderSubOperationTP_2 $projection.MaintenanceOrder = _MaintOrderSubOperationTP_2.MaintenanceOrder and $projection.MaintenanceOrderOperation = _MaintOrderSubOperationTP_2.MaintenanceOrderOperation and $projection.MaintenanceOrderSubOperation = _MaintOrderSubOperationTP_2.MaintenanceOrderSubOperation
[0..1] I_EAMProcessPhase _EAMProcessPhase $projection.MaintOrdOpProcessPhaseCode = _EAMProcessPhase.EAMProcessPhaseCode
[0..1] I_EAMProcessSubPhase _EAMProcessSubPhase $projection.MaintOrdOpProcessSubPhaseCode = _EAMProcessSubPhase.EAMProcessSubPhaseCode
[0..1] I_StatusObjectStatusBasic _DispatchedStatus _DispatchedStatus.StatusObject = $projection.MaintOrderOperationInternalID and _DispatchedStatus.StatusCode = 'I0117'
[0..1] I_StatusObjectStatusBasic _PartiallyConfirmedStatus _PartiallyConfirmedStatus.StatusObject = $projection.MaintOrderOperationInternalID and _PartiallyConfirmedStatus.StatusCode = 'I0010'
[0..1] I_StatusObjectStatusBasic _FullyConfirmedStatus _FullyConfirmedStatus.StatusObject = $projection.MaintOrderOperationInternalID and _FullyConfirmedStatus.StatusCode = 'I0009'
[0..1] I_StatusObjectStatusBasic _JobInProcessStatus _JobInProcessStatus.StatusObject = $projection.MaintOrderOperationInternalID and _JobInProcessStatus.StatusCode = 'I0809'
[0..1] I_StatusObjectStatusBasic _JobFinishedStatus _JobFinishedStatus.StatusObject = $projection.MaintOrderOperationInternalID and _JobFinishedStatus.StatusCode = 'I0820'
[0..1] I_StatusObjectStatusBasic _ServicePartiallyConfdStatus _ServicePartiallyConfdStatus.StatusObject = $projection.MaintOrderOperationInternalID and _ServicePartiallyConfdStatus.StatusCode = 'IEAME'
[0..1] I_StatusObjectStatusBasic _MainWorkCompletedStatus _MainWorkCompletedStatus.StatusObject = $projection.MaintOrderOperationInternalID and _MainWorkCompletedStatus.StatusCode = 'IEAM6'
[0..1] I_Indicator _IsActivePhaseModel $projection.maintordtypehasactvphasemodel = _IsActivePhaseModel.IndicatorValue
[0..*] I_EquipmentText _OperationEquipment $projection.OperationEquipment = _OperationEquipment.Equipment
[0..*] I_EquipmentText _EquipmentText _EquipmentText.Equipment = $projection.Equipment
[0..*] I_FunctionalLocationText _OpFunctionalLocation $projection.OperationFunctionalLocation = _OpFunctionalLocation.FunctionalLocation
[0..*] I_FunctionalLocationText _FunctionalLocationText _FunctionalLocationText.FunctionalLocation = $projection.FunctionalLocation
[0..1] I_FunclocationLabelInternal _FunclocationLabel _FunclocationLabel.FunctionalLocation = $projection.FunctionalLocation
[0..1] I_OrderTypeConfirmationParam _ConfirmationParam $projection.MaintenanceOrderType = _ConfirmationParam.OrderType and $projection.Plant = _ConfirmationParam.Plant
[1..1] I_MaintenanceOrder _MaintenanceOrder $projection.MaintenanceOrder = _MaintenanceOrder.MaintenanceOrder
[0..1] I_TechnicalObject _OperationTechnicalObject _OperationTechnicalObject.TechnicalObject = $projection.MaintOperationTechnicalObject and _OperationTechnicalObject.TechObjIsEquipOrFuncnlLoc = $projection.OperationTechObjIsEquip
[0..1] I_TechnicalObject _TechnicalObject _TechnicalObject.TechnicalObject = $projection.TechnicalObject and _TechnicalObject.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc and _TechnicalObject.TechnicalObjectLabel = $projection.TechnicalObjectLabel
[0..1] tz1appl _TimeZoneConfig _TimeZoneConfig.appl = 'PM_WOC' -- Extensions, do not expose as association:
[0..1] E_PMNotifMaintenanceData _NotifMaintenanceDataExtension I_MaintOrderTechObj.MaintenanceNotification = _NotifMaintenanceDataExtension.MaintenanceNotification
[0..1] E_MaintenanceOrder _MaintenanceOrderExtension $projection.MaintenanceOrder = _MaintenanceOrderExtension.MaintenanceOrder
[0..1] E_MaintenanceOrderOperation _MaintOrderOperExtension _MaintOrderOpSubOp.MaintOrderRoutingNumber = _MaintOrderOperExtension.MaintOrderRoutingNumber and _MaintOrderOpSubOp.MaintOrderOperationCounter = _MaintOrderOperExtension.MaintOrderOperationCounter
[0..1] I_MaintOrderTypeControlParam _MaintOrderTypeControlParam $projection.MaintenanceOrderType = _MaintOrderTypeControlParam.OrderType
[0..1] R_MaintenanceOrderLongTextTP _OrderLongTextTP $projection.MaintenanceOrder = _OrderLongTextTP.MaintenanceOrder
[0..1] R_MaintOrderOpLongTextTP _OrderOpLongText _OrderOpLongText.MaintenanceOrder = $projection.MaintenanceOrder and _OrderOpLongText.MaintenanceOrderOperation = $projection.MaintenanceOrderOperation and _OrderOpLongText.MaintenanceOrderSubOperation = '' and _OrderOpLongText.TextObjectType = 'AVOT'
[0..1] R_MaintOrderOpLongTextTP _OrderSopLongText _OrderSopLongText.MaintenanceOrder = $projection.MaintenanceOrder and _OrderSopLongText.MaintenanceOrderOperation = $projection.MaintenanceOrderOperation and _OrderSopLongText.MaintenanceOrderSubOperation = $projection.MaintenanceOrderSubOperation and _OrderSopLongText.MaintenanceOrderSubOperation <> '' and _OrderSopLongText.TextObjectType = 'AVOT'
[0..1] I_MaintPersnRespWorkAgreement _PersnRespVH _PersnRespVH.WorkAssignment = $projection.OperationPersonResponsible
[0..*] R_MaintJobWorkItemComponentTP _MaintJobWorkItemComponent

Annotations (9)

NameValueLevelField
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #NOT_REQUIRED view
EndUserText.label Maintenance Order Operation TP view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.representativeKey MaintenanceOrder view

Fields (145)

KeyFieldSource TableSource FieldDescription
KEY MaintenanceOrder P_ObjPgMaintOrderAndOperation MaintenanceOrder
KEY MaintenanceOrderOperation
KEY MaintenanceOrderSubOperation
MaintenanceOrderDesc I_MaintOrderTechObj MaintenanceOrderDesc
MaintOrderProcessingContext I_MaintOrderTechObj MaintOrderProcessingContext
MaintOrderOperationInternalID P_ObjPgMaintOrderAndOperation MaintOrderOperationInternalID
MaintOrdTypeHasActvPhaseModel _MaintOrderTypeControlParam MaintOrdTypeHasActvPhaseModel
MaintPriority I_MaintOrderTechObj MaintPriority
MaintPriorityType I_MaintOrderTechObj MaintPriorityType
WorkCenter P_ObjPgMaintOrderAndOperation OperationWorkCenter
MaintOrderRoutingNumber _MaintenanceOrderOp MaintOrderRoutingNumber
MaintenanceOrderRoutingNode _MaintenanceOrderOp MaintOrderOperationCounter
OperationHasLongText P_ObjPgMaintOrderAndOperation OperationHasLongText
OrderHasLongText I_MaintOrderTechObj OrderHasLongText
MaintenanceOrderObjectList I_MaintOrderTechObj MaintenanceOrderObjectList
MaintenanceNotification _OrdOpNotification MaintenanceNotification
NotificationText
MaintNotificationLongText
OperationTechnicalObjectDesc _OperationTechnicalObject TechnicalObjectDescription
TechnicalObject I_MaintOrderTechObj TechnicalObject
TechnicalObjectForEdit
TechObjIsEquipOrFuncnlLoc I_MaintOrderTechObj TechObjIsEquipOrFuncnlLoc
MaintOperationTechnicalObject P_ObjPgMaintOrderAndOperation TechnicalObject
OperationTechObjIsEquip P_ObjPgMaintOrderAndOperation TechObjIsEquipOrFuncnlLoc
OperationControlKey P_ObjPgMaintOrderAndOperation OperationControlKey
OperationDescription _MaintenanceOrderOp OperationDescription
OperationText P_ObjPgMaintOrderAndOperation OperationDescription
OperationWorkCenterInternalID P_ObjPgMaintOrderAndOperation OperationWorkCenterInternalID
MaintenanceJobSelection
PostingDate
MaintOrdOpWrkExecStartDateTime
MaintOrdOpWrkExecEndDateTime
MaintenancePlant
MaintenancePlanningPlant I_MaintOrderTechObj MaintenancePlanningPlant
Plant P_ObjPgMaintOrderAndOperation Plant
OperationSupplier P_ObjPgMaintOrderAndOperation OperationSupplier
OpExternalProcessingCurrency P_ObjPgMaintOrderAndOperation OpExternalProcessingCurrency
OpPurchaseOutlineAgreement P_ObjPgMaintOrderAndOperation OpPurchaseOutlineAgreement
ActivityType P_ObjPgMaintOrderAndOperation CostCtrActivityType
OperationSystemCondition P_ObjPgMaintOrderAndOperation OperationSystemCondition
OperationPersonResponsible P_ObjPgMaintOrderAndOperation OperationPersonResponsible
OperationPersonRespName
OperationEquipment P_ObjPgMaintOrderAndOperation Equipment
Equipment I_MaintOrderTechObj Equipment
OperationFunctionalLocation P_ObjPgMaintOrderAndOperation FunctionalLocationLabelName
FunctionalLocation I_MaintOrderTechObj FunctionalLocation
FunctionalLocationName _FunclocationLabel FunctionalLocationLabelName
ConfirmationTotalQuantity
OperationPlannedWork P_ObjPgMaintOrderAndOperation OperationPlannedWork
OperationQuantityUnit
MaintOrdOpProgressionInPercent
OperationPlannedWorkUnit
Assembly P_ObjPgMaintOrderAndOperation Assembly
AssemblyOrderLevelValue I_MaintOrderTechObj Assembly
MaintOperationExecStageCode P_ObjPgMaintOrderAndOperation MaintOperationExecStageCode
MaintenanceOrderType I_MaintOrderTechObj MaintenanceOrderType
OpErlstSchedldExecStrtDte
OpErlstSchedldExecStrtTme
clientNULLasOpErlstSchedldExecStrtDteTme
clientNULLasOpErlstSchedldExecEndDteTme
clientNULLasOpLtstSchedldExecStrtDteTme
OpLtstSchedldExecEndDte
clientNULLasOpLtstSchedldExecEndDteTme
MalfunctionEffect
MalfunctionStartDate
MalfunctionStartTime
clientNULLasMalfunctionStartDateTime
MalfunctionEndDate
MalfunctionEndTime
clientNULLasMalfunctionEndDateTime
NotificationTimeZone
NotifTimeZoneIANACode
AddressTimeZone
TimeZoneIsActive _TimeZoneConfig active
MaintNotificationCode
MaintNotificationCatalog
MaintNotificationCodeGroup
CatalogProfile
NotificationType
MaintNotifCodgCatalogTypeCode
MaintNotifActivityCodeCatalog
MaintNotifCauseCodeCatalog
MaintNotifDamageCodeCatalog
MaintNotifObjPrtCodeCatalog
MaintNotifLongTextForEdit
MaintObjDowntimeDurationUnit
MaintenanceObjectIsDown
MaintNotifDetectionCatalog
MaintNotifDetectionCodeGroup
MaintNotifDetectionCode
MaintenanceOrderObjectListItem _OrdOpNotification MaintenanceOrderObjectListItem
MaintOrdOpHasNotifAssigned _OrdOpNotification MaintOrdOpHasNotifAssigned
FinalConfirmationType _ConfirmationParam FinalConfirmationType
OpenReservationIsFinallyIssued _ConfirmationParam OpenReservationIsFinallyIssued
_MaintenanceOrderType I_MaintOrderTechObj _MaintenanceOrderType
_MaintJobWorkItemComponent _MaintJobWorkItemComponent
_MaintJobWorkItemService _MaintJobWorkItemService
_MaintJobWorkItemUnplndComp _MaintJobWorkItemUnplndComp
_MaintenanceOrder _MaintenanceOrder
_MaintenanceJob _MaintenanceJob
_OpExternalProcessingCurrency P_ObjPgMaintOrderAndOperation _OpExternalProcessingCurrency
_OperationPlanningValues _MaintenanceOrderOp _OperationPlanningValues
_OperationControlKey P_ObjPgMaintOrderAndOperation _OperationControlKey
_OperationSystemCondition P_ObjPgMaintOrderAndOperation _OperationSystemCondition
_Plant P_ObjPgMaintOrderAndOperation _Plant
_MaintenancePlant
_MaintenancePlanningPlant I_MaintOrderTechObj _MaintenancePlanningPlant
_Assembly P_ObjPgMaintOrderAndOperation _Assembly
_Supplier P_ObjPgMaintOrderAndOperation _Supplier
_PersonResponsible P_ObjPgMaintOrderAndOperation _PersonResponsible
_MaintOrderProdnRsceTool _MaintenanceOrderOp _MaintOrderProdnRsceTool
OperationExternalProcessing
_OperationExternalProcessing
ConfirmationIsNotPossible
_EAMProcessPhase _EAMProcessPhase
_EAMProcessSubPhase _EAMProcessSubPhase
_MaintenancePriority _MaintenancePriority
_MaintenanceJobSelection _MaintenanceJobSelection
_WorkCenterText _WorkCenterText
_IsFinallyConfirmed _IsFinallyConfirmed
_MaintNotificationItemTP _MaintNotificationItemTP
_MaintNotifDetectCodeTxt _MaintNotifDetectCodeTxt
_MaintNotificationCode
_MalfunctionEffect
_FunctionalLocationText _FunctionalLocationText
_TechObjIsEquipOrFuncnlLoc I_MaintOrderTechObj _TechObjIsEquipOrFuncnlLoc
MaintenanceNotificationForEdit _OrdOpNotification MaintenanceNotification
_MaintenanceNotification _OrdOpNotification _MaintenanceNotification
_MaintOrderQuickView _MaintOrderQuickView
_MaintNotificationQuickView _MaintNotificationQuickView
_PlannedWorkUnitOfMeasure _PlannedWorkUnitOfMeasure
_IsActivePhaseModel _IsActivePhaseModel
_MaintOrderProcessingContext I_MaintOrderTechObj _MaintOrderProcessingContext
_MaintOperationExecStageCode P_ObjPgMaintOrderAndOperation _MaintOperationExecStageCode
_TechnicalObject _TechnicalObject
_OpTechObjIsEquipOrFuncnlLoc P_ObjPgMaintOrderAndOperation _TechObjIsEquipOrFuncnlLoc
_OperationEquipment _OperationEquipment
_OpFunctionalLocation _OpFunctionalLocation
_ConfirmationParam _ConfirmationParam
_EquipmentText _EquipmentText
_OrderLongTextTP _OrderLongTextTP
_OrderOpLongText _OrderOpLongText
_OrderSopLongText _OrderSopLongText
_PMNotificationType
_PersnRespVH _PersnRespVH
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED
@EndUserText.label: 'Maintenance Order Operation TP'

@VDM.viewType: #COMPOSITE
@VDM.usage.type: [#TRANSACTIONAL_PROCESSING_SERVICE]
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
@ObjectModel.usageType: {serviceQuality: #C, sizeCategory: #XL, dataClass: #TRANSACTIONAL}
@ObjectModel.representativeKey: 'MaintenanceOrder'

define view entity R_MaintenanceJobWorkItemTP
  //  as select from P_ObjPgMaintOrderAndOperation as _MaintOrderOpSubOp


  as select from P_ObjPgMaintOrderAndOperation as _MaintOrderOpSubOp
    inner join   I_MaintOrderTechObj on  I_MaintOrderTechObj.MaintenanceOrder           = _MaintOrderOpSubOp.MaintenanceOrder
                                     and I_MaintOrderTechObj.MaintenanceProcessingPhase = '2'
  association [0..1] to I_MaintOrdOpNotification       as _OrdOpNotification             on  _OrdOpNotification.MaintenanceOrder             = _MaintOrderOpSubOp.MaintenanceOrder
                                                                                         and _OrdOpNotification.MaintenanceOrderOperation    = _MaintOrderOpSubOp.MaintenanceOrderOperation
                                                                                         and _OrdOpNotification.MaintenanceOrderSubOperation = _MaintOrderOpSubOp.MaintenanceOrderSubOperation
  //  association [0..1] to I_MaintNotificationTechObj     as _MaintNotifTechObj             on  I_MaintOrderTechObj.MaintenanceNotification = _MaintNotifTechObj.MaintenanceNotification

  association [1..1] to I_MaintenanceOrderOperation    as _MaintenanceOrderOp            on  _MaintenanceOrderOp.MaintenanceOrder          = $projection.MaintenanceOrder
                                                                                         and _MaintenanceOrderOp.MaintenanceOrderOperation = $projection.MaintenanceOrderOperation
  association        to parent R_MaintenanceJobTP      as _MaintenanceJob                on  $projection.MaintenanceOrder = _MaintenanceJob.MaintenanceOrder
  composition [0..*] of R_MaintJobWorkItemComponentTP  as _MaintJobWorkItemComponent
  association [0..*] to C_MaintJobWorkItemService      as _MaintJobWorkItemService       on  $projection.MaintenanceOrder             = _MaintJobWorkItemService.MaintenanceOrder
                                                                                         and $projection.MaintenanceOrderOperation    = _MaintJobWorkItemService.MaintenanceOrderOperation
                                                                                         and $projection.MaintenanceOrderSubOperation = _MaintJobWorkItemService.MaintenanceOrderSubOperation
  //Unplanned section does not show up as a tab if R_MaintJobWorkItemUnplndCompTP is linked instead to C View,

  //in future use case, 2 layers of CDS Views not needed for a association linkage

  association [0..*] to C_MaintJobWorkItemUnplndCompTP as _MaintJobWorkItemUnplndComp    on  $projection.MaintenanceOrder = _MaintJobWorkItemUnplndComp.MaintenanceOrder
  //  association [0..1] to I_PersonWorkAgreement_1        as _PersonWorkAgreement         on  $projection.OperationPersonResponsible = _PersonWorkAgreement.PersonWorkAgreement

  association [0..1] to I_PMNotificationPriority       as _MaintenancePriority           on  $projection.MaintPriority     = _MaintenancePriority.MaintPriority
                                                                                         and $projection.MaintPriorityType = _MaintenancePriority.MaintPriorityType
  association [0..1] to I_MaintenanceJobSelection      as _MaintenanceJobSelection       on  _MaintenanceJobSelection.MaintenanceJobSelection = $projection.MaintenanceJobSelection
  association [0..*] to I_WorkCenterText               as _WorkCenterText                on  _WorkCenterText.WorkCenterInternalID = $projection.OperationWorkCenterInternalID
                                                                                         and _WorkCenterText.WorkCenterTypeCode   = 'A'
  association [1..*] to C_MaintNotificationItemTP_3    as _MaintNotificationItemTP       on  $projection.MaintenanceNotification = _MaintNotificationItemTP.MaintenanceNotification
  association [0..1] to I_Indicator                    as _IsFinallyConfirmed            on  $projection.IsFinallyConfirmed = _IsFinallyConfirmed.IndicatorValue
  //  association [0..1] to C_MaintNotifLongTextTP         as _MaintNotifLongTextTP          on  _MaintNotifLongTextTP.MaintenanceNotification = $projection.MaintenanceNotification

  association [0..1] to C_MaintOrderQuickVw            as _MaintOrderQuickView           on  $projection.MaintenanceOrder = _MaintOrderQuickView.MaintenanceOrder
  association [0..1] to C_MaintNotificationQuickVw     as _MaintNotificationQuickView    on  $projection.MaintenanceNotification = _MaintNotificationQuickView.MaintenanceNotification
  association [0..*] to I_MaintNotifDetectionCodeText  as _MaintNotifDetectCodeTxt       on  $projection.MaintNotifDetectionCode = _MaintNotifDetectCodeTxt.MaintNotifDetectionCode
  association [0..1] to I_PMTimeUnitVH                 as _PlannedWorkUnitOfMeasure      on  $projection.operationplannedworkunit = _PlannedWorkUnitOfMeasure.UnitOfMeasure
  association [0..1] to I_MaintenanceOrderSubOperation as _MaintOrderSubOperationTP_2    on  $projection.MaintenanceOrder             = _MaintOrderSubOperationTP_2.MaintenanceOrder
                                                                                         and $projection.MaintenanceOrderOperation    = _MaintOrderSubOperationTP_2.MaintenanceOrderOperation
                                                                                         and $projection.MaintenanceOrderSubOperation = _MaintOrderSubOperationTP_2.MaintenanceOrderSubOperation
  association [0..1] to I_EAMProcessPhase              as _EAMProcessPhase               on  $projection.MaintOrdOpProcessPhaseCode = _EAMProcessPhase.EAMProcessPhaseCode
  association [0..1] to I_EAMProcessSubPhase           as _EAMProcessSubPhase            on  $projection.MaintOrdOpProcessSubPhaseCode = _EAMProcessSubPhase.EAMProcessSubPhaseCode
  association [0..1] to I_StatusObjectStatusBasic      as _DispatchedStatus              on  _DispatchedStatus.StatusObject = $projection.MaintOrderOperationInternalID
                                                                                         and _DispatchedStatus.StatusCode   = 'I0117'
  association [0..1] to I_StatusObjectStatusBasic      as _PartiallyConfirmedStatus      on  _PartiallyConfirmedStatus.StatusObject = $projection.MaintOrderOperationInternalID
                                                                                         and _PartiallyConfirmedStatus.StatusCode   = 'I0010'
  association [0..1] to I_StatusObjectStatusBasic      as _FullyConfirmedStatus          on  _FullyConfirmedStatus.StatusObject = $projection.MaintOrderOperationInternalID
                                                                                         and _FullyConfirmedStatus.StatusCode   = 'I0009'
  association [0..1] to I_StatusObjectStatusBasic      as _JobInProcessStatus            on  _JobInProcessStatus.StatusObject = $projection.MaintOrderOperationInternalID
                                                                                         and _JobInProcessStatus.StatusCode   = 'I0809'
  association [0..1] to I_StatusObjectStatusBasic      as _JobFinishedStatus             on  _JobFinishedStatus.StatusObject = $projection.MaintOrderOperationInternalID
                                                                                         and _JobFinishedStatus.StatusCode   = 'I0820'
  association [0..1] to I_StatusObjectStatusBasic      as _ServicePartiallyConfdStatus   on  _ServicePartiallyConfdStatus.StatusObject = $projection.MaintOrderOperationInternalID
                                                                                         and _ServicePartiallyConfdStatus.StatusCode   = 'IEAME'
  association [0..1] to I_StatusObjectStatusBasic      as _MainWorkCompletedStatus       on  _MainWorkCompletedStatus.StatusObject = $projection.MaintOrderOperationInternalID
                                                                                         and _MainWorkCompletedStatus.StatusCode   = 'IEAM6'
  //  association [0..1] to I_StatusObjectStatusBasic      as _JobReleasedStatus           on  _JobReleasedStatus.StatusCode       = 'I0002'

  //                                                                                       and _JobReleasedStatus.StatusObject     = $projection.MaintOrderOperationInternalID

  //                                                                                       and _JobReleasedStatus.StatusIsInactive = ''

  association [0..1] to I_Indicator                    as _IsActivePhaseModel            on  $projection.maintordtypehasactvphasemodel = _IsActivePhaseModel.IndicatorValue
  //  association [0..1] to I_Equipment                    as _OperationEquipment            on  $projection.OperationEquipment = _OperationEquipment.Equipment

  association [0..*] to I_EquipmentText                as _OperationEquipment            on  $projection.OperationEquipment = _OperationEquipment.Equipment
  association [0..*] to I_EquipmentText                as _EquipmentText                 on  _EquipmentText.Equipment = $projection.Equipment
  //  association [0..1] to I_FunctionalLocation           as _OpFunctionalLocation          on  $projection.OperationFunctionalLocation = _OpFunctionalLocation.FunctionalLocation

  association [0..*] to I_FunctionalLocationText       as _OpFunctionalLocation          on  $projection.OperationFunctionalLocation = _OpFunctionalLocation.FunctionalLocation
  association [0..*] to I_FunctionalLocationText       as _FunctionalLocationText        on  _FunctionalLocationText.FunctionalLocation = $projection.FunctionalLocation
  association [0..1] to I_FunclocationLabelInternal    as _FunclocationLabel             on  _FunclocationLabel.FunctionalLocation = $projection.FunctionalLocation
  association [0..1] to I_OrderTypeConfirmationParam   as _ConfirmationParam             on  $projection.MaintenanceOrderType = _ConfirmationParam.OrderType
                                                                                         and $projection.Plant                = _ConfirmationParam.Plant
  association [1..1] to I_MaintenanceOrder             as _MaintenanceOrder              on  $projection.MaintenanceOrder = _MaintenanceOrder.MaintenanceOrder
  association [0..1] to I_TechnicalObject              as _OperationTechnicalObject      on  _OperationTechnicalObject.TechnicalObject           = $projection.MaintOperationTechnicalObject
                                                                                         and _OperationTechnicalObject.TechObjIsEquipOrFuncnlLoc = $projection.OperationTechObjIsEquip
  association [0..1] to I_TechnicalObject              as _TechnicalObject               on  _TechnicalObject.TechnicalObject           = $projection.TechnicalObject
                                                                                         and _TechnicalObject.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
                                                                                         and _TechnicalObject.TechnicalObjectLabel      = $projection.TechnicalObjectLabel
  association [0..1] to tz1appl                        as _TimeZoneConfig                on  _TimeZoneConfig.appl = 'PM_WOC'
  -- Extensions, do not expose as association:
  association [0..1] to E_PMNotifMaintenanceData       as _NotifMaintenanceDataExtension on  I_MaintOrderTechObj.MaintenanceNotification = _NotifMaintenanceDataExtension.MaintenanceNotification
  //  association [0..1] to E_PMNotifMaintenanceData       as _NotifMaintenanceDataExtension on  $projection.MaintenanceNotification = _NotifMaintenanceDataExtension.MaintenanceNotification

  association [0..1] to E_MaintenanceOrder             as _MaintenanceOrderExtension     on  $projection.MaintenanceOrder = _MaintenanceOrderExtension.MaintenanceOrder
  association [0..1] to E_MaintenanceOrderOperation    as _MaintOrderOperExtension       on  _MaintOrderOpSubOp.MaintOrderRoutingNumber    = _MaintOrderOperExtension.MaintOrderRoutingNumber
                                                                                         and _MaintOrderOpSubOp.MaintOrderOperationCounter = _MaintOrderOperExtension.MaintOrderOperationCounter
  //  association [0..1] to E_MaintenanceOrderConfirmation as _MaintOrdConfExtension         on  $projection.MaintOrderConfirmation  = _MaintOrdConfExtension.MaintOrderConf

  //                                                                                         and $projection.MaintOrderConfCntrValue = _MaintOrdConfExtension.MaintOrderConfCntrValue

  association [0..1] to I_MaintOrderTypeControlParam   as _MaintOrderTypeControlParam    on  $projection.MaintenanceOrderType = _MaintOrderTypeControlParam.OrderType
  association [0..1] to R_MaintenanceOrderLongTextTP   as _OrderLongTextTP               on  $projection.MaintenanceOrder = _OrderLongTextTP.MaintenanceOrder
  association [0..1] to R_MaintOrderOpLongTextTP       as _OrderOpLongText               on  _OrderOpLongText.MaintenanceOrder             = $projection.MaintenanceOrder
                                                                                         and _OrderOpLongText.MaintenanceOrderOperation    = $projection.MaintenanceOrderOperation
                                                                                         and _OrderOpLongText.MaintenanceOrderSubOperation = ''
                                                                                         and _OrderOpLongText.TextObjectType               = 'AVOT'
  association [0..1] to R_MaintOrderOpLongTextTP       as _OrderSopLongText              on  _OrderSopLongText.MaintenanceOrder             = $projection.MaintenanceOrder
                                                                                         and _OrderSopLongText.MaintenanceOrderOperation    = $projection.MaintenanceOrderOperation
                                                                                         and _OrderSopLongText.MaintenanceOrderSubOperation = $projection.MaintenanceOrderSubOperation
                                                                                         and _OrderSopLongText.MaintenanceOrderSubOperation <> ''
                                                                                         and _OrderSopLongText.TextObjectType               = 'AVOT'
  association [0..1] to I_MaintPersnRespWorkAgreement       as _PersnRespVH                   on  _PersnRespVH.WorkAssignment = $projection.OperationPersonResponsible

{
             @ObjectModel: { foreignKey.association: '_MaintOrderQuickView'}
  key        _MaintOrderOpSubOp.MaintenanceOrder,
  key        cast(_MaintOrderOpSubOp.MaintenanceOrderOperation as maintenanceorderoperation preserving type)                                                as MaintenanceOrderOperation,
  key        cast(_MaintOrderOpSubOp.MaintenanceOrderSubOperation    as    maintenanceordersuboperation preserving type )                                   as MaintenanceOrderSubOperation,
             I_MaintOrderTechObj.MaintenanceOrderDesc,
             I_MaintOrderTechObj.MaintOrderProcessingContext,
             _MaintOrderOpSubOp.MaintOrderOperationInternalID,
             @ObjectModel.foreignKey.association: '_IsFinallyConfirmed'
             cast(
             //               case when _OpStatusObjectStatus[1: StatusCode = 'I0009'].StatusCode is not null

             //                     and  _OpStatusObjectStatus[1: StatusCode = 'I0009'].StatusIsInactive <> 'X'

               case when _FullyConfirmedStatus.StatusIsInactive <> 'X'
               then 'X'
               else ''
               end
             as eams_finally_confirmed preserving type )                                                                                                    as IsFinallyConfirmed,

             cast ( case when ( _DispatchedStatus.StatusIsInactive = '' )
             then 'X'
             //                          else ''

             end as xfeld preserving type )                                                                                                                 as MaintOrdOpIsDispatched,

             cast ( case when ( _MainWorkCompletedStatus.StatusIsInactive = '' )
             then 'X'
             //             else ''

             end as xfeld preserving type )                                                                                                                 as MaintOrdHasOpenMainWork,

             cast ( case when ( _ServicePartiallyConfdStatus.StatusIsInactive = '' )
             then 'X'
             //             else ''

             end as xfeld preserving type )                                                                                                                 as MaintOrdOpIsSrvcPrtlyConfd,
             //I0010 - PCNF (Partially confirmed)

             //I0117 - DSPT (Scheduled)

             //I0809 - JIPR (Job In Process)

             //             cast( case when (_StatusObjectActiveStatus[1: StatusCode = 'I0010' ].StatusCode != '' and _StatusObjectActiveStatus[1: StatusCode = 'I0010' ].StatusIsActive = 'X')

             cast( case when ( _PartiallyConfirmedStatus.StatusIsInactive = '')
             //              or _StatusObjectActiveStatus[1: StatusCode = 'I0117' ].StatusCode != ''

             //               or (_StatusObjectActiveStatus[1: StatusCode = 'I0809' ].StatusCode != '' and _StatusObjectActiveStatus[1: StatusCode = 'I0809' ].StatusIsActive = 'X')

             or ( _JobInProcessStatus.StatusIsInactive = '')
                     then 'X'
             //                     else ''

                      end as xfeld preserving type )                                                                                                        as MaintOrderOperationIsInProcess,

             //             cast ( case when (_OpStatusObjectStatus[1: StatusCode = 'I0809' ].StatusCode != '' and _OpStatusObjectStatus[1: StatusCode = 'I0809' ].StatusIsActive = '' )

             cast ( case when ( _JobInProcessStatus.StatusIsInactive = 'X' )
             then 'X'
             //                          else ''

             end as xfeld preserving type )                                                                                                                 as MaintOrderOperationIsPaused,

             //             cast ( case when (_OpStatusObjectStatus[1: StatusCode = 'I0820' ].StatusCode != '' and _OpStatusObjectStatus[1: StatusCode = 'I0820' ].StatusIsActive = 'X' )

             cast ( case when ( _JobFinishedStatus.StatusIsInactive = '' )
                         then 'X'
             //                                      else ''

                          end as xfeld preserving type )                                                                                                    as MaintOrderOperationIsFinished,
             @ObjectModel.foreignKey.association: '_IsActivePhaseModel'
             //             I_MaintOrderTechObj._MaintOrderTypeControlParam.MaintOrdTypeHasActvPhaseModel,

             _MaintOrderTypeControlParam.MaintOrdTypeHasActvPhaseModel,
             I_MaintOrderTechObj.MaintPriority,
             I_MaintOrderTechObj.MaintPriorityType,
             _MaintOrderOpSubOp.OperationWorkCenter                                                                                                         as WorkCenter,
             //             _MaintOrderOpSubOp.MaintOrderRoutingNumber,

             _MaintenanceOrderOp.MaintOrderRoutingNumber,
             _MaintenanceOrderOp.MaintOrderOperationCounter                                                                                                 as MaintenanceOrderRoutingNode,
             //             _MaintOrderOpSubOp.MaintOrderOperationCounter                                                                                                       as MaintenanceOrderRoutingNode,

             @Semantics.text: true
             cast ('' as vdm_j_system_status_concat_t)                                                                                                      as ConcatenatedActiveSystStsName,
             //             @Semantics.text: true

             //             cast (' ' as abap.sstring( 1333 ))                                                                                                             as MaintOrderOperationLongText,

             //             @Semantics.text: true

             //             cast (' ' as abap.sstring( 1333 ))                                                                                                             as MaintOrderSubOperationLongText,

             _MaintOrderOpSubOp.OperationHasLongText                                                                                                        as OperationHasLongText,
             //             @Semantics.text: true

             //             cast (' ' as abap.sstring( 1333 ))                                                                                                             as MaintenanceOrderLongText,

             I_MaintOrderTechObj.OrderHasLongText                                                                                                           as OrderHasLongText,

             I_MaintOrderTechObj.MaintenanceOrderObjectList,

             //             @ObjectModel.text.element:  [ 'NotificationText' ]

             //             @ObjectModel: { foreignKey.association: '_MaintNotificationQuickView'}

             //             I_MaintOrderTechObj.MaintenanceNotification,

             //             @Semantics.text: true

             //             I_MaintOrderTechObj._MaintenanceNotification.NotificationText,


             @ObjectModel.text.element:  [ 'NotificationText' ]
             @ObjectModel: { foreignKey.association: '_MaintNotificationQuickView'}
             _OrdOpNotification.MaintenanceNotification                                                                                                     as MaintenanceNotification,
             @Semantics.text: true
             _OrdOpNotification._MaintenanceNotification.NotificationText,

             //I_MaintOrderTechObj.MaintenanceOrderObjectList,

             @Semantics.text: true
             cast('' as eams_ltext )                                                                                                                        as MaintNotificationLongText,


             //             @ObjectModel.text.element:  [ 'TechnicalObjectDescription' ]

             //             @ObjectModel.filter.transformedBy: 'ABAP:CL_EAM_TECHOBJLABEL_EXIT'

             //                          cast (_TechnicalObject.TechnicalObjectLabel as eams_tech_obj_alpha_conv preserving type )         as TechnicalObjectLabel,

             //             cast ( case when _TechnicalObject.TechObjIsEquipOrFuncnlLoc = 'EAMS_FL'

             //                      then cast( _TechnicalObject._FunctionalLocationLabel.FunctionalLocationLabelName as eams_tec_obj )

             //                      else ltrim( _TechnicalObject.TechnicalObject, '0'  ) end as eams_tec_obj preserving type )                                            as TechnicalObjectLabel,

             cast ( case when I_MaintOrderTechObj.TechObjIsEquipOrFuncnlLoc = 'EAMS_FL'
                                  then cast( I_MaintOrderTechObj._FunctionalLocation._FunctionalLocationLabel.FunctionalLocationLabelName as eams_tec_obj )
                                  else ltrim( I_MaintOrderTechObj.TechnicalObject, '0'  ) end as eams_tec_obj preserving type )                             as TechnicalObjectLabel,
             //             _TechnicalObject.TechnicalObjectDescription,

             //                           @ObjectModel: { virtualElement: true, virtualElementCalculatedBy: 'ABAP:CL_EAM_TECHOBJLABEL_EXIT' }

             //             cast ('' as  eams_tec_obj_des)                                                                                                                 as TechnicalObjectDescription,

             //             I_MaintOrderTechObj._TechnicalObject.TechnicalObjectDescription,



             cast ( case when _MaintOrderOpSubOp.TechObjIsEquipOrFuncnlLoc = 'EAMS_FL'
                      then cast( _OperationTechnicalObject._FunctionalLocation._FunctionalLocationLabel.FunctionalLocationLabelName as eams_tec_obj )
                      else ltrim( _MaintOrderOpSubOp.TechnicalObject, '0'  ) end as eams_tec_obj preserving type )                                          as OperationTechnicalObjectLabel,
             _OperationTechnicalObject.TechnicalObjectDescription                                                                                           as OperationTechnicalObjectDesc,
             I_MaintOrderTechObj.TechnicalObject,
             //TechnicalObjectForEdit- This is added for Measurement section, which is used seperately due to binding issues.

             //             @ObjectModel.filter.transformedBy: 'ABAP:CL_EAM_TECHOBJLABEL_EXIT'

             cast($projection.TechnicalObjectLabel as eams_tech_obj_alpha_conv preserving type )                                                            as TechnicalObjectForEdit,

             I_MaintOrderTechObj.TechObjIsEquipOrFuncnlLoc,
             _MaintOrderOpSubOp.TechnicalObject                                                                                                             as MaintOperationTechnicalObject,
             //             _MaintOrderOpSubOp._TechnicalObject.TechnicalObjectLabel                                                                                       as OperationTechnicalObjectLabel,

             _MaintOrderOpSubOp.TechObjIsEquipOrFuncnlLoc                                                                                                   as OperationTechObjIsEquip,
             _MaintOrderOpSubOp.OperationControlKey                                                                                                         as OperationControlKey,
             _MaintenanceOrderOp.OperationDescription,
             case
             when _MaintOrderOpSubOp.MaintenanceOrderSubOperation = ' '
             then ' '
             else _MaintOrderOpSubOp.OperationDescription
             end                                                                                                                                            as SubOperationText,
             _MaintOrderOpSubOp.OperationDescription                                                                                                        as OperationText,
             _MaintOrderOpSubOp.OperationWorkCenterInternalID,
             @ObjectModel.filter.transformedBy: 'ABAP:CL_EAM_MTJOBWKITEM_FILTER_EXIT'
             @ObjectModel.foreignKey.association: '_MaintenanceJobSelection'
             cast( '' as eams_ui_myself_myteam preserving type )                                                                                            as MaintenanceJobSelection,
             cast ( abap.dats'00000000' as budat preserving type )                                                                                          as PostingDate,
             @Semantics.dateTime: true
             cast( '000000000000' as timestamp )                                                                                                            as MaintOrdOpWrkExecStartDateTime,
             @Semantics.dateTime: true
             cast( '000000000000' as timestamp )                                                                                                            as MaintOrdOpWrkExecEndDateTime,
             I_MaintOrderTechObj._LocationAccountAssignment.MaintenancePlant,
             I_MaintOrderTechObj.MaintenancePlanningPlant,
             _MaintOrderOpSubOp.Plant,
             //             _MaintenanceOrderOp.OperationStandardTextCode,

             //             _MaintenanceOrderOp.Language,

             //             _MaintenanceOrderOp.NumberOfTimeTickets,

             //             _MaintOrderOpSubOp.OperationPurgInfoRecdSearchTxt,

             _MaintOrderOpSubOp.OperationSupplier,
             //             _MaintOrderOpSubOp.OpExternalProcessingPrice,

             //             _MaintOrderOpSubOp.OpExternalProcessingPriceUnit,

             //             _MaintOrderOpSubOp.CostElement,

             _MaintOrderOpSubOp.OpExternalProcessingCurrency,
             //             _MaintOrderOpSubOp.OperationPurchasingInfoRecord,

             //             _MaintOrderOpSubOp.PurchasingOrganization,

             //             _MaintOrderOpSubOp.PurchasingGroup,

             //             _MaintOrderOpSubOp.MaterialGroup,

             _MaintOrderOpSubOp.OpPurchaseOutlineAgreement,
             //             _MaintOrderOpSubOp.OpPurchaseOutlineAgreementItem,

             //             _MaintOrderOpSubOp.OperationRequisitionerName,

             //             _MaintOrderOpSubOp.OperationTrackingNumber,

             //             _MaintOrderOpSubOp.NumberOfCapacities,

             //             _MaintOrderOpSubOp.OperationWorkPercent,

             //             _MaintOrderOpSubOp.OperationCalculationControl,

             _MaintOrderOpSubOp.CostCtrActivityType                                                                                                         as ActivityType,
             _MaintOrderOpSubOp.OperationSystemCondition,
             //             _MaintOrderOpSubOp.OperationGoodsRecipientName,

             //             _MaintOrderOpSubOp.OperationUnloadingPointName,

             _MaintOrderOpSubOp.OperationPersonResponsible,
             //_MaintOrderOpSubOp._PersonResponsible.PersonFullName                                                                                           as OperationPersonRespName,

             cast('' as eams_person_responsible_name)                                                                                                       as OperationPersonRespName,
             //             _MaintOrderOpSubOp._PersonResponsible.Person                                                                                                   as Person,

             _MaintOrderOpSubOp.Equipment                                                                                                                   as OperationEquipment,
             I_MaintOrderTechObj.Equipment                                                                                                                  as Equipment,
             _MaintOrderOpSubOp.FunctionalLocationLabelName                                                                                                 as OperationFunctionalLocation,
             I_MaintOrderTechObj.FunctionalLocation,
             //             I_MaintOrderTechObj._FunctionalLocation._FunctionalLocationLabel.FunctionalLocationLabelName                                                   as FunctionalLocationName,

             _FunclocationLabel.FunctionalLocationLabelName                                                                                                 as FunctionalLocationName,
             //             _MaintOrderOpSubOp._OperationPlanningValues.ForecastedWorkQty                                                                                  as ForecastedWorkQty,

             _MaintOrderOpSubOp._OperationPlanningValues.ConfirmationTotalQuantity                                                                          as ConfirmationTotalQuantity,
             _MaintOrderOpSubOp.OperationPlannedWork                                                                                                        as OperationPlannedWork,
             _MaintOrderOpSubOp._OperationPlanningValues.OperationQuantityUnit                                                                              as OperationQuantityUnit,
             cast(0 as abap.int4 )                                                                                                                          as MaintOrdOpProgressionInPercent,
             //             _MaintOrderOpSubOp.OperationPlannedWorkUnit,

             _MaintOrderOpSubOp._OperationPlanningValues.OperationPlannedWorkUnit,
             @Semantics.quantity.unitOfMeasure: 'OperationPlannedWorkUnit'
             case when
                 _MaintOrderOpSubOp._OperationPlanningValues.ForecastedWorkQty = 0
             then
                $projection.OperationPlannedWork - _MaintOrderOpSubOp._OperationPlanningValues.ConfirmationTotalQuantity
             else
                _MaintOrderOpSubOp._OperationPlanningValues.ForecastedWorkQty - _MaintOrderOpSubOp._OperationPlanningValues.ConfirmationTotalQuantity   end as RemainingWorkQuantity,
             //             _MaintenanceOrderOp.BusinessArea,

             //             _MaintenanceOrderOp.ProfitCenter,

             //             _MaintenanceOrderOp.CostingSheet,

             //             _MaintenanceOrderOp.TaxJurisdiction,

             //             _MaintenanceOrderOp.FunctionalArea                                                                                                             as FunctionalArea,

             _MaintOrderOpSubOp.Assembly,
             //Do not remove, AssemblyOrderLevelValue is needed for BOMVH.

             I_MaintOrderTechObj.Assembly                                                                                                                   as AssemblyOrderLevelValue,
             _MaintOrderOpSubOp.MaintOperationExecStageCode,

             case when _MaintOrderOpSubOp.MaintenanceOrderSubOperation != ''
                           then _MaintOrderOpSubOp.MaintOrdOpProcessPhaseCode
                              else        _MaintenanceOrderOp.MaintOrdOpProcessPhaseCode end                                                                as MaintOrdOpProcessPhaseCode,
             case when _MaintOrderOpSubOp.MaintenanceOrderSubOperation != ''
             then _MaintOrderOpSubOp.MaintOrdOpProcessSubPhaseCode
                  else        _MaintenanceOrderOp.MaintOrdOpProcessSubPhaseCode end                                                                         as MaintOrdOpProcessSubPhaseCode,
      
             I_MaintOrderTechObj.MaintenanceOrderType                                                                                                       as MaintenanceOrderType,
             _MaintOrderOpSubOp._OperationPlanningValues.OpErlstSchedldExecStrtDte,
             _MaintOrderOpSubOp._OperationPlanningValues.OpErlstSchedldExecStrtTme,
             @Semantics.dateTime: true
             dats_tims_to_tstmp( _MaintOrderOpSubOp._OperationPlanningValues.OpErlstSchedldExecStrtDte,
                                 _MaintOrderOpSubOp._OperationPlanningValues.OpErlstSchedldExecStrtTme,
                                 abap_system_timezone( $session.client,'NULL' ),//abap_user_timezone(   $session.user,$session.client,'NULL' ),

                                 $session.client,
                                'NULL' )                                                                                                                    as OpErlstSchedldExecStrtDteTme,
             //             _MaintOrderOpSubOp._OperationPlanningValues.OpErlstSchedldExecEndDte,

             //             _MaintOrderOpSubOp._OperationPlanningValues.OpErlstSchedldExecEndTme,

             @Semantics.dateTime: true
             dats_tims_to_tstmp( _MaintOrderOpSubOp._OperationPlanningValues.OpErlstSchedldExecEndDte,
                                 _MaintOrderOpSubOp._OperationPlanningValues.OpErlstSchedldExecEndTme,
                                 abap_system_timezone( $session.client,'NULL' ),
                                 $session.client,
                                'NULL' )                                                                                                                    as OpErlstSchedldExecEndDteTme,
             //             _MaintOrderOpSubOp._OperationPlanningValues.OpLtstSchedldExecStrtDte,

             //             _MaintOrderOpSubOp._OperationPlanningValues.OpLtstSchedldExecStrtTme,

             @Semantics.dateTime: true
             dats_tims_to_tstmp( _MaintOrderOpSubOp._OperationPlanningValues.OpLtstSchedldExecStrtDte,
                                 _MaintOrderOpSubOp._OperationPlanningValues.OpLtstSchedldExecStrtTme,
                                 abap_system_timezone( $session.client,'NULL' ),
                                 $session.client,
                                'NULL' )                                                                                                                    as OpLtstSchedldExecStrtDteTme,
             @Semantics.businessDate.at: true
             _MaintOrderOpSubOp._OperationPlanningValues.OpLtstSchedldExecEndDte,
             //             _MaintOrderOpSubOp._OperationPlanningValues.OpLtstSchedldExecEndTme,

             @Semantics.dateTime: true
             dats_tims_to_tstmp( _MaintOrderOpSubOp._OperationPlanningValues.OpLtstSchedldExecEndDte,
                         _MaintOrderOpSubOp._OperationPlanningValues.OpLtstSchedldExecEndTme,
                          abap_system_timezone( $session.client,'NULL' ),
                          $session.client,
                         'NULL' )                                                                                                                           as OpLtstSchedldExecEndDteTme,

             @ObjectModel.foreignKey.association: '_MalfunctionEffect'
             _OrdOpNotification._MaintNotifTechObj.MalfunctionEffect                                                                                        as MalfunctionEffect,
             _OrdOpNotification._MaintNotifTechObj.MalfunctionStartDate                                                                                     as MalfunctionStartDate,
             _OrdOpNotification._MaintNotifTechObj.MalfunctionStartTime                                                                                     as MalfunctionStartTime,
             @Semantics.dateTime: true
             dats_tims_to_tstmp( _OrdOpNotification._MaintNotifTechObj.MalfunctionStartDate,
                         _OrdOpNotification._MaintNotifTechObj.MalfunctionStartTime,
                         _OrdOpNotification._MaintNotifTechObj.NotificationTimeZone,
                          $session.client,
                         'NULL' )                                                                                                                           as MalfunctionStartDateTime,
             _OrdOpNotification._MaintNotifTechObj.MalfunctionEndDate                                                                                       as MalfunctionEndDate,
             _OrdOpNotification._MaintNotifTechObj.MalfunctionEndTime                                                                                       as MalfunctionEndTime,
             @Semantics.dateTime: true
             dats_tims_to_tstmp( _OrdOpNotification._MaintNotifTechObj.MalfunctionEndDate,
                         _OrdOpNotification._MaintNotifTechObj.MalfunctionEndTime,
                         _OrdOpNotification._MaintNotifTechObj.NotificationTimeZone,
                          $session.client,
                         'NULL' )                                                                                                                           as MalfunctionEndDateTime,
             //@Semantics.timeZone: true

             _OrdOpNotification._MaintNotifTechObj.NotificationTimeZone,
             cast ( '' as tzniana ) as NotifTimeZoneIANACode,
             //             @ObjectModel.foreignKey.association: '_MalfunctionEffect'

             //             _MaintNotifTechObj.MalfunctionEffect                                                                                                           as MalfunctionEffect,

             //             _MaintNotifTechObj.MalfunctionStartDate                                                                                                        as MalfunctionStartDate,

             //             _MaintNotifTechObj.MalfunctionStartTime                                                                                                        as MalfunctionStartTime,

             //             @Semantics.dateTime: true

             //             dats_tims_to_tstmp( _MaintNotifTechObj.MalfunctionStartDate,

             //                         _MaintNotifTechObj.MalfunctionStartTime,

             //                         _MaintNotifTechObj.NotificationTimeZone,

             //                          $session.client,

             //                         'NULL' )                                                                                                                           as MalfunctionStartDateTime,

             //             _MaintNotifTechObj.MalfunctionEndDate                                                                                                          as MalfunctionEndDate,

             //             _MaintNotifTechObj.MalfunctionEndTime                                                                                                          as MalfunctionEndTime,

             //             @Semantics.dateTime: true

             //             dats_tims_to_tstmp( _MaintNotifTechObj.MalfunctionEndDate,

             //                         _MaintNotifTechObj.MalfunctionEndTime,

             //                         _MaintNotifTechObj.NotificationTimeZone,

             //                          $session.client,

             //                         'NULL' )                                                                                                                           as MalfunctionEndDateTime,

             //             //@Semantics.timeZone: true

             //             _MaintNotifTechObj.NotificationTimeZone,

             @Semantics.timeZone: true
             _MaintOrderOpSubOp._Plant._OrganizationAddress[1:AddressRepresentationCode = ''].AddressTimeZone,
             //             @Semantics.timeZone: true

             //             cast( abap_user_timezone(   $session.user,$session.client,'NULL' )   as tzonso preserving type )                                               as UserEnteredTimeZone,

             //             @Semantics.timeZone: true

             //             cast( abap_system_timezone(   $session.client,'NULL' )   as tzonso preserving type )                                                           as DisplayTimeZone,

             _TimeZoneConfig.active                                                                                                                         as TimeZoneIsActive,
             @Semantics.timeZone: true
             case when ( _TimeZoneConfig.active = 'X' or I_MaintOrderTechObj._LocationAccountAssignment._MaintenancePlant._OrganizationAddress[1:AddressRepresentationCode = ''].AddressTimeZone is null 
             or I_MaintOrderTechObj._LocationAccountAssignment._MaintenancePlant._OrganizationAddress[1:AddressRepresentationCode = ''].AddressTimeZone = '' )
             then cast( abap_system_timezone(   $session.client,'NULL' )   as tzonso preserving type )
             else cast( I_MaintOrderTechObj._LocationAccountAssignment._MaintenancePlant._OrganizationAddress[1:AddressRepresentationCode = ''].AddressTimeZone as tzonso preserving type ) end    as PlantTimeZone,

             _OrdOpNotification._MaintNotifTechObj.MaintNotificationCode                                                                                    as MaintNotificationCode, //Notification Code

             _OrdOpNotification._MaintNotifTechObj.MaintNotificationCatalog,
             _OrdOpNotification._MaintNotifTechObj.MaintNotificationCodeGroup,
             //             _OrdOpNotification._MaintNotifTechObj.CatalogProfile,

             cast( '' as rbnr )                                                                                                                             as CatalogProfile,
             _OrdOpNotification._MaintenanceNotification.NotificationType,
             cast ('' as sakat )                                                                                                                            as MaintNotifCodgCatalogTypeCode,
             //             _OrdOpNotification._MaintNotifTechObj._PMNotificationType.MaintNotifCodgCatalogTypeCode,

             _OrdOpNotification._MaintNotifTechObj._PMNotificationType.MaintNotifActivityCodeCatalog,
             _OrdOpNotification._MaintNotifTechObj._PMNotificationType.MaintNotifCauseCodeCatalog,
             _OrdOpNotification._MaintNotifTechObj._PMNotificationType.MaintNotifDamageCodeCatalog,
             _OrdOpNotification._MaintNotifTechObj._PMNotificationType.MaintNotifObjPrtCodeCatalog,
             //             _MaintNotifTechObj._MaintNotifLongText.TextObjectCategory                                                                                      as TextObjectCategory,

             //             _MaintNotifTechObj._MaintNotifLongText.TextObjectType                                                                                          as TextObjectType,

             _OrdOpNotification._MaintNotifTechObj._MaintNotifLongText.MaintNotifLongTextForEdit                                                            as MaintNotifLongTextForEdit,
             cast(unit_conversion(
             quantity => _OrdOpNotification._MaintNotifTechObj.MaintObjectDowntimeDuration,
             source_unit => cast('S' as maueh),
             target_unit => _OrdOpNotification._MaintNotifTechObj.MaintObjDowntimeDurationUnit,
             error_handling=> 'SET_TO_NULL'
             ) as auszt )                                                                                                                                   as MaintObjectDowntimeDuration,
             _OrdOpNotification._MaintNotifTechObj.MaintObjDowntimeDurationUnit                                                                             as MaintObjDowntimeDurationUnit,
             _OrdOpNotification._MaintNotifTechObj.MaintenanceObjectIsDown                                                                                  as MaintenanceObjectIsDown, //Breakdown

             _OrdOpNotification._MaintNotifTechObj._PMNotifMaintenanceData.MaintNotifDetectionCatalog                                                       as MaintNotifDetectionCatalog,
             _OrdOpNotification._MaintNotifTechObj._PMNotifMaintenanceData.MaintNotifDetectionCodeGroup                                                     as MaintNotifDetectionCodeGroup,
             _OrdOpNotification._MaintNotifTechObj._PMNotifMaintenanceData.MaintNotifDetectionCode                                                          as MaintNotifDetectionCode,

             _OrdOpNotification.MaintenanceOrderObjectListItem,
             @Semantics.booleanIndicator: true
             _OrdOpNotification.MaintOrdOpHasNotifAssigned,

             case when $projection.MaintenanceOrderSubOperation != ''
             then _MaintOrderSubOperationTP_2.MaintOrderConfirmation
             else _MaintenanceOrderOp.MaintOrderConfirmation end                                                                                            as MaintOrderConfirmation,
             case when $projection.MaintenanceOrderSubOperation != ''
             then _MaintOrderSubOperationTP_2.MaintOrderConfCntrValue
             else  _MaintenanceOrderOp.MaintOrderConfCntrValue                                                                                       end    as MaintOrderConfCntrValue,
             //             case when _MaintOrderOpSubOp.MaintenanceOrderSubOperation != '' then 'X'

             //                          else ''

             //             end                                                                                                                                            as OperationIsSubOperation,


             //             _MaintNotifTechObj.NotificationHasLongText,

             //             Reading Completion Confirmation

             _ConfirmationParam.FinalConfirmationType,
             _ConfirmationParam.OpenReservationIsFinallyIssued,
             //             _StatusObjectActiveStatus,

             I_MaintOrderTechObj._MaintenanceOrderType,
             _MaintJobWorkItemComponent,
             _MaintJobWorkItemService,
             _MaintJobWorkItemUnplndComp,
             _MaintenanceOrder,
             _MaintenanceJob,
             _MaintOrderOpSubOp._OpExternalProcessingCurrency,
             _MaintenanceOrderOp._OperationPlanningValues,
             _MaintOrderOpSubOp._OperationControlKey,
             _MaintOrderOpSubOp._OperationSystemCondition,
             _MaintOrderOpSubOp._Plant,
             I_MaintOrderTechObj._LocationAccountAssignment._MaintenancePlant,
             I_MaintOrderTechObj._MaintenancePlanningPlant,
             //             _MaintOrderOpSubOp._OperationCalculationControl,

             _MaintOrderOpSubOp._Assembly,
             //             _MaintenanceOrderOp._Language,

             _MaintOrderOpSubOp._Supplier,
             _MaintOrderOpSubOp._PersonResponsible,
             _MaintenanceOrderOp._MaintOrderProdnRsceTool,
             _MaintOrderOpSubOp._OperationControlKey.OperationExternalProcessing,
             _MaintOrderOpSubOp._OperationControlKey._OperationExternalProcessing,
             _MaintOrderOpSubOp._OperationControlKey.ConfirmationIsNotPossible,
             
             _EAMProcessPhase,
             _EAMProcessSubPhase,
             //             _PersonWorkAgreement,

             //             I_MaintOrderTechObj._MaintenancePriority,

             //             I_MaintOrderTechObj._MaintenancePriorityType,

             _MaintenancePriority,
             _MaintenanceJobSelection,
             _WorkCenterText,
             //             _OpStatusObjectStatus,

             _IsFinallyConfirmed,
             _MaintNotificationItemTP,
             //             _MaintNotifLongTextTP,

             _MaintNotifDetectCodeTxt,
             _OrdOpNotification._MaintNotifTechObj._MaintNotificationCode,
             _OrdOpNotification._MaintNotifTechObj._MalfunctionEffect,
             //             I_MaintOrderTechObj._FunctionalLocation,

             _FunctionalLocationText,
             I_MaintOrderTechObj._TechObjIsEquipOrFuncnlLoc,
             //             I_MaintOrderTechObj._MaintenanceNotification,


             _OrdOpNotification.MaintenanceNotification                                                                                                     as MaintenanceNotificationForEdit,
             _OrdOpNotification._MaintenanceNotification,

             _MaintOrderQuickView,
             _MaintNotificationQuickView,
             _PlannedWorkUnitOfMeasure,
             //             _MaintOrderSubOperationTP_2,

             //             _MaintOrderOpSubOp.OperationWorkCenterTypeCode,

             //             _MaintOrderOpSubOp._WorkCenter as _WorkCenter,

             _IsActivePhaseModel,
             I_MaintOrderTechObj._MaintOrderProcessingContext,
             _MaintOrderOpSubOp._MaintOperationExecStageCode,
             //             _OperationTechnicalObject,

             _TechnicalObject,
             _MaintOrderOpSubOp._TechObjIsEquipOrFuncnlLoc                                                                                                  as _OpTechObjIsEquipOrFuncnlLoc,
             _OperationEquipment,
             _OpFunctionalLocation,
             _ConfirmationParam,
             //             I_MaintOrderTechObj._Equipment                                                                                                                 as _OrderEquipment,

             _EquipmentText,
             //             I_MaintOrderTechObj._TechnicalObject,

             _OrderLongTextTP,
             _OrderOpLongText,
             _OrderSopLongText,
             _OrdOpNotification._MaintenanceNotification._PMNotificationType,
             _PersnRespVH
}
where
  (
       I_MaintOrderTechObj._MaintOrderTypeControlParam.MaintOrdTypeHasActvPhaseModel = ''
    //       _MaintOrderTypeControlParam.MaintOrdTypeHasActvPhaseModel = ''

    or _DispatchedStatus.StatusIsInactive                                            = ''
    or _PartiallyConfirmedStatus.StatusIsInactive                                    = ''
    or _FullyConfirmedStatus.StatusIsInactive                                        = ''
    or _JobInProcessStatus.StatusIsInactive                                          = ''
    or _JobFinishedStatus.StatusIsInactive                                           = ''
  )
  and(
       _MaintOrderOpSubOp.MaintOrdOpProcessPhaseCode                                 = '07' //Execution

    or _MaintOrderOpSubOp.MaintOrdOpProcessPhaseCode                                 = '08' //Post Execution

    or _MaintOrderOpSubOp.MaintOrdOpProcessPhaseCode                                 = ''
  )