P_POItemAcctMatDoc

DDL: P_POITEMACCTMATDOC Type: view_entity CONSUMPTION Package: ODATA_MM_PUR_POITEMACCT_MNTR

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)

SourceAliasJoin Type
I_MaterialDocumentRecord I_MaterialDocumentRecord from

Associations (1)

CardinalityTargetAliasCondition
[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)

NameValueLevelField
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)

KeyFieldSource TableSource FieldDescription
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