I_PREPAYMENTDOCFIXEDVALDATA
PPMT Document Fixed pricing data
I_PREPAYMENTDOCFIXEDVALDATA is a CDS View in S/4HANA. PPMT Document Fixed pricing data. It contains 13 fields. 2 CDS views read from this table.
CDS Views using this table (2)
| View | Type | Join | VDM | Description |
|---|---|---|---|---|
| I_PrepaymentDocumentMarketData | view_entity | from | COMPOSITE | Market Value for the Prepayment Document |
| P_PrepaymentDocumentFixedVal | view | inner | COMPOSITE | Document Fixed Pricing |
Fields (13)
| Key | Field | CDS Fields | Used in Views |
|---|---|---|---|
| KEY | DocItemCommodityPricingUUID | DocItemCommodityPricingUUID | 1 |
| KEY | PrepaymentRefDocCondition | PrepaymentRefDocCondition | 1 |
| KEY | PrepaymentRefDocConditionItem | PrepaymentRefDocConditionItem | 1 |
| CompanyCode | CompanyCode | 1 | |
| ConditionTermRateCurrency | ConditionTermRateCurrency | 1 | |
| Counterparty | Counterparty | 1 | |
| PrcgCndnTermFixationOptnStatus | PrcgCndnTermFixationOptnStatus | 1 | |
| PrepaymentDocCmmdtyMktQtyUnit | PrepaymentDocCmmdtyMktQtyUnit | 1 | |
| PrepaymentRefDocFixedPriceCrcy | PrepaymentRefDocFixedPriceCrcy | 2 | |
| PrepaymentRefDocMarketPrcCrcy | PrepaymentRefDocMarketPrcCrcy | 1 | |
| PrepaymentTotalAmtIsFixedPrice | PrepaymentTotalAmtIsFixedPrice | 1 | |
| PrepaymentWrkCtrDocPricingOptn | PrepaymentWrkCtrDocPricingOptn | 2 | |
| TradingContract | TradingContract | 1 |
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'PPMT Document Fixed pricing data'
@Metadata.ignorePropagatedAnnotations: true
@VDM.viewType : #COMPOSITE
@ObjectModel.usageType:{
serviceQuality: #D,
sizeCategory: #L,
dataClass: #MIXED
}
-------------------------------------------------------------------------------------------------------
-- This view will Identify Fixed Prices, Market Quantity and Market Unit Prices based on document data
-- Fixed Price : When Fixed rate is maintained in document for quantity
-- Market Quantity : The quantity for which no price fixation is maintained
-- Market Unit Price: From Quotation tables, using DCSIS + MIC + Key Date + Basis ID + End Date
-- DCSID & MIC will be derrived from Formula Key and Condition Type
-- Market Unit Price will be converted to Document Item currency, if in different currency
-- If Fixed rate is available, that will be used, other standard currency conversion
-------------------------------------------------------------------------------------------------------
define view entity I_PrepaymentDocFixedValData
as select from I_PpaytDocCmmdtyPrcVal as CPEPricingVal
association [0..1] to I_PpaytDocFutureMktData as _FQuotationPrice on _FQuotationPrice.DerivativeContrSpecification = CPEPricingVal.DerivativeContrSpecification
and _FQuotationPrice.MarketIdentifierCode = CPEPricingVal.MarketIdentifierCode
and _FQuotationPrice.MaturityKeyDate = CPEPricingVal.MaturityKeyDate
and _FQuotationPrice.QuotationPriceType = CPEPricingVal.QuotationPriceType
association [0..1] to I_PpaytDocBasisMktData as _BQuotationPrice on _BQuotationPrice.DerivativeContrSpecification = CPEPricingVal.DerivativeContrSpecification
and _BQuotationPrice.MarketIdentifierCode = CPEPricingVal.MarketIdentifierCode
and _BQuotationPrice.BasisID = CPEPricingVal.BasisID
and _BQuotationPrice.BasisType = CPEPricingVal.BasisType
and _BQuotationPrice.BasisID is not initial
and _BQuotationPrice.QuotationPriceType = CPEPricingVal.QuotationPriceType
association [0..1] to I_PpaytDocSecBasisMktData as _SBQuotationPrice on _SBQuotationPrice.BasisID = CPEPricingVal.BasisID
and _SBQuotationPrice.BasisID is not initial
and _SBQuotationPrice.BasisType = CPEPricingVal.BasisType
and _SBQuotationPrice.QuotationPriceType = CPEPricingVal.QuotationPriceType
{
key CPEPricingVal.TradingContract,
key CPEPricingVal.PrepaymentRefDocCondition,
key CPEPricingVal.PrepaymentRefDocConditionItem,
key CPEPricingVal.DocItemCommodityPricingUUID,
key CPEPricingVal.ConditionType,
CPEPricingVal.CompanyCode,
CPEPricingVal.Counterparty,
CPEPricingVal.CalculationPeriodEndDate,
CPEPricingVal.MaturityKeyDate,
CPEPricingVal.DerivativeContrSpecification,
CPEPricingVal.MarketIdentifierCode,
CPEPricingVal.BasisType,
CPEPricingVal.BasisID,
-- ACMPrcgCndnTermInputPrice: Fixed Price maintained in Document, in Document Currency
@Semantics.amount.currencyCode: 'PrepaymentRefDocFixedPriceCrcy'
case when CPEPricingVal.ACMPrcgCndnTermInputPrice is not initial
then CPEPricingVal.PrepaymentRefDocFixedPrice
else cast( 0 as abap.curr(15,2) ) end as PrepaymentRefDocFixedPrice,
CPEPricingVal.PrepaymentRefDocFixedPriceCrcy,
CPEPricingVal.PrcgCndnTermFixationOptnStatus,
-- ConditionTermExtensionUsage: A = Reminder Unpriced Quantity (NPE)
-- B = Fixed Pricing Quantity (FLAT/NFE/NBE)
CPEPricingVal.ConditionTermExtensionUsage as ConditionTermExtensionUsage,
-- PrcgCndnTermFixationOptnStatus: A = No Pricing for this Item
-- B = Partial Pricing for this Item
-- C = Full Pricing for this Item
@Semantics.quantity.unitOfMeasure: 'PrepaymentDocCmmdtyMktQtyUnit'
case when ( CPEPricingVal.PrcgCndnTermFixationOptnStatus = 'B'
and ( ( CPEPricingVal.ACMPrcgCndnTermInputPrice is initial
and $projection.ConditionTermExtensionUsage = 'B' )
or ( $projection.ConditionTermExtensionUsage = 'A' ) ) )
or
( CPEPricingVal.PrcgCndnTermFixationOptnStatus = 'C' and
$projection.ConditionTermExtensionUsage = 'B' and
CPEPricingVal.ConditionTermStatus <> '01' )
then CPEPricingVal.CalcdPrcgConditionTermQuantity
when CPEPricingVal.PrcgCndnTermFixationOptnStatus = 'A'
then CPEPricingVal.CndnTrmFixationOptnNonFixedQty
else cast( 0 as abap.quan(15,3) ) end as PrepaymentDocCmmdtyMarketQty,
CPEPricingVal.PrcgCndnFmlaCmmdtyQuantityUnit as PrepaymentDocCmmdtyMktQtyUnit,
-- Market Price/Quotation Price from Quotation tables
@Semantics.amount.currencyCode: 'PrepaymentRefDocMarketPrcCrcy'
case when _FQuotationPrice.PrepaymentRefDocFuturePrice is not initial
then _FQuotationPrice.PrepaymentRefDocFuturePrice
when _BQuotationPrice.PrepaymentRefDocBasisPrice is not initial
then _BQuotationPrice.PrepaymentRefDocBasisPrice
when _SBQuotationPrice.PrepaymentRefDocSecBsPrice is not initial
then _SBQuotationPrice.PrepaymentRefDocSecBsPrice
else cast( 0 as abap.curr(15,2) ) end as PrepaymentRefDocMarketPrice,
case when _FQuotationPrice.PrepaymentRefDocFuturePrcCrcy is not initial
then _FQuotationPrice.PrepaymentRefDocFuturePrcCrcy
when _BQuotationPrice.PrepaymentRefDocBasisPrcCrcy is not initial
then _BQuotationPrice.PrepaymentRefDocBasisPrcCrcy
when _SBQuotationPrice.PrepaymentRefDocSecBsPrcCrcy is not initial
then _SBQuotationPrice.PrepaymentRefDocSecBsPrcCrcy
else cast('' as abap.cuky(5) ) end as PrepaymentRefDocMarketPrcCrcy,
-- Exchange rates between currencies
CPEPricingVal.PrcgCndnTermCnvrsnFxdExchRate,
CPEPricingVal.PrcgCndnTermCnvrsnSourceCrcy,
CPEPricingVal.PrcgCndnTermCnvrsnTargetCrcy,
-- Market Price/Quotation Price from Quotation tables: Future
@Semantics.amount.currencyCode: 'PrepaymentRefDocFixedPriceCrcy'
cast(cast( case when _FQuotationPrice.PrepaymentRefDocFuturePrice is not initial and
_FQuotationPrice.PrepaymentRefDocFuturePrcCrcy = $projection.prepaymentrefdocfixedpricecrcy
then curr_to_decfloat_amount(_FQuotationPrice.PrepaymentRefDocFuturePrice)
when _FQuotationPrice.PrepaymentRefDocFuturePrice is not initial and
_FQuotationPrice.PrepaymentRefDocFuturePrcCrcy = $projection.prcgcndntermcnvrsnsourcecrcy and
$projection.prepaymentrefdocfixedpricecrcy = $projection.prcgcndntermcnvrsntargetcrcy
then curr_to_decfloat_amount(_FQuotationPrice.PrepaymentRefDocFuturePrice) * $projection.prcgcndntermcnvrsnfxdexchrate
when _FQuotationPrice.PrepaymentRefDocFuturePrice is not initial and
( _FQuotationPrice.PrepaymentRefDocFuturePrcCrcy <> $projection.prcgcndntermcnvrsnsourcecrcy or
$projection.prepaymentrefdocfixedpricecrcy <> $projection.prcgcndntermcnvrsntargetcrcy )
then currency_conversion( amount => curr_to_decfloat_amount(_FQuotationPrice.PrepaymentRefDocFuturePrice),
source_currency => _FQuotationPrice.PrepaymentRefDocFuturePrcCrcy,
target_currency => $projection.prepaymentrefdocfixedpricecrcy,
exchange_rate_date => $projection.maturitykeydate,
error_handling => 'SET_TO_NULL' )
else 0 end as abap.dec(15,2)) as abap.curr(15,2) ) as PrepaymentRefDocFuturePrice,
-- Market Price/Quotation Price from Quotation tables: Basis
@Semantics.amount.currencyCode: 'PrepaymentRefDocFixedPriceCrcy'
cast(cast( case when _BQuotationPrice.PrepaymentRefDocBasisPrice is not initial and
_BQuotationPrice.PrepaymentRefDocBasisPrcCrcy = $projection.prepaymentrefdocfixedpricecrcy
then curr_to_decfloat_amount(_BQuotationPrice.PrepaymentRefDocBasisPrice)
when _BQuotationPrice.PrepaymentRefDocBasisPrice is not initial and
_BQuotationPrice.PrepaymentRefDocBasisPrcCrcy = $projection.prcgcndntermcnvrsnsourcecrcy and
$projection.prepaymentrefdocfixedpricecrcy = $projection.prcgcndntermcnvrsntargetcrcy
then curr_to_decfloat_amount(_BQuotationPrice.PrepaymentRefDocBasisPrice) * $projection.prcgcndntermcnvrsnfxdexchrate
when _BQuotationPrice.PrepaymentRefDocBasisPrice is not initial and
( _BQuotationPrice.PrepaymentRefDocBasisPrcCrcy <> $projection.prcgcndntermcnvrsnsourcecrcy or
$projection.prepaymentrefdocfixedpricecrcy <> $projection.prcgcndntermcnvrsntargetcrcy )
then currency_conversion( amount => curr_to_decfloat_amount(_BQuotationPrice.PrepaymentRefDocBasisPrice),
source_currency => _BQuotationPrice.PrepaymentRefDocBasisPrcCrcy,
target_currency => $projection.prepaymentrefdocfixedpricecrcy,
exchange_rate_date => $projection.calculationperiodenddate,
error_handling => 'SET_TO_NULL' )
when _SBQuotationPrice.PrepaymentRefDocSecBsPrice is not initial and
_SBQuotationPrice.PrepaymentRefDocSecBsPrcCrcy = $projection.prepaymentrefdocfixedpricecrcy
then curr_to_decfloat_amount(_SBQuotationPrice.PrepaymentRefDocSecBsPrice)
when _SBQuotationPrice.PrepaymentRefDocSecBsPrice is not initial and
_SBQuotationPrice.PrepaymentRefDocSecBsPrcCrcy = $projection.prcgcndntermcnvrsnsourcecrcy and
$projection.prepaymentrefdocfixedpricecrcy = $projection.prcgcndntermcnvrsntargetcrcy
then curr_to_decfloat_amount(_SBQuotationPrice.PrepaymentRefDocSecBsPrice) * $projection.prcgcndntermcnvrsnfxdexchrate
when _SBQuotationPrice.PrepaymentRefDocSecBsPrice is not initial and
( _SBQuotationPrice.PrepaymentRefDocSecBsPrcCrcy <> $projection.prcgcndntermcnvrsnsourcecrcy or
$projection.prepaymentrefdocfixedpricecrcy <> $projection.prcgcndntermcnvrsntargetcrcy )
then currency_conversion( amount => curr_to_decfloat_amount(_SBQuotationPrice.PrepaymentRefDocSecBsPrice),
source_currency => _SBQuotationPrice.PrepaymentRefDocSecBsPrcCrcy,
target_currency => $projection.prepaymentrefdocfixedpricecrcy,
exchange_rate_date => $projection.calculationperiodenddate,
error_handling => 'SET_TO_NULL' )
else 0 end as abap.dec(15,2)) as abap.curr(15,2) ) as PrepaymentRefDocBasisPrice,
-- Market Price/Quotation Price from CPE tables, uncoverted
@Semantics.amount.currencyCode: 'ConditionTermRateCurrency'
CPEPricingVal.ConditionTermRate,
CPEPricingVal.ConditionTermRateCurrency,
-- Market Price/Quotation Price from CPE tables, in document currency
@Semantics.amount.currencyCode: 'PrepaymentRefDocFixedPriceCrcy'
cast( cast( case when CPEPricingVal.ConditionTermRateCurrency is not initial and
$projection.prepaymentrefdocfixedpricecrcy = CPEPricingVal.ConditionTermRateCurrency
then curr_to_decfloat_amount(CPEPricingVal.ConditionTermRate)
when CPEPricingVal.ConditionTermRateCurrency is not initial and
$projection.prepaymentrefdocfixedpricecrcy <> CPEPricingVal.ConditionTermRateCurrency
then round( (curr_to_decfloat_amount(CPEPricingVal.ConditionTermRate) * $projection.prcgcndntermcnvrsnfxdexchrate), 3)
else 0 end as abap.dec(15,2)) as abap.curr(15,2) ) as PrcgConditionTermPrice,
-- MTMCalculationGroup: B = Basis, F = Future
CPEPricingVal.MTMCalculationGroup as MTMCalculationGroup,
cast( case when CPEPricingVal.PrcgCndnTermFixationOptnStatus = 'C'
then 'X'
else '' end as boole_d ) as PrepaymentTotalAmtIsFixedPrice,
CPEPricingVal.PrepaymentWrkCtrDocPricingOptn
}