C_PFMGoodsMovementDocumentDEX

DDL: C_PFMGOODSMOVEMENTDOCUMENTDEX Type: view CONSUMPTION

Material flow data extractor for PFM

C_PFMGoodsMovementDocumentDEX is a Consumption CDS View (Fact) that provides data about "Material flow data extractor for PFM" in SAP S/4HANA. It reads from 1 data source (I_MaterialDocumentRecord) and exposes 53 fields with key fields MaterialDocumentKey1, MaterialDocumentKey2, MaterialDocumentKey3, MaterialDocumentKey4, MaterialDocumentKey5.

Data Sources (1)

SourceAliasJoin Type
I_MaterialDocumentRecord I_MaterialDocumentRecord from

Annotations (17)

NameValueLevelField
EndUserText.label Material flow data extractor for PFM view
AbapCatalog.sqlViewName CPFMGDSMVTDDEX view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #PRIVILEGED_ONLY view
AccessControl.personalData.blocking #NOT_REQUIRED view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.sizeCategory #XXL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.sapObjectNodeType.name MaterialDocument view
ObjectModel.modelingPattern #NONE view
VDM.viewType #CONSUMPTION view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
Analytics.dataCategory #FACT view
Analytics.internalName #LOCAL view
Analytics.dataExtraction.enabled true view
Metadata.ignorePropagatedAnnotations true view

Fields (53)

KeyFieldSource TableSource FieldDescription
KEY MaterialDocumentKey1 MaterialDocumentKey1
KEY MaterialDocumentKey2 MaterialDocumentKey2
KEY MaterialDocumentKey3 MaterialDocumentKey3
KEY MaterialDocumentKey4 MaterialDocumentKey4
KEY MaterialDocumentKey5 MaterialDocumentKey5
KEY MaterialDocumentKey6 MaterialDocumentKey6
MaterialDocument MaterialDocument
MaterialDocumentItem MaterialDocumentItem
MaterialDocumentYear MaterialDocumentYear
Plant Plant
StorageLocation StorageLocation
Material Material
InventorySpecialStockType InventorySpecialStockType
InventoryStockType InventoryStockType
StockOwner StockOwner
CompanyCode CompanyCode
CostCenter CostCenter
ControllingArea ControllingArea
CompanyCodeCurrency CompanyCodeCurrency
MaterialBaseUnit MaterialBaseUnit
IsReversalMovementType IsReversalMovementType
IssuingOrReceivingPlant IssuingOrReceivingPlant
IssuingOrReceivingStorageLoc IssuingOrReceivingStorageLoc
DocumentDate DocumentDate
CreationDate CreationDate
CreationTime CreationTime
PostingDate PostingDate
CalendarQuarter CalendarQuarter
CalendarMonth CalendarMonth
CalendarWeek CalendarWeek
SalesOrder SalesOrder
PurchaseOrder PurchaseOrder
ProjectNetwork ProjectNetwork
DeliveryDocument DeliveryDocument
WBSElementExternalID _WBSElementBasicData WBSElementExternalID
ProjectExternalID
ManufacturingOrder ManufacturingOrder
MainProduct
InvtryMgmtReferenceDocument InvtryMgmtReferenceDocument
GoodsMovementType GoodsMovementType
Supplier Supplier
Customer Customer
MaterialGroup _Material MaterialGroup
PurchasingGroup _PurchaseOrder PurchasingGroup
PurchasingOrganization _PurchaseOrder PurchasingOrganization
TotalGoodsMvtAmtInCCCrcy TotalGoodsMvtAmtInCCCrcy
GoodsMovementStkAmtInCCCrcy GoodsMovementStkAmtInCCCrcy
GoodsMvtCnsmpnAmtInCCCrcy GoodsMvtCnsmpnAmtInCCCrcy
MatlStkChangeQtyInBaseUnit MatlStkChangeQtyInBaseUnit
MatlCnsmpnQtyInMatlBaseUnit MatlCnsmpnQtyInMatlBaseUnit
QuantityInBaseUnit QuantityInBaseUnit
_Currency _Currency
_MaterialBaseUnit _MaterialBaseUnit
@EndUserText.label: 'Material flow data extractor for PFM'

