adesso business consulting Stellenangebote
Software Engineer Trainee · Senior
| (Senior) Cloud Software Engineer BTP | Senior Frontend Software Engineer SAP BTP
| (Senior) Consultant Technologie
Werkstudent Softwareentwicklung · Consulting
Virtuelle Felder in CDS-Views: Unterschied zwischen den Versionen
Aus SAP Wiki ツ
Keine Bearbeitungszusammenfassung  | 
				|||
| Zeile 8: | Zeile 8: | ||
* virtuelle Felder mit eigener Filterlogik  | * virtuelle Felder mit eigener Filterlogik  | ||
Virtuelle Felder   | Paar Fakten:  | ||
* Virtuelle Felder werden nur innerhalb des OData-Frameworks angesprochen. Abfragen des CDS-Views über Open SQL Selects ergeben keine Ergebnisse, sprich die dahinterlegende Klasse mit Code wird nicht durchlaufen  | |||
* Virtuelle Felder kennen sich untereinander nicht  | |||
* Filterlogik auf virtuelle Felder kann nicht angewendet werden und wird explizit im weiteren SADL-Code abgefangen  | |||
* Schlüsselfelder können nicht als virtuelle Elemente definiert werden  | |||
=== Deklaration in CDS-View ===  | |||
Virtuelle Felder können dort verwendet werden, wo sie unterstützt werden z.B. in EXTEND VIEW ENTITY:  | Virtuelle Felder können dort verwendet werden, wo sie unterstützt werden z.B. in EXTEND VIEW ENTITY:  | ||
<syntaxhighlight lang="abap" line start="1">  | <syntaxhighlight lang="abap" line start="1">  | ||
define view <CdsConsumptionView>  | define view <CdsConsumptionView>  | ||
| Zeile 28: | Zeile 30: | ||
In Projection Views ist die Notation etwas anders:  | In Projection Views ist die Notation etwas anders:  | ||
<syntaxhighlight lang="abap" line start="1">  | <syntaxhighlight lang="abap" line start="1">  | ||
define root view entity <CdsProjectionView>  | define root view entity <CdsProjectionView>  | ||
Version vom 3. April 2024, 14:31 Uhr
Einleitung
Virtuelle Felder werden mit ABAP-Klassen implementiert und stehen seit dem SAP NetWeaver Release 7.51 zur Verfügung.
Es wird zwischen drei Kategorien unterschieden:
- virtuelle Felder mit eigener Ermittlungslogik
 - virtuelle Felder mit eigener Sortierlogik
 - virtuelle Felder mit eigener Filterlogik
 
Paar Fakten:
- Virtuelle Felder werden nur innerhalb des OData-Frameworks angesprochen. Abfragen des CDS-Views über Open SQL Selects ergeben keine Ergebnisse, sprich die dahinterlegende Klasse mit Code wird nicht durchlaufen
 - Virtuelle Felder kennen sich untereinander nicht
 - Filterlogik auf virtuelle Felder kann nicht angewendet werden und wird explizit im weiteren SADL-Code abgefangen
 - Schlüsselfelder können nicht als virtuelle Elemente definiert werden
 
Deklaration in CDS-View
Virtuelle Felder können dort verwendet werden, wo sie unterstützt werden z.B. in EXTEND VIEW ENTITY:
define view <CdsConsumptionView>
		as select from <data_source>
{
		...
		@ObjectModel.readOnly: true
		@ObjectModel.virtualElement
		@ObjectModel.virtualElementCalculatedBy: 'ABAP:<code_exit_class>'
		cast( '' as <dtype> preserving type) as <view.element>
		...
}In Projection Views ist die Notation etwas anders:
define root view entity <CdsProjectionView>
  provider contract transactional_query
  as projection on <data_source>
{
       ...
       @ObjectModel. virtualElementCalculatedBy: 'ABAP:<code_exit_class>'
       virtual <view.element> : abap.<type>
       ...
}