P_PurchaseOrderHistDetail

DDL: P_PURCHASEORDERHISTDETAIL SQL: PURORDHISTDET Type: view CONSUMPTION

PurchaseOrderHistDetail

P_PurchaseOrderHistDetail is a Consumption CDS View that provides data about "PurchaseOrderHistDetail" in SAP S/4HANA. It reads from 2 data sources (I_PurchaseOrderHistory, I_PurOrdHistDelivCost) and exposes 32 fields with key fields PurchaseOrder, PurchaseOrderItem, PurchaseOrderTransactionType, PurchaseOrderItem, PurchaseOrderTransactionType. It has 2 associations to related views.

Data Sources (2)

SourceAliasJoin Type
I_PurchaseOrderHistory I_PurchaseOrderHistory from
I_PurOrdHistDelivCost I_PurOrdHistDelivCost union_all

Parameters (2)

NameTypeDefault
P_StartDate bedat
P_EndDate bedat

Associations (2)

CardinalityTargetAliasCondition
[0..1] I_PurchaseOrderHistCategory _PurchaseOrderHistCategory $projection.PurchaseOrderHistCategory = _PurchaseOrderHistCategory.PurchaseOrderHistCategory
[0..1] I_PurchaseOrderItem _PurchaseOrderItem $projection.PurchaseOrder = _PurchaseOrderItem.PurchaseOrder and $projection.PurchaseOrderItem = _PurchaseOrderItem.PurchaseOrderItem

Annotations (7)

NameValueLevelField
AbapCatalog.sqlViewName PURORDHISTDET view
AbapCatalog.compiler.compareFilter true view
VDM.viewType #CONSUMPTION view
VDM.private true view
AccessControl.authorizationCheck #NOT_REQUIRED view
EndUserText.label PurchaseOrderHistDetail view
AccessControl.personalData.blocking #NOT_REQUIRED view

Fields (32)

KeyFieldSource TableSource FieldDescription
KEY PurchaseOrder PurchaseOrder
KEY PurchaseOrderItem PurchaseOrderItem
KEY PurchaseOrderTransactionType PurchaseOrderTransactionType
PostingDate I_PurchaseOrderHistory PostingDate
CompanyCodeCurrency
PurOrdTransactionCurrency _PurchaseOrderItem DocumentCurrency
PurchaseOrderHistCategory PurchaseOrderHistCategory
PurchaseOrderType
PurchasingOrganization
PurchasingGroup
Plant _PurchaseOrderItem Plant
PurchasingDocumentCategory _PurchaseOrderItem PurchaseOrderCategory
GoodsReceiptIsNonValuated _PurchaseOrderItem GoodsReceiptIsNonValuated
PurOrdAmountInCompanyCodeCrcy PurOrdAmountInCompanyCodeCrcy
NetPriceAmount _PurchaseOrderItem NetPriceAmount
Quantity I_PurchaseOrderHistory Quantity
PurchaseOrderItemkeyPurchaseOrder
KEY PurchaseOrderItem PurchaseOrderItem
KEY PurchaseOrderTransactionType PurchaseOrderTransactionType
PostingDate PostingDate
CompanyCodeCurrency
PurOrdTransactionCurrency _PurchaseOrderItem DocumentCurrency
PurchaseOrderHistCategory PurchaseOrderHistCategory
PurchaseOrderType
PurchasingOrganization
PurchasingGroup
Plant _PurchaseOrderItem Plant
PurchasingDocumentCategory _PurchaseOrderItem PurchaseOrderCategory
GoodsReceiptIsNonValuated _PurchaseOrderItem GoodsReceiptIsNonValuated
PurOrdAmountInCompanyCodeCrcy PurOrdAmountInCompanyCodeCrcy
NetPriceAmount _PurchaseOrderItem NetPriceAmount
Quantity PurchaseOrderItemQuantity
@AbapCatalog.sqlViewName: 'PURORDHISTDET'
@AbapCatalog.compiler.compareFilter: true
@VDM.viewType: #CONSUMPTION
//@Analytics.dataCategory: #CUBE

@VDM.private: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'PurchaseOrderHistDetail'
@AccessControl.personalData.blocking: #NOT_REQUIRED

define view P_PurchaseOrderHistDetail

  with parameters
    P_StartDate : bedat,
    P_EndDate   : bedat
  as select from I_PurchaseOrderHistory

