Views mit Parametern
ABAP CDS Views können um Parameter erweitert werden. Der Verwender einer ABAP CDS View muss diese beim Aufruf mit Werten versorgen.
Definition von Views mit Parametern
Views mit Paramatern werden über den Zusatz with parameters definiert. Innerhalb der ABAP CDS View kann über die Anweisung $parameters auf die Parameter zugegriffen werden.
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Flight'
define view entity I_Flight
  with parameters
    P_CarrierId    : /dmo/carrier_id,
    P_ConnectionId : /dmo/connection_id,
    @Environment.systemField: #SYSTEM_DATE
    P_Deadline     : abap.dats
  as select from /dmo/flight
{
  key carrier_id    as CarrierId,
  key connection_id as ConnectionId,
  key flight_date   as FlightDate,
      price         as Price,
      currency_code as CurrencyCode
}
where
      carrier_id    = $parameters.P_CarrierId
  and connection_id = $parameters.P_ConnectionId
  and flight_date   <= $parameters.P_Deadline
Hinweis
Mit Hilfe der Annotation @Environment.systemField kann einem Parameter ein Systemfeld als Standardwert zugewiesen werden. Der Parameter wird dadurch optional.
Verwenden von Views mit Parametern
Beim Aufruf einer ABAP CDS View mit Parametern müsse diese mit Werten versorgt werden.
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Flight'
define view entity I_UpcomingFlight
  with parameters
    P_CarrierId    : /dmo/carrier_id,
    P_ConnectionId : /dmo/connection_id
  as select from I_Flight(P_CarrierId: $parameters.P_CarrierId, P_ConnectionId: $parameters.P_ConnectionId)
{
  key CarrierId,
  key ConnectionId,
  key FlightDate,
      Price,
      CurrencyCode
}
In ABAP SQL erfolgt die Angabe der Parameter analog zu den ABAP CDS Views.
SELECT FROM I_Flight( p_carrierid = 'LH', p_connectionid = '0400' )
  FIELDS *
  INTO TABLE @DATA(flights).