I_OverdueSalesOrder

DDL: I_OVERDUESALESORDER SQL: ISDOVRDSLSORDER Type: view COMPOSITE Package: VDM_SD_ANALYTICS

Overdue Sales Order

I_OverdueSalesOrder is a Composite CDS View that provides data about "Overdue Sales Order" in SAP S/4HANA. It reads from 2 data sources (P_OverdueSalesOrderUnion, I_SalesDocumentBasic) and exposes 18 fields with key fields SalesOrder, Issue. It has 1 association to related views. Part of development package VDM_SD_ANALYTICS.

Data Sources (2)

SourceAliasJoin Type
P_OverdueSalesOrderUnion IssueUnion from
I_SalesDocumentBasic SalesDocument left_outer

Parameters (2)

NameTypeDefault
P_ExchangeRateType kurst
P_DisplayCurrency vdm_v_display_currency

Associations (1)

CardinalityTargetAliasCondition
[0..1] I_Issue _Issue $projection.Issue = _Issue.Issue

Annotations (8)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #S view
EndUserText.label Overdue Sales Order view
VDM.viewType #COMPOSITE view
AccessControl.authorizationCheck #CHECK view
AbapCatalog.sqlViewName ISDOVRDSLSORDER view

Fields (18)

KeyFieldSource TableSource FieldDescription
KEY SalesOrder SalesOrder
KEY Issue Issue
_Issue _Issue
SalesOrderType I_SalesDocumentBasic SalesDocumentType
SoldToParty I_SalesDocumentBasic SoldToParty
_SoldToParty I_SalesDocumentBasic _SoldToParty
SalesOrganization I_SalesDocumentBasic SalesOrganization
_SalesOrganization I_SalesDocumentBasic _SalesOrganization
DistributionChannel I_SalesDocumentBasic DistributionChannel
_DistributionChannel I_SalesDocumentBasic _DistributionChannel
OrganizationDivision I_SalesDocumentBasic OrganizationDivision
_OrganizationDivision I_SalesDocumentBasic _OrganizationDivision
SalesOffice I_SalesDocumentBasic SalesOffice
_SalesOffice I_SalesDocumentBasic _SalesOffice
SalesGroup I_SalesDocumentBasic SalesGroup
_SalesGroup I_SalesDocumentBasic _SalesGroup
NumberOfSalesOrders NumberOfSalesOrders
DisplayCurrency
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #S
@EndUserText.label: 'Overdue Sales Order'
@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@AbapCatalog.sqlViewName: 'ISDOVRDSLSORDER'

define view I_OverdueSalesOrder
  with parameters
    P_ExchangeRateType : kurst,
    P_DisplayCurrency  : vdm_v_display_currency
  as select from    P_OverdueSalesOrderUnion as IssueUnion
    left outer join I_SalesDocumentBasic     as SalesDocument on IssueUnion.SalesOrder = SalesDocument.SalesDocument
  association [0..1] to I_Issue as _Issue on $projection.Issue = _Issue.Issue
{
  key SalesOrder,

      @ObjectModel.foreignKey.association: '_Issue'
  key Issue,
      _Issue,

      SalesDocument.SalesDocumentType                    as SalesOrderType,

      @ObjectModel.foreignKey.association: '_SoldToParty'
      SalesDocument.SoldToParty,
      SalesDocument._SoldToParty,
      @ObjectModel.foreignKey.association: '_SalesOrganization'
      SalesDocument.SalesOrganization,
      SalesDocument._SalesOrganization,
      @ObjectModel.foreignKey.association: '_DistributionChannel'
      SalesDocument.DistributionChannel,
      SalesDocument._DistributionChannel,
      @ObjectModel.foreignKey.association: '_OrganizationDivision'
      SalesDocument.OrganizationDivision,
      SalesDocument._OrganizationDivision,
      @ObjectModel.foreignKey.association: '_SalesOffice'
      SalesDocument.SalesOffice,
      SalesDocument._SalesOffice,
      @ObjectModel.foreignKey.association: '_SalesGroup'
      SalesDocument.SalesGroup,
      SalesDocument._SalesGroup,

      @DefaultAggregation: #SUM
      NumberOfSalesOrders,

      @Semantics.currencyCode: true
      cast(:P_DisplayCurrency as vdm_v_display_currency) as DisplayCurrency,

      @DefaultAggregation: #SUM
      @Semantics.amount.currencyCode: 'DisplayCurrency'
      cast(currency_conversion(
           amount => SalesDocument.TotalNetAmount,
           source_currency => TransactionCurrency,
           target_currency => :P_DisplayCurrency,
           exchange_rate_date => cast($session.system_date as abap.dats),
           exchange_rate_type => :P_ExchangeRateType,
           error_handling => 'FAIL_ON_ERROR',
           round => #CDSBoolean.true,
           decimal_shift => #CDSBoolean.true,
           decimal_shift_back => #CDSBoolean.true
         ) as net_amount_in_dsp_crcy )                          as TotalNetAmountInDisplayCrcy
}
where
  DueDays <= 0