R_MaintenanceJobWorkItemTP

DDL: R_MAINTENANCEJOBWORKITEMTP Type: view_entity COMPOSITE

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 18 fields with key fields MaintenanceOrder, MaintenanceOrderOperation, MaintenanceOrderSubOperation. It has 40 associations to related views.

Data Sources (2)

SourceAliasJoin Type
P_ObjPgMaintOrderAndOperation _MaintOrderOpSubOp from
I_MaintOrderTechObj I_MaintOrderTechObj inner

Associations (40)

CardinalityTargetAliasCondition
[0..1] I_MaintNotificationTechObj _MaintNotifTechObj I_MaintOrderTechObj.MaintenanceNotification = _MaintNotifTechObj.MaintenanceNotification
[1..1] I_MaintenanceOrderOperation _MaintenanceOrderOp _MaintenanceOrderOp.MaintenanceOrder = $projection.MaintenanceOrder and _MaintenanceOrderOp.MaintenanceOrderOperation = $projection.MaintenanceOrderOperation
[0..*] C_MaintJobWorkItemUnplndCompTP _MaintJobWorkItemUnplndComp $projection.MaintenanceOrder = _MaintJobWorkItemUnplndComp.MaintenanceOrder
[0..1] C_MaintOrderTypeVH _MaintOrderTypeVH $projection.MaintenanceOrderType = _MaintOrderTypeVH.MaintenanceOrderType
[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_MaintNotifLongTextTP _MaintNotifLongTextTP _MaintNotifLongTextTP.MaintenanceNotification = $projection.MaintenanceNotification
[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..1] I_Equipment _OperationEquipment $projection.OperationEquipment = _OperationEquipment.Equipment
[0..1] I_FunctionalLocation _OpFunctionalLocation $projection.OperationFunctionalLocation = _OpFunctionalLocation.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] 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] P_MaintOrdOpNoOfCheckList _MaintOrdOpNoOfCheckList $projection.MaintenanceOrder = _MaintOrdOpNoOfCheckList.MaintenanceOrder and $projection.MaintenanceOrderOperation = _MaintOrdOpNoOfCheckList.MaintenanceOrderOperation
[0..*] C_MaintJobWorkItemChecklist _MaintJobWorkItemChecklist $projection.MaintenanceOrder = _MaintJobWorkItemChecklist.MaintenanceOrder and $projection.MaintenanceOrderOperation = _MaintJobWorkItemChecklist.MaintenanceOrderOperation
[0..1] I_MaintenanceChecklistType _ChecklistType $projection.maintoperationalchecklisttype = _ChecklistType.MaintOperationalChecklistType
[0..1] R_MaintChklstCharcAggregate _MaintChecklistCharAggregate $projection.MaintenanceOrder = _MaintChecklistCharAggregate.MaintenanceOrder and $projection.MaintenanceOrderOperation = _MaintChecklistCharAggregate.MaintenanceOrderOperation
[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 (18)

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
MaintOrderOperationLongText
MaintOrderSubOperationLongText
OperationHasLongText P_ObjPgMaintOrderAndOperation OperationHasLongText
MaintenanceOrderLongText
OrderHasLongText I_MaintOrderTechObj OrderHasLongText
MaintenanceOrderObjectList I_MaintOrderTechObj MaintenanceOrderObjectList
@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
    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 C_MaintOrderTypeVH             as _MaintOrderTypeVH              on  $projection.MaintenanceOrderType = _MaintOrderTypeVH.MaintenanceOrderType
  //  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..1] to I_FunctionalLocation           as _OpFunctionalLocation          on  $projection.OperationFunctionalLocation = _OpFunctionalLocation.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 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..*] 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
  //PMJ Checklist enablement

  association [0..1] to P_MaintOrdOpNoOfCheckList      as _MaintOrdOpNoOfCheckList     on  $projection.MaintenanceOrder          = _MaintOrdOpNoOfCheckList.MaintenanceOrder
                                                                                       and $projection.MaintenanceOrderOperation = _MaintOrdOpNoOfCheckList.MaintenanceOrderOperation
  association [0..*] to C_MaintJobWorkItemChecklist    as _MaintJobWorkItemChecklist   on  $projection.MaintenanceOrder          = _MaintJobWorkItemChecklist.MaintenanceOrder
                                                                                       and $projection.MaintenanceOrderOperation = _MaintJobWorkItemChecklist.MaintenanceOrderOperation
  association [0..1] to I_MaintenanceChecklistType     as _ChecklistType               on  $projection.maintoperationalchecklisttype      = _ChecklistType.MaintOperationalChecklistType   
  association [0..1] to R_MaintChklstCharcAggregate    as _MaintChecklistCharAggregate on  $projection.MaintenanceOrder = _MaintChecklistCharAggregate.MaintenanceOrder
                                                                                       and $projection.MaintenanceOrderOperation = _MaintChecklistCharAggregate.MaintenanceOrderOperation                                                                          
  association [0..1] to P_MaintOrdOpNoOfProdnRsceTool  as _MaintOrdOpNoOfProdnRsceTool on  _MaintOrderOpSubOp.MaintOrderRoutingNumber    = _MaintOrdOpNoOfProdnRsceTool.OrderInternalBillOfOperations
                                                                                       and _MaintOrderOpSubOp.MaintOrderOperationCounter = _MaintOrdOpNoOfProdnRsceTool.OrderIntBillOfOperationsItem 
 // association [0..1] to I_MaintNotifEffectCode         as _MaintNotifEffectCode        on  I_MaintOrderTechObj.MaintenanceNotification = _MaintNotifEffectCode.MaintenanceNotification

  association [0..1] to I_MaintJobControlParameter     as _MaintJobControlParameter    on  _MaintJobControlParameter.MaintenanceOrderType = $projection.MaintenanceOrderType 
                                                                                       and _MaintJobControlParameter.Plant                = $projection.Plant 
                                                                                       and _MaintJobControlParameter.MaintJobWrkItmCtrlParameter = 'B'
  association [0..1] to I_MaintJobCtrlParamAggregator  as _MaintJobControlParamAgg     on  _MaintJobControlParamAgg.MaintenanceOrderType  = $projection.MaintenanceOrderType 
                                                                                       and _MaintJobControlParamAgg.Plant                 = $projection.Plant 
  association [0..1] to I_ServiceDocumentItemEnhcd     as _ServiceDocument             on  _ServiceDocument.ServiceObjectType = 'BUS2000116'
                                                                                       and _ServiceDocument.ServiceDocument = $projection.servicedocument
                                                                                       and _ServiceDocument.ServiceDocumentItem = $projection.servicedocumentitem
                                                                                                                                                                         
  
{
             @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,
             //             @ObjectModel.foreignKey.association: '_WorkCenter'

             _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'}
             _OrdOpNotification.MaintenanceNotification                                                                                                     as MaintenanceNotification,
             @Semantics.text: true
             _OrdOpNotification._MaintenanceNotification.NotificationText,
             //I_MaintOrderTechObj.MaintenanceOrderObjectList,

             @Semantics.text: true
             cast('' as eams_ltext )                                                                                                                        as MaintNotificationLongText,
             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(I_MaintOrderTechObj._TechnicalObject.TechnicalObjectLabel as eams_tech_obj_alpha_conv preserving type)                                    as TechnicalObjectForEdit,

             I_MaintOrderTechObj.TechObjIsEquipOrFuncnlLoc,
             //             @ObjectModel: { foreignKey.association: '_OpTechnicalObjQuickVw'}

             _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,
             _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.Equipment                                                                                                                   as OperationEquipment,
             I_MaintOrderTechObj.Equipment                                                                                                                  as Equipment,
             _MaintOrderOpSubOp.FunctionalLocationLabelName                                                                                                 as OperationFunctionalLocation,
             I_MaintOrderTechObj.FunctionalLocation,
             I_MaintOrderTechObj._FunctionalLocation._FunctionalLocationLabel.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,
             @Semantics.quantity.unitOfMeasure: 'OperationPlannedWorkUnit'
             case when
                 _MaintOrderOpSubOp._OperationPlanningValues.ForecastedWorkQty = 0
             then
                _MaintOrderOpSubOp.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,
             @ObjectModel.foreignKey.association: '_MaintOrderTypeVH'
             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,
             @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 _MaintOrderOpSubOp._Plant._OrganizationAddress[1:AddressRepresentationCode = ''].AddressTimeZone is null or _MaintOrderOpSubOp._Plant._OrganizationAddress[1:AddressRepresentationCode = ''].AddressTimeZone = '' )
             then cast( abap_system_timezone(   $session.client,'NULL' )   as tzonso preserving type )
             else cast( _MaintOrderOpSubOp._Plant._OrganizationAddress[1:AddressRepresentationCode = ''].AddressTimeZone as tzonso preserving type ) end    as PlantTimeZone,

             _OrdOpNotification._MaintNotifTechObj._MaintNotificationEffectCode.MaintNotifEffectCodeGroup,
             _OrdOpNotification._MaintNotifTechObj._MaintNotificationEffectCode.MaintNotifEffectCode,
            // _MaintNotifTechObj._MaintNotificationEffectCode.MaintNotifEffectCatalog,

             _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,
             _OrdOpNotification._MaintNotifTechObj._PMNotificationType.MaintNotifEffectCatalog,
             //             _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,

             _MaintenanceOrder,
             _MaintJobWorkItemComponent,
             _MaintJobWorkItemService,
             _MaintJobWorkItemUnplndComp,
             _MaintenanceJob,
             _MaintOrderOpSubOp._OpExternalProcessingCurrency,
             _MaintenanceOrderOp._OperationPlanningValues,
             _MaintOrderOpSubOp._OperationControlKey,
             _MaintOrderOpSubOp._OperationSystemCondition,
             _MaintOrderOpSubOp._Plant,
             //             _MaintOrderOpSubOp._OperationCalculationControl,

             _MaintOrderOpSubOp._Assembly,
             //             _MaintenanceOrderOp._Language,

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

             _MaintenancePriority,
             _MaintenanceJobSelection,
             _WorkCenterText,
             //             _OpStatusObjectStatus,

             _IsFinallyConfirmed,
             _MaintNotificationItemTP,
             _MaintNotifLongTextTP,
             _MaintNotifDetectCodeTxt,
             _OrdOpNotification._MaintNotifTechObj._MaintNotificationCode,
             _OrdOpNotification._MaintNotifTechObj,
             _OrdOpNotification._MaintNotifTechObj._MalfunctionEffect,
             I_MaintOrderTechObj._FunctionalLocation,
             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,
             _MaintOrderOpSubOp._TechObjIsEquipOrFuncnlLoc                                                                                                  as _OpTechObjIsEquipOrFuncnlLoc,
             _OperationEquipment,
             _OpFunctionalLocation,
             _ConfirmationParam,
             I_MaintOrderTechObj._Equipment                                                                                                                 as _OrderEquipment,
             I_MaintOrderTechObj._TechnicalObject,
             _MaintOrdOpNoOfCheckList.NumberOfMaintenanceChecklists,
             _MaintJobWorkItemChecklist,
             _MaintenanceOrderOp.MaintOperationalChecklistType,
             _ChecklistType,
             _MaintChecklistCharAggregate,
             cast( ' ' as abap.numc( 12 ) ) as InspectionLot,
             cast( ' ' as abap.char( 40 ) ) as MaintChecklistTechnicalObject,  
             cast( ' ' as boole_d ) as MaintChecklistIsNotRelevant,
             
             _MaintOrdOpNoOfProdnRsceTool.NumberOfAssignedProdnRsceTools,
             _OrdOpNotification._MaintenanceNotification._PMNotificationType,
            // _MaintNotifEffectCode

             cast ( case when ( _MaintJobControlParameter.MaintJobWrkItmCtrlParameter is null)
             then 'X'
             else ' '
             end as xfeld preserving type )                                                                                                                 as MaintJobIsPersnRespMandatory,
             _MaintJobControlParamAgg.MaintNotifCrtnIsAllowed                                                                                               as MaintNotifCrtnIsAllowed,             
             _MaintenanceOrder.ServiceDocument,
             _MaintenanceOrder.ServiceDocumentItem,
             _ServiceDocument
}
where
  (    // New logic S4HCRQMAAM-8449 

       _MaintOrderOpSubOp.MaintOrdOpProcessPhaseCode             = '07' //Execution

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

    or _MaintOrderOpSubOp.MaintOrdOpProcessPhaseCode             = ''
  )