P_PurReqnOpenQuantCalc

DDL: P_PURREQNOPENQUANTCALC SQL: PPROPENQUANCALC Type: view CONSUMPTION Package: ODATA_MM_PUR_PRITEM_MNTR

P view for Open Quantity Calculation

P_PurReqnOpenQuantCalc is a Consumption CDS View that provides data about "P view for Open Quantity Calculation" in SAP S/4HANA. It reads from 1 data source (I_Purchaserequisitionitem) and exposes 106 fields with key fields PurchaseRequisition, PurchaseRequisitionItem. It has 9 associations to related views. Part of development package ODATA_MM_PUR_PRITEM_MNTR.

Data Sources (1)

SourceAliasJoin Type
I_Purchaserequisitionitem _Purchaserequisitionitem from

Associations (9)

CardinalityTargetAliasCondition
[0..1] I_PurgDocumentItemCategory _PurgDocumentItemCategory $projection.PurchasingDocumentItemCategory = _PurgDocumentItemCategory.PurchasingDocumentItemCategory
[0..1] I_PRReleaseIndicatorDesc _ReleaseIndicatorDesc _ReleaseIndicatorDesc.PurchasingReleaseStatus = $projection.ReleaseCode and _ReleaseIndicatorDesc.Language = $session.system_language
[0..1] C_PurReqnCreationInd _PurchaseReqnOrigin _PurchaseReqnOrigin.DomainValue = $projection.PurReqnOrigin
[0..1] I_User _User _User.UserID = $projection.CreatedByUser
[0..1] I_PurchasingCategoryMatlGroup _PurchasingCategoryMatlGroup _Purchaserequisitionitem.MaterialGroup = _PurchasingCategoryMatlGroup.MaterialGroup
[0..1] I_ProcmtBlockedSupplier _ProcmtBlockedSupplier _ProcmtBlockedSupplier.PurchasingIsBlockedForSupplier = 'X'
[0..*] I_ReleaseStrategyDesc _ReleaseStrategyDesc _ReleaseStrategyDesc.PurchasingReleaseStrategy = $projection.ReleaseStrategy and _ReleaseStrategyDesc.ReleaseGroup = $projection.ReleaseGroup
[0..1] C_PurchaseReqnSourceType _PurchaseReqnSourceType _PurchaseReqnSourceType.DomainValue = $projection.PurchasingSourceType
[1..1] I_CalendarDate _CalendarDate _CalendarDate.CalendarDate = $session.system_date

Annotations (11)

NameValueLevelField
AbapCatalog.sqlViewName PPROPENQUANCALC view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #PRIVILEGED_ONLY view
EndUserText.label P view for Open Quantity Calculation view
VDM.private true view
VDM.viewType #CONSUMPTION view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MIXED view
ClientHandling.algorithm #SESSION_VARIABLE view

Fields (106)

KeyFieldSource TableSource FieldDescription
KEY PurchaseRequisition I_Purchaserequisitionitem PurchaseRequisition
KEY PurchaseRequisitionItem I_Purchaserequisitionitem PurchaseRequisitionItem
PurgCatUUID _PurchasingCategoryMatlGroup PurgCatUUID
MaterialGroup I_Purchaserequisitionitem MaterialGroup
PurchasingCategory
PurchasingOrganization I_Purchaserequisitionitem PurchasingOrganization
PurchasingDocumentCategory I_Purchaserequisitionitem PurchasingDocumentCategory
PurchaseRequisitionType I_Purchaserequisitionitem PurchaseRequisitionType
FixedSupplier I_Purchaserequisitionitem FixedSupplier
SupplyingPlant I_Purchaserequisitionitem SupplyingPlant
AccountAssignmentCategory I_Purchaserequisitionitem AccountAssignmentCategory
Material I_Purchaserequisitionitem Material
Plant I_Purchaserequisitionitem Plant
BaseUnit I_Purchaserequisitionitem BaseUnit
PurchasingDocumentItemCategory I_Purchaserequisitionitem PurchasingDocumentItemCategory
PurchasingDocument I_Purchaserequisitionitem PurchasingDocument
PurchasingGroup I_Purchaserequisitionitem PurchasingGroup
DeliveryDate I_Purchaserequisitionitem DeliveryDate
RequestedQuantity I_Purchaserequisitionitem RequestedQuantity
PurchaseRequisitionPrice I_Purchaserequisitionitem PurchaseRequisitionPrice
PurReqnPriceQuantity I_Purchaserequisitionitem PurReqnPriceQuantity
PurReqnItemCurrency I_Purchaserequisitionitem PurReqnItemCurrency
PurgDocExternalItemCategory
PurgDocItemCategoryName
RequirementTracking I_Purchaserequisitionitem RequirementTracking
PurchaseRequisitionItemText I_Purchaserequisitionitem PurchaseRequisitionItemText
Supplier I_Purchaserequisitionitem Supplier
SupplierName _DesiredSupplier SupplierName
OpenQuantity
PurReqnReleaseStatus I_Purchaserequisitionitem PurReqnReleaseStatus
PurchaseRequisitionReleaseDate I_Purchaserequisitionitem PurchaseRequisitionReleaseDate
PurReqCreationDate I_Purchaserequisitionitem PurReqCreationDate
ProcessingStatus I_Purchaserequisitionitem ProcessingStatus
ReleaseCode I_Purchaserequisitionitem ReleaseCode
PurchasingReleaseIndicatorDesc _ReleaseIndicatorDesc PurchasingReleaseIndicatorDesc
StorageLocation I_Purchaserequisitionitem StorageLocation
PurchasingInfoRecord I_Purchaserequisitionitem PurchasingInfoRecord
PurReqnRequestor I_Purchaserequisitionitem PurReqnRequestor
RequisitionerName I_Purchaserequisitionitem RequisitionerName
MRPController I_Purchaserequisitionitem MRPController
Batch I_Purchaserequisitionitem Batch
PurReqnOrigin I_Purchaserequisitionitem PurReqnOrigin
DomainText _PurchaseReqnOrigin DomainText
ReleaseStrategy I_Purchaserequisitionitem ReleaseStrategy
PurchasingReleaseStrategyDesc _ReleaseStrategyDesc PurchasingReleaseStrategyDesc
ReleaseGroup I_Purchaserequisitionitem ReleaseGroup
CreatedByUser I_Purchaserequisitionitem CreatedByUser
UserDescription _User UserDescription
CreationDate I_Purchaserequisitionitem CreationDate
IsClosed I_Purchaserequisitionitem IsClosed
IsDeleted I_Purchaserequisitionitem IsDeleted
PurchasingDocumentSubtype I_Purchaserequisitionitem PurchasingDocumentSubtype
IsPurReqnBlocked I_Purchaserequisitionitem IsPurReqnBlocked
IsPurReqnCmplt I_Purchaserequisitionitem IsPurReqnCmplt
CompanyCode I_Purchaserequisitionitem CompanyCode
CompanyCodeName
OrderedQuantity I_Purchaserequisitionitem OrderedQuantity
PurchaseRequisitionStatus I_Purchaserequisitionitem PurchaseRequisitionStatus
ConsumptionPosting I_Purchaserequisitionitem ConsumptionPosting
PurchasingDocumentTypeName
PurchasingIsBlocked _DesiredSupplier PurchasingIsBlocked
char10asPurchasingDocumentStatus
ProductType ProductType
SupplierMaterialNumber SupplierMaterialNumber
MaterialRevisionLevel MaterialRevisionLevel
ServicePerformer ServicePerformer
MaterialPlannedDeliveryDurn MaterialPlannedDeliveryDurn
PerformancePeriodStartDate PerformancePeriodStartDate
PerformancePeriodEndDate PerformancePeriodEndDate
PurchaseRequisitionIsFixed PurchaseRequisitionIsFixed
MaterialGoodsReceiptDuration MaterialGoodsReceiptDuration
GoodsReceiptIsExpected GoodsReceiptIsExpected
InvoiceIsExpected InvoiceIsExpected
GoodsReceiptIsNonValuated GoodsReceiptIsNonValuated
SourceOfSupplyIsAssigned SourceOfSupplyIsAssigned
LastChangedDate LastChangedDate
SupplyingPlantName _SupplyingPlant PlantName
weekstart
weekend
secweekend
calweek
weekday1
weekday2
weekday4
weekday5
PFMTransDataFootprintUUID PFMTransDataFootprintUUID
_PurchaseReqnSourceType _PurchaseReqnSourceType
_PurchasingCategory _PurchasingCategoryMatlGroup _PurchasingCategory
_AccAssgnmtCategory _AccAssgnmtCategory
_PurchasingOrganization _PurchasingOrganization
_PurchasingGroup _PurchasingGroup
_Plant _Plant
_Material _Material
_PurchasingInfoRecord _PurchasingInfoRecord
_StorageLocation _StorageLocation
_PurgDocumentItemCategory _PurgDocumentItemCategory
_Supplier _Supplier
_PurReqnAcctAssgmt _PurReqnAcctAssgmt
_DesiredSupplier _DesiredSupplier
_ReleaseIndicatorDesc _ReleaseIndicatorDesc
_PurchaseReqnOrigin _PurchaseReqnOrigin
_User _User
_ProcmtBlockedSupplier _ProcmtBlockedSupplier
_ReleaseStrategyDesc _ReleaseStrategyDesc
_PurchasingCategoryMatlGroup _PurchasingCategoryMatlGroup
_MaterialGroup I_Purchaserequisitionitem _MaterialGroup
@AbapCatalog.sqlViewName: 'PPROPENQUANCALC'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@EndUserText.label: 'P view for Open Quantity Calculation'
@VDM.private: true
@VDM.viewType: #CONSUMPTION
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #MIXED
@ClientHandling.algorithm: #SESSION_VARIABLE

define view P_PurReqnOpenQuantCalc
  as select from I_Purchaserequisitionitem as _Purchaserequisitionitem

  //  association [0..1] to I_Supplier                     as _Supplier                    on  $projection.Supplier = _Supplier.Supplier


  //association [0..1] to I_MaterialGroup               as _MaterialGroup             on  $projection.MaterialGroup = _MaterialGroup.MaterialGroup // 2741424


  association [0..1] to I_PurgDocumentItemCategory    as _PurgDocumentItemCategory    on  $projection.PurchasingDocumentItemCategory = _PurgDocumentItemCategory.PurchasingDocumentItemCategory

  ////  association [0..1] to I_Supplier                     as _DesiredSupplier             on  $projection.ExtDesiredSupplierForPurg = _DesiredSupplier.Supplier


  association [0..1] to I_PRReleaseIndicatorDesc      as _ReleaseIndicatorDesc        on  _ReleaseIndicatorDesc.PurchasingReleaseStatus = $projection.ReleaseCode
                                                                                      and _ReleaseIndicatorDesc.Language                = $session.system_language

  association [0..1] to C_PurReqnCreationInd          as _PurchaseReqnOrigin          on  _PurchaseReqnOrigin.DomainValue = $projection.PurReqnOrigin

  association [0..1] to I_User                        as _User                        on  _User.UserID = $projection.CreatedByUser

  association [0..1] to I_PurchasingCategoryMatlGroup as _PurchasingCategoryMatlGroup on  _Purchaserequisitionitem.MaterialGroup = _PurchasingCategoryMatlGroup.MaterialGroup //2741424


  //  association[1..1] to I_ProcurementDomainValues                     as _DomainText                  on  _DomainText.Name = 'VDM_BLOCKED_SUPPLIER'

  //                                                                                      and  _DomainText.Language = $session.system_language

  //                                                                                      and  _DomainText.DomainValue = 'X'


  association [0..1] to I_ProcmtBlockedSupplier       as _ProcmtBlockedSupplier       on  _ProcmtBlockedSupplier.PurchasingIsBlockedForSupplier = 'X'

  association [0..*] to I_ReleaseStrategyDesc         as _ReleaseStrategyDesc         on  _ReleaseStrategyDesc.PurchasingReleaseStrategy = $projection.ReleaseStrategy
                                                                                      and _ReleaseStrategyDesc.ReleaseGroup              = $projection.ReleaseGroup

  association [0..1] to C_PurchaseReqnSourceType      as _PurchaseReqnSourceType      on  _PurchaseReqnSourceType.DomainValue = $projection.PurchasingSourceType

  //  association [1..1] to P_PurReqOpenValCalc            as _PurReqOpenValCalc          on  _PurReqOpenValCalc.PurchaseRequisition     = $projection.PurchaseRequisition

  //                                                                                      and _PurReqOpenValCalc.PurchaseRequisitionItem = $projection.PurchaseRequisitionItem


  association [1..1] to I_CalendarDate                as _CalendarDate                on  _CalendarDate.CalendarDate = $session.system_date

{

  key _Purchaserequisitionitem.PurchaseRequisition,

  key _Purchaserequisitionitem.PurchaseRequisitionItem,

      _PurchasingCategoryMatlGroup.PurgCatUUID,

      _Purchaserequisitionitem.MaterialGroup,

      _PurchasingCategoryMatlGroup._PurchasingCategory.PurchasingCategory,

      //_PurchasingCategoryMatlGroup._MaterialGroup,


      _Purchaserequisitionitem.PurchasingOrganization,

      _Purchaserequisitionitem.PurchasingDocumentCategory,

      _Purchaserequisitionitem.PurchaseRequisitionType,

      _Purchaserequisitionitem.FixedSupplier, //// as Supplier ,


      _Purchaserequisitionitem.SupplyingPlant,

      _Purchaserequisitionitem.AccountAssignmentCategory,

      _Purchaserequisitionitem.Material,

      _Purchaserequisitionitem.Plant,

      _Purchaserequisitionitem.BaseUnit,

      _Purchaserequisitionitem.PurchasingDocumentItemCategory,

      _Purchaserequisitionitem.PurchasingDocument,

      _Purchaserequisitionitem.PurchasingGroup,


      //      case when  _Purchaserequisitionitem.DeliveryDate < $session.system_date and _Purchaserequisitionitem.DeliveryDate is not null and _Purchaserequisitionitem.DeliveryDate <> '00000000'

      //         then '1'

      //         else '2'

      //         end    as  IsOverdue,

      _Purchaserequisitionitem.DeliveryDate,

      _Purchaserequisitionitem.RequestedQuantity,

      _Purchaserequisitionitem.PurchaseRequisitionPrice,

      _Purchaserequisitionitem.PurReqnPriceQuantity,

      _Purchaserequisitionitem.PurReqnItemCurrency,

      _PurgDocumentItemCategory._Text[1: Language = $session.system_language ].PurgDocExternalItemCategory,

      _PurgDocumentItemCategory._Text[1: Language = $session.system_language ].PurgDocItemCategoryName,

      _Purchaserequisitionitem.RequirementTracking,
      _Purchaserequisitionitem.PurchaseRequisitionItemText,

      _Purchaserequisitionitem.Supplier, //// as ExtDesiredSupplierForPurg ,


      _DesiredSupplier.SupplierName, ////  as PreferredSupplierName,


      case PurReqnPriceQuantity
          when 0 then cast(PurchaseRequisitionPrice * RequestedQuantity as abap.curr( 25, 2 ))
          else
             case when RequestedQuantity = 0
               then PurchaseRequisitionPrice
             else
              cast(division(
                                cast(PurchaseRequisitionPrice * RequestedQuantity as abap.dec( 25, 2 )),
                                cast(PurReqnPriceQuantity as abap.dec( 25, 2 )),2
                                ) as abap.curr( 25, 2 ))
              end
          end                                                                             as PurReqnTotalAmountInDspCrcy,

      _Purchaserequisitionitem.RequestedQuantity-_Purchaserequisitionitem.OrderedQuantity as OpenQuantity,
      _Purchaserequisitionitem.PurReqnReleaseStatus,
      _Purchaserequisitionitem.PurchaseRequisitionReleaseDate,
      _Purchaserequisitionitem.PurReqCreationDate,
      _Purchaserequisitionitem.ProcessingStatus,
      _Purchaserequisitionitem.ReleaseCode,
      _ReleaseIndicatorDesc.PurchasingReleaseIndicatorDesc,
      _Purchaserequisitionitem.StorageLocation,
      _Purchaserequisitionitem.PurchasingInfoRecord,
      //_Purchaserequisitionitem.PurReqnSSPRequestor,

      _Purchaserequisitionitem.PurReqnRequestor,
      _Purchaserequisitionitem.RequisitionerName,
      _Purchaserequisitionitem.MRPController,
      _Purchaserequisitionitem.Batch,
      _Purchaserequisitionitem.PurReqnOrigin,
      _PurchaseReqnOrigin.DomainText,
      _Purchaserequisitionitem.ReleaseStrategy,
      _ReleaseStrategyDesc.PurchasingReleaseStrategyDesc,
      _Purchaserequisitionitem.ReleaseGroup,
      _Purchaserequisitionitem.CreatedByUser,
      _User.UserDescription,
      _Purchaserequisitionitem.CreationDate,
      _Purchaserequisitionitem.IsClosed,
      _Purchaserequisitionitem.IsDeleted,
      _Purchaserequisitionitem.PurchasingDocumentSubtype,
      _Purchaserequisitionitem.IsPurReqnBlocked,
      _Purchaserequisitionitem.IsPurReqnCmplt,
      _Purchaserequisitionitem.CompanyCode,
      _Purchaserequisitionitem._PurchaseOrder._CompanyCode.CompanyCodeName,
      _Purchaserequisitionitem.OrderedQuantity,
      _Purchaserequisitionitem.PurchaseRequisitionStatus,
      _Purchaserequisitionitem.ConsumptionPosting,
      _Purchaserequisitionitem._PurchasingDocumentType._Text[1: Language = $session.system_language ].PurchasingDocumentTypeName,
      _DesiredSupplier.PurchasingIsBlocked,
      //      _Supplier.PurchasingIsBlocked,

      case when
      _DesiredSupplier.PurchasingIsBlocked = 'X'
      //      _Supplier.PurchasingIsBlocked = 'X'

      then
      _ProcmtBlockedSupplier._Text[1: Language = $session.system_language].SupplierName
      // _DomainText.DomainText

      else
      ' '
      end                                                                                 as PurchasingIsBlockedForSupplier,

      //visual filter case statements

      cast(case when
      (_Purchaserequisitionitem.PurReqnReleaseStatus = '03' and  _Purchaserequisitionitem.ProcessingStatus = 'N') or (_Purchaserequisitionitem.PurReqnReleaseStatus = '04' and  _Purchaserequisitionitem.ProcessingStatus = 'N') or (_Purchaserequisitionitem.PurReqnReleaseStatus = '02' and  _Purchaserequisitionitem.ProcessingStatus = 'N' and _Purchaserequisitionitem.PurReqnCmpltnsCat = 'A')
      then '1' //In Approval

      when (_Purchaserequisitionitem.PurReqnReleaseStatus = '02' and  _Purchaserequisitionitem.ProcessingStatus = 'N') or
      (_Purchaserequisitionitem.PurReqnReleaseStatus = '05' and  _Purchaserequisitionitem.ProcessingStatus = 'N')
      then '2' //without-follow on documents

      else '3' //others

      end as abap.char( 10 )) as PurchasingDocumentStatus,


      //Newly added fields as part of code clean up based on scope document

      ProductType,
      SupplierMaterialNumber,
      MaterialRevisionLevel,
      ServicePerformer,
      MaterialPlannedDeliveryDurn,
      PerformancePeriodStartDate,
      PerformancePeriodEndDate,
      PurchaseRequisitionIsFixed,
      MaterialGoodsReceiptDuration,
      GoodsReceiptIsExpected,
      InvoiceIsExpected,
      GoodsReceiptIsNonValuated,
      SourceOfSupplyIsAssigned,
      LastChangedDate,

      case
       when PurchaseContract <> ''
         then concat(concat(PurchaseContract, '/'), PurchaseContractItem)
       when PurchasingInfoRecord <> ''
          then PurchasingInfoRecord
       else
           ' '
      end                                                                                 as SourceDocument,

      case
       when PurchaseContractItem <> '00000'
         then 'AG'
       when PurchasingInfoRecord <> ''
         then  'IR'
       else
         ''
       end                                                                                as PurchasingSourceType,

      _SupplyingPlant.PlantName                                                           as SupplyingPlantName,

      ////        _PurReqOpenValCalc.IsOverdue,

      ////

      ////        _PurReqOpenValCalc.NetValueAmount,

      ////

      ////        _PurReqOpenValCalc.DurationToNextStatusInDays,


      //Logic for sun to sat

      dats_add_days(_CalendarDate.FirstDayOfWeekDate,-1,'NULL')                           as weekstart,
      dats_add_days(_CalendarDate.FirstDayOfWeekDate,5,'NULL')                            as weekend,
      dats_add_days(_CalendarDate.FirstDayOfWeekDate,12,'NULL')                           as secweekend,
      dats_add_days(_CalendarDate.FirstDayOfWeekDate,26,'NULL')                           as fourthweekend,

      //_CalendarDate.WeekDay,

      cast(cast(_CalendarDate.CalendarWeek as abap.int1( 3 )) - 1 as abap.char( 12 ))     as calweek,
      7-cast(_CalendarDate.WeekDay as abap.int8)                                          as weekday1,
      14-cast(_CalendarDate.WeekDay as abap.int8)                                         as weekday2,
      28-cast(_CalendarDate.WeekDay as abap.int8)                                         as weekday4,
      dats_add_days(_CalendarDate.FirstDayOfWeekDate,-1,'NULL')                           as weekday5,

      //Carbon footprint UUID

      PFMTransDataFootprintUUID,

      //Associations

      _PurchaseReqnSourceType,
      _PurchasingCategoryMatlGroup._PurchasingCategory,
      // _PurchasingCategoryMatlGroup._MaterialGroup,

      _AccAssgnmtCategory,
      _PurchasingOrganization,
      _PurchasingGroup,
      _Plant,
      _Material,
      _PurchasingInfoRecord,
      _StorageLocation,
      _PurgDocumentItemCategory,
      _Supplier,
      _PurReqnAcctAssgmt,
      //      _Supplier as _FixedSupplier,

      _DesiredSupplier,
      _ReleaseIndicatorDesc,
      _PurchaseReqnOrigin,
      _User,
      _ProcmtBlockedSupplier,
      // _DomainText,

      _ReleaseStrategyDesc,
      _PurchasingCategoryMatlGroup,
      _Purchaserequisitionitem._MaterialGroup                                             as _MaterialGroup // 2741424


}
where
                PurchasingDocumentCategory                              =  'B'
  and           IsPurReqnBlocked                                        =  ' '
  and(
                IsPurReqnCmplt                                          =  ' '
    or(
                IsPurReqnCmplt                                          =  'X'
      and       PurReqnCmpltnsCat                                       =  'A'
    )
  )
  and(
    (
                _Purchaserequisitionitem.Supplier                       =  ' '
    )
    or(
                _DesiredSupplier.IsBusinessPurposeCompleted             =  ' '
    )
  )
  and(
    (
                FixedSupplier                                           =  ' '
    )
    or(
                _Supplier.IsBusinessPurposeCompleted                    =  ' '
    )
  )
  and           IsDeleted                                               =  ' '
  and           IsClosed                                                =  ' '
  and(
    (
      (
        (
          (
                OrderedQuantity                                         <  RequestedQuantity
          )
          or(
                RequestedQuantity                                       =  0
            and _Purchaserequisitionitem.PurchasingDocumentItemCategory =  'A'
          )
        )
        or      PurchasingDocumentItemCategory                          =  '8'
      )
      and       PurchasingDocumentSubtype                               <> 'R'
    )
    or(
                PurchasingDocumentSubtype                               =  'R'
      and       ProcessingStatus                                        <> 'K'
      and       ProcessingStatus                                        <> 'L'
    )
  )
  and           IsOutline                                               =  ' '
  and           ProcurementHubSourceSystem                              =  ' '