P_PurchasingSpndComparison2
Purchasing Spend Comparison 2
P_PurchasingSpndComparison2 is a Consumption CDS View that provides data about "Purchasing Spend Comparison 2" in SAP S/4HANA. It reads from 2 data sources (I_PurgDocAccountAssignment, P_PurchasingSpndComparison1) and exposes 24 fields with key fields PurchaseOrder, PurchaseOrderItem, AccountAssignmentNumber. Part of development package ODATA_MM_ANALYTICS.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_PurgDocAccountAssignment | AccountAssignment | left_outer |
| P_PurchasingSpndComparison1 | P_PurchasingSpndComparison1 | from |
Parameters (3)
| Name | Type | Default |
|---|---|---|
| P_DisplayCurrency | displaycurrency | |
| P_StartDate | bedat | |
| P_EndDate | bedat |
Annotations (8)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | PMMPURSPNDCOMP2 | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| VDM.viewType | #CONSUMPTION | view | |
| VDM.private | true | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| EndUserText.label | Purchasing Spend Comparison 2 | view |
Fields (24)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | PurchaseOrder | PurchaseOrder | ||
| KEY | PurchaseOrderItem | PurchaseOrderItem | ||
| KEY | AccountAssignmentNumber | I_PurgDocAccountAssignment | AccountAssignmentNumber | |
| Supplier | Supplier | |||
| PurchasingOrganization | PurchasingOrganization | |||
| PurchasingGroup | PurchasingGroup | |||
| PurgDocHdrCompanyCode | PurgDocHdrCompanyCode | |||
| CompanyCode | CompanyCode | |||
| PurchaseOrderType | PurchaseOrderType | |||
| PurchaseOrderDate | PurchaseOrderDate | |||
| Currency | Currency | |||
| MaterialGroup | MaterialGroup | |||
| Material | Material | |||
| Plant | Plant | |||
| PurchaseOrderItemCategory | PurchaseOrderItemCategory | |||
| PurchaseOrderCategory | PurchaseOrderCategory | |||
| ProductType | ProductType | |||
| ServicePerformer | ServicePerformer | |||
| ReturnItems | ReturnItems | |||
| MultipleAcctAssgmtDistribution | MultipleAcctAssgmtDistribution | |||
| AccountAssignmentCategory | AccountAssignmentCategory | |||
| CostCenter | I_PurgDocAccountAssignment | CostCenter | ||
| WBSElementInternalID | I_PurgDocAccountAssignment | WBSElementInternalID | ||
| DisplayCurrency |
@AbapCatalog.sqlViewName: 'PMMPURSPNDCOMP2'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@VDM.viewType : #CONSUMPTION
@VDM.private: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Purchasing Spend Comparison 2'
define view P_PurchasingSpndComparison2
with parameters
P_DisplayCurrency : displaycurrency,
P_StartDate : bedat,
P_EndDate : bedat
as select from P_PurchasingSpndComparison1 ( P_DisplayCurrency: $parameters.P_DisplayCurrency,
P_StartDate : $parameters.P_StartDate,
P_EndDate : $parameters.P_EndDate ) as PurchaseOrderItem
left outer join I_PurgDocAccountAssignment as AccountAssignment on PurchaseOrderItem.PurchaseOrder = AccountAssignment.PurchasingDocument
and PurchaseOrderItem.PurchaseOrderItem = AccountAssignment.PurchasingDocumentItem
{
key PurchaseOrder,
key PurchaseOrderItem,
key AccountAssignment.AccountAssignmentNumber,
Supplier,
PurchasingOrganization,
PurchasingGroup,
PurgDocHdrCompanyCode,
CompanyCode,
PurchaseOrderType,
PurchaseOrderDate,
Currency,
MaterialGroup,
Material,
Plant,
PurchaseOrderItemCategory,
PurchaseOrderCategory,
ProductType as ProductType,
ServicePerformer as ServicePerformer,
ReturnItems,
MultipleAcctAssgmtDistribution,
AccountAssignmentCategory,
AccountAssignment.CostCenter,
AccountAssignment.WBSElementInternalID,
@Semantics.currencyCode:true
cast( :P_DisplayCurrency as displaycurrency ) as DisplayCurrency,
@Semantics.amount.currencyCode: 'DisplayCurrency'
@DefaultAggregation:#SUM
cast( case PurchaseOrderItem.MultipleAcctAssgmtDistribution
when '' // Single or no Accounnt Assignment
then PurchaseOrderAmount
else currency_conversion(
amount => PurgDocNetAmount,
source_currency => PurchaseOrderItem.DocumentCurrency,
target_currency => :P_DisplayCurrency,
exchange_rate_date => PurchaseOrderDate,
exchange_rate_type => 'M',
error_handling => 'FAIL_ON_ERROR' )
end as purchase_order_net_amount ) as PurOrdNetAmountInDisplayCrcy
// cast( case PurchaseOrderItem.MultipleAcctAssgmtDistribution
// when '1' // Quantity based distribution
// then NetPrice * AccountAssignment.Quantity
//
//
// when '2' // Percentage based distribution
// then PurchaseOrderAmount * DIVISION( AccountAssignment.MultipleAcctAssgmtDistrPercent , 100, 3 )
// when '3' // Amount based distribution
// then currency_conversion(
// amount => PurgDocNetAmount,
// source_currency => PurchaseOrderItem.DocumentCurrency,
// target_currency => :P_DisplayCurrency,
// exchange_rate_date => PurchaseOrderDate,
// exchange_rate_type => 'M',
// error_handling => 'FAIL_ON_ERROR'
// )
// else // Single Cost Center Assignment or Account assigment category not a 'Cost Center' type
// PurchaseOrderAmount
// end as purchase_order_net_amount ) as PurOrdNetAmountInDisplayCrcy
}
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA