P_SlowMoMatPredMatDocUnion

DDL: P_SLOWMOMATPREDMATDOCUNION Type: view_entity COMPOSITE Package: ODATA_MM_IM_SLONOMOMAT

Material Document Union

P_SlowMoMatPredMatDocUnion 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_SlowMoMatPredMatDocRec, I_MaterialDocumentRecord) and exposes 33 fields with key fields YearPeriod, Material, Plant, StockIdentifyingBatch, SpecialStockIdfgSupplier. 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_SlowMoMatPredMatDocRec P_SlowMoMatPredMatDocRec 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 (33)

KeyFieldSource TableSource FieldDescription
KEY YearPeriod dat YearPeriod
KEY Material I_MaterialDocumentRecord Material
KEY Plant I_MaterialDocumentRecord Plant
KEY StockIdentifyingBatch I_MaterialDocumentRecord StockIdentifyingBatch
KEY SpecialStockIdfgSupplier I_MaterialDocumentRecord SpecialStockIdfgSupplier
KEY SpecialStockIdfgSalesOrder I_MaterialDocumentRecord SpecialStockIdfgSalesOrder
KEY SpecialStockIdfgSalesOrderItem I_MaterialDocumentRecord SpecialStockIdfgSalesOrderItem
KEY SpecialStockIdfgWBSElement I_MaterialDocumentRecord SpecialStockIdfgWBSElement
KEY SpecialStockIdfgCustomer I_MaterialDocumentRecord SpecialStockIdfgCustomer
KEY SpecialStockIdfgStockOwner I_MaterialDocumentRecord SpecialStockIdfgStockOwner
KEY InventorySpecialStockType I_MaterialDocumentRecord InventorySpecialStockType
KEY InventoryStockType I_MaterialDocumentRecord InventoryStockType
KEY MaterialBaseUnit I_MaterialDocumentRecord MaterialBaseUnit
StartDate dat StartDate
EndDate dat EndDate
MatlWrhsStkQtyInMatlBaseUnit
YearPeriod
KEY Material I_MaterialDocumentRecord StockIdentifyingMaterial
KEY Plant I_MaterialDocumentRecord Plant
KEY StockIdentifyingBatch I_MaterialDocumentRecord StockIdentifyingBatch
KEY SpecialStockIdfgSupplier I_MaterialDocumentRecord SpecialStockIdfgSupplier
KEY SpecialStockIdfgSalesOrder I_MaterialDocumentRecord SpecialStockIdfgSalesOrder
KEY SpecialStockIdfgSalesOrderItem I_MaterialDocumentRecord SpecialStockIdfgSalesOrderItem
KEY SpecialStockIdfgWBSElement I_MaterialDocumentRecord SpecialStockIdfgWBSElement
KEY SpecialStockIdfgCustomer I_MaterialDocumentRecord SpecialStockIdfgCustomer
KEY SpecialStockIdfgStockOwner I_MaterialDocumentRecord SpecialStockIdfgStockOwner
KEY InventorySpecialStockType I_MaterialDocumentRecord InventorySpecialStockType
KEY InventoryStockType I_MaterialDocumentRecord InventoryStockType
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_SlowMoMatPredMatDocUnion 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_SlowMoMatPredMatDocRec(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.StockIdentifyingBatch,
  key rec.SpecialStockIdfgSupplier,
  key rec.SpecialStockIdfgSalesOrder,
  key rec.SpecialStockIdfgSalesOrderItem,
  key rec.SpecialStockIdfgWBSElement,
  key rec.SpecialStockIdfgCustomer,
  key rec.SpecialStockIdfgStockOwner,
  key rec.InventorySpecialStockType,
  key rec.InventoryStockType,
  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.StockIdentifyingBatch,
  rec.SpecialStockIdfgSupplier,
  rec.SpecialStockIdfgSalesOrder,
  rec.SpecialStockIdfgSalesOrderItem,
  rec.SpecialStockIdfgWBSElement,
  rec.SpecialStockIdfgCustomer,
  rec.SpecialStockIdfgStockOwner,
  rec.InventorySpecialStockType,
  rec.InventoryStockType,
  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.StockIdentifyingBatch,
  key rec.SpecialStockIdfgSupplier,
  key rec.SpecialStockIdfgSalesOrder,
  key rec.SpecialStockIdfgSalesOrderItem,
  key rec.SpecialStockIdfgWBSElement,
  key rec.SpecialStockIdfgCustomer,
  key rec.SpecialStockIdfgStockOwner,
  key rec.InventorySpecialStockType,
  key rec.InventoryStockType,
  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.StockIdentifyingBatch,
  rec.SpecialStockIdfgSupplier,
  rec.SpecialStockIdfgSalesOrder,
  rec.SpecialStockIdfgSalesOrderItem,
  rec.SpecialStockIdfgWBSElement,
  rec.SpecialStockIdfgCustomer,
  rec.SpecialStockIdfgStockOwner,
  rec.InventorySpecialStockType,
  rec.InventoryStockType,
  rec.MaterialBaseUnit,
  dat.StartDate,
  dat.EndDate