P_SupDmndAllDocSDDate

DDL: P_SUPDMNDALLDOCSDDATE Type: view BASIC Package: VDM_ARUN_ANALYTICS_ALL

View for Sales Document Date/Quantity Calculation

P_SupDmndAllDocSDDate is a Basic CDS View that provides data about "View for Sales Document Date/Quantity Calculation" in SAP S/4HANA. It reads from 3 data sources (I_SalesDocumentItem, I_SalesDocumentScheduleLine, I_SalesDocumentScheduleLine) and exposes 6 fields. Part of development package VDM_ARUN_ANALYTICS_ALL.

Data Sources (3)

SourceAliasJoin Type
I_SalesDocumentItem Item from
I_SalesDocumentScheduleLine ScheduleLine1 inner
I_SalesDocumentScheduleLine ScheduleLine2 inner

Annotations (9)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
VDM.viewType #BASIC view
VDM.private true view
AccessControl.authorizationCheck #NOT_REQUIRED view
AbapCatalog.sqlViewName PSUPDMNDADSDDATE view
AbapCatalog.compiler.compareFilter true view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XXL view

Fields (6)

KeyFieldSource TableSource FieldDescription
RequirementDocumentNumber I_SalesDocumentScheduleLine SalesDocument
RequirementDocumentItem I_SalesDocumentScheduleLine SalesDocumentItem
RequestedDate I_SalesDocumentScheduleLine ConfdSchedLineReqdDelivDate
ProductAvailabilityDate I_SalesDocumentScheduleLine ProductAvailabilityDate
Material I_SalesDocumentItem Material
Plant I_SalesDocumentItem Plant
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM: {
  viewType: #BASIC,
  private: true
}
@AccessControl: {
  authorizationCheck: #NOT_REQUIRED,
  personalData.blocking: #('TRANSACTIONAL_DATA')
}
@AbapCatalog: {
  sqlViewName: 'PSUPDMNDADSDDATE',
  compiler.compareFilter: true
 }
@ObjectModel: {
   usageType: {
     dataClass:      #TRANSACTIONAL,
     serviceQuality: #C,
     sizeCategory:   #XXL
   }
}
define view P_SupDmndAllDocSDDate
  as select from I_SalesDocumentItem         as Item

    inner join   I_SalesDocumentScheduleLine as ScheduleLine1 on  Item.SalesDocument     = ScheduleLine1.SalesDocument
                                                              and Item.SalesDocumentItem = ScheduleLine1.SalesDocumentItem

    inner join   I_SalesDocumentScheduleLine as ScheduleLine2 on  ScheduleLine1.SalesDocument               = ScheduleLine2.SalesDocument
                                                              and ScheduleLine1.SalesDocumentItem           = ScheduleLine2.SalesDocumentItem
                                                              and ScheduleLine1.ConfdSchedLineReqdDelivDate = ScheduleLine2.ConfdSchedLineReqdDelivDate
{
  ScheduleLine1.SalesDocument               as RequirementDocumentNumber,
  ScheduleLine1.SalesDocumentItem           as RequirementDocumentItem,
  ScheduleLine1.ConfdSchedLineReqdDelivDate as RequestedDate,
  ScheduleLine1.ProductAvailabilityDate     as ProductAvailabilityDate,
  Item.Material                             as Material,
  Item.Plant                                as Plant,
  case
    when Item._SalesDocument.SDDocumentCategory = 'C' or Item._SalesDocument.SDDocumentCategory = 'I'
      then
         (
            case
              when ScheduleLine2.OrderToBaseQuantityDnmntr != 0 or ScheduleLine2.OrderToBaseQuantityNmrtr != 0
                then cast( ScheduleLine2.ConfdOrderQtyByMatlAvailCheck * division(ScheduleLine2.OrderToBaseQuantityNmrtr,ScheduleLine2.OrderToBaseQuantityDnmntr,3) as ovr_conf_so_sl_qty )
              else cast( ScheduleLine2.ConfdOrderQtyByMatlAvailCheck as ovr_conf_so_sl_qty )
            end
         )
    when Item._SalesDocument.SDDocumentCategory = 'G'
      then ScheduleLine2.ConfirmedRqmtQtyInBaseUnit
    else 0
  end                                       as ConfdOrderQtyByMatlAvailCheck
}
where
       ScheduleLine1.ScheduleLineOrderQuantity > 0
  and  Item.SDDocReferenceStatus != 'C'  //Reference Status != Completely processed

  and  Item.SalesDocumentItemType != 'B' //Item Type != Text item

  and  Item.DeliveryStatus != 'C'        //Delivery Status != Completely processed

  and  Item.SalesDocumentRjcnReason            = ' ' //RejectionReason = ' '

  and  Item.IsReturnsItem != 'X' //Returns != 'X'

  and(
       Item.InventorySpecialStockType          = ' '
    or Item.InventorySpecialStockType          = 'E'
  ) //Consider Orders on Hand


  and  Item._SalesDocument.OverallTotalSDDocRefStatus != 'C' //Total Reference Status != Completely processed

  and  Item._SalesDocument.OverallDeliveryStatus != 'C' //Total Delivery Status != Completely processed

  and(
       Item._SalesDocument.SDDocumentCategory  = 'C' //Document Category = Order

    or Item._SalesDocument.SDDocumentCategory  = 'I' //Document Category = Order without Charge

    or Item._SalesDocument.SDDocumentCategory  = 'G' //Document Category = Contract

  )