P_MaintOrdDirectProcmtViaPO

DDL: P_MAINTORDDIRECTPROCMTVIAPO SQL: PMTORDPROMTPO Type: view COMPOSITE

P_MaintOrdDirectProcmtViaPO is a Composite CDS View in SAP S/4HANA. It reads from 7 data sources and exposes 239 fields with key fields PurchaseOrder, PurchaseOrderItem, PurchaseOrderItem, PurchaseOrderItem, PurchaseOrderItem. It has 9 associations to related views.

Data Sources (7)

SourceAliasJoin Type
I_MaintenanceOrderComponent_2 _MaintenanceOrderComponent from
I_LogisticsOrder I_LogisticsOrder union_all
I_LogisticsOrderBasic I_LogisticsOrderBasic inner
I_MaintOrdCompResvnPurgDoc I_MaintOrdCompResvnPurgDoc left_outer
I_OrderOperation I_OrderOperation union_all
I_PurgDocAccountAssignment I_PurgDocAccountAssignment left_outer
I_PurgDocAccountAssignment I_PurgDocAccountAssignment union_all

Associations (9)

CardinalityTargetAliasCondition
[1..1] I_MaintenanceOrder _MaintenanceOrder _MaintenanceOrder.MaintenanceOrder = $projection.MaintenanceOrder
[0..1] I_PurchaseOrderItem _PurchaseOrderItem _PurchaseOrderItem.PurchaseOrder = $projection.PurchaseOrder and _PurchaseOrderItem.PurchaseOrderItem = $projection.PurchaseOrderItem
[0..1] I_PurchasingDocument _PurchaseOrder _PurchaseOrder.PurchasingDocument = $projection.PurchaseOrder
[1] I_MaintOrdProcurementMilestone _ProcurementMilestone _ProcurementMilestone.MaintenanceOrder = $projection.MaintenanceOrder and _ProcurementMilestone.MaintOrdProcurementDocument = $projection.MaintOrdProcurementDocument and _ProcurementMilestone.MaintOrdProcmtMlstnIsCurrent = 'X'
[0..*] I_FunclocationLabelInternal _FuncnlLocationLabel _FuncnlLocationLabel.FunctionalLocation = $projection.functionallocation
[0..1] P_MaintOrdCompExpectedDelivs _ExpectedDeliveries _ExpectedDeliveries.PurchaseOrder = $projection.PurchaseOrder and _ExpectedDeliveries.PurchaseOrderItem = $projection.PurchaseOrderItem and _ExpectedDeliveries.RequirementDate = _MaintenanceOrderComponent.RequirementDate
[0..1] I_OrderOperation _MaintenanceOrderOperation _MaintenanceOrderOperation.OrderInternalID = $projection.MaintenanceOrder and _MaintenanceOrderOperation.OrderOperationInternalID = $projection.MaintenanceOrderOperation
[0..1] I_OrderOperationDatesQty _OperationDates _OperationDates.OrderInternalID = I_OrderOperation.OrderInternalID and _OperationDates.OrderOperationInternalID = I_OrderOperation.OrderOperationInternalID
[0..1] I_Supplier _PreferredSupplier _PreferredSupplier.Supplier = $projection.preferredsupplier

Annotations (5)

NameValueLevelField
VDM.private true view
VDM.viewType #COMPOSITE view
AccessControl.authorizationCheck #NOT_REQUIRED view
AbapCatalog.sqlViewName PMTORDPROMTPO view
AbapCatalog.compiler.compareFilter true view

Fields (239)

