I_SalesDocItmReturnableQty

DDL: I_SALESDOCITMRETURNABLEQTY SQL: ISOITEMRETBLQTY Type: view COMPOSITE Package: ODATA_SD_RETURN_V2

Returnable Quantity of Sales

I_SalesDocItmReturnableQty is a Composite CDS View that provides data about "Returnable Quantity of Sales" in SAP S/4HANA. It reads from 1 data source (I_SalesDocumentItemBasic) and exposes 2 fields with key fields SalesDocument, SalesDocumentItem. Part of development package ODATA_SD_RETURN_V2.

Data Sources (1)

SourceAliasJoin Type
I_SalesDocumentItemBasic SalesDocumentItem from

Annotations (9)

NameValueLevelField
AbapCatalog.sqlViewName ISOITEMRETBLQTY view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #NOT_REQUIRED view
VDM.viewType #COMPOSITE view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Returnable Quantity of Sales view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view

Fields (2)

KeyFieldSource TableSource FieldDescription
KEY SalesDocument I_SalesDocumentItemBasic SalesDocument
KEY SalesDocumentItem I_SalesDocumentItemBasic SalesDocumentItem
@AbapCatalog.sqlViewName: 'ISOITEMRETBLQTY'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@VDM.viewType: #COMPOSITE
@ClientHandling.algorithm:#SESSION_VARIABLE
@EndUserText.label: 'Returnable Quantity of Sales'
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XL

define view I_SalesDocItmReturnableQty
  // Use I_SalesDocumentItem to avoid the analytical search which cannot do filter pushdown

  as select from           I_SalesDocumentItemBasic       as SalesDocumentItem
    left outer to one join I_SalesDocumentBasic           as SalesDocument    on SalesDocumentItem.SalesDocument = SalesDocument.SalesDocument

    left outer to one join I_SalesDocItemReturnedQuantity as ReturnedQuantity on  SalesDocumentItem.SalesDocument     = ReturnedQuantity.SalesDocument
                                                                              and SalesDocumentItem.SalesDocumentItem = ReturnedQuantity.SalesDocumentItem
{
  key SalesDocumentItem.SalesDocument,
  key SalesDocumentItem.SalesDocumentItem,

      case
      when ReturnedQuantity.SalesDocument is null
      then
        case
        when SalesDocumentItem.OrderToBaseQuantityNmrtr = 0 
          then SalesDocumentItem.RequestedQuantity
          else division (SalesDocumentItem.RequestedQuantityInBaseUnit * SalesDocumentItem.OrderToBaseQuantityDnmntr, SalesDocumentItem.OrderToBaseQuantityNmrtr, 3)
        end
      
      else
        case
        when SalesDocumentItem.OrderToBaseQuantityNmrtr = 0 
          then SalesDocumentItem.RequestedQuantity - ReturnedQuantity.ReturnedQuantity 
          else division (SalesDocumentItem.RequestedQuantityInBaseUnit * SalesDocumentItem.OrderToBaseQuantityDnmntr, SalesDocumentItem.OrderToBaseQuantityNmrtr, 3) - ReturnedQuantity.ReturnedQuantity
        end
 
      end as ReturnableQuantity
}
where
      SalesDocument.SDDocumentCategory           =  'C' //Enable the sales order

  or  SalesDocument.SDDocumentCategory           =  'I' //Enable sales order without charge

  and SalesDocumentItem.OrderToBaseQuantityNmrtr <> 0