50
ABAP CDS Views Webinar, 23. Juni 2017, 10:00 Uhr

Webinar - ABAP CDS Views

Embed Size (px)

Citation preview

Page 1: Webinar - ABAP CDS Views

ABAP CDS ViewsWebinar, 23. Juni 2017, 10:00 Uhr

Page 2: Webinar - ABAP CDS Views

Föß ABAP CDS Views

Johann FößleitnerSenior Consultant & Development Coach

eMail: [email protected]: @foessleitnerj

Beratungsschwerpunkte

• ABAP• Konzeption & Management von SAP Entwicklungsprojekten• Qualitymanagement & Performanceoptimierung• Clean Code• SAP CRM

Page 3: Webinar - ABAP CDS Views

Domi ABAP CDS Views

Domi BiglSenior Consultant & Development Coach

eMail: [email protected]: @DomiBiglSAP

Beratungsschwerpunkte

• ABAP• Konzeption & Management von Entwicklungsprojekten• Qualitymanagement & Performanceoptimierung• ABAP Units• SAP Fiori/SAPUI5• SAP Cloud

Page 4: Webinar - ABAP CDS Views

Dusan ABAP CDS Views

Dusan SachaConsultant at Cadaxo

eMail: [email protected]: @sacha_dusan

Beratungsschwerpunkte

• SAP Fiori / SAP UI5• SAP Cloud• SAP NetWeaver Gateway• User Experience

Page 5: Webinar - ABAP CDS Views

Agenda ABAP CDS Views

CDS Views

Eingebaute Funktionen

Parameter in CDS Views

Associations

Annotations

Integration NetWeaver Gateway

Berechtigungen

Table Functions

Page 6: Webinar - ABAP CDS Views

ABAP CDS Views

CDS Views

Page 7: Webinar - ABAP CDS Views

ABAP CDS Views ABAP CDS Views

ABAP CDS Views◦ Next Generation zum Definieren von Views

◦ CDS beinhaltet DDL (Data Definition Language)

DCL (Data Control Language)

◦ 100% in ABAP integriert ABAP Dictionary

Transportmanagement

◦ Pflege ausschließlich über ABAP in Eclipse

◦ Zugriff via Open SQL

Page 8: Webinar - ABAP CDS Views

ABAP Programmiermodell S/4 HANA ABAP CDS Views

SAP HANA

ABAP Plattform

Client

SAP Gateway

CDS

SADL

BOPF

Open SQL

Rest

OData

Page 9: Webinar - ABAP CDS Views

Datenbankviews ABAP CDS Views

Traditionelle Datebankviews in SAP

Keine OuterJoins

Keine komplexen

Joins

Keine Kommentare

Kein UNIONKein View -> View

…Keine impliziten Berechtigungen

Page 10: Webinar - ABAP CDS Views

Code Pushdown ABAP CDS Views

ABAP modern Open SQL

ABAP CDS Views

AMDPABAP Managed Database

Procedures

◦ Neue Syntax◦ Expressions◦ Neue JOIN Möglichkeiten◦ …

◦ Neue, moderne Form von Datenbankviews◦ Verwendung von AMDPs möglich

◦ Aufruf von HANA Funktionen (SQL Script) via ABAP

Code Pushdown to the database

AnyDB

HANA only

Page 11: Webinar - ABAP CDS Views

DDL & DCL ABAP CDS Views

• Definition von CDS Views

DDL Data Definition Language

• Definition von Zugriffskontrollen für CDS Views

• PFCG Rollen integrierbar

DCLData Control Language

Page 12: Webinar - ABAP CDS Views

ABAP CDS ABAP CDS Views

• Einführung

NetWeaver 7.4 SP05

• Eingabeparameter• View Erweiterungen• Neue Funktionen

NetWeaver 7.4 SP08

• Zugriffskontrolle mit DCL

NetWeaver 7.4 SP10

• Tabellen-funktionen

• Neue Funktionen• Sitzungsvariablen

NetWeaver 7.5

• Cross Join• Weitere

Zugriffsregeln• Benutzer-

bedingung

NetWeaver 7.5 SP01

Die Geschichte der ABAP CDS Views◦ … wurden/werden aus HANA CDS übernommen …

Page 13: Webinar - ABAP CDS Views

ABAP CDS vs. HANA CDS ABAP CDS Views

• DB Unabhängig -> Offen• Tabellenbuffer• …

ABAP CDS View• Nur für HANA• Mehr Funktionen/Möglichkeiten

HANA CDS ViewÄhnlich

aber NICHT gleich!

ABAP CDS vs. HANA CDS◦ Gleiche Syntax (DDL)

◦ Wer ABAP CDS kennt, findet sich auch in HANA CDS

zurecht

Page 14: Webinar - ABAP CDS Views

CDS View Hierarchie ABAP CDS Views

VerwenderView auf ViewView

CDS_VIEW_01

CDS_VIEW_02

Anwendung 1

Anwendung 2

CDS_VIEW_03 Anwendung 3

Page 15: Webinar - ABAP CDS Views

CDS Development Umgebung ABAP CDS Views

Page 16: Webinar - ABAP CDS Views

CDS View DDL Syntax ABAP CDS Views

Tabelle der zu lesenden Daten

CDS View Entität

Viewfelder, Funktionen, …

Name des DB Views

CDS Viewname

Page 17: Webinar - ABAP CDS Views

ABAP CDS Views

Eingebaute Funktionen

Page 18: Webinar - ABAP CDS Views

Eingebaute Funktionen ABAP CDS Views

Konvertierungs-funktionen

FLTP_TO_DEC,UNIT_CONVERSION,CURRENCY_CONVERSION,DECIMAL_SHIFT

Zeichenketten-funktionen

CONCAT,CONCAT_WITH_SPACE,INSTR, LEFT, LENGTH,LOWER, LPAD, LTRIM, REPLACE,RIGHT, RPAD, RTRIM,SUBSTRING, UPPER

Numerische Funktionen

ABS, CEIL,DIV, DIVISION, FLOOR, MOD, ROUND

DatumsfunktionenZeitfunktionen

DATS_IS_VALID,DATS_DAYS_BETWEEN,DATS_ADD_DAYS,DATS_ADD_MONTHS

Zeitfunktion

TIME_IS_VALID

Bytekettenfunktionen

BINTOHEX, HEXTOBIN

Coalesce-Funktion

COALESCE

Zeitstempelfunktionen

TSTMP_IS_VALID, TSTMP_CURRENT_UTCTIMESTAMP,TSTMP_SECONDS_BETWEEN, TSTMP_ADD_SECONDS

Zeitzonenfunktionen

ABAP_SYSTEM_TIMEZONE,ABAP_USER_TIMEZONE

Datums/Zeit-konvertierungen

TSTMP_TO_DATS,TSTMP_TO_TIMS,TSTMP_TO_DST,DATS_TIMS_TO_TSTMP

XXX - 7.40 SP8XXX - 7.50XXX - 7.51

Page 19: Webinar - ABAP CDS Views

ABAP CDS Views

Live DemosCDS View

CDS View mit eingebauter Funktion

CDS View mit Parameter

Page 20: Webinar - ABAP CDS Views

ABAP CDS Views

Associations

Page 21: Webinar - ABAP CDS Views

SQL Join – CDS Join – CDS Association ABAP CDS Views

SELECT A~PARTNER,

B~ADDRNUMBER

FROM BUT000 AS A

INNER JOIN BUT020 AS B

ON B~PATNER = A~PARTNER

ORDER BY A~PARTNER,

B~ADDRNUMBER

INTO TABLE @DATA(LT_RESULTS).

Open SQL Join

@AbapCatalog.sqlViewName:

‘Z_DEMOJOIN_DB'

@AccessControl.authorizationCheck:

#NOT_REQUIRED

define view z_demo_cds_join

as select from but000

inner join but020 on

but000.partner = but020.partner

{

but000.partner as partner,

but020.addrnumber as addrnumber,

}

CDS Join

@AbapCatalog.sqlViewName:

‘Z_DEMOJOIN_DB'

@AccessControl.authorizationCheck:

#NOT_REQUIRED

define view z_demo_cds_join

as select from but000

association [0..1] to but020 as

_but020 on

but000.partner = _but020-partner

{

but000.partner,

_but020[inner].addrnumber,

_but020[1: ].addrnumber

_but020

}CDS Association

CDS Associations werden zur Laufzeit in

JOINS übersetzt, wenn sie benötigt werden

Page 22: Webinar - ABAP CDS Views

ABAP CDS Views

Live DemoCDS View mit Associations

Page 23: Webinar - ABAP CDS Views

ABAP CDS Views

Annotations

Page 24: Webinar - ABAP CDS Views

CDS Annotations ABAP CDS Views

CDS View Annotations◦ Ermöglicht das Anreichern von Metadaten

direkt im View

SAP Pufferung aktiv

Mandantenbehandlung

Labelinformationen

◦ Auslesen von Annotations in ABAP mitCL_DD_DDL_ANNOTATION_SERVICE

CDS

BI Tools

OData

AnalyticsABAP

Page 25: Webinar - ABAP CDS Views

CDS Annotations ABAP CDS Views

• Werden von der ABAP Laufzeit-umgebung ausgewertet

• Beispiele:• Tabellenpufferung• Mandantenbehandlung• Erweiterbarkeit von CDS Views• Datenbankviewname• …

ABAP Annotationen

• Werden von Software-Komponentenbenötigt/ausgewertet

• Frameworks:• BOPF• SADL• Enterprise Search• Analytics• ABAP Entwicklung• …

Framework-spezifisch Annotationen

ABAPAnnotationen

Framework-spezifisch Annotationen

Derzeit sollten Kunden/Partner keine eigenen Annotationen definieren

Aufstellung und weitere Infos aller CDS Annotations (NetWeaver 7.5 SP01)

Page 26: Webinar - ABAP CDS Views

Core vs. Element Annotations ABAP CDS Views

@AbapCatalog.sqlViewName: 'zcdsview_foe2_db'

@AbapCatalog.compiler.CompareFilter: true

@AccessControl.authorizationCheck: #CHECK

define view Zcdsview_Foe2

with parameters exc_date: abap.dats,

to_curr: abap.cuky(5)

as select from zdatentypen {

zdatentypen.curr as original,

@EndUserText.label: Currency‘

zdatentypen.cuky as currency,

Core Annotations

Element Annotations

Page 27: Webinar - ABAP CDS Views

ABAP CDS Views

Live DemoNetWeaver Gateway Annotations

Page 28: Webinar - ABAP CDS Views

SAP Annotations ABAP CDS Views

Übersicht SAP Annotations◦ SAP Annotations https://help.sap.com/http.svc/rc/abapdocu_750_index_ht

m/7.50/en-US/abencds_annotations_sap.htm

◦ Annotations „Landing Page“ http://help.sap.com/saphelp_nw75/helpdata/en/63/0ce9b

386b84e80bfade96779fbaeec/content.htm?frameset=/en/cc/db054e4ecf4573829d4ba258cafa72/frameset.htm&current_toc=/en/d9/bc687d35fa42ccbb0b9256ce786d51/plain.htm&node_id=3&show_children=false

Page 29: Webinar - ABAP CDS Views

ABAP CDS Views

DCL Berechtigungen

Page 30: Webinar - ABAP CDS Views

DCL Überblick ABAP CDS Views

… ABAP … SQLAuthorization

Check... ABAP …

… ABAP … SQL ... ABAP …

DCL CDS View

Page 31: Webinar - ABAP CDS Views

CDS View ABAP CDS Views

SAP Berechtigungsobjekt

CDS View Entität

Vergleichsfeld(er) aus View

Derzeit nur true erlaubt (alle user/alle mandanten)

Berechtigungsfelder aus Berechtigungsobjekt

Name der CDS Rolle

Page 32: Webinar - ABAP CDS Views

ABAP CDS Views

Live DemoDaten Filtern mit DCL

Page 33: Webinar - ABAP CDS Views

Zugriffskontrolle ABAP CDS Views

Bedingte Zugriffsregel

Vollzugriffsregel

Geerbte Zugriffsregeln

◦ … GRANT SELECT ON … ◦ Schränkt den Zugriff mit Hilfe von Zugriffsbedingungen (WHERE) ein

Literalbedingungen PFCG-Bedingungen Benutzerbedingunge (ab 7.51)

◦ … GRANT SELECT ON …◦ Ohne den Zusatz einer Zugriffsbedingung (WHERE) wird ein Zugriff

bedingungslos freigegeben

◦ … GRANT SELECT ON … INHERIT … ◦ Übernimmt die Zugriffsregeln einer bereits vorhandenen CDS Rolle

Ab 7.51

Zugriffsregeln

Page 34: Webinar - ABAP CDS Views

ABAP CDS Views

CDS View Erweitern

Page 35: Webinar - ABAP CDS Views

CDS View Extension ABAP CDS Views

VerwenderView auf ViewView

CDS_VIEW_01

CDS_VIEW_02

Anwendung 1

Anwendung 2

CDS_VIEW_03 Anwendung 3

CDS View Extension

◦ Ermöglicht das Hinzufügen von zusätzlichen Spalten, arithmetische Expressions oder Literalen

Page 36: Webinar - ABAP CDS Views

ABAP CDS Views

Live DemoCDS View erweitern

Page 37: Webinar - ABAP CDS Views

ABAP CDS Views

CDS Views vs. Open SQL

Page 38: Webinar - ABAP CDS Views

CDS Views vs. Open SQL Expressions ABAP CDS Views

• Re-Use Scenarien• Views können verschachtelt werden

• CDS Features• UNION, UNION ALL, Mengen bzw.

Währungs Umrechnungen• Associations• Berechtigungsprüfungen

CDS Views Open SQL

• Einmalverwendungen• FOR ALL ENTRIES• Kein Eclipse

Page 39: Webinar - ABAP CDS Views

ABAP CDS Views

Table Functions

Page 40: Webinar - ABAP CDS Views

ABAP CDS Views

Table Functions◦ Ermöglichen die Verwendung von SAP HANA

Datenbankfunktionen direkt in CDS Views

◦ Realisiert wird dies durch einenZugriff auf ABAP ManagedDatabase Procedures (AMDB)

Table Functions

define table function z_function

with parameters

i_value :abap.int4

returns

{

e_value:abap.int4

}

implemented by method zcl_function=>get_data;

DDL Table Function (Draft)

SELECT SINGLE FROM z_function( i_value = 1 )

FIELDS *

INTO @DATA(ls_result)

ABAP SQL

Page 41: Webinar - ABAP CDS Views

ABAP CDS Views

Zusammenfassung

Page 42: Webinar - ABAP CDS Views

ABAP CDS Views

ABAP CDS Views◦ sind eine neue Form von DB Views

◦ basieren auf SQL (Joins, Unions, … )

◦ sind für alle SAP supporteten DB einsetzbar

◦ ermöglichen Code Pushdown durch eingebaute Funktionen etc.

◦ sind erweiterbar

ABAP CDS Views - Zusammenfassung

Page 43: Webinar - ABAP CDS Views

ABAP CDS Views

Weiterführende Infos

Page 44: Webinar - ABAP CDS Views

ABAP CDS Views

SAP TechEd Keynote 2015 von Björn Goerkehttp://events.sap.com/teched/en/session/26506

Page 45: Webinar - ABAP CDS Views

ABAP CDS Views

Youtube – ABAP Channel (sdn community)https://www.youtube.com/channel/UC5DgCoTxyLCuli33BQrLmrg/about

Page 46: Webinar - ABAP CDS Views

ABAP CDS Views

Interessante Blogs◦ Jerry Wang - My CDS view self study tutorial

◦ SDN Sammlung - CDS - Core Data Services

◦ Horst Keller - CDS – One Concept, Two Flavors

◦ Horst Keller - ABAP News for Release 7.50 – ABAP CDS Access Control

◦ Horst Keller - ABAP News for Release 7.50 – Environment Information in ABAP CDS

◦ Horst Keller - ABAP News for Release 7.50 – Annotations in ABAP CDS

◦ Horst Keller - From Open SQL Joins to CDS Associations

Page 48: Webinar - ABAP CDS Views

Vergangene Webinare

http://www.cadaxo.com/blog/

ABAP CDS Views

Page 49: Webinar - ABAP CDS Views

If you want to stay in touch …

https://twitter.com/domibiglsap

https://www.linkedin.com/in/dominik-bigl-9b98b68b

https://www.xing.com/profile/dominik_bigl

[email protected]

See you again!Thank you for participating!

https://twitter.com/foessleitnerj

https://www.linkedin.com/in/johann-fößleitner-a9851b2a

https://www.xing.com/profile/johann_foessleitner

[email protected]

Page 50: Webinar - ABAP CDS Views

http://com.slideshare.net/cadaxogmbh

https://twitter.com/cadaxo

https://www.linkedin.com/company/cadaxo-gmbh

http://www.youtube.com/CadaxoGmbH

https://www.facebook.com/CadaxoGmbH

https://www.xing.com/companies/cadaxogmbhCadaxo GmbHStubenring 18/5a| 1010 Vienna, Austria

[email protected]