KeyFieldSource TableSource FieldDescription
KEY PurchaseOrder I_MaintOrdCompResvnPurgDoc PurchaseOrder
KEY PurchaseOrderItem I_MaintOrdCompResvnPurgDoc PurchaseOrderItem
PurchaseRequisition
PurchaseRequisitionItem
OperationIsProcessedExternally
MaintenanceOrder I_MaintenanceOrderComponent_2 MaintenanceOrder
MaintOrderRoutingNumber I_MaintenanceOrderComponent_2 MaintOrderRoutingNumber
MaintOrderOperationCounter I_MaintenanceOrderComponent_2 MaintOrderOperationCounter
Reservation I_MaintOrdCompResvnPurgDoc Reservation
ReservationItem I_MaintOrdCompResvnPurgDoc ReservationItem
MaintenanceOrderOperation
ManufacturingOrderOperation I_MaintenanceOrderComponent_2 MaintenanceOrderOperation
OperationDescription _MaintenanceOrderOperation OperationText
OperationText _MaintenanceOrderOperation OperationText
ReferenceDate
MaintOrdBasicStartDate _MaintenanceOrder MaintOrdBasicStartDate
OpErlstSchedldExecStrtDte
RequirementDate I_MaintenanceOrderComponent_2 RequirementDate
MaintenanceOrderType _MaintenanceOrder MaintenanceOrderType
MaintenanceOrderDesc _MaintenanceOrder MaintenanceOrderDesc
MaintPriorityType _MaintenanceOrder MaintPriorityType
MaintPriority _MaintenanceOrder MaintPriority
MaintenanceProcessingPhase _MaintenanceOrder MaintenanceProcessingPhase
MaintPriorityDesc
MaintPriorityColorCode
MaintenanceRevision _MaintenanceOrder MaintenanceRevision
MaintenancePlannerGroup _MaintenanceOrder MaintenancePlannerGroup
MaintenancePlanningPlant _MaintenanceOrder MaintenancePlanningPlant
MaintenancePlant _MaintenanceOrder MaintenancePlant
MainWorkCenter _MaintenanceOrder MainWorkCenter
MainWorkCenterPlant _MaintenanceOrder MainWorkCenterPlant
ScheduledBasicStartDate _MaintenanceOrder ScheduledBasicStartDate
ScheduledBasicStartTime _MaintenanceOrder ScheduledBasicStartTime
ScheduledBasicEndDate _MaintenanceOrder ScheduledBasicEndDate
ScheduledBasicEndTime _MaintenanceOrder ScheduledBasicEndTime
PlantSection
WorkCenterInternalID _MaintenanceOrder WorkCenterInternalID
Equipment _MaintenanceOrder Equipment
FunctionalLocation
MaintObjectLocAcctAssgmtNmbr _MaintenanceOrder MaintObjectLocAcctAssgmtNmbr
Material _PurchaseOrderItem Material
MaterialGroup _PurchaseOrderItem MaterialGroup
OrderQuantity _PurchaseOrderItem OrderQuantity
PurchaseOrderQuantityUnit _PurchaseOrderItem PurchaseOrderQuantityUnit
ProductType _PurchaseOrderItem ProductType
PurchaseOrderItemText _PurchaseOrderItem PurchaseOrderItemText
Plant _PurchaseOrderItem Plant
StorageLocation _PurchaseOrderItem StorageLocation
NetAmount _PurchaseOrderItem NetAmount
DocumentCurrency _PurchaseOrderItem DocumentCurrency
Supplier _PurchaseOrder Supplier
PurchasingGroup _PurchaseOrder PurchasingGroup
PurchasingProcessingStatus _PurchaseOrder PurchasingProcessingStatus
ReleaseIsNotCompleted _PurchaseOrder ReleaseIsNotCompleted
MaintOrdProcurementDocument I_MaintenanceOrderComponent_2 MaintOrderComponentInternalID
_PurchaseOrderItem _PurchaseOrderItem
_MaintenanceOrder _MaintenanceOrder
_Supplier _PurchaseOrder _Supplier
_ProcurementMilestone _ProcurementMilestone
PurchasingDocumentasPurchaseOrder
KEY PurchaseOrderItem I_PurgDocAccountAssignment PurchasingDocumentItem
PurchaseRequisition
PurchaseRequisitionItem
OperationIsProcessedExternally
MaintenanceOrder I_LogisticsOrder OrderID
MaintOrderRoutingNumber
MaintOrderOperationCounter
Reservation
ReservationItem
MaintenanceOrderOperation
ManufacturingOrderOperation
OperationDescription
OperationText I_LogisticsOrder OrderDescription
ReferenceDate I_LogisticsOrder PlannedStartDate
MaintOrdBasicStartDate I_LogisticsOrder PlannedStartDate
OpErlstSchedldExecStrtDte
RequirementDate
MaintenanceOrderType _MaintenanceOrder MaintenanceOrderType
MaintenanceOrderDesc I_LogisticsOrder OrderDescription
MaintPriorityType _MaintenanceOrder MaintPriorityType
MaintPriority _MaintenanceOrder MaintPriority
MaintenanceProcessingPhase _MaintenanceOrder MaintenanceProcessingPhase
MaintPriorityDesc
MaintPriorityColorCode
MaintenanceRevision _MaintenanceOrder MaintenanceRevision
MaintenancePlannerGroup _MaintenanceOrder MaintenancePlannerGroup
MaintenancePlanningPlant _MaintenanceOrder MaintenancePlanningPlant
MaintenancePlant _MaintenanceOrder MaintenancePlant
MainWorkCenter I_LogisticsOrder MainWorkCenter
MainWorkCenterPlant I_LogisticsOrder MainWorkCenterPlant
ScheduledBasicStartDate _MaintenanceOrder ScheduledBasicStartDate
ScheduledBasicStartTime _MaintenanceOrder ScheduledBasicStartTime
ScheduledBasicEndDate _MaintenanceOrder ScheduledBasicEndDate
ScheduledBasicEndTime _MaintenanceOrder ScheduledBasicEndTime
PlantSection
WorkCenterInternalID _MaintenanceOrder WorkCenterInternalID
Equipment _MaintenanceOrder Equipment
FunctionalLocation
MaintObjectLocAcctAssgmtNmbr _MaintenanceOrder MaintObjectLocAcctAssgmtNmbr
Material _PurchaseOrderItem Material
MaterialGroup _PurchaseOrderItem MaterialGroup
OrderQuantity _PurchaseOrderItem OrderQuantity
PurchaseOrderQuantityUnit _PurchaseOrderItem PurchaseOrderQuantityUnit
ProductType _PurchaseOrderItem ProductType
PurchaseOrderItemText _PurchaseOrderItem PurchaseOrderItemText
Plant _PurchaseOrderItem Plant
StorageLocation _PurchaseOrderItem StorageLocation
NetAmount _PurchaseOrderItem NetAmount
DocumentCurrency _PurchaseOrderItem DocumentCurrency
Supplier _PurchaseOrder Supplier
PurchasingGroup _PurchaseOrder PurchasingGroup
PurchasingProcessingStatus _PurchaseOrder PurchasingProcessingStatus
ReleaseIsNotCompleted _PurchaseOrder ReleaseIsNotCompleted
MaintOrdProcurementDocument _PurchaseOrderItem PurchaseOrderItemUniqueID
_PurchaseOrderItem _PurchaseOrderItem
_MaintenanceOrder _MaintenanceOrder
_Supplier _PurchaseOrder _Supplier
_ProcurementMilestone _ProcurementMilestone
PurchasingDocumentasPurchaseOrder
KEY PurchaseOrderItem I_PurgDocAccountAssignment PurchasingDocumentItem
PurchaseRequisition
PurchaseRequisitionItem
OperationIsProcessedExternally
MaintenanceOrder I_PurgDocAccountAssignment OrderID
MaintOrderRoutingNumber I_PurgDocAccountAssignment OrderInternalID
MaintOrderOperationCounter I_PurgDocAccountAssignment NetworkActivityInternalID
Reservation
ReservationItem
MaintenanceOrderOperation _MaintOrderOperPlanningValues Operation
ManufacturingOrderOperation _MaintOrderOperPlanningValues Operation
OperationDescription _MaintOrderOperPlanningValues OperationText
OperationText _MaintOrderOperPlanningValues OperationText
ReferenceDate _MaintOrderOperPlanningValues OpErlstSchedldExecStrtDte
MaintOrdBasicStartDate _MaintenanceOrder MaintOrdBasicStartDate
OpErlstSchedldExecStrtDte _MaintOrderOperPlanningValues OpErlstSchedldExecStrtDte
RequirementDate
MaintenanceOrderType I_LogisticsOrder OrderType
MaintenanceOrderDesc I_LogisticsOrder OrderDescription
MaintPriorityType _MaintenanceOrder MaintPriorityType
MaintPriority _MaintenanceOrder MaintPriority
MaintenanceProcessingPhase _MaintenanceOrder MaintenanceProcessingPhase
MaintPriorityDesc
MaintPriorityColorCode
MaintenanceRevision _MaintenanceOrder MaintenanceRevision
MaintenancePlannerGroup _MaintenanceOrder MaintenancePlannerGroup
MaintenancePlanningPlant _MaintenanceOrder MaintenancePlanningPlant
MaintenancePlant _MaintenanceOrder MaintenancePlant
MainWorkCenter I_LogisticsOrder MainWorkCenter
MainWorkCenterPlant I_LogisticsOrder MainWorkCenterPlant
ScheduledBasicStartDate _MaintenanceOrder ScheduledBasicStartDate
ScheduledBasicStartTime _MaintenanceOrder ScheduledBasicStartTime
ScheduledBasicEndDate _MaintenanceOrder ScheduledBasicEndDate
ScheduledBasicEndTime _MaintenanceOrder ScheduledBasicEndTime
PlantSection
WorkCenterInternalID _MaintenanceOrder WorkCenterInternalID
Equipment _MaintenanceOrder Equipment
FunctionalLocation
MaintObjectLocAcctAssgmtNmbr _MaintenanceOrder MaintObjectLocAcctAssgmtNmbr
Material _PurchaseOrderItem Material
MaterialGroup _PurchaseOrderItem MaterialGroup
OrderQuantity _PurchaseOrderItem OrderQuantity
PurchaseOrderQuantityUnit _PurchaseOrderItem PurchaseOrderQuantityUnit
ProductType _PurchaseOrderItem ProductType
PurchaseOrderItemText _PurchaseOrderItem PurchaseOrderItemText
Plant _PurchaseOrderItem Plant
StorageLocation _PurchaseOrderItem StorageLocation
NetAmount _PurchaseOrderItem NetAmount
DocumentCurrency _PurchaseOrderItem DocumentCurrency
Supplier _PurchaseOrder Supplier
PurchasingGroup _PurchaseOrder PurchasingGroup
PurchasingProcessingStatus _PurchaseOrder PurchasingProcessingStatus
ReleaseIsNotCompleted _PurchaseOrder ReleaseIsNotCompleted
MaintOrdProcurementDocument _PurchaseOrderItem PurchaseOrderItemUniqueID
_PurchaseOrderItem _PurchaseOrderItem
_MaintenanceOrder _MaintenanceOrder
_Supplier _PurchaseOrder _Supplier
_ProcurementMilestone _ProcurementMilestone
PurchaseOrder
KEY PurchaseOrderItem I_PurchaseOrderItem PurchaseOrderItem
PurchaseRequisition I_OrderOperation PurchaseRequisition
PurchaseRequisitionItem I_OrderOperation PurchaseRequisitionItem
OperationIsProcessedExternally
MaintenanceOrder I_LogisticsOrderBasic OrderID
MaintOrderRoutingNumber I_OrderOperation OrderInternalID
MaintOrderOperationCounter I_OrderOperation OrderOperationInternalID
Reservation
ReservationItem
MaintenanceOrderOperation I_OrderOperation Operation
ManufacturingOrderOperation I_OrderOperation Operation
OperationDescription I_OrderOperation OperationText
OperationText I_OrderOperation OperationText
ReferenceDate
MaintOrdBasicStartDate _MaintenanceOrder MaintOrdBasicStartDate
OpErlstSchedldExecStrtDte _OperationDates OpErlstSchedldExecStrtDte
RequirementDate
MaintenanceOrderType _MaintenanceOrder MaintenanceOrderType
MaintenanceOrderDesc _MaintenanceOrder MaintenanceOrderDesc
MaintPriorityType _MaintenanceOrder MaintPriorityType
MaintPriority _MaintenanceOrder MaintPriority
MaintenanceProcessingPhase _MaintenanceOrder MaintenanceProcessingPhase
MaintPriorityDesc
MaintPriorityColorCode
MaintenanceRevision _MaintenanceOrder MaintenanceRevision
MaintenancePlannerGroup _MaintenanceOrder MaintenancePlannerGroup
MaintenancePlanningPlant _MaintenanceOrder MaintenancePlanningPlant
MaintenancePlant _MaintenanceOrder MaintenancePlant
MainWorkCenter _MaintenanceOrder MainWorkCenter
MainWorkCenterPlant _MaintenanceOrder MainWorkCenterPlant
ScheduledBasicStartDate _MaintenanceOrder ScheduledBasicStartDate
ScheduledBasicStartTime _MaintenanceOrder ScheduledBasicStartTime
ScheduledBasicEndDate _MaintenanceOrder ScheduledBasicEndDate
ScheduledBasicEndTime _MaintenanceOrder ScheduledBasicEndTime
PlantSection
WorkCenterInternalID _MaintenanceOrder WorkCenterInternalID
Equipment _MaintenanceOrder Equipment
FunctionalLocation
MaintObjectLocAcctAssgmtNmbr _MaintenanceOrder MaintObjectLocAcctAssgmtNmbr
Material I_PurchaseOrderItem Material
MaterialGroup I_PurchaseOrderItem MaterialGroup
OrderQuantity I_PurchaseOrderItem OrderQuantity
PurchaseOrderQuantityUnit I_PurchaseOrderItem PurchaseOrderQuantityUnit
ProductType I_PurchaseOrderItem ProductType
PurchaseOrderItemText I_PurchaseOrderItem PurchaseOrderItemText
Plant I_PurchaseOrderItem Plant
StorageLocation I_PurchaseOrderItem StorageLocation
NetAmount I_PurchaseOrderItem NetAmount
DocumentCurrency I_PurchaseOrderItem DocumentCurrency
Supplier
PurchasingGroup
PurchasingProcessingStatus
ReleaseIsNotCompleted
ReceivedQuantity 0
MaintOrdComponentIsMissing
MaintOrdProcurementDocument I_OrderOperation ObjectInternalID
_PurchaseOrderItem _PurchaseOrderItem
_MaintenanceOrder _MaintenanceOrder
_Supplier
_ProcurementMilestone _ProcurementMilestone
_FuncnlLocationLabel _FuncnlLocationLabel
@VDM.private: true
@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck: #NOT_REQUIRED
@AbapCatalog.sqlViewName: 'PMTORDPROMTPO'
@AbapCatalog.compiler.compareFilter: true

