P_POItemAcctMatDoc
PO Item and Material Document Account Assignment
P_POItemAcctMatDoc is a Consumption CDS View that provides data about "PO Item and Material Document Account Assignment" in SAP S/4HANA. It reads from 1 data source (I_MaterialDocumentRecord) and exposes 11 fields with key fields MaterialDocument, FiscalYear. It has 1 association to related views. Part of development package ODATA_MM_PUR_POITEMACCT_MNTR.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| I_MaterialDocumentRecord | I_MaterialDocumentRecord | from |
Associations (1)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_PurOrdAccountAssignment | _PurOrdAccountAssignment | $projection.PurchaseOrder = _PurOrdAccountAssignment.PurchaseOrder and $projection.PurchaseOrderItem = _PurOrdAccountAssignment.PurchaseOrderItem and ( $projection.AccountAssignmentNum = _PurOrdAccountAssignment.AccountAssignmentNumber or $projection.AccountAssignmentNum = '00' ) |
Annotations (6)
| Name | Value | Level | Field |
|---|---|---|---|
| AccessControl.authorizationCheck | #PRIVILEGED_ONLY | view | |
| VDM.private | true | view | |
| VDM.viewType | #CONSUMPTION | view | |
| ObjectModel.usageType.serviceQuality | #A | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view |
Fields (11)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | MaterialDocument | MaterialDocument | ||
| KEY | FiscalYear | FiscalYear | ||
| PurchaseOrder | PurchaseOrder | |||
| PurchaseOrderItem | PurchaseOrderItem | |||
| AccountAssignmentNum | AccountAssignmentNumber | |||
| AccountAssignmentNumber | _PurOrdAccountAssignment | AccountAssignmentNumber | ||
| GoodsMovementType | GoodsMovementType | |||
| dec133endasGoodsReceiptQuantity | ||||
| OrderQuantityUnit | OrderQuantityUnit | |||
| _PurchaseOrderHistory | _PurchaseOrderHistory | |||
| _PurOrdAccountAssignment | _PurOrdAccountAssignment |
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@VDM: { private: true,
viewType: #CONSUMPTION
}
@ObjectModel.usageType.serviceQuality: #A
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
define view entity P_POItemAcctMatDoc
as select from I_MaterialDocumentRecord
association of one to one I_PurchaseOrderHistory as _PurchaseOrderHistory on $projection.MaterialDocument = _PurchaseOrderHistory.MaterialDocument
and $projection.FiscalYear = _PurchaseOrderHistory.MaterialDocumentYear
and $projection.PurchaseOrder = _PurchaseOrderHistory.PurchaseOrder
and $projection.PurchaseOrderItem = _PurchaseOrderHistory.PurchaseOrderItem
and (
//The condition to remove duplicates
_PurchaseOrderHistory.AccountAssignmentNumber = '00'
or _PurchaseOrderHistory.AccountAssignmentNumber = $projection.AccountAssignmentNum
)
and $projection.GoodsMovementType = _PurchaseOrderHistory.GoodsMovementType
association [1..1] to I_PurOrdAccountAssignment as _PurOrdAccountAssignment on $projection.PurchaseOrder = _PurOrdAccountAssignment.PurchaseOrder
and $projection.PurchaseOrderItem = _PurOrdAccountAssignment.PurchaseOrderItem
and (
$projection.AccountAssignmentNum = _PurOrdAccountAssignment.AccountAssignmentNumber
or $projection.AccountAssignmentNum = '00'
)
{
key MaterialDocument,
key FiscalYear,
PurchaseOrder,
PurchaseOrderItem,
AccountAssignmentNumber as AccountAssignmentNum,
_PurOrdAccountAssignment.AccountAssignmentNumber,
GoodsMovementType,
case
when GoodsReceiptIsNonValuated = '' or _PurOrdAccountAssignment.MultipleAcctAssgmtDistrPercent = 0
then
case
when _PurchaseOrderHistory.DebitCreditCode = 'S'
then cast( GoodsReceiptQtyInOrderUnit as abap.dec(13,3) )
when _PurchaseOrderHistory.DebitCreditCode = 'H'
//Credit
then (-1 * cast( GoodsReceiptQtyInOrderUnit as abap.dec(13,3) ) )
else cast( 0 as abap.dec(13,3) )
end
when GoodsReceiptIsNonValuated = 'X'
then
case
when _PurchaseOrderHistory.DebitCreditCode = 'S'
then cast( GoodsReceiptQtyInOrderUnit * (_PurOrdAccountAssignment.MultipleAcctAssgmtDistrPercent / 100 ) as abap.dec(13,3) )
when _PurchaseOrderHistory.DebitCreditCode = 'H'
//Credit
then (-1 * cast( GoodsReceiptQtyInOrderUnit * (_PurOrdAccountAssignment.MultipleAcctAssgmtDistrPercent / 100 ) as abap.dec(13,3) ) )
else cast( 0 as abap.dec(13,3) )
end
else cast( 0 as abap.dec(13,3) )
end as GoodsReceiptQuantity,
OrderQuantityUnit as OrderQuantityUnit,
_PurchaseOrderHistory,
_PurOrdAccountAssignment
}
where
_PurchaseOrderHistory.PurchaseOrderTransactionType = '1' //Only posted Goods Receipts
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