P_POITEMACCTMATDOC
PO Item and Material Document Account Assignment
P_POITEMACCTMATDOC is a CDS View in S/4HANA. PO Item and Material Document Account Assignment. 1 CDS views read from this table.
CDS Views using this table (1)
| View | Type | Join | VDM | Description |
|---|---|---|---|---|
| P_POItemAcctMatDocCalc | view_entity | from | CONSUMPTION | PO Item and Material Document Account Assignment calculation |
@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