P_OpActyInstanceAssembledComp

DDL: P_OPACTYINSTANCEASSEMBLEDCOMP SQL: PMPEOAIAMAT Type: view COMPOSITE

P_OpActyInstanceAssembledComp is a Composite CDS View in SAP S/4HANA. It reads from 4 data sources (I_LogisticsOrderBasic, I_MfgOrderComponentAssembly, I_OpActyComponentAssignment, I_OrderComponent) and exposes 39 fields with key fields OpActyNtwkInstance, OpActyNtwkElement, Reservation, ReservationItem, RecordType.

Data Sources (4)

SourceAliasJoin Type
I_LogisticsOrderBasic LogisticsOrderBasic inner
I_MfgOrderComponentAssembly MfgOrderComponentAssembly from
I_OpActyComponentAssignment OpActyComponentAssignment inner
I_OrderComponent OrderComponent inner

Annotations (10)

NameValueLevelField
AbapCatalog.sqlViewName PMPEOAIAMAT view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #NOT_REQUIRED view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
VDM.viewType #COMPOSITE view
VDM.private true view

Fields (39)

KeyFieldSource TableSource FieldDescription
KEY OpActyNtwkInstance I_MfgOrderComponentAssembly OpActyNtwkInstance
KEY OpActyNtwkElement I_MfgOrderComponentAssembly OpActyNtwkElement
KEY Reservation I_MfgOrderComponentAssembly Reservation
KEY ReservationItem I_MfgOrderComponentAssembly ReservationItem
KEY RecordType I_MfgOrderComponentAssembly RecordType
KEY Material I_MfgOrderComponentAssembly Material
KEY Plant I_MfgOrderComponentAssembly Plant
StorageLocation
BOOOpBOMItemInternalID
MfgOrderComponentUsageNetQty
MaterialComponentQuantity
BaseUnit
QuantityInEntryUnit
EntryUnit
MatlCompIsMarkedForBackflush
GoodsMovementIsAllowed
MatlCompInstceAssyIsRequired
MfgRefStrucBOMLeafAssgmtUUID I_OpActyComponentAssignment MfgRefStrucBOMLeafAssgmtUUID
MfgRefStructureItemDetailUUID I_OpActyComponentAssignment MfgRefStructureItemDetailUUID
MfgRefStrucItmDetIsContextual I_OpActyComponentAssignment MfgRefStrucItmDetIsContextual
OpActyNtwkInstance
KEY OpActyNtwkElement OpActyInstanceStatus OpActyNtwkElement
KEY Reservation I_OrderComponent Reservation
KEY ReservationItem I_OrderComponent ReservationItem
KEY RecordType I_OrderComponent RecordType
KEY Material I_OrderComponent Material
KEY Plant I_OrderComponent Plant
StorageLocation I_OrderComponent StorageLocation
BOOOpBOMItemInternalID I_OpActyComponentAssignment BOOOpBOMItemInternalID
MfgOrderComponentUsageNetQty I_OpActyComponentAssignment MfgOrderComponentUsageNetQty
BaseUnit I_OrderComponent BaseUnit
QuantityInEntryUnit
MatlCompIsMarkedForBackflush
GoodsMovementIsAllowed I_OrderComponent GoodsMovementIsAllowed
MatlCompInstceAssyIsRequired I_OpActyComponentAssignment MatlCompInstceAssyIsRequired
MfgRefStrucBOMLeafAssgmtUUID I_OpActyComponentAssignment MfgRefStrucBOMLeafAssgmtUUID
MfgRefStructureItemDetailUUID I_OpActyComponentAssignment MfgRefStructureItemDetailUUID
MfgRefStrucItmDetIsContextual I_OpActyComponentAssignment MfgRefStrucItmDetIsContextual
_OperationActivityInstance OpActyInstanceStatus _OperationActivityInstance
@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'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_LOGISTICSORDERBASIC",
"I_MFGORDERCOMPONENTASSEMBLY",
"I_OPACTYCOMPONENTASSIGNMENT",
"I_OPACTYINSTANCESTATUSBASIC",
"I_ORDERCOMPONENT",
"I_RESERVATIONITEM",
"I_SASSTATUS"
],
"ASSOCIATED":
[
"I_OPERATIONACTIVITYINSTANCE"
],
"BASE":
[
"I_MFGORDERCOMPONENTASSEMBLY"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/