P_QuantityContractWithPOCount
Quantity Contract With PO Count
P_QuantityContractWithPOCount is a Consumption CDS View that provides data about "Quantity Contract With PO Count" in SAP S/4HANA. It reads from 3 data sources (I_PurContractClassification, I_PurchaseContract, I_PurchaseContractItem) and exposes 25 fields with key fields PurchaseContract, PurchaseContractItem, ReleaseOrder, ReleaseOrderItem.
Data Sources (3)
| Source | Alias | Join Type |
|---|---|---|
| I_PurContractClassification | ContractClassification | inner |
| I_PurchaseContract | PurchaseContract | inner |
| I_PurchaseContractItem | PurchaseContractItem | from |
Parameters (3)
| Name | Type | Default |
|---|---|---|
| P_DisplayCurrency | displaycurrency | |
| P_StartDate | vdm_validitystart | |
| P_EndDate | vdm_validitystart |
Annotations (12)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | PQTYCONTPOC | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AccessControl.personalData.blocking | #BLOCKED_DATA_EXCLUDED | view | |
| VDM.viewType | #CONSUMPTION | view | |
| VDM.private | true | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| EndUserText.label | Quantity Contract With PO Count | view |
Fields (25)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | PurchaseContract | I_PurchaseContractItem | PurchaseContract | |
| KEY | PurchaseContractItem | I_PurchaseContractItem | PurchaseContractItem | |
| KEY | ReleaseOrder | ReleaseOrder | ||
| KEY | ReleaseOrderItem | ReleaseOrderItem | ||
| Supplier | I_PurchaseContract | Supplier | ||
| PurchasingGroup | I_PurchaseContract | PurchasingGroup | ||
| PurchasingOrganization | I_PurchaseContract | PurchasingOrganization | ||
| CompanyCode | I_PurchaseContract | CompanyCode | ||
| PurchasingDocumentCategory | I_PurchaseContract | PurchasingDocumentCategory | ||
| PurchaseContractType | I_PurchaseContract | PurchaseContractType | ||
| PurchasingDocumentItemCategory | PurchasingDocumentItemCategory | |||
| Material | I_PurchaseContractItem | Material | ||
| MaterialGroup | I_PurchaseContractItem | MaterialGroup | ||
| Plant | I_PurchaseContractItem | Plant | ||
| DocumentCurrency | I_PurchaseContractItem | DocumentCurrency | ||
| CreatedByUser | I_PurchaseContract | CreatedByUser | ||
| ValidityEndDate | ValidityEndDate | |||
| ReleaseOrderDate | ReleaseOrderDate | |||
| MultipleAcctAssgmtDistribution | MultipleAcctAssgmtDistribution | |||
| ReleaseOrderItemOrderQuantity | ReleaseOrderItemOrderQuantity | |||
| ReleaseOrderItemNetAmount | ReleaseOrderItemNetAmount | |||
| DisplayCurrency | ||||
| curr215else0endasContractNetPriceAmount | ||||
| OrderQuantityUnit | I_PurchaseContractItem | OrderQuantityUnit | ||
| TargetQuantity | TargetQuantity |
@AbapCatalog.sqlViewName: 'PQTYCONTPOC'
@ClientHandling.algorithm: #SESSION_VARIABLE //Inserted by VDM CDS Suite Plugin
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #L
@AbapCatalog.compiler.compareFilter: true
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@VDM.viewType: #CONSUMPTION
@VDM.private: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Quantity Contract With PO Count'
define view P_QuantityContractWithPOCount
with parameters
P_DisplayCurrency : displaycurrency,
P_StartDate : vdm_validitystart,
P_EndDate : vdm_validitystart
as select from I_PurchaseContractItem as PurchaseContractItem
inner join I_PurchaseContract as PurchaseContract on PurchaseContractItem.PurchaseContract = PurchaseContract.ActivePurchasingDocument
inner join I_PurContractClassification as ContractClassification on PurchaseContract.PurchaseContractType = ContractClassification.PurchasingDocumentType
left outer to many join P_ReleaseDocumentationValues(P_DisplayCurrency : $parameters.P_DisplayCurrency) as ReleaseDocumentation on PurchaseContractItem.PurchaseContract = ReleaseDocumentation.PurchaseContract
and PurchaseContractItem.PurchaseContractItem = ReleaseDocumentation.PurchaseContractItem
left outer to one join P_POCountInQtyContract(P_StartDate : $parameters.P_StartDate, P_EndDate : $parameters.P_EndDate ) as POCount on PurchaseContractItem.PurchaseContract = POCount.PurchaseContract
and PurchaseContractItem.PurchaseContractItem = POCount.PurchaseContractItem
{
key PurchaseContractItem.PurchaseContract,
key PurchaseContractItem.PurchaseContractItem,
key ReleaseOrder,
key ReleaseOrderItem,
cast( concat( PurchaseContractItem.PurchaseContract ,
concat( '/' , PurchaseContractItem.PurchaseContractItem))
as formattedcontractitem ) as FormattedPurchaseContractItem,
PurchaseContract.Supplier,
PurchaseContract.PurchasingGroup,
PurchaseContract.PurchasingOrganization,
PurchaseContract.CompanyCode,
PurchaseContract.PurchasingDocumentCategory,
PurchaseContract.PurchaseContractType,
PurchasingDocumentItemCategory,
PurchaseContractItem.Material,
PurchaseContractItem.MaterialGroup,
PurchaseContractItem.Plant,
PurchaseContractItem.DocumentCurrency,
PurchaseContract.CreatedByUser,
ValidityEndDate,
ReleaseOrderDate,
MultipleAcctAssgmtDistribution,
ReleaseOrderItemOrderQuantity,
ReleaseOrderItemNetAmount, //3229617
@Semantics.currencyCode: true
cast( $parameters.P_DisplayCurrency as displaycurrency ) as DisplayCurrency,
@Semantics.amount.currencyCode: 'DisplayCurrency'
case when NetPriceQuantity > 0 then
cast(division
(currency_conversion( amount => PurchaseContractItem.ContractNetPriceAmount,
source_currency => PurchaseContractItem.DocumentCurrency,
target_currency => $parameters.P_DisplayCurrency,
exchange_rate_date => PurchaseContract.CreationDate ) , NetPriceQuantity,5)
as abap.curr( 21, 5 ) ) //3360997
else 0 end as ContractNetPriceAmount,
@Semantics.unitOfMeasure: true
PurchaseContractItem.OrderQuantityUnit,
@Semantics.quantity.unitOfMeasure: 'OrderQuantityUnit'
TargetQuantity,
@Semantics.quantity.unitOfMeasure: 'OrderQuantityUnit'
cast(case when POCount.NumberOfPurchaseOrderItems > 1
then division(TargetQuantity , NumberOfPurchaseOrderItems , 3)
else TargetQuantity end as ktmng) as AverageTargetQuantity
}
where
ContractClassification.PurchaseContractClassification = '1'
and PurchaseContractItem.PurchasingContractDeletionCode = ''
and PurchaseContract.ValidityStartDate <= $parameters.P_EndDate
and PurchaseContract.ValidityEndDate >= $parameters.P_StartDate
and PurchaseContract.IsEndOfPurposeBlocked = ''
and PurchasingDocumentItemCategory != '9'
and PurchasingDocumentItemCategory != '1'
and PurchasingDocumentItemCategory != 'A'
and not(
PurchaseContractItem.DocumentCurrency = ''
or PurchaseContractItem.DocumentCurrency is null
)
and not(
Material = ''
and IsStatisticalItem = 'X'
)
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PURCHASECONTRACT",
"I_PURCHASECONTRACTITEM",
"I_PURCONTRACTCLASSIFICATION",
"P_POCOUNTINQTYCONTRACT",
"P_RELEASEDOCUMENTATIONVALUES"
],
"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