P_SlowMoMatPrMoMatDocUnion

DDL: P_SLOWMOMATPRMOMATDOCUNION Type: view_entity COMPOSITE Package: ODATA_MM_IM_SLONOMOMAT

Material Document Union

P_SlowMoMatPrMoMatDocUnion is a Composite CDS View that provides data about "Material Document Union" 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. Part of development package ODATA_MM_IM_SLONOMOMAT.

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 (7)

NameValueLevelField
Metadata.ignorePropagatedAnnotations true view
ObjectModel.usageType.sizeCategory #XXL view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.dataClass #TRANSACTIONAL 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
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.dataClass:#TRANSACTIONAL
@VDM.private: true
@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck:#NOT_REQUIRED
//@EndUserText.label: 'Material Document Union'

define view entity 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  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 cast( 0 as nsdm_consumption_qty )
                else rec.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 rec.PostingDate < dat.StartDateOfReferencePeriod                                              
                                      
{
  key dat.YearPeriod,
  key rec.StockIdentifyingMaterial  as Material,
  key rec.Plant,
  key rec.MaterialBaseUnit, 
      dat.StartDate,
      dat.EndDate,
      sum(rec.MatlStkChangeQtyInBaseUnit)   as MatlWrhsStkQtyInMatlBaseUnit, 
      cast( 0 as nsdm_consumption_qty ) as MatlCnsmpnQtyInMatlBaseUnit
      
}
group by  
  dat.YearPeriod,
  rec.StockIdentifyingMaterial,
  rec.Plant,
  rec.MaterialBaseUnit,
  dat.StartDate,
  dat.EndDate