P_SlowMoMatPrMoMatDocUnion

DDL: P_SLOWMOMATPRMOMATDOCUNION SQL: PSLOWMOMATDCSUNI Type: view COMPOSITE

P_SlowMoMatPrMoMatDocUnion is a Composite CDS View in SAP S/4HANA. It reads from 4 data sources (P_MatlStkPerdsBackFrmKeyDte, P_MatlStkPerdsBackFrmKeyDte, P_SlowMoMatPrMoMatDocRec, I_MaterialDocumentRecord) and exposes 15 fields with key fields YearPeriod, Material, Plant, MaterialBaseUnit, Material.

Data Sources (4)

SourceAliasJoin Type
P_MatlStkPerdsBackFrmKeyDte P_MatlStkPerdsBackFrmKeyDte from
P_MatlStkPerdsBackFrmKeyDte P_MatlStkPerdsBackFrmKeyDte union_all
P_SlowMoMatPrMoMatDocRec P_SlowMoMatPrMoMatDocRec left_outer
I_MaterialDocumentRecord rec left_outer

Parameters (2)

NameTypeDefault
P_KeyDate nsdm_reference_date
P_InventoryConsumptionGroup inventory_consumption_group

Annotations (10)

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

Fields (15)

KeyFieldSource TableSource FieldDescription
KEY YearPeriod dat YearPeriod
KEY Material I_MaterialDocumentRecord Material
KEY Plant I_MaterialDocumentRecord Plant
KEY MaterialBaseUnit I_MaterialDocumentRecord MaterialBaseUnit
StartDate dat StartDate
EndDate dat EndDate
MatlWrhsStkQtyInMatlBaseUnit
YearPeriod
KEY Material I_MaterialDocumentRecord StockIdentifyingMaterial
KEY Plant I_MaterialDocumentRecord Plant
KEY MaterialBaseUnit I_MaterialDocumentRecord MaterialBaseUnit
StartDate dat StartDate
EndDate dat EndDate
MatlWrhsStkQtyInMatlBaseUnit
MatlCnsmpnQtyInMatlBaseUnit 0
@AbapCatalog.sqlViewName: 'PSLOWMOMATDCSUNI'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.dataClass:#TRANSACTIONAL
@ClientHandling.algorithm: #SESSION_VARIABLE

@VDM.private: true
@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck:#NOT_REQUIRED
//@EndUserText.label: 'Material Document Union'

define view P_SlowMoMatPrMoMatDocUnion with parameters
                                       P_KeyDate                   : nsdm_reference_date,
                                       P_InventoryConsumptionGroup : inventory_consumption_group
                                       
  as select from P_MatlStkPerdsBackFrmKeyDte(P_KeyDate: $parameters.P_KeyDate) as dat
     left outer join P_SlowMoMatPrMoMatDocRec(P_InventoryConsumptionGroup: $parameters.P_InventoryConsumptionGroup) as rec
                 on  dat.mandt        = rec.mandt 
                 and rec.PostingDate >= dat.StartDateOfReferencePeriod
                 and rec.PostingDate <= dat.EndDate         
                                                                        
{
  key dat.YearPeriod,
  key rec.Material,
  key rec.Plant,
  key rec.MaterialBaseUnit,
      dat.StartDate,
      dat.EndDate,
 
      @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
      sum(rec.MatlStkChangeQtyInBaseUnit) as MatlWrhsStkQtyInMatlBaseUnit,
      
      @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
      sum( case when rec.PostingDate < dat.StartDate 
                then 0
                else MatlCnsmpnQtyInMatlBaseUnit  end ) as MatlCnsmpnQtyInMatlBaseUnit
      
}
group by
  dat.YearPeriod,
  rec.Material,
  rec.Plant,
  rec.MaterialBaseUnit,
  dat.StartDate,
  dat.EndDate
  
  
union all

// Total Stock before KeyDate Parameter

select from P_MatlStkPerdsBackFrmKeyDte(P_KeyDate: $parameters.P_KeyDate) as dat
  left outer join I_MaterialDocumentRecord as rec on dat.mandt       = rec.mandt
                                                 and rec.PostingDate < dat.StartDateOfReferencePeriod                                              
                                      
{
  key dat.YearPeriod,
  key rec.StockIdentifyingMaterial  as Material,
  key rec.Plant,
  key rec.MaterialBaseUnit, 
      dat.StartDate,
      dat.EndDate,
      @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
      sum(rec.MatlStkChangeQtyInBaseUnit)   as MatlWrhsStkQtyInMatlBaseUnit, 
      @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
      0 as MatlCnsmpnQtyInMatlBaseUnit
      
}
group by  
  dat.YearPeriod,
  rec.StockIdentifyingMaterial,
  rec.Plant,
  rec.MaterialBaseUnit,
  dat.StartDate,
  dat.EndDate
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_MATERIALDOCUMENTRECORD",
"P_MATLSTKPERDSBACKFRMKEYDTE",
"P_SLOWMOMATPRMOMATDOCREC"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/