C_PurchaseOrderSpend

DDL: C_PURCHASEORDERSPEND Type: view_entity CONSUMPTION Package: ODATA_MM_ANALYTICS

Purchase Order Spend

C_PurchaseOrderSpend is a Consumption CDS View (Cube) that provides data about "Purchase Order Spend" in SAP S/4HANA. It reads from 2 data sources (P_PurOrdItemAcctAssgmt, I_PurchasingCategoryMatlGroup) and exposes 34 fields with key fields PurchaseOrder, PurchaseOrderItem, AccountAssignmentNumber. It has 4 associations to related views. Part of development package ODATA_MM_ANALYTICS.

Data Sources (2)

SourceAliasJoin Type
P_PurOrdItemAcctAssgmt P_PurOrdItemAcctAssgmt from
I_PurchasingCategoryMatlGroup PurchasingCategoryMatlGroup left_outer

Parameters (3)

NameTypeDefault
P_DisplayCurrency displaycurrency
P_StartDate bedat
P_EndDate bedat

Associations (4)

CardinalityTargetAliasCondition
[1..1] P_Purordmaintaincustproj _WBSElement $projection.WBSElementInternalID = _WBSElement.WBSElementInternalID
[1..1] I_PurchasingOrganization _PurchasingOrganization $projection.PurchasingOrganization = _PurchasingOrganization.PurchasingOrganization
[1..1] I_MaterialGroup _MaterialGroup $projection.MaterialGroup = _MaterialGroup.MaterialGroup
[1..1] I_PurchasingDocumentStatus _PurchasingDocumentStatus $projection.PurchasingDocumentStatus = _PurchasingDocumentStatus.PurchasingDocumentStatus

Annotations (11)

NameValueLevelField
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #L view
VDM.viewType #CONSUMPTION view
Analytics.dataCategory #CUBE view
Metadata.allowExtensions true view
Analytics.technicalName CMMPURORDSPND view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
EndUserText.label Purchase Order Spend view
ObjectModel.modelingPattern #ANALYTICAL_CUBE view

Fields (34)

KeyFieldSource TableSource FieldDescription
KEY PurchaseOrder PurchaseOrder PurchaseOrder
KEY PurchaseOrderItem PurchaseOrder PurchaseOrderItem
KEY AccountAssignmentNumber PurchaseOrder AccountAssignmentNumber
PurgCatUUID I_PurchasingCategoryMatlGroup PurgCatUUID
Supplier PurchaseOrder Supplier
SupplierCountry PurchaseOrder SupplierCountry
PurchaseOrderDate PurchaseOrder PurchaseOrderDate
CalendarYear PurchaseOrder CalendarYear
CalendarQuarter PurchaseOrder CalendarQuarter
CalendarMonth PurchaseOrder CalendarMonth
CalendarWeek PurchaseOrder CalendarWeek
YearQuarter PurchaseOrder YearQuarter
PurchasingOrganization PurchaseOrder PurchasingOrganization
CompanyCode PurchaseOrder CompanyCode
PurchasingGroup PurchaseOrder PurchasingGroup
PurchasingDocumentStatus PurchaseOrder PurchasingDocumentStatus
Material PurchaseOrder Material
MaterialGroup PurchaseOrder MaterialGroup
Plant PurchaseOrder Plant
ProductTypeCode PurchaseOrder ProductType
ServicePerformer PurchaseOrder ServicePerformer
PurchasingCategory
PurgCatName
WBSElementInternalID PurchaseOrder WBSElementInternalID
WBSElement PurchaseOrder WBSElement
WBSDescription PurchaseOrder WBSDescription
CustomerProjectName _WBSElement CustomerProjectName
CustProjWorkPackageName _WBSElement CustProjWorkPackageName
CostCenter PurchaseOrder CostCenter
DisplayCurrency
PurOrdNetAmountInDisplayCrcy
_PurchasingOrganization _PurchasingOrganization
_PurchasingDocumentStatus _PurchasingDocumentStatus
_MaterialGroup _MaterialGroup
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #L
@VDM.viewType: #CONSUMPTION
@Analytics.dataCategory: #CUBE
@Metadata.allowExtensions: true
@Analytics.technicalName: 'CMMPURORDSPND'
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@EndUserText.label: 'Purchase Order Spend'
@ObjectModel.supportedCapabilities: [ #ANALYTICAL_PROVIDER  ]
@ObjectModel.modelingPattern: #ANALYTICAL_CUBE
define view entity C_PurchaseOrderSpend

  with parameters

    P_DisplayCurrency : displaycurrency,

    P_StartDate       : bedat,

    P_EndDate         : bedat

  as select from    P_PurOrdItemAcctAssgmt( P_DisplayCurrency: $parameters.P_DisplayCurrency,
                                            P_StartDate : $parameters.P_StartDate,
                                            P_EndDate : $parameters.P_EndDate ) as PurchaseOrder

    left outer join I_PurchasingCategoryMatlGroup                               as PurchasingCategoryMatlGroup on PurchaseOrder.MaterialGroup = PurchasingCategoryMatlGroup.MaterialGroup

  association [1..1] to P_Purordmaintaincustproj   as _WBSElement               on $projection.WBSElementInternalID = _WBSElement.WBSElementInternalID
  association [1..1] to I_PurchasingOrganization   as _PurchasingOrganization   on $projection.PurchasingOrganization = _PurchasingOrganization.PurchasingOrganization
  //association [1..1] to I_Material                 as _MaterialText             on $projection.Material = _MaterialText.Material

  association [1..1] to I_MaterialGroup            as _MaterialGroup            on $projection.MaterialGroup = _MaterialGroup.MaterialGroup
  association [1..1] to I_PurchasingDocumentStatus as _PurchasingDocumentStatus on $projection.PurchasingDocumentStatus = _PurchasingDocumentStatus.PurchasingDocumentStatus

{
      /* Keys */
  key PurchaseOrder.PurchaseOrder,
  key PurchaseOrder.PurchaseOrderItem,
  key PurchaseOrder.AccountAssignmentNumber,

      PurchasingCategoryMatlGroup.PurgCatUUID,
      //@Analytics.internalName: #LOCAL

      //@ObjectModel.foreignKey.association: '_Supplier'

      PurchaseOrder.Supplier,
      //@Analytics.internalName: #LOCAL

      //@ObjectModel.foreignKey.association: '_Country'

      PurchaseOrder.SupplierCountry,

      /* Order Date */

      PurchaseOrder.PurchaseOrderDate,
      @Semantics.calendar.year: true
      PurchaseOrder.CalendarYear,
      PurchaseOrder.CalendarQuarter,
      PurchaseOrder.CalendarMonth,
      PurchaseOrder.CalendarWeek,
      PurchaseOrder.YearQuarter,

      /* Header */
      @Analytics.internalName: #LOCAL
      @ObjectModel.foreignKey.association: '_PurchasingOrganization'
      PurchaseOrder.PurchasingOrganization,
      PurchaseOrder.CompanyCode,

      //@Analytics.internalName: #LOCAL

      //@ObjectModel.foreignKey.association: '_PurchasingGroup'

      PurchaseOrder.PurchasingGroup,
      @Analytics.internalName: #LOCAL
      @ObjectModel.foreignKey.association: '_PurchasingDocumentStatus'
      PurchaseOrder.PurchasingDocumentStatus,

      /* Item Data */
      //@Analytics.internalName: #LOCAL

      //@ObjectModel.foreignKey.association: '_MaterialText'

      PurchaseOrder.Material,
      @Analytics.internalName: #LOCAL
      @ObjectModel.foreignKey.association: '_MaterialGroup'
      PurchaseOrder.MaterialGroup,
      //@Analytics.internalName: #LOCAL

      //@ObjectModel.foreignKey.association: '_Plant'

      PurchaseOrder.Plant,

      PurchaseOrder.ProductType                                           as ProductTypeCode,

      PurchaseOrder.ServicePerformer,

      PurchasingCategoryMatlGroup._PurchasingCategory.PurchasingCategory  as PurchasingCategory,
      PurchasingCategoryMatlGroup._PurchasingCategory.PurgCatName         as PurgCatName,

      PurchaseOrder.WBSElementInternalID,
      PurchaseOrder.WBSElement,
      PurchaseOrder.WBSDescription,
      _WBSElement.CustomerProjectName,
      _WBSElement.CustProjWorkPackageName,

      PurchaseOrder.CostCenter,

      cast( $parameters.P_DisplayCurrency as displaycurrency )            as DisplayCurrency,

      /* Order Amount*/
      @Semantics.amount.currencyCode: 'DisplayCurrency'
      @DefaultAggregation: #SUM
      cast(PurchaseOrder.PurOrdNetAmountInDisplayCrcy as abap.curr(21,2)) as PurOrdNetAmountInDisplayCrcy,

      _PurchasingOrganization,
      _PurchasingDocumentStatus,
      _MaterialGroup
}