P_PurFutureSpend

DDL: P_PURFUTURESPEND SQL: PMMPOFUTRSPND Type: view CONSUMPTION

Purchasing Future Spend

P_PurFutureSpend is a Consumption CDS View that provides data about "Purchasing Future Spend" in SAP S/4HANA. It reads from 3 data sources (I_PurchaseOrder, I_PurchaseOrderItem, I_PurchaseOrderScheduleLine) and exposes 40 fields with key fields PurchaseOrder, PurchaseOrderItem, ScheduleLine.

Data Sources (3)

SourceAliasJoin Type
I_PurchaseOrder PurchaseOrder inner
I_PurchaseOrderItem PurchaseOrderItem from
I_PurchaseOrderScheduleLine ScheduleLine inner

Parameters (1)

NameTypeDefault
P_Date sydatum

Annotations (9)

NameValueLevelField
AbapCatalog.sqlViewName PMMPOFUTRSPND view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
EndUserText.label Purchasing Future Spend view
VDM.private true view
VDM.viewType #CONSUMPTION view
AbapCatalog.preserveKey true view
ClientHandling.algorithm #SESSION_VARIABLE view
AccessControl.personalData.blocking #NOT_REQUIRED view

Fields (40)

KeyFieldSource TableSource FieldDescription
KEY PurchaseOrder I_PurchaseOrderItem PurchaseOrder
KEY PurchaseOrderItem I_PurchaseOrderItem PurchaseOrderItem
KEY ScheduleLine I_PurchaseOrderScheduleLine ScheduleLine
PurchaseOrderCategory I_PurchaseOrderItem PurchaseOrderCategory
PurchaseOrderItemCategory I_PurchaseOrderItem PurchaseOrderItemCategory
PurchaseRequisition I_PurchaseOrderItem PurchaseRequisition
PurchaseRequisitionItem I_PurchaseOrderItem PurchaseRequisitionItem
PurchaseOrderType PurchaseOrderType
PurchaseOrderDate I_PurchaseOrder PurchaseOrderDate
Supplier I_PurchaseOrder Supplier
PurchasingGroup I_PurchaseOrder PurchasingGroup
PurchasingOrganization I_PurchaseOrder PurchasingOrganization
CompanyCode I_PurchaseOrder CompanyCode
ReceivingCompanyCode I_PurchaseOrderItem CompanyCode
MaterialGroup I_PurchaseOrderItem MaterialGroup
Material I_PurchaseOrderItem Material
Plant I_PurchaseOrderItem Plant
ProductType I_PurchaseOrderItem ProductType
ServicePerformer I_PurchaseOrderItem ServicePerformer
ScheduleLineDeliveryDate ScheduleLineDeliveryDate
SchedLineStscDeliveryDate SchedLineStscDeliveryDate
PerformancePeriodStartDate PerformancePeriodStartDate
PerformancePeriodEndDate PerformancePeriodEndDate
ScheduleLineDeliveryTime ScheduleLineDeliveryTime
ScheduleLineOrderQuantity ScheduleLineOrderQuantity
RoughGoodsReceiptQty RoughGoodsReceiptQty
CreatedByUser I_PurchaseOrder CreatedByUser
PurchaseContract I_PurchaseOrderItem PurchaseContract
PurchaseContractItem I_PurchaseOrderItem PurchaseContractItem
MultipleAcctAssgmtDistribution I_PurchaseOrderItem MultipleAcctAssgmtDistribution
AccountAssignmentCategory I_PurchaseOrderItem AccountAssignmentCategory
PurchaseOrderQuantityUnit I_PurchaseOrderItem PurchaseOrderQuantityUnit
Currency I_PurchaseOrderItem DocumentCurrency
curr215endasNetPriceAmount
OrderItemQtyToBaseQtyNmrtr OrderItemQtyToBaseQtyNmrtr
OrderItemQtyToBaseQtyDnmntr OrderItemQtyToBaseQtyDnmntr
OrderPriceUnitToOrderUnitNmrtr OrderPriceUnitToOrderUnitNmrtr
OrdPriceUnitToOrderUnitDnmntr OrdPriceUnitToOrderUnitDnmntr
_PurchaseRequisition I_PurchaseOrderItem _PurchaseRequisition
_PurchaseRequisitionItem I_PurchaseOrderItem _PurchaseRequisitionItem
@AbapCatalog.sqlViewName: 'PMMPOFUTRSPND'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Purchasing Future Spend'
@VDM.private: true
@VDM.viewType: #CONSUMPTION
@AbapCatalog.preserveKey:true
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.personalData.blocking: #NOT_REQUIRED
define view P_PurFutureSpend

with parameters
  P_Date : sydatum

as select from I_PurchaseOrderItem as PurchaseOrderItem
inner join I_PurchaseOrder as PurchaseOrder on PurchaseOrderItem.PurchaseOrder = PurchaseOrder.PurchaseOrder
inner join I_PurchaseOrderScheduleLine as ScheduleLine on PurchaseOrderItem.PurchaseOrder = ScheduleLine.PurchaseOrder
                                                       and PurchaseOrderItem.PurchaseOrderItem = ScheduleLine.PurchaseOrderItem

 // left outer join I_CalendarDate as CalendarDate on ScheduleLine.SchedLineStscDeliveryDate = CalendarDate.CalendarDate

{
  key PurchaseOrderItem.PurchaseOrder,
  key PurchaseOrderItem.PurchaseOrderItem,
  key ScheduleLine.ScheduleLine,

      PurchaseOrderItem.PurchaseOrderCategory,
      PurchaseOrderItem.PurchaseOrderItemCategory,

      @ObjectModel.foreignKey.association: '_PurchaseRequisition'
      PurchaseOrderItem.PurchaseRequisition,
      @ObjectModel.foreignKey.association: '_PurchaseRequisitionItem'
      PurchaseOrderItem.PurchaseRequisitionItem,
      PurchaseOrderType,
      PurchaseOrder.PurchaseOrderDate,
//      CalendarDate.CalendarMonth,

//      CalendarDate.CalendarQuarter,

//      CalendarDate.CalendarWeek,

//      CalendarDate.CalendarYear,

//      CalendarDate.YearQuarter,


      PurchaseOrder.Supplier,
      PurchaseOrder.PurchasingGroup,
      PurchaseOrder.PurchasingOrganization,
      PurchaseOrder.CompanyCode,
      PurchaseOrderItem.CompanyCode as ReceivingCompanyCode,

      PurchaseOrderItem.MaterialGroup,
      PurchaseOrderItem.Material,

      PurchaseOrderItem.Plant,

      PurchaseOrderItem.ProductType,
      PurchaseOrderItem.ServicePerformer,

      ScheduleLineDeliveryDate,
      SchedLineStscDeliveryDate,
      PerformancePeriodStartDate,
      PerformancePeriodEndDate,
      ScheduleLineDeliveryTime,

      @Semantics.quantity.unitOfMeasure: 'PurchaseOrderQuantityUnit'
      @DefaultAggregation: #SUM
      ScheduleLineOrderQuantity,

      @Semantics.quantity.unitOfMeasure: 'PurchaseOrderQuantityUnit'
      @DefaultAggregation: #SUM
      RoughGoodsReceiptQty,

      PurchaseOrder.CreatedByUser,

      PurchaseOrderItem.PurchaseContract,
      PurchaseOrderItem.PurchaseContractItem,

      PurchaseOrderItem.MultipleAcctAssgmtDistribution,
      PurchaseOrderItem.AccountAssignmentCategory,

      @Semantics.unitOfMeasure: true
      PurchaseOrderItem.PurchaseOrderQuantityUnit       as PurchaseOrderQuantityUnit,

      @Semantics.currencyCode: true
      PurchaseOrderItem.DocumentCurrency                as Currency,

      case when NetPriceQuantity !=0 then
       cast ( div(PurchaseOrderItem.NetPriceAmount, PurchaseOrderItem.NetPriceQuantity) as abap.curr( 21, 5 ))  //3200874

       else
       cast(0 as abap.curr(21,5))
       end                                          as NetPriceAmount,

      OrderItemQtyToBaseQtyNmrtr,
      OrderItemQtyToBaseQtyDnmntr,
      OrderPriceUnitToOrderUnitNmrtr,
      OrdPriceUnitToOrderUnitDnmntr,
      PurchaseOrderItem._PurchaseRequisition,
      PurchaseOrderItem._PurchaseRequisitionItem


}where  PurchaseOrder.PurchasingDocumentDeletionCode = ''
    and PurchaseOrder.PurchasingCompletenessStatus   = ''
    and PurchaseOrder.ReleaseIsNotCompleted          = ''
    and PurchaseOrderItem.PurchasingDocumentDeletionCode <> 'L' //3393611

    and SchedLineStscDeliveryDate  <= dats_add_days( :P_Date, 180, 'FAIL' )
    and SchedLineStscDeliveryDate > $parameters.P_Date
    and SupplyingPlant                     =  ''            //^3373213

    and not(
        ProductType                  =  '2'
         or(
            PurchaseOrderItemCategory   =  '9'
         or PurchaseOrderItemCategory   =  '1'
         or PurchaseOrderItemCategory   =  'A'              //v3373213

       )
     )
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PURCHASEORDER",
"I_PURCHASEORDERITEM",
"I_PURCHASEORDERSCHEDULELINE"
],
"ASSOCIATED":
[
"I_PURCHASEREQUISITION",
"I_PURCHASEREQUISITIONITEM"
],
"BASE":
[
"I_PURCHASEORDERITEM"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/