define view P_MaintOrdDirectProcmtViaPO

  -- ordered with reservation:
  as select from    I_MaintenanceOrderComponent_2 as _MaintenanceOrderComponent
    left outer join I_MaintOrdCompResvnPurgDoc on  _MaintenanceOrderComponent.Reservation     =  I_MaintOrdCompResvnPurgDoc.Reservation
                                               and _MaintenanceOrderComponent.ReservationItem =  I_MaintOrdCompResvnPurgDoc.ReservationItem
                                               and I_MaintOrdCompResvnPurgDoc.PurchaseOrder   <> ''

  association [1..1] to I_MaintenanceOrder             as _MaintenanceOrder          on  _MaintenanceOrder.MaintenanceOrder = $projection.MaintenanceOrder
  association [0..1] to I_PurchaseOrderItem            as _PurchaseOrderItem         on  _PurchaseOrderItem.PurchaseOrder     = $projection.PurchaseOrder
                                                                                     and _PurchaseOrderItem.PurchaseOrderItem = $projection.PurchaseOrderItem
  association [0..1] to I_PurchasingDocument           as _PurchaseOrder             on  _PurchaseOrder.PurchasingDocument = $projection.PurchaseOrder
  association [1]    to I_MaintOrdProcurementMilestone as _ProcurementMilestone      on  _ProcurementMilestone.MaintenanceOrder             = $projection.MaintenanceOrder
                                                                                     and _ProcurementMilestone.MaintOrdProcurementDocument  = $projection.MaintOrdProcurementDocument
                                                                                     and _ProcurementMilestone.MaintOrdProcmtMlstnIsCurrent = 'X'
  association [0..*] to I_FunclocationLabelInternal    as _FuncnlLocationLabel       on  _FuncnlLocationLabel.FunctionalLocation = $projection.functionallocation
  association [0..1] to P_MaintOrdCompExpectedDelivs   as _ExpectedDeliveries        on  _ExpectedDeliveries.PurchaseOrder     = $projection.PurchaseOrder
                                                                                     and _ExpectedDeliveries.PurchaseOrderItem = $projection.PurchaseOrderItem
                                                                                     and _ExpectedDeliveries.RequirementDate   = _MaintenanceOrderComponent.RequirementDate
  association [0..1] to I_OrderOperation               as _MaintenanceOrderOperation on  _MaintenanceOrderOperation.OrderInternalID          = $projection.MaintenanceOrder
                                                                                     and _MaintenanceOrderOperation.OrderOperationInternalID = $projection.MaintenanceOrderOperation
{
  key I_MaintOrdCompResvnPurgDoc.PurchaseOrder,
  key I_MaintOrdCompResvnPurgDoc.PurchaseOrderItem,

      cast( '' as ebeln )                                                                 as PurchaseRequisition,
      cast( '' as ebelp )                                                                 as PurchaseRequisitionItem,

      cast( ' ' as xfeld preserving type )                                                as OperationIsProcessedExternally,

      _MaintenanceOrderComponent.MaintenanceOrder,
      _MaintenanceOrderComponent.MaintOrderRoutingNumber,
      _MaintenanceOrderComponent.MaintOrderOperationCounter,

      I_MaintOrdCompResvnPurgDoc.Reservation,
      I_MaintOrdCompResvnPurgDoc.ReservationItem,

      cast( _MaintenanceOrderComponent.MaintenanceOrderOperation as maintenanceorderoperation preserving type ) as MaintenanceOrderOperation,
      _MaintenanceOrderComponent.MaintenanceOrderOperation                                as ManufacturingOrderOperation,
      _MaintenanceOrderOperation.OperationText                                            as OperationDescription,
      _MaintenanceOrderOperation.OperationText                                            as OperationText,
      cast( _MaintenanceOrderComponent.RequirementDate as abap.dats )                     as ReferenceDate,

      _MaintenanceOrder.MaintOrdBasicStartDate,
      cast( '00000000' as fsavd )                                                         as OpErlstSchedldExecStrtDte,
      _MaintenanceOrderComponent.RequirementDate,

      _MaintenanceOrder.MaintenanceOrderType,
      _MaintenanceOrder.MaintenanceOrderDesc,
      _MaintenanceOrder.MaintPriorityType,
      _MaintenanceOrder.MaintPriority,
      _MaintenanceOrder.MaintenanceProcessingPhase,
      _MaintenanceOrder._MaintenancePriority._Text[ 1: Language = $session.system_language ].MaintPriorityDesc,
      _MaintenanceOrder._MaintenancePriority.MaintPriorityColorCode,
      _MaintenanceOrder.MaintenanceRevision,
      _MaintenanceOrder.MaintenancePlannerGroup,
      _MaintenanceOrder.MaintenancePlanningPlant,
      _MaintenanceOrder.MaintenancePlant,
      _MaintenanceOrder.MainWorkCenter,
      _MaintenanceOrder.MainWorkCenterPlant,
      _MaintenanceOrder.ScheduledBasicStartDate,
      _MaintenanceOrder.ScheduledBasicStartTime,
      _MaintenanceOrder.ScheduledBasicEndDate,
      _MaintenanceOrder.ScheduledBasicEndTime,
      _MaintenanceOrder._LocationAccountAssignment.PlantSection,
      _MaintenanceOrder.WorkCenterInternalID,
      _MaintenanceOrder.Equipment,
      _MaintenanceOrder._LocationAccountAssignment.FunctionalLocation,
      _MaintenanceOrder.MaintObjectLocAcctAssgmtNmbr,

      _PurchaseOrderItem.Material,
      _PurchaseOrderItem.MaterialGroup,
      _PurchaseOrderItem.OrderQuantity,
      _PurchaseOrderItem.PurchaseOrderQuantityUnit,
      _PurchaseOrderItem.ProductType,
      _PurchaseOrderItem.PurchaseOrderItemText,
      _PurchaseOrderItem.Plant,
      _PurchaseOrderItem.StorageLocation,
      _PurchaseOrderItem.NetAmount,
      _PurchaseOrderItem.DocumentCurrency,
      _PurchaseOrder.Supplier,
      _PurchaseOrder.PurchasingGroup,
      _PurchaseOrder.PurchasingProcessingStatus,
      _PurchaseOrder.ReleaseIsNotCompleted,

      cast( case when _PurchaseOrderItem.IsCompletelyDelivered = 'X'
                 then _PurchaseOrderItem.OrderQuantity
                 else _ExpectedDeliveries.ReceivedQuantity end as wemng preserving type ) as ReceivedQuantity,
      case when _PurchaseOrderItem.IsCompletelyDelivered = ''
            and ( _ExpectedDeliveries.ForecastedDeliveryQuantity is null
               or _ExpectedDeliveries.ForecastedDeliveryQuantity < _PurchaseOrderItem.OrderQuantity
               or( _ExpectedDeliveries.LatestPossibleGRDate       < $session.system_date
                and _ExpectedDeliveries.ReceivedQuantity           < _PurchaseOrderItem.OrderQuantity ) )
      then 'X' else '' end                                                                as MaintOrdComponentIsMissing,

      _MaintenanceOrderComponent.MaintOrderComponentInternalID                            as MaintOrdProcurementDocument,

      _PurchaseOrderItem,
      _MaintenanceOrder,
      _PurchaseOrder._Supplier,
      _ProcurementMilestone,
      _FuncnlLocationLabel
}
where
      _MaintenanceOrderComponent.IsDeleted     = ''
  and I_MaintOrdCompResvnPurgDoc.PurchaseOrder is not null

