P_PurContractPriceVariance2

DDL: P_PURCONTRACTPRICEVARIANCE2 SQL: PMMPCPRCVAR2 Type: view CONSUMPTION

P_PurContractPriceVariance2 is a Consumption CDS View in SAP S/4HANA. It reads from 4 data sources (I_CalendarDate, P_PurchaseContractTargetAmount, P_PurContractPriceVariance1, I_PurchaseContractHistory) and exposes 22 fields with key fields PurchaseContract, PurchaseContractItem, ChangeDocument.

Data Sources (4)

SourceAliasJoin Type
I_CalendarDate CalendarDate left_outer
P_PurchaseContractTargetAmount P_PurchaseContractTargetAmount left_outer
P_PurContractPriceVariance1 P_PurContractPriceVariance1 from
I_PurchaseContractHistory ReleaseHistory left_outer

Parameters (4)

NameTypeDefault
P_DisplayCurrency displaycurrency
P_Material matnr
P_StartDate vdm_validitystart
P_EndDate vdm_validityend

Annotations (6)

NameValueLevelField
AbapCatalog.sqlViewName PMMPCPRCVAR2 view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
VDM.viewType #CONSUMPTION view
VDM.private true view
AccessControl.personalData.blocking #NOT_REQUIRED view

Fields (22)

KeyFieldSource TableSource FieldDescription
KEY PurchaseContract PriceChange PurchaseContract
KEY PurchaseContractItem PriceChange PurchaseContractItem
KEY ChangeDocument ChangeDocument
PurchasingOrganization PriceChange PurchasingOrganization
PurchasingGroup PriceChange PurchasingGroup
Supplier PriceChange Supplier
CompanyCode PriceChange CompanyCode
Material Material
MaterialGroup MaterialGroup
Plant PriceChange Plant
PurchasingCategory PurchasingCategory
PurchaseContractTargetAmount PurchaseContractTargetAmount
CreationDate PriceChange CreationDate
NumberOfChanges NumberOfChanges
NumberOfPriceChanges NumberOfPriceChanges
TotalNumberOfChanges TotalNumberOfChanges
OrderQuantityUnit OrderQuantityUnit
TargetQuantity TargetQuantity
DocumentChangeDate DocumentChangeDate
QuantityInBaseUnit QuantityInBaseUnit
NetPriceQuantity NetPriceQuantity
OrderPriceUnit OrderPriceUnit
@AbapCatalog.sqlViewName: 'PMMPCPRCVAR2'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@VDM.viewType : #CONSUMPTION
@VDM.private: true
@AccessControl.personalData.blocking: #NOT_REQUIRED
@AbapCatalog.viewEnhancementCategory: [#PROJECTION_LIST,#GROUP_BY] // Added for extensibility


define view P_PurContractPriceVariance2
  with parameters
    P_DisplayCurrency : displaycurrency,
    P_Material        : matnr,
    P_StartDate       : vdm_validitystart,
    P_EndDate         : vdm_validityend
    
    
  as select from    P_PurContractPriceVariance1( P_Material : $parameters.P_Material, P_StartDate: $parameters.P_StartDate,
                                                         P_EndDate: $parameters.P_EndDate )     as PriceChange

    left outer join P_PurchaseContractTargetAmount ( P_DisplayCurrency : $parameters.P_DisplayCurrency,
                                                     P_Material : $parameters.P_Material , P_StartDate: $parameters.P_StartDate,
                                                         P_EndDate: $parameters.P_EndDate  ) as PurchaseContract on PriceChange.PurchaseContract = PurchaseContract.PurchaseContract
    left outer join I_PurchaseContractHistory                                               as ReleaseHistory   on  PriceChange.PurchaseContract     = ReleaseHistory.PurchaseContract
                                                                                                                and PriceChange.PurchaseContractItem = ReleaseHistory.PurchaseContractItem

    left outer join I_CalendarDate                                                          as CalendarDate     on PriceChange.DocumentChangeDate = CalendarDate.CalendarDate


{
  key PriceChange.PurchaseContract,
  key PriceChange.PurchaseContractItem,
  key ChangeDocument,

      PriceChange.PurchasingOrganization,
      PriceChange.PurchasingGroup,
      PriceChange.Supplier,
      PriceChange.CompanyCode,

      Material,
      MaterialGroup,
      PriceChange.Plant,
      PurchasingCategory,

      //cast(cast(PurchaseContractTargetAmount as abap.curr( 15, 2 )) as mm_a_target_amount) as PurchaseContractTargetAmount,

      PurchaseContractTargetAmount,
      case when  IsDocumentChanged = 'X'and NumberOfChanges = 0
              then PriceChange.DocumentCurrency
           else Currency end as Currency,

      PriceChange.CreationDate,
      NumberOfChanges,
      NumberOfPriceChanges,
      TotalNumberOfChanges,
      OrderQuantityUnit,
      TargetQuantity,

      DocumentChangeDate,

      avg( case when DocumentCurrency is not null then
                currency_conversion(
                  amount => ContractNetPriceAmount,
                  source_currency => DocumentCurrency,
                  target_currency => $parameters.P_DisplayCurrency,
                  exchange_rate_date => DocumentChangeDate )
               else 0
          end )              as ContractNetPriceAmount,
          
      sum( case when ReleaseOrderCurrency is not null then
                currency_conversion( amount => ReleaseOrderItemNetAmount,
                  source_currency => ReleaseOrderCurrency,
                  target_currency => $parameters.P_DisplayCurrency,
                  exchange_rate_date => ReleaseOrderDate )
                else 0
      end ) as ReleaseOrderItemNetAmount,
      
      QuantityInBaseUnit,
      NetPriceQuantity,
      OrderPriceUnit

}
group by

  PriceChange.PurchaseContract,
  PriceChange.PurchaseContractItem,
  ChangeDocument,

  PriceChange.PurchasingOrganization,
  PriceChange.PurchasingGroup,
  PriceChange.Supplier,
  PriceChange.CompanyCode,

  Material,
  MaterialGroup,
  PriceChange.Plant,
  PurchasingCategory,
  PurchaseContractTargetAmount,
  IsDocumentChanged,
  PriceChange.CreationDate,
  NumberOfChanges,
  NumberOfPriceChanges,
  TotalNumberOfChanges,
  PriceChange.DocumentCurrency,
  Currency,

  OrderQuantityUnit,
  TargetQuantity,

  DocumentChangeDate,
  QuantityInBaseUnit,
  NetPriceQuantity,
  OrderPriceUnit
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CALENDARDATE",
"I_PURCHASECONTRACTHISTORY",
"P_PURCHASECONTRACTTARGETAMOUNT",
"P_PURCONTRACTPRICEVARIANCE1"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/