Ansicht
Dokumentation
ABENCDS_F1_SELECT_LIST_ENTRY - CDS F1 SELECT LIST ENTRY
Fill RESBD Structure from EBP Component Structure BAL Application Log DocumentationDiese Dokumentation steht unter dem Copyright der SAP AG.
- SELECT, element
... ${ $[@element_annot1$]
$[@element_annot2$]
...
$[KEY$] ${ ${ association
$| composition
$| to_parent_assoc
$| element
$|
path_expr.element $[AS alias$] $}
$| ${ literal
$| parameter
$| session_variable
$| aggr_expr
$| arith_expr
$| builtin_func
$| case_expr
$| cast_expr AS alias $}
$[@element_annot1$]
$[@element_annot2$]
... $}
$| ${ $EXTENSION.* $} $} ...
Alternativen:
1.
... association$|composition$|to_parent_assoc$|element$|path_expr$|literal$|parameter$|...
2. ... $EXTENSION.*
Wirkung
Definiert ein Element einer SELECT-Liste einer
CDS-View. Die Namen
der Elemente einer SELECT-Liste müssen eindeutig sein und liegen im gleichen Namensraum wie die
Parameter der View.
Alternative 1
... association$|composition$|to_parent_assoc$|element$|path_expr$|literal$|parameter$|...
Zusätze:
1. ... @element_annot ... @element_annot
2. ... KEY
3. ... AS alias
Wirkung
Angabe einzelner Elemente der SELECT-Liste einer CDS-View.
- Mit association wird über einen Pfadausdruck eine CDS-Assoziation veröffentlicht. Wenn eine CDS-Assoziation mit einer Filterbedingung cond_expr veröffentlicht wird, muss ein alternativer Elementname alias mit AS definiert werden, ansonsten kann ein alternativer Elementname definiert werden.
- Mit composition wird über einen Pfadausdruck eine CDS-Komposition veröffentlicht.
- Mit to_parent_assoc wird über einen Pfadausdruck eine CDS-To-Parent-Assoziation veröffentlicht.
- Mit der direkten Angabe eines Namens element wird ein Element einer Datenquelle data_source der aktuellen CDS-View als Element definiert. Dem Feldnamen kann der Name der Datenquelle oder deren alternativer Name als Präfix vorangestellt werden, der durch einen Punkt (.) abgetrennt ist. Mit AS kann ein alternativer Elementname alias definiert werden.
- Mit path_expr.element wird ein Element element der Zieldatenquelle der letzten CDS-Assoziation des Pfadausdrucks path_expr angegeben. Das solcherart definierte Element ist Teil der Ergebnismenge der CDS-View, ein Feld der CDS-Datenbank-View und eine Komponente eines Typs, der in ABAP mit Bezug auf die CDS-View definiert wird. Wenn kein alternativer Elementname alias definiert ist und es keine Namensliste gibt, wird der Elementname durch den Namen des vom Pfadausdruck bezeichneten Elements definiert.
- Mit literal kann ein Literal angegeben werden. Mit AS muss ein alternativer Elementname alias definiert werden. Dem Literal kann der Name einer Domäne vorangestellt werden.
- Mit parameter kann ein Eingabeparameter aus der Parameterliste parameter_list angegeben werden. Mit AS muss ein alternativer Elementname alias definiert werden, der nicht der Name pname des Parameters sein darf.
- Mit session_variable kann eine Sitzungsvariable angegeben werden. Mit AS muss ein alternativer Elementname alias definiert werden.
- Mit aggr_expr, arith_expr, builtin_func und case_exp können Aggregatausdrücke, arithmetische Ausdrücke, Aufrufe eingebauter Funktionen der Datenbank und Fallunterscheidungen angegeben werden. Die Ausdrücke und Funktionen werden bei Zugriff auf die CDS-View im Datenbanksystem ausgewertet. Mit AS muss ein alternativer Elementname alias definiert werden, es sei denn es gibt eine Namensliste.
Elemente vom Typ CHAR dürfen maximal 1333 Zeichen lang sein. Elemente der Typen LRAW oder LCHR müssen am Ende der View stehen. Es ist nur ein solches Element pro View erlaubt. Außerdem muss direkt vor einem solchen Element ein Feld vom Typ INT2 oder INT4 für die maximale Länge des Felds stehen.
Beispiel
SELECT-Liste mit allen möglichen Elementen.
-
@AbapCatalog.sqlViewName: '...'
define view ...
with parameters
p_delay :abap.int4
as select from
spfli
association to scarr as _scarr on
_scarr.carrid = spfli.carrid
{
carrid,
_scarr.carrname,
'...' as text,
:p_delay as delay,
$session.user as usr,
count( * ) as cnt,
fltime + :p_delay as fltime_delayed,
concat(concat('"',_scarr.carrname),'"') as carrname_quoted,
case when fltime 60 then 'short'
when fltime > 300 then 'long'
else 'medium'
end as duration,
cast(connid as int4) as connid_number
}
group by
carrid,
connid,
_scarr.carrname,
fltime
Zusatz 1
... @element_annot ... @element_annot
Wirkung
Angabe von Annotationen für das Element. Die Angaben können über @element_annot vor oder über @element_annot hinter dem Element erfolgen.
Hinweise
- Über eine Annotation können einem Element weitere technische und semantische Eigenschaften für die Auswertung durch die ABAP-Laufzeitumgebung zugeordnet werden. Über Framework-spezifische Annotationen kann es mit spezifischen semantischen Eigenschaften für andere Frameworks der SAP versehen werden.
- Bezüglich der Elementannotationen wird die Veröffentlichung einer CDS-Assoziation
association wie jedes normale Element behandelt. Wenn eine CDS-Assoziation veröffentlicht wird, die in einer anderen CDS-View definiert ist, werden bei der
Auswertung von Annotationen mit der Klasse
CL_DD_DDL_ANNOTATION_SERVICE die Annotationen vorhergehender Veröffentlichungen geerbt.
Zusatz 2
... KEY
Wirkung
Mit KEY wird das aktuelle Element als Schlüsselelement der aktuellen CDS-Entität definiert. Als Schlüsselelemente können solche Elemente einer SELECT-Liste definiert werden, die zusammenhängend am Anfang der Liste stehen.
Standardmäßig dienen die Schlüsselelemente der CDS-Entität nur der Dokumentation der Semantik des Datenmodells. Der Zusatz KEY spielt dann bei der Aktivierung der CDS-View und bei sonstigen Zugriffen während der Programmausführung keine Rolle.
Die Standardeinstellung kann mit der View-Annotation AbapCatalog.preserveKey übersteuert werden:
- Wenn für diese Annotation der Wert true angegeben ist, werden die mit KEY definierten Schlüsselelemente auch als Schlüssel der CDS-Datenbank-View verwendet.
- Wenn diese Annotation nicht oder mit dem Wert false angegeben ist, haben die mit KEY definierten Schlüsselelemente keinen Einfluss auf den Schlüssel der CDS-Datenbank-View. Die Schlüsselfelder der CDS-Datenbank-View werden wie bei einer Datenbank-View des ABAP Dictionary implizit aus den Schlüsselfeldern der Basistabellen und den Join-Bedingungen abgeleitet. Wenn dies nicht möglich ist, sind alle Felder der Datenbank-View Schlüsselfelder.
Hinweise
- Für die Tabellenpufferung sind immer die Schlüsselfelder der CDS-Datenbank-View ausschlaggebend.
- Welche Schlüsselelemente bei der Syntaxprüfung von verwendet werden hängt davon, ob der Name der CDS-Entität oder der CDS-Datenbank-View angegeben ist, wobei letzteres aber
obsolet ist.
Zusatz 3
... AS alias
Wirkung
Definition eines alternativen Elementnamens für das aktuelle Element. Der alternative Elementname ersetzt den tatsächlichen Namen des Elements aus der Datenquelle data_source. Im CDS-Datenbank-View wird das View-Feld unter dem alternativen Elementnamen angelegt. Entsprechend muss der alternative Elementname neben den allgemeinen Namensregeln für Bezeichner den Vorschriften für Namen von View-Feldern von Datenbank-Views folgen:
Dies wird aber nur überprüft, wenn keine explizite Namensliste vorhanden ist, welche die alternativen Elementnamen übersteuert.
Mit alternativen Elementnamen können in der aktuellen CDS-View eindeutige Namen für gleichnamige Elementen aus unterschiedlichen Entitäten der Datenquelle vergeben werden. Die alternativen Elementnamen sind bei einem Zugriff auf die aktuelle CDS-View statt des tatsächlichen Namens zu verwenden. Innerhalb der CDS-View können alternative Elementnamen nicht verwendet werden, mit einer Ausnahme: In der ON-Bedingung einer CDS-Assoziation können alternative Elementnamen direkt oder hinter $projection angegeben werden.
Hinweis
Ein alternativer Elementname kann insbesondere nicht als Operand eines Ausdrucks verwendet werden.
Alternative 2
... $EXTENSION.*
Wirkung
Angabe aller Elemente einer Erweiterung des Erweiterungskonzepts für Dictionary-Objekte. Die Angabe $EXTENSION.* fügt an dieser Stelle alle Felder aller Customizing-Includes, Append-Strukturen und Append-Views ein, die es im aktuellen System für die Datenbanktabellen oder Dictionary-Views gibt, die in der aktuellen CDS-View als Datenquelle data_source vorkommen. Für als Datenquelle verwendete CDS-Views, die mit EXTEND VIEW erweitert werden, hat die Angabe $EXTENSION.* keine Wirkung.
Die Angabe $EXTENSION.* wirkt genau für die aktuelle CDS-View. Sie wirkt nicht auf andere CDS-Views, in deren Datenquelle die aktuelle CDS-View verwendet wird oder auf CDS-Views in der Datenquelle der aktuellen CDS-View.
Die Angabe $EXTENSION.* ist nicht möglich, wenn in der aktuellen SELECT-Liste Aggregatausdrücke aggr_expr vorkommen oder wenn die aktuelle CDS-View eine Vereinigungsmenge über UNION bildet.
Hinweise
- Die Angabe $EXTENSION.* ist unabhängig davon, wann eine Erweiterung vorgenommen wird. Sie wirkt auch dann, wenn eine Datenbanktabelle oder eine View erst nach der Aktivierung der CDS-View erweitert wird.
- Um die aktuelle CDS-View selbst zu erweitern, kann die Anweisung EXTEND VIEW verwendet werden.
- Wenn die CDS-Datenbank-View einer CDS-View, die mit EXTEND VIEW erweitert wird, als Datenquelle angegeben ist, bindet die Angabe $EXTENSION.* die Felder der generierten Append-View ein.
Beispiel
Die Datenquelle der CDS-View sales_order ist ein innerer Join der Datenbanktabellen snwd_bpa und snwd_so und enthält drei direkt definierte Elemente sales_order_id, business_partner_id, company_name und wegen der Angabe von $EXTENSION.* alle Felder, die durch Erweiterungen in den Datenbanktabellen snwd_bpa und snwd_so vorhanden sind. Für die Datenbank snwd_bpa ist der alternative Name partner definiert und wird in der ON-Bedingung verwendet. Die Namen der Elemente sales_order_id und business_partner_id sind alternative Elementnamen. Das Element sales_order_id wird als Schlüsselelement definiert.
-
@AbapCatalog.sqlViewName: 'SALES_ORDER_VW'
define view sales_order as
select from snwd_bpa as partner
inner join
snwd_so on partner.node_key = snwd_so.buyer_guid
{ key so_id as sales_order_id,
bp_id as business_partner_id,
company_name, //from snwd_bpa
$extension.* }
Beispiel
Die folgende View greift auf die CDS-View DEMO_CDS_ORIGINAL_VIEW zu, welche im Beispiel zu EXTEND VIEW erweitert wird. Die Angabe von $EXTENSION.* hat keine Wirkung.
Die folgende View greift dagegen auf die CDS-Datenbank-View DEMO_CDS_ORIG von DEMO_CDS_ORIGINAL_VIEW zu. Die Angabe von $EXTENSION.* bindet die beiden Felder der Append-View ein, welche die Datenbank-View erweitert.
rdisp/max_wprun_time - Maximum work process run time CPI1466 during Backup
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 28889 Date: 20240523 Time: 153236 sap01-206 ( 305 ms )