@AbapCatalog: {
    sqlViewName: 'CPFMGDSMVTDDEX',
    compiler.compareFilter: true
}
@AccessControl: {
     authorizationCheck: #PRIVILEGED_ONLY,
     personalData.blocking: #NOT_REQUIRED
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel: {
      usageType: {
         sizeCategory: #XXL,
         serviceQuality: #C,
         dataClass:#MIXED
      },
      sapObjectNodeType.name: 'MaterialDocument',
      supportedCapabilities: [#EXTRACTION_DATA_SOURCE],
      modelingPattern: #NONE
}
@VDM: {
      viewType: #CONSUMPTION,
      lifecycle.contract.type: #PUBLIC_LOCAL_API
}
@Analytics: {
        dataCategory: #FACT,
        internalName: #LOCAL,
        dataExtraction.enabled: true

        //Currently no delta support (change data capture) is required, since this view data is only used via the

        //OData V4 aggregation extension, which always aggregates over the whole dataset.

}
@Metadata: {
        ignorePropagatedAnnotations: true
}

define view C_PFMGoodsMovementDocumentDEX
  as select from I_MaterialDocumentRecord
{
  key MaterialDocumentKey1,
  key MaterialDocumentKey2,
  key MaterialDocumentKey3,
  key MaterialDocumentKey4,
  key MaterialDocumentKey5,
  key MaterialDocumentKey6,

      MaterialDocument,
      MaterialDocumentItem,

      @Semantics.calendar.year: true
      MaterialDocumentYear,

      Plant,
      StorageLocation,
      Material,
      InventorySpecialStockType,
      InventoryStockType,
      StockOwner,
      CompanyCode,
      CostCenter,
      ControllingArea,

      @Semantics.currencyCode: true
      CompanyCodeCurrency,
      @Semantics.unitOfMeasure: true
      MaterialBaseUnit,

      IsReversalMovementType,

      // Stock Transfers

      IssuingOrReceivingPlant,
      IssuingOrReceivingStorageLoc,

      // Periods & Times

      @Semantics.businessDate.at: true
      DocumentDate,
      CreationDate,
      CreationTime,

      PostingDate,
      //YearQuarter,

      @Semantics.calendar.quarter: true
      CalendarQuarter,
      @Semantics.calendar.month: true
      CalendarMonth,
      @Semantics.calendar.week: true
      CalendarWeek,

      // Reference Documents

      SalesOrder,
      PurchaseOrder,
      ProjectNetwork,
      DeliveryDocument,
      -- CAST to get rid of conversion exit
      cast(WBSElementInternalID as ps_s4_pspnr preserving type)                   as WBSElementInternalID,
      _WBSElementBasicData.WBSElementExternalID                                   as WBSElementExternalID,
      _WBSElementBasicData._Project.ProjectExternalID                             as ProjectExternalID,
      -- CAST to get rid of conversion exit
      cast(_WBSElementBasicData.ProjectInternalID as ps_pspnr preserving type) as ProjectInternalID,
      
      ManufacturingOrder,
      /*+[hideWarning] { "IDS" : [ "DOUBLE_JOIN" ] } */
      cast(_ManufacturingOrder.Material as pph_matko preserving type)          as MainProduct,

      InvtryMgmtReferenceDocument,

      // Other

      GoodsMovementType,
      Supplier,
      Customer,

      _Material.MaterialGroup,
      _PurchaseOrder.PurchasingGroup,
      _PurchaseOrder.PurchasingOrganization,

      // Classifications

      cast(case when MatlStkChangeQtyInBaseUnit > 0 and IsReversalMovementType = '' or MatlStkChangeQtyInBaseUnit < 0 and IsReversalMovementType = 'X'
            then 'GR'
        else case
           when MatlStkChangeQtyInBaseUnit < 0 and IsReversalMovementType = '' or MatlStkChangeQtyInBaseUnit > 0 and IsReversalMovementType = 'X'
             then 'GI'
           else '' end
      end as nsdm_stock_change_category preserving type)                           as StockChangeCategory,

      cast(case when IssuingOrReceivingPlant <> '' and IssuingOrReceivingPlant <> Plant
        then 'X'
        else ''
      end as nsdm_cross_plant_transfer preserving type)                            as IsCrossPlantTransfer,

      // Amounts

      @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
      @DefaultAggregation: #SUM
      TotalGoodsMvtAmtInCCCrcy,
      @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
      @DefaultAggregation: #SUM
      GoodsMovementStkAmtInCCCrcy,
      @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
      @DefaultAggregation: #SUM
      GoodsMvtCnsmpnAmtInCCCrcy,

      // Quantities

      @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
      @DefaultAggregation: #SUM
      MatlStkChangeQtyInBaseUnit,
      @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
      @DefaultAggregation: #SUM
      MatlCnsmpnQtyInMatlBaseUnit,
      @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
      @DefaultAggregation: #SUM
      QuantityInBaseUnit,

      //Associations

      _Currency,
      _MaterialBaseUnit
}
where
     MaterialDocumentRecordType = 'MDOC'
  or MaterialDocumentRecordType = 'MDOC_CP'
  or MaterialDocumentRecordType = 'MDOC340'
  or MaterialDocumentRecordType = 'CORR'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_MANUFACTURINGORDER",
"I_MATERIAL",
"I_MATERIALDOCUMENTRECORD",
"I_PROJECTBASICDATA",
"I_PURCHASEORDER",
"I_WBSELEMENTBASICDATA"
],
"ASSOCIATED":
[
"I_CURRENCY",
"I_UNITOFMEASURE"
],
"BASE":
[
"I_MATERIALDOCUMENTRECORD"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/