union all

// -- ordered directly:

select from              I_LogisticsOrder
  left outer join        I_PurgDocAccountAssignment             on I_LogisticsOrder.OrderID = I_PurgDocAccountAssignment.OrderID
  left outer to one join I_PurchasingDocument as _PurchaseOrder on _PurchaseOrder.PurchasingDocument = I_PurgDocAccountAssignment.PurchasingDocument
  left outer to one join I_MaintOrdCompResvnPurgDoc             on  I_PurgDocAccountAssignment.PurchasingDocument     = I_MaintOrdCompResvnPurgDoc.PurchaseOrder
                                                                and I_PurgDocAccountAssignment.PurchasingDocumentItem = I_MaintOrdCompResvnPurgDoc.PurchaseOrderItem
association [1..1] to I_MaintenanceOrder             as _MaintenanceOrder     on  _MaintenanceOrder.MaintenanceOrder = I_LogisticsOrder.OrderID
association [0..1] to I_PurchaseOrderItem            as _PurchaseOrderItem    on  _PurchaseOrderItem.PurchaseOrder     = $projection.PurchaseOrder
                                                                              and _PurchaseOrderItem.PurchaseOrderItem = $projection.PurchaseOrderItem
association [1]    to I_MaintOrdProcurementMilestone as _ProcurementMilestone on  _ProcurementMilestone.MaintenanceOrder             = $projection.MaintenanceOrder
                                                                              and _ProcurementMilestone.MaintOrdProcurementDocument  = $projection.MaintOrdProcurementDocument
                                                                              and _ProcurementMilestone.MaintOrdProcmtMlstnIsCurrent = 'X'
association [0..*] to I_FunclocationLabelInternal    as _FuncnlLocationLabel  on  _FuncnlLocationLabel.FunctionalLocation = $projection.functionallocation
association [0..1] to P_MaintOrdCompExpectedDelivs   as _ExpectedDeliveries   on  _ExpectedDeliveries.PurchaseOrder          = $projection.PurchaseOrder
                                                                              and _ExpectedDeliveries.PurchaseOrderItem      = $projection.PurchaseOrderItem
                                                                              and _ExpectedDeliveries.MaintOrdBasicStartDate = I_LogisticsOrder.PlannedStartDate
{
  key I_PurgDocAccountAssignment.PurchasingDocument                                       as PurchaseOrder,
  key I_PurgDocAccountAssignment.PurchasingDocumentItem                                   as PurchaseOrderItem,

      cast( '' as ebeln )                                                                 as PurchaseRequisition,
      cast( '' as ebelp )                                                                 as PurchaseRequisitionItem,

      ' '                                                                                 as OperationIsProcessedExternally,

      I_LogisticsOrder.OrderID                                                            as MaintenanceOrder,
      '0000000000'                                                                        as MaintOrderRoutingNumber,
      '00000000'                                                                          as MaintOrderOperationCounter,

      '          '                                                                        as Reservation,
      '    '                                                                              as ReservationItem,

      ''                                                                                  as MaintenanceOrderOperation,
      ''                                                                                  as ManufacturingOrderOperation,
      ''                                                                                  as OperationDescription,
      I_LogisticsOrder.OrderDescription                                                   as OperationText,
      I_LogisticsOrder.PlannedStartDate                                                   as ReferenceDate,

      I_LogisticsOrder.PlannedStartDate                                                   as MaintOrdBasicStartDate,
      '00000000'                                                                          as OpErlstSchedldExecStrtDte,
      '00000000'                                                                          as RequirementDate,

      _MaintenanceOrder.MaintenanceOrderType,
      I_LogisticsOrder.OrderDescription                                                   as MaintenanceOrderDesc,
      _MaintenanceOrder.MaintPriorityType,
      _MaintenanceOrder.MaintPriority,
      _MaintenanceOrder.MaintenanceProcessingPhase,
      _MaintenanceOrder._MaintenancePriority._Text[ 1: Language = $session.system_language ].MaintPriorityDesc,
      _MaintenanceOrder._MaintenancePriority.MaintPriorityColorCode,
      _MaintenanceOrder.MaintenanceRevision,
      _MaintenanceOrder.MaintenancePlannerGroup,
      _MaintenanceOrder.MaintenancePlanningPlant,
      _MaintenanceOrder.MaintenancePlant,
      I_LogisticsOrder.MainWorkCenter,
      I_LogisticsOrder.MainWorkCenterPlant,
      _MaintenanceOrder.ScheduledBasicStartDate,
      _MaintenanceOrder.ScheduledBasicStartTime,
      _MaintenanceOrder.ScheduledBasicEndDate,
      _MaintenanceOrder.ScheduledBasicEndTime,
      _MaintenanceOrder._LocationAccountAssignment.PlantSection,
      _MaintenanceOrder.WorkCenterInternalID,
      _MaintenanceOrder.Equipment,
      _MaintenanceOrder._LocationAccountAssignment.FunctionalLocation,
      _MaintenanceOrder.MaintObjectLocAcctAssgmtNmbr,

      _PurchaseOrderItem.Material,
      _PurchaseOrderItem.MaterialGroup,
      _PurchaseOrderItem.OrderQuantity,
      _PurchaseOrderItem.PurchaseOrderQuantityUnit,
      _PurchaseOrderItem.ProductType,
      _PurchaseOrderItem.PurchaseOrderItemText,
      _PurchaseOrderItem.Plant,
      _PurchaseOrderItem.StorageLocation,
      _PurchaseOrderItem.NetAmount,
      _PurchaseOrderItem.DocumentCurrency,
      _PurchaseOrder.Supplier,
      _PurchaseOrder.PurchasingGroup,
      _PurchaseOrder.PurchasingProcessingStatus,
      _PurchaseOrder.ReleaseIsNotCompleted,

      cast( case when _PurchaseOrderItem.IsCompletelyDelivered = 'X'
                 then _PurchaseOrderItem.OrderQuantity
                 else _ExpectedDeliveries.ReceivedQuantity end as wemng preserving type ) as ReceivedQuantity,
      case when _PurchaseOrderItem.IsCompletelyDelivered = ''
            and ( _ExpectedDeliveries.ForecastedDeliveryQuantity is null
               or _ExpectedDeliveries.ForecastedDeliveryQuantity < _PurchaseOrderItem.OrderQuantity
               or( _ExpectedDeliveries.LatestPossibleGRDate       < $session.system_date
                and _ExpectedDeliveries.ReceivedQuantity           < _PurchaseOrderItem.OrderQuantity ) )
      then 'X' else '' end                                                                as MaintOrdComponentIsMissing,

      _PurchaseOrderItem.PurchaseOrderItemUniqueID                                        as MaintOrdProcurementDocument,

      _PurchaseOrderItem,
      _MaintenanceOrder,
      _PurchaseOrder._Supplier,
      _ProcurementMilestone,
      _FuncnlLocationLabel
}
where
      I_LogisticsOrder.OrderCategory                          = '30'
  and _PurchaseOrderItem.PurchaseOrderItemCategory            = '0'
  and _PurchaseOrderItem.PurchasingDocumentDeletionCode       = ''
  and _PurchaseOrderItem.AccountAssignmentCategory            = 'F'
  and I_PurgDocAccountAssignment.IsDeleted                    = ''
  and I_PurgDocAccountAssignment.NetworkActivityInternalID    = '00000000' -- not OLC
  and I_PurgDocAccountAssignment.OrderIntBillOfOperationsItem = '00000000' -- not PM02
  and I_MaintOrdCompResvnPurgDoc.Reservation                  is null

union all

// -- ordered with OLC, directly:

select from              I_PurgDocAccountAssignment
  left outer to one join I_OrderOperation     as _MaintOrderOperPlanningValues on  _MaintOrderOperPlanningValues.OrderInternalID          = I_PurgDocAccountAssignment.OrderInternalID
                                                                               and _MaintOrderOperPlanningValues.OrderOperationInternalID = I_PurgDocAccountAssignment.NetworkActivityInternalID
  left outer to one join I_LogisticsOrder                                      on I_LogisticsOrder.OrderID = I_PurgDocAccountAssignment.OrderID
  left outer to one join I_PurchasingDocument as _PurchaseOrder                on _PurchaseOrder.PurchasingDocument = I_PurgDocAccountAssignment.PurchasingDocument
  left outer to one join I_MaintOrdCompResvnPurgDoc                            on  I_PurgDocAccountAssignment.PurchasingDocument     = I_MaintOrdCompResvnPurgDoc.PurchaseOrder
                                                                               and I_PurgDocAccountAssignment.PurchasingDocumentItem = I_MaintOrdCompResvnPurgDoc.PurchaseOrderItem
  left outer to one join I_OrderOperation                                      on  I_OrderOperation.PurchasingDocument     = I_PurgDocAccountAssignment.PurchasingDocument
                                                                               and I_OrderOperation.PurchasingDocumentItem = I_PurgDocAccountAssignment.PurchasingDocumentItem
association [1..1] to I_MaintenanceOrder             as _MaintenanceOrder     on  _MaintenanceOrder.MaintenanceOrder = I_PurgDocAccountAssignment.OrderID

association [0..1] to I_PurchaseOrderItem            as _PurchaseOrderItem    on  _PurchaseOrderItem.PurchaseOrder     = $projection.PurchaseOrder
                                                                              and _PurchaseOrderItem.PurchaseOrderItem = $projection.PurchaseOrderItem
association [1]    to I_MaintOrdProcurementMilestone as _ProcurementMilestone on  _ProcurementMilestone.MaintenanceOrder             = $projection.MaintenanceOrder
                                                                              and _ProcurementMilestone.MaintOrdProcurementDocument  = $projection.MaintOrdProcurementDocument
                                                                              and _ProcurementMilestone.MaintOrdProcmtMlstnIsCurrent = 'X'
association [0..*] to I_FunclocationLabelInternal    as _FuncnlLocationLabel  on  _FuncnlLocationLabel.FunctionalLocation = $projection.functionallocation
association [0..1] to P_MaintOrdCompExpectedDelivs   as _ExpectedDeliveries   on  _ExpectedDeliveries.PurchaseOrder             = $projection.PurchaseOrder
                                                                              and _ExpectedDeliveries.PurchaseOrderItem         = $projection.PurchaseOrderItem
                                                                              and _ExpectedDeliveries.OpErlstSchedldExecStrtDte = _MaintOrderOperPlanningValues.OpErlstSchedldExecStrtDte
{
  key I_PurgDocAccountAssignment.PurchasingDocument                                       as PurchaseOrder,
  key I_PurgDocAccountAssignment.PurchasingDocumentItem                                   as PurchaseOrderItem,

      cast( '' as ebeln )                                                                 as PurchaseRequisition,
      cast( '' as ebelp )                                                                 as PurchaseRequisitionItem,

      ' '                                                                                 as OperationIsProcessedExternally,

      I_PurgDocAccountAssignment.OrderID                                                  as MaintenanceOrder,
      I_PurgDocAccountAssignment.OrderInternalID                                          as MaintOrderRoutingNumber,
      I_PurgDocAccountAssignment.NetworkActivityInternalID                                as MaintOrderOperationCounter,

      '          '                                                                        as Reservation,
      '    '                                                                              as ReservationItem,

      _MaintOrderOperPlanningValues.Operation                                             as MaintenanceOrderOperation,
      _MaintOrderOperPlanningValues.Operation                                             as ManufacturingOrderOperation,
      _MaintOrderOperPlanningValues.OperationText                                         as OperationDescription,
      _MaintOrderOperPlanningValues.OperationText                                         as OperationText,
      _MaintOrderOperPlanningValues.OpErlstSchedldExecStrtDte                             as ReferenceDate,

      _MaintenanceOrder.MaintOrdBasicStartDate,
      _MaintOrderOperPlanningValues.OpErlstSchedldExecStrtDte,
      '00000000'                                                                          as RequirementDate,

      I_LogisticsOrder.OrderType                                                          as MaintenanceOrderType,
      I_LogisticsOrder.OrderDescription                                                   as MaintenanceOrderDesc,
      _MaintenanceOrder.MaintPriorityType,
      _MaintenanceOrder.MaintPriority,
      _MaintenanceOrder.MaintenanceProcessingPhase,
      _MaintenanceOrder._MaintenancePriority._Text[ 1: Language = $session.system_language ].MaintPriorityDesc,
      _MaintenanceOrder._MaintenancePriority.MaintPriorityColorCode,
      _MaintenanceOrder.MaintenanceRevision,
      _MaintenanceOrder.MaintenancePlannerGroup,
      _MaintenanceOrder.MaintenancePlanningPlant,
      _MaintenanceOrder.MaintenancePlant,
      I_LogisticsOrder.MainWorkCenter,
      I_LogisticsOrder.MainWorkCenterPlant,
      _MaintenanceOrder.ScheduledBasicStartDate,
      _MaintenanceOrder.ScheduledBasicStartTime,
      _MaintenanceOrder.ScheduledBasicEndDate,
      _MaintenanceOrder.ScheduledBasicEndTime,
      _MaintenanceOrder._LocationAccountAssignment.PlantSection,
      _MaintenanceOrder.WorkCenterInternalID,
      _MaintenanceOrder.Equipment,
      _MaintenanceOrder._LocationAccountAssignment.FunctionalLocation,
      _MaintenanceOrder.MaintObjectLocAcctAssgmtNmbr,

      _PurchaseOrderItem.Material,
      _PurchaseOrderItem.MaterialGroup,
      _PurchaseOrderItem.OrderQuantity,
      _PurchaseOrderItem.PurchaseOrderQuantityUnit,
      _PurchaseOrderItem.ProductType,
      _PurchaseOrderItem.PurchaseOrderItemText,
      _PurchaseOrderItem.Plant,
      _PurchaseOrderItem.StorageLocation,
      _PurchaseOrderItem.NetAmount,
      _PurchaseOrderItem.DocumentCurrency,
      _PurchaseOrder.Supplier,
      _PurchaseOrder.PurchasingGroup,
      _PurchaseOrder.PurchasingProcessingStatus,
      _PurchaseOrder.ReleaseIsNotCompleted,

      cast( case when _PurchaseOrderItem.IsCompletelyDelivered = 'X'
                 then _PurchaseOrderItem.OrderQuantity
                 else _ExpectedDeliveries.ReceivedQuantity end as wemng preserving type ) as ReceivedQuantity,
      case when _PurchaseOrderItem.IsCompletelyDelivered = ''
            and ( _ExpectedDeliveries.ForecastedDeliveryQuantity is null
               or _ExpectedDeliveries.ForecastedDeliveryQuantity < _PurchaseOrderItem.OrderQuantity
               or( _ExpectedDeliveries.LatestPossibleGRDate       < $session.system_date
                and _ExpectedDeliveries.ReceivedQuantity           < _PurchaseOrderItem.OrderQuantity ) )
      then 'X' else '' end                                                                as MaintOrdComponentIsMissing,

      _PurchaseOrderItem.PurchaseOrderItemUniqueID                                        as MaintOrdProcurementDocument,

      _PurchaseOrderItem,
      _MaintenanceOrder,
      _PurchaseOrder._Supplier,
      _ProcurementMilestone,
      _FuncnlLocationLabel
}
where
      I_LogisticsOrder.OrderCategory                    = '30'
  and _PurchaseOrderItem.PurchaseOrderItemCategory      = '0'
  and _PurchaseOrderItem.PurchasingDocumentDeletionCode = ''
  and _PurchaseOrderItem.AccountAssignmentCategory      = 'F'
  and I_PurgDocAccountAssignment.IsDeleted              = ''
  and I_LogisticsOrder.NtwkAccountAssignmentCode        = '2'
  and I_MaintOrdCompResvnPurgDoc.Reservation            is null
  and I_OrderOperation.PurchaseRequisition              is null

union all

// --- external operations (PM02), only needed for Backlog Overview / Procurement Milestones:

select from              I_OrderOperation
  left outer to one join I_OperationControlProfile on I_OperationControlProfile.OperationControlProfile = I_OrderOperation.OperationControlProfile
  inner join             I_LogisticsOrderBasic     on I_LogisticsOrderBasic.OrderInternalID = I_OrderOperation.OrderInternalID
  left outer to one join I_PurchaseOrderItem       on  I_PurchaseOrderItem.PurchaseRequisition     = I_OrderOperation.PurchaseRequisition
                                                   and I_PurchaseOrderItem.PurchaseRequisitionItem = I_OrderOperation.PurchaseRequisitionItem

association [0..1] to I_OrderOperationDatesQty       as _OperationDates       on  _OperationDates.OrderInternalID          = I_OrderOperation.OrderInternalID
                                                                              and _OperationDates.OrderOperationInternalID = I_OrderOperation.OrderOperationInternalID
association [1..1] to I_MaintenanceOrder             as _MaintenanceOrder     on  _MaintenanceOrder.MaintenanceOrder = $projection.MaintenanceOrder
association [0..1] to I_PurchaseOrderItem            as _PurchaseOrderItem    on  _PurchaseOrderItem.PurchaseOrder     = I_PurchaseOrderItem.PurchaseOrder
                                                                              and _PurchaseOrderItem.PurchaseOrderItem = I_PurchaseOrderItem.PurchaseOrderItem
association [1]    to I_MaintOrdProcurementMilestone as _ProcurementMilestone on  _ProcurementMilestone.MaintenanceOrder             = $projection.MaintenanceOrder
                                                                              and _ProcurementMilestone.MaintOrdProcurementDocument  = $projection.MaintOrdProcurementDocument
                                                                              and _ProcurementMilestone.MaintOrdProcmtMlstnIsCurrent = 'X'

association [0..*] to I_FunclocationLabelInternal    as _FuncnlLocationLabel  on  _FuncnlLocationLabel.FunctionalLocation = $projection.functionallocation

association [0..1] to I_Supplier                     as _PreferredSupplier    on  _PreferredSupplier.Supplier = $projection.preferredsupplier
{
  key I_PurchaseOrderItem.PurchaseOrder,
  key I_PurchaseOrderItem.PurchaseOrderItem,

      I_OrderOperation.PurchaseRequisition,
      I_OrderOperation.PurchaseRequisitionItem,

      'X'                                                            as OperationIsProcessedExternally,

      I_LogisticsOrderBasic.OrderID                                  as MaintenanceOrder,
      I_OrderOperation.OrderInternalID                               as MaintOrderRoutingNumber,
      I_OrderOperation.OrderOperationInternalID                      as MaintOrderOperationCounter,

      '          '                                                   as Reservation,
      '    '                                                         as ReservationItem,

      I_OrderOperation.Operation                                     as MaintenanceOrderOperation,
      I_OrderOperation.Operation                                     as ManufacturingOrderOperation,
      I_OrderOperation.OperationText                                 as OperationDescription,
      I_OrderOperation.OperationText,
      cast( _OperationDates.OpErlstSchedldExecStrtDte as abap.dats ) as ReferenceDate,

      _MaintenanceOrder.MaintOrdBasicStartDate,
      _OperationDates.OpErlstSchedldExecStrtDte,
      '00000000'                                                     as RequirementDate,

      _MaintenanceOrder.MaintenanceOrderType,
      _MaintenanceOrder.MaintenanceOrderDesc,
      _MaintenanceOrder.MaintPriorityType,
      _MaintenanceOrder.MaintPriority,
      _MaintenanceOrder.MaintenanceProcessingPhase,
      _MaintenanceOrder._MaintenancePriority._Text[ 1: Language = $session.system_language ].MaintPriorityDesc,
      _MaintenanceOrder._MaintenancePriority.MaintPriorityColorCode,
      _MaintenanceOrder.MaintenanceRevision,
      _MaintenanceOrder.MaintenancePlannerGroup,
      _MaintenanceOrder.MaintenancePlanningPlant,
      _MaintenanceOrder.MaintenancePlant,
      _MaintenanceOrder.MainWorkCenter,
      _MaintenanceOrder.MainWorkCenterPlant,
      _MaintenanceOrder.ScheduledBasicStartDate,
      _MaintenanceOrder.ScheduledBasicStartTime,
      _MaintenanceOrder.ScheduledBasicEndDate,
      _MaintenanceOrder.ScheduledBasicEndTime,
      _MaintenanceOrder._LocationAccountAssignment.PlantSection,
      _MaintenanceOrder.WorkCenterInternalID,
      _MaintenanceOrder.Equipment,
      _MaintenanceOrder._LocationAccountAssignment.FunctionalLocation,
      _MaintenanceOrder.MaintObjectLocAcctAssgmtNmbr,

      I_PurchaseOrderItem.Material,
      I_PurchaseOrderItem.MaterialGroup,
      I_PurchaseOrderItem.OrderQuantity,
      I_PurchaseOrderItem.PurchaseOrderQuantityUnit,
      I_PurchaseOrderItem.ProductType,
      I_PurchaseOrderItem.PurchaseOrderItemText,
      I_PurchaseOrderItem.Plant,
      I_PurchaseOrderItem.StorageLocation,
      I_PurchaseOrderItem.NetAmount,
      I_PurchaseOrderItem.DocumentCurrency,
      I_PurchaseOrderItem._PurchaseOrder.Supplier,
      I_PurchaseOrderItem._PurchaseOrder.PurchasingGroup,
      I_PurchaseOrderItem._PurchaseOrder.PurchasingProcessingStatus,
      I_PurchaseOrderItem._PurchaseOrder.ReleaseIsNotCompleted,

      // services cannot be delivered:

      0                                                              as ReceivedQuantity,
      ''                                                             as MaintOrdComponentIsMissing,

      I_OrderOperation.ObjectInternalID                              as MaintOrdProcurementDocument,

      _PurchaseOrderItem,
      _MaintenanceOrder,
      I_PurchaseOrderItem._PurchaseOrder._Supplier,
      _ProcurementMilestone,
      _FuncnlLocationLabel
}
where
      I_OrderOperation.PurchaseRequisition                     <> ''
  and I_PurchaseOrderItem.PurchaseOrder                        <> ''
  and I_OperationControlProfile.OperationIsProcessedExternally =  'X'