P_OPACTYINSTANCEASSEMBLEDCOMP

CDS View

Component assembled at an OA (explicite and backflushed)

P_OPACTYINSTANCEASSEMBLEDCOMP is a CDS View in S/4HANA. Component assembled at an OA (explicite and backflushed). It contains 16 fields. 1 CDS views read from this table.

CDS Views using this table (1)

ViewTypeJoinVDMDescription
P_OpActyInstanceAssembledComp2 view from COMPOSITE Component explicitly assembled or backflushed at an OA

Fields (16)

KeyField CDS FieldsUsed in Views
KEY Material Material 1
KEY Plant Plant 1
KEY RecordType RecordType 1
KEY Reservation Reservation 1
KEY ReservationItem ReservationItem 1
BaseUnit BaseUnit 1
BOOOpBOMItemInternalID BOOOpBOMItemInternalID 1
EntryUnit EntryUnit 1
GoodsMovementIsAllowed GoodsMovementIsAllowed 1
MatlCompInstceAssyIsRequired MatlCompInstceAssyIsRequired 1
MatlCompIsMarkedForBackflush MatlCompIsMarkedForBackflush 1
MfgOrderComponentUsageNetQty MfgOrderComponentUsageNetQty 1
MfgRefStrucBOMLeafAssgmtUUID MfgRefStrucBOMLeafAssgmtUUID 1
MfgRefStrucItmDetIsContextual MfgRefStrucItmDetIsContextual 1
MfgRefStructureItemDetailUUID MfgRefStructureItemDetailUUID 1
StorageLocation StorageLocation 1
@AbapCatalog.sqlViewName: 'PMPEOAIAMAT'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType: {serviceQuality: #C, sizeCategory: #XL, dataClass: #TRANSACTIONAL}
@VDM.viewType: #COMPOSITE
@VDM.private: true
define view P_OpActyInstanceAssembledComp
  -- Directly assembled components
  as select from           I_MfgOrderComponentAssembly as MfgOrderComponentAssembly
    left outer to one join I_OpActyComponentAssignment as OpActyComponentAssignment on  MfgOrderComponentAssembly.OpActyNtwkInstance = OpActyComponentAssignment.OpActyNtwkInstance
                                                                                    and MfgOrderComponentAssembly.OpActyNtwkElement  = OpActyComponentAssignment.OpActyNtwkElement
                                                                                    and MfgOrderComponentAssembly.Reservation        = OpActyComponentAssignment.Reservation
                                                                                    and MfgOrderComponentAssembly.ReservationItem    = OpActyComponentAssignment.ReservationItem
                                                                                    and MfgOrderComponentAssembly.RecordType         = OpActyComponentAssignment.RecordType
    left outer to one join I_ReservationItem           as ReservationItem           on  ReservationItem.Reservation     = OpActyComponentAssignment.Reservation
                                                                                    and ReservationItem.ReservationItem = OpActyComponentAssignment.ReservationItem
                                                                                    and ReservationItem.RecordType      = OpActyComponentAssignment.RecordType
{
  key MfgOrderComponentAssembly.OpActyNtwkInstance,
  key MfgOrderComponentAssembly.OpActyNtwkElement,
  key MfgOrderComponentAssembly.Reservation,
  key MfgOrderComponentAssembly.ReservationItem,
  key MfgOrderComponentAssembly.RecordType,
  key MfgOrderComponentAssembly.Material,
  key MfgOrderComponentAssembly.Plant,
      cast(max(ReservationItem.StorageLocation) as lgort_d preserving type )                                       as StorageLocation,
      cast(max(OpActyComponentAssignment.BOOOpBOMItemInternalID) as cim_zuord preserving type )                    as BOOOpBOMItemInternalID,
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      cast(max(OpActyComponentAssignment.MfgOrderComponentUsageNetQty) as esmng preserving type )                  as MfgOrderComponentUsageNetQty,
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      cast(sum(MfgOrderComponentAssembly.MaterialComponentQuantity) as kmpmg preserving type )                     as MaterialComponentQuantity,
      @Semantics.unitOfMeasure: true
      cast(max(MfgOrderComponentAssembly.MaterialBaseUnit) as meins preserving type )                              as BaseUnit,
      @Semantics.quantity.unitOfMeasure: 'EntryUnit'
      cast(sum(MfgOrderComponentAssembly.QuantityInEntryUnit) as erfmgv preserving type )                          as QuantityInEntryUnit,
      @Semantics.unitOfMeasure: true
      cast(max(MfgOrderComponentAssembly.EntryUnit) as erfme preserving type )                                     as EntryUnit,
      cast('' as mpe_comp_is_for_backflush  preserving type)                                                       as MatlCompIsMarkedForBackflush,
      cast(coalesce(ReservationItem.GoodsMovementIsAllowed, 'X') as xwaok preserving type )                        as GoodsMovementIsAllowed,
      cast(max(OpActyComponentAssignment.MatlCompInstceAssyIsRequired) as mpe_instce_assembly_rqd preserving type) as MatlCompInstceAssyIsRequired,
      OpActyComponentAssignment.MfgRefStrucBOMLeafAssgmtUUID,
      OpActyComponentAssignment.MfgRefStructureItemDetailUUID,
      OpActyComponentAssignment.MfgRefStrucItmDetIsContextual,

      MfgOrderComponentAssembly._OperationActivityInstance
}
group by
  MfgOrderComponentAssembly.OpActyNtwkInstance,
  MfgOrderComponentAssembly.OpActyNtwkElement,
  MfgOrderComponentAssembly.Reservation,
  MfgOrderComponentAssembly.ReservationItem,
  MfgOrderComponentAssembly.RecordType,
  MfgOrderComponentAssembly.Material,
  MfgOrderComponentAssembly.Plant,
  ReservationItem.GoodsMovementIsAllowed,
  OpActyComponentAssignment.MfgRefStrucBOMLeafAssgmtUUID,
  OpActyComponentAssignment.MfgRefStructureItemDetailUUID,
  OpActyComponentAssignment.MfgRefStrucItmDetIsContextual


union all

-- Backflushed components
select from  I_OpActyInstanceStatusBasic as OpActyInstanceStatus
  inner join I_OpActyComponentAssignment as OpActyComponentAssignment on  OpActyComponentAssignment.OpActyNtwkInstance = OpActyInstanceStatus.OpActyNtwkInstance
                                                                      and OpActyComponentAssignment.OpActyNtwkElement  = OpActyInstanceStatus.OpActyNtwkElement
  inner join I_OrderComponent            as OrderComponent            on  OrderComponent.Reservation     = OpActyComponentAssignment.Reservation
                                                                      and OrderComponent.ReservationItem = OpActyComponentAssignment.ReservationItem
                                                                      and OrderComponent.RecordType      = OpActyComponentAssignment.RecordType
  inner join I_LogisticsOrderBasic       as LogisticsOrderBasic       on LogisticsOrderBasic.OrderID = OrderComponent.OrderID
{
  key OpActyInstanceStatus.OpActyNtwkInstance,
  key OpActyInstanceStatus.OpActyNtwkElement,
  key OrderComponent.Reservation,
  key OrderComponent.ReservationItem,
  key OrderComponent.RecordType,
  key OrderComponent.Material,
  key OrderComponent.Plant,
      OrderComponent.StorageLocation,
      OpActyComponentAssignment.BOOOpBOMItemInternalID,
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      OpActyComponentAssignment.MfgOrderComponentUsageNetQty,
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      case OrderComponent.MaterialCompIsVariableSized
        when 'X' then cast(round(fltp_to_dec(OpActyComponentAssignment.MfgOrderComponentUsageNetQty as abap.dec(13,4)), 3) as esmng )
                      * cast(OrderComponent.VariableSizeComponentQuantity as esmng ) * cast( LogisticsOrderBasic.OrderPlannedTotalQty as esmng )
        else cast(round(fltp_to_dec(OpActyComponentAssignment.MfgOrderComponentUsageNetQty as abap.dec(13,4)), 3) as esmng )
                      * cast( LogisticsOrderBasic.OrderPlannedTotalQty as esmng )
      end                                                                                                                as MaterialComponentQuantity,
      @Semantics.unitOfMeasure: true
      OrderComponent.BaseUnit,
      @Semantics.quantity.unitOfMeasure: 'EntryUnit'
      cast( LogisticsOrderBasic.OrderPlannedTotalQty as esmng ) * OpActyComponentAssignment.MfgOrderComponentUsageNetQty as QuantityInEntryUnit,
      @Semantics.unitOfMeasure: true
      cast(case OrderComponent.MaterialCompIsVariableSized
        when 'X' then OrderComponent.VariableSizeComponentUnit
        else OrderComponent.BaseUnit
      end as erfme preserving type)                                                                                      as EntryUnit,
      cast(OrderComponent.MatlCompIsMarkedForBackflush as mpe_comp_is_for_backflush preserving type)                     as MatlCompIsMarkedForBackflush,
      OrderComponent.GoodsMovementIsAllowed,
      OpActyComponentAssignment.MatlCompInstceAssyIsRequired,
      OpActyComponentAssignment.MfgRefStrucBOMLeafAssgmtUUID,
      OpActyComponentAssignment.MfgRefStructureItemDetailUUID,
      OpActyComponentAssignment.MfgRefStrucItmDetIsContextual,

      OpActyInstanceStatus._OperationActivityInstance
}
where
      OpActyInstanceStatus._SASStatus.SASStatusCategory = 3 --Completed
  and OrderComponent.MatlCompIsMarkedForBackflush       = 'X'