P_PurchasingSpndComparison2

DDL: P_PURCHASINGSPNDCOMPARISON2 SQL: PMMPURSPNDCOMP2 Type: view CONSUMPTION Package: ODATA_MM_ANALYTICS

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)

SourceAliasJoin Type
I_PurgDocAccountAssignment AccountAssignment left_outer
P_PurchasingSpndComparison1 P_PurchasingSpndComparison1 from

Parameters (3)

NameTypeDefault
P_DisplayCurrency displaycurrency
P_StartDate bedat
P_EndDate bedat

Annotations (8)

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

KeyFieldSource TableSource FieldDescription
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


     
}