{

  key PurchaseOrder,

  key PurchaseOrderItem,

  key PurchaseOrderTransactionType,
      //_PurchaseOrderItem._PurchaseOrder._CompanyCode,

      //_PurchaseOrderItem._PurchaseOrder._Supplier,


      I_PurchaseOrderHistory.PostingDate,

      _PurchaseOrderItem._PurchaseOrder._CompanyCode.Currency          as CompanyCodeCurrency,

      _PurchaseOrderItem.DocumentCurrency                              as PurOrdTransactionCurrency,

      PurchaseOrderHistCategory,
      _PurchaseOrderItem._PurchaseOrder.PurchaseOrderType,
      _PurchaseOrderItem._PurchaseOrder.PurchasingOrganization,
      _PurchaseOrderItem._PurchaseOrder.PurchasingGroup,
      _PurchaseOrderItem.Plant,
      _PurchaseOrderItem.PurchaseOrderCategory                         as PurchasingDocumentCategory,

      _PurchaseOrderItem.GoodsReceiptIsNonValuated, //remove

      PurOrdAmountInCompanyCodeCrcy,
      _PurchaseOrderItem.NetPriceAmount,
      I_PurchaseOrderHistory.Quantity,

       case PurchaseOrderTransactionType
        when '2' then case DebitCreditCode
                        when 'H' then -1 * PurOrdAmountInCompanyCodeCrcy
                        when 'S' then 1 * PurOrdAmountInCompanyCodeCrcy
                        else 0
                      end
        when '3' then case PurchaseOrderHistCategory
                        when 'W' then 0
                        else case DebitCreditCode
                               when 'H' then  -1 * PurOrdAmountInCompanyCodeCrcy
                               when 'S' then 1 *  PurOrdAmountInCompanyCodeCrcy
                               else 0
                             end
                      end
        else 0

      end                                     as TotalInvoiceAmountInCoCodeCrcy

}
where
  (
     PurchaseOrderTransactionType                        = '1' or
     PurchaseOrderTransactionType                        = '2'
    or PurchaseOrderTransactionType                        = '3'
  )
  and  _PurchaseOrderItem._PurchaseOrder.PurchaseOrderDate <= $parameters.P_EndDate
  and  _PurchaseOrderItem._PurchaseOrder.PurchaseOrderDate >= $parameters.P_StartDate
  

union all

select from I_PurOrdHistDelivCost

association [0..1] to I_PurchaseOrderHistCategory as _PurchaseOrderHistCategory on  $projection.PurchaseOrderHistCategory = _PurchaseOrderHistCategory.PurchaseOrderHistCategory

association [0..1] to I_PurchaseOrderItem         as _PurchaseOrderItem         on  $projection.PurchaseOrder     = _PurchaseOrderItem.PurchaseOrder
                                                                                and $projection.PurchaseOrderItem = _PurchaseOrderItem.PurchaseOrderItem

{

  key PurchaseOrder,

  key PurchaseOrderItem,

  key PurchaseOrderTransactionType,

      //_PurchaseOrderItem._PurchaseOrder._CompanyCode,

      //_PurchaseOrderItem._PurchaseOrder._Supplier,


      PostingDate,

      _PurchaseOrderItem._PurchaseOrder._CompanyCode.Currency                  as CompanyCodeCurrency,

      _PurchaseOrderItem.DocumentCurrency                                      as PurOrdTransactionCurrency,

      PurchaseOrderHistCategory,
      _PurchaseOrderItem._PurchaseOrder.PurchaseOrderType,
      _PurchaseOrderItem._PurchaseOrder.PurchasingOrganization,
      _PurchaseOrderItem._PurchaseOrder.PurchasingGroup,
      _PurchaseOrderItem.Plant,
      _PurchaseOrderItem.PurchaseOrderCategory                                 as PurchasingDocumentCategory,

      _PurchaseOrderItem.GoodsReceiptIsNonValuated,

      PurOrdAmountInCompanyCodeCrcy,
      _PurchaseOrderItem.NetPriceAmount,
      PurchaseOrderItemQuantity                                                as Quantity,

       case PurchaseOrderTransactionType
        when '2' then    case QuantityDebitCreditCode
                           when 'H' then case  _PurchaseOrderItem.IsReturnsItem
                                           when '' then -1 * PurOrdAmountInCompanyCodeCrcy
                                           else 1 * PurOrdAmountInCompanyCodeCrcy
                                          end
                           when 'S' then case  _PurchaseOrderItem.IsReturnsItem
                                           when '' then 1 * PurOrdAmountInCompanyCodeCrcy
                                           else -1 * PurOrdAmountInCompanyCodeCrcy
                                          end
                           else 1 * PurOrdAmountInCompanyCodeCrcy
                         end
        when '3' then   case QuantityDebitCreditCode
                          when 'H' then case _PurchaseOrderHistCategory.SubsequentDebitCreditIsAllowed
                                          when '' then 0
                                          else -1 * PurOrdAmountInCompanyCodeCrcy
                                        end
                          else case _PurchaseOrderHistCategory.SubsequentDebitCreditIsAllowed
                                 when '' then 0
                                 else 1 * PurOrdAmountInCompanyCodeCrcy
                               end
                        end
        else 0
      end                                              as TotalInvoiceAmountInCoCodeCrcy


}
where
  (
    PurchaseOrderTransactionType                        = '1'
    or 
    PurchaseOrderTransactionType                        = '2'
    or PurchaseOrderTransactionType                        = '3'
  )
  and  _PurchaseOrderItem._PurchaseOrder.PurchaseOrderDate <= $parameters.P_EndDate
  and  _PurchaseOrderItem._PurchaseOrder.PurchaseOrderDate >= $parameters.P_StartDate
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_COMPANYCODE",
"I_PURCHASEORDER",
"I_PURCHASEORDERHISTCATEGORY",
"I_PURCHASEORDERHISTORY",
"I_PURCHASEORDERITEM",
"I_PURORDHISTDELIVCOST"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/