P_Vlogp_PositionRep
P_Vlogp_PositionRep is a Composite CDS View in SAP S/4HANA. It reads from 2 data sources (I_TimeToMaturity, I_VersionedLogisticDocument) and exposes 141 fields with key fields PricingKey, Version, PricingDocumentItem, ConditionType, SubConditionType.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_TimeToMaturity | _TimeToMaturity | left_outer |
| I_VersionedLogisticDocument | vlogp | from |
Parameters (4)
| Name | Type | Default |
|---|---|---|
| P_MTMDataSelectionType | cmm_vlogp_consumptiontype | |
| P_DisplayView | cds_view_uom | |
| P_EndOfDaySnapshotFromDate | cmm_dend_cutdate | |
| P_EndOfDaySnapshotToDate | cmm_dend_cutdate |
Annotations (10)
| Name | Value | Level | Field |
|---|---|---|---|
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AccessControl.authorizationCheck | #NOT_REQUIRED | view | |
| AbapCatalog.sqlViewName | PVLOGPPOSR | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.private | true | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| AbapCatalog.preserveKey | true | view |
Fields (141)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | PricingKey | PricingKey | ||
| KEY | Version | Version | ||
| KEY | PricingDocumentItem | PricingDocumentItem | ||
| KEY | ConditionType | ConditionType | ||
| KEY | SubConditionType | SubConditionType | ||
| ValidityStartDate | ValidityStartDate | |||
| ValidityStartDateTime | ValidityStartDateTime | |||
| ValidityEndDate | ValidityEndDate | |||
| ValidityEndDateTime | ValidityEndDateTime | |||
| SourceTransactionEventDateTime | SourceTransactionEventDateTime | |||
| SourceTransacEventEndDateTime | SourceTransacEventEndDateTime | |||
| EndOfDayBusinessEntityKey | EndOfDayBusinessEntityKey | |||
| MarketNormBusinessEntityKey | MarketNormBusinessEntityKey | |||
| DeliveryPeriodStartDate | DeliveryPeriodStartDate | |||
| DeliveryPeriodEndDate | DeliveryPeriodEndDate | |||
| SpreadBusinessEntityKey | SpreadBusinessEntityKey | |||
| MaximumVersion | MaximumVersion | |||
| PreviousVersion | PreviousVersion | |||
| EndOfDaySnapshotFromDate | ||||
| EndOfDaySnapshotToDate | ||||
| DisplayView | ||||
| BusinessDocumentCompanyCode | ||||
| SalesOrganization | SalesOrganization | |||
| DistributionChannel | DistributionChannel | |||
| Division | Division | |||
| Creditor | Creditor | |||
| SoldToParty | SoldToParty | |||
| Material | Material | |||
| PhysicalCommodity | PhysicalCommodity | |||
| Plant | Plant | |||
| StorageLocation | StorageLocation | |||
| Batch | Batch | |||
| IncotermsClassification | IncotermsClassification | |||
| IncotermsTransferLocation | IncotermsTransferLocation | |||
| ConditionApplication | ConditionApplication | |||
| SourceDocument | SourceDocument | |||
| SourceDocumentBusObjType | ||||
| OriginReferenceDocument | OriginReferenceDocument | |||
| OriginReferenceDocumentItem | OriginReferenceDocumentItem | |||
| OriginReferenceDocBusObjType | ||||
| ReferenceDocument | ReferenceDocument | |||
| ReferenceDocumentItem | ReferenceDocumentItem | |||
| ReferenceDocBusObjType | ||||
| DeliveryDate | DeliveryDate | |||
| ExpectedPaymentDate | ExpectedPaymentDate | |||
| StatisticsCurrency | StatisticsCurrency | |||
| DocumentCurrency | DocumentCurrency | |||
| ProfitCenter | ProfitCenter | |||
| BusinessArea | BusinessArea | |||
| PurchasingOrganization | PurchasingOrganization | |||
| MaterialGroup | MaterialGroup | |||
| IsIntercompanyTransfer | IsIntercompanyTransfer | |||
| PricingConditionCalculationType | ||||
| ConditionRate | ConditionRate | |||
| ConditionCurrency | ConditionCurrency | |||
| ConditionQuantity | ConditionQuantity | |||
| ConditionQuantityUnit | ConditionQuantityUnit | |||
| CommodityPricingEngineQuotationPriceType | ||||
| ConditionTermRate | ConditionTermRate | |||
| ConditionTermRateCurrency | ConditionTermRateCurrency | |||
| ConditionTermRateQuantity | ConditionTermRateQuantity | |||
| ConditionTermRateQuantityUnit | ConditionTermRateQuantityUnit | |||
| ConditionTermValue | ConditionTermValue | |||
| ConditionTermValueCurrency | ConditionTermValueCurrency | |||
| ConditionTermRateMktCurrency | ConditionTermRateMktCurrency | |||
| ConditionTermName | ConditionTermName | |||
| ConditionTermStatus | ConditionTermStatus | |||
| RoundingDecimalPlaces | RoundingDecimalPlaces | |||
| ConditionTermRateIsRounded | ConditionTermRateIsRounded | |||
| ConditionTermRateNmrtr | ConditionTermRateNmrtr | |||
| ConditionTermRateDnmntr | ConditionTermRateDnmntr | |||
| ConditionTermExtensionUsage | ConditionTermExtensionUsage | |||
| CmmdtyForwardIndexTiming | CmmdtyForwardIndexTiming | |||
| QuotationPeriodReferenceDate | QuotationPeriodReferenceDate | |||
| CommodityCurve | CommodityCurve | |||
| QuotationsCommodityCurveQuotationKeyType | ||||
| QuotationDateList | QuotationDateList | |||
| FutureRefQuotationDateList | FutureRefQuotationDateList | |||
| QuotationPeriodStartDate | QuotationPeriodStartDate | |||
| QuotationPeriodEndDate | QuotationPeriodEndDate | |||
| FixedtermsmaystillrefertoDCS | ||||
| DerivativeContrSpecification | ||||
| MarketIdentifierCode | MarketIdentifierCode | |||
| FutureRefMarketIdentifierCode | FutureRefMarketIdentifierCode | |||
| MaturityKeyDate | MaturityKeyDate | |||
| BasisID | BasisID | |||
| BasisType | BasisType | |||
| QuotationGroup | QuotationGroup | |||
| QuotationGroupCalculationRule | QuotationGroupCalculationRule | |||
| PriceIsRealized | PriceIsRealized | |||
| ConditionTermRateFixation | ConditionTermRateFixation | |||
| PricingStatus | PricingStatus | |||
| CndnTermRateFixationDate | CndnTermRateFixationDate | |||
| CndnTermRateFixationTime | CndnTermRateFixationTime | |||
| CndnTermExchRateFixationDate | CndnTermExchRateFixationDate | |||
| CndnTermExchRateFixationTime | CndnTermExchRateFixationTime | |||
| FixedExchRateDate | FixedExchRateDate | |||
| ExchRateMaturityDate | ExchRateMaturityDate | |||
| MaturitySelectionRoutine | I_VersionedLogisticDocument | MaturitySelectionRoutine | ||
| DCSPeriodType | DCSPeriodType | |||
| MiscellanousfieldsCommodityQuantity | ||||
| CommodityUnit | CommodityUnit | |||
| CmmdtyPriceExpsrQtyInMassUnit | CmmdtyPriceExpsrQtyInMassUnit | |||
| CmmdtyPriceExpsrMassUnit | CmmdtyPriceExpsrMassUnit | |||
| CmmdtyPriceExpsrQtyInVolUnit | CmmdtyPriceExpsrQtyInVolUnit | |||
| CmmdtyPriceExpsrVolumeUnit | CmmdtyPriceExpsrVolumeUnit | |||
| DCSReportingDate | DCSReportingDate | |||
| QuantitySign | QuantitySign | |||
| MTMConditionGroup | MTMConditionGroup | |||
| MTMCalculationGroup | MTMCalculationGroup | |||
| MTMAdjustmentType | MTMAdjustmentType | |||
| MTMCalcGrpMarketPriceCondition | MTMCalcGrpMarketPriceCondition | |||
| ConditionTermRateIsFixed | ConditionTermRateIsFixed | |||
| ConditionTermExchRateIsFixed | ConditionTermExchRateIsFixed | |||
| CommodityQuantityInTermUnit | CommodityQuantityInTermUnit | |||
| OldMarketNormMaturityKeyDate | OldMarketNormMaturityKeyDate | |||
| NewMarketNormMaturityKeyDate | NewMarketNormMaturityKeyDate | |||
| FixedSpreadIsInverted | FixedSpreadIsInverted | |||
| PositionReportsMTMConditionGroupCategory | ||||
| MTMDataSourceType | MTMDataSourceType | |||
| ConditionTermFactorNumerator | ConditionTermFactorNumerator | |||
| ConditionTermFactorDenominator | ConditionTermFactorDenominator | |||
| ContrPriceExposureIsExecuted | ContrPriceExposureIsExecuted | |||
| CommodityPriceFixationStatus | CommodityPriceFixationStatus | |||
| ImplicitFixationIsRelevant | ImplicitFixationIsRelevant | |||
| TimeToMaturity | I_VersionedLogisticDocument | TimeToMaturity | ||
| NumberOfYearsOfTimeToMaturity | ||||
| NumberOfMonthsOfTimeToMaturity | ||||
| NumberOfDaysOfTimeToMaturity | ||||
| MinimumConditionTermLimitRate | MinimumConditionTermLimitRate | |||
| MaximumConditionTermLimitRate | MaximumConditionTermLimitRate | |||
| ConditionTermLimitRateCurrency | ConditionTermLimitRateCurrency | |||
| ConditionTermLimitRateQuantity | ConditionTermLimitRateQuantity | |||
| CndnTermLimitRateQuantityUnit | CndnTermLimitRateQuantityUnit | |||
| PriceSettingMethod | PriceSettingMethod | |||
| PriceSettingMethodStatus | PriceSettingMethodStatus | |||
| ValidToDateTime | ValidToDateTime | |||
| PricingProcedure | PricingProcedure | |||
| PricingConditionTerm | PricingConditionTerm | |||
| CmmdtyRootDocExternalNumber | CmmdtyRootDocExternalNumber | |||
| CmmdtyDocumentExternalNumber | CmmdtyDocumentExternalNumber |
//@EndUserText.label: 'Versioned pricing data of logistic docs'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.authorizationCheck: #NOT_REQUIRED
//@Analytics.dataCategory: #FACT
@AbapCatalog: { sqlViewName: 'PVLOGPPOSR',
compiler.compareFilter: true }
@VDM: { viewType: #COMPOSITE,
private: true }
@ObjectModel.usageType:{ sizeCategory: #XL,
serviceQuality: #D,
dataClass: #TRANSACTIONAL }
@AbapCatalog.preserveKey:true
define view P_Vlogp_PositionRep
with parameters
P_MTMDataSelectionType : cmm_vlogp_consumptiontype, -- Analytic consumption type
P_DisplayView : cds_view_uom, -- Display UoM
P_EndOfDaySnapshotFromDate : cmm_dend_cutdate, -- Date of snapshot to be selected
P_EndOfDaySnapshotToDate : cmm_dend_cutdate -- Date of snapshot to be selected
as select from I_VersionedLogisticDocument as vlogp
left outer join I_TimeToMaturity as _TimeToMaturity on vlogp.TimeToMaturity = _TimeToMaturity.TimeToMaturity
{
key PricingKey,
key Version,
key PricingDocumentItem,
key ConditionType,
key SubConditionType,
ValidityStartDate,
ValidityStartDateTime,
ValidityEndDate,
ValidityEndDateTime,
SourceTransactionEventDateTime,
SourceTransacEventEndDateTime,
EndOfDayBusinessEntityKey,
MarketNormBusinessEntityKey,
DeliveryPeriodStartDate,
DeliveryPeriodEndDate,
SpreadBusinessEntityKey,
MaximumVersion,
PreviousVersion,
-- Parameter Columns
cast(:P_MTMDataSelectionType as cmm_vlogp_consumptiontype) as MTMDataSelectionType,
cast(:P_EndOfDaySnapshotFromDate as cmm_snapshot_start) as EndOfDaySnapshotFromDate,
cast(:P_EndOfDaySnapshotToDate as cmm_snapshot_end) as EndOfDaySnapshotToDate,
cast(:P_DisplayView as cds_view_uom) as DisplayView,
-- Business Document
CompanyCode,
SalesOrganization,
DistributionChannel,
Division,
Creditor,
SoldToParty,
Material,
PhysicalCommodity,
Plant,
StorageLocation,
Batch,
IncotermsClassification,
IncotermsTransferLocation,
ConditionApplication,
SourceDocument,
cast( SourceDocumentBusObjType as cds_vlogp_doc_type ) as SourceDocumentBusObjType,
OriginReferenceDocument,
OriginReferenceDocumentItem,
cast( OriginReferenceDocBusObjType as cds_vlogp_root_doctyp ) as OriginReferenceDocBusObjType,
ReferenceDocument,
ReferenceDocumentItem,
cast( ReferenceDocBusObjType as cds_vlogp_predecessor_doctyp ) as ReferenceDocBusObjType,
DeliveryDate,
ExpectedPaymentDate,
StatisticsCurrency,
DocumentCurrency,
ProfitCenter,
BusinessArea,
PurchasingOrganization,
MaterialGroup,
IsIntercompanyTransfer,
-- Pricing
ConditionCalculationType,
ConditionRate,
ConditionCurrency,
ConditionQuantity,
ConditionQuantityUnit,
-- Commodity Pricing Engine
QuotationPriceType,
ConditionTermRate,
@Semantics.currencyCode: true
ConditionTermRateCurrency,
ConditionTermRateQuantity,
ConditionTermRateQuantityUnit,
ConditionTermValue,
@Semantics.currencyCode: true
ConditionTermValueCurrency,
ConditionTermRateMktCurrency,
ConditionTermName,
ConditionTermStatus,
RoundingDecimalPlaces,
ConditionTermRateIsRounded,
ConditionTermRateNmrtr,
ConditionTermRateDnmntr,
ConditionTermExtensionUsage,
CmmdtyForwardIndexTiming,
-- Changing MaturitySelectionType(DCS_SELECTION_TYPE) to '2'(Manual) in case Implicit Fixation Flag is set to 'E'
case when ImplicitFixationIsRelevant = 'E'
then cast(2 as cpet_keydate_selection_type preserving type)
else MaturitySelectionType
end as MaturitySelectionType,
QuotationPeriodReferenceDate,
CommodityCurve,
cast( substring(coalesce(CmmdtyLtstEvalKeyDateTime, ' '), 1, 8)
as cpet_erp_latest_ekd_dat) as CmmdtyLtstEvaluationKeyDate,
-- Quotations / Commodity Curve
QuotationKeyType,
QuotationDateList,
FutureRefQuotationDateList,
QuotationPeriodStartDate,
QuotationPeriodEndDate,
-- Fixed terms may still refer to DCS, MIC etc.
DerivativeContrSpecification,
MarketIdentifierCode,
FutureRefMarketIdentifierCode,
MaturityKeyDate,
BasisID,
BasisType,
QuotationGroup,
QuotationGroupCalculationRule,
PriceIsRealized,
ConditionTermRateFixation,
PricingStatus,
CndnTermRateFixationDate,
CndnTermRateFixationTime,
CndnTermExchRateFixationDate,
CndnTermExchRateFixationTime,
FixedExchRateDate,
ExchRateMaturityDate,
vlogp.MaturitySelectionRoutine,
DCSPeriodType,
-- Miscellanous fields
CommodityQuantity,
CommodityUnit,
CmmdtyPriceExpsrQtyInMassUnit,
CmmdtyPriceExpsrMassUnit,
CmmdtyPriceExpsrQtyInVolUnit,
CmmdtyPriceExpsrVolumeUnit,
DCSReportingDate,
QuantitySign,
MTMConditionGroup,
MTMCalculationGroup,
MTMAdjustmentType,
MTMCalcGrpMarketPriceCondition,
ConditionTermRateIsFixed,
ConditionTermExchRateIsFixed,
CommodityQuantityInTermUnit,
OldMarketNormMaturityKeyDate,
NewMarketNormMaturityKeyDate,
FixedSpreadIsInverted,
-- Position Reports
MTMConditionGroupCategory,
MTMDataSourceType,
ConditionTermFactorNumerator,
ConditionTermFactorDenominator,
-- Case when 'Record Type' = '01' or '03' or '04' and
-- 'Maturity Selection Type' = 0 (Quotation Date Based) and
-- 'Implicit Fixation relevant' = 'X' or 'Y'
-- then case 'Display Unit of Measure'
-- When 'P' or 'M' or 'V'
-- Then -> 1. Adjust respective quantity for Min/Max
-- 2. Adjust quantity from step 1 for Payable condition
-- n_2581355: #2 is no longer needed. Factors are already applied during VLOGP update
-- Else case 'Display Unit of Measure'
-- When 'P' or 'M' or 'V'
-- Then -> Adjust quantity for Payable condition
-- n_2581355: this is no longer needed. Factors are already applied during VLOGP update
case when ( MTMDataSourceType = '01' or MTMDataSourceType = '03' or MTMDataSourceType = '04' )and
// MaturitySelectionType = 0 and
(ImplicitFixationIsRelevant = 'Y' or ImplicitFixationIsRelevant = 'X')
then case $parameters.P_DisplayView
when 'P' then division((CommodityQuantity * ConditionTermFactorNumerator),ConditionTermFactorDenominator, 3)
when 'M' then division((CmmdtyPriceExpsrQtyInMassUnit * ConditionTermFactorNumerator), ConditionTermFactorDenominator, 3)
when 'V' then division((CmmdtyPriceExpsrQtyInVolUnit * ConditionTermFactorNumerator), ConditionTermFactorDenominator, 3)
else division((CommodityQuantity * ConditionTermFactorNumerator),ConditionTermFactorDenominator,3) end
else case $parameters.P_DisplayView
when 'P' then CommodityQuantity
when 'M' then CmmdtyPriceExpsrQtyInMassUnit
when 'V' then CmmdtyPriceExpsrQtyInVolUnit
else CommodityQuantity end
end as CommodityExposureQuantity,
-- Fill CommodityExposureUnit as per parameter P_DisplayView
@Semantics.unitOfMeasure: true
case $parameters.P_DisplayView
when 'P' then CommodityUnit
when 'M' then CmmdtyPriceExpsrMassUnit
when 'V' then CmmdtyPriceExpsrVolumeUnit
else CommodityUnit
end as CommodityExposureUnit,
ContrPriceExposureIsExecuted,
CommodityPriceFixationStatus,
ImplicitFixationIsRelevant,
vlogp.TimeToMaturity,
cast(_TimeToMaturity.NumberOfYearsOfTimeToMaturity as abap.int4) as NumberOfYearsOfTimeToMaturity,
cast(_TimeToMaturity.NumberOfMonthsOfTimeToMaturity as abap.int4) as NumberOfMonthsOfTimeToMaturity,
cast(_TimeToMaturity.NumberOfDaysOfTimeToMaturity as abap.int4) as NumberOfDaysOfTimeToMaturity,
MinimumConditionTermLimitRate,
MaximumConditionTermLimitRate,
ConditionTermLimitRateCurrency,
ConditionTermLimitRateQuantity,
CndnTermLimitRateQuantityUnit,
PriceSettingMethod,
PriceSettingMethodStatus,
ValidToDateTime,
PricingProcedure,
PricingConditionTerm,
CmmdtyRootDocExternalNumber,
CmmdtyDocumentExternalNumber
}
where
(
-- Term Factor shoud always be available. Although Term Factor is relevant only for scenarios with condition having multiple terms
-- But the factors are populated for scenarios with 1 Term as well.
ConditionTermFactorNumerator <> 0
and ConditionTermFactorDenominator <> 0
)
-- Adjustment Type is only valid for spreads. Position report is not concerned with Spreads
-- That's why I am trying to ignore all the records with Adjustment Type
and MTMAdjustmentType = ' '
and ConditionTermRateNmrtr <> 0
and ConditionTermRateDnmntr <> 0
and vlogp.PriceIsRealized = ' ' -- Check to filter out the invoice-related lines, consistent with the MtM query output
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_TIMETOMATURITY",
"I_VERSIONEDLOGISTICDOCUMENT"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
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