adesso business consulting Stellenangebote
Software Engineer Trainee · Senior
| (Senior) Cloud Software Engineer BTP
| (Senior) Consultant Technologie
Werkstudent Softwareentwicklung · Fiori / UI5 · Consulting
Virtuelle Felder in CDS-Views
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>
...
}
Exit-Klassen
Nützliche Seiten
Dieses Wiki wird privat in Freizeit nach bestem Wissen und Gewissen gepflegt und dient primär als eigene Wissenssammlung für die tägliche Arbeit im SAP-ERP-Umfeld.
Alle dargestellten Softwareprodukte, auch in Form von Screenshots, sind Eigentum der SAP SE. Ihre Marken, vgl. Link, sind u.a.: SAP®, ABAP®, SAP Fiori®, SAP HANA®, SAP S/4HANA®, SAP S/4HANA® Cloud