SlideShare ist ein Scribd-Unternehmen logo
ABAP 7.50 Releaseabhängige Änderungen
Webinar, 25.11.2016, 10:00 Uhr
Föß ABAP 7.50
Johann Fößleitner
Senior Consultant at Cadaxo
eMail: johann.foessleitner@cadaxo.com
Twitter: @foessleitnerj
Beratungsschwerpunkte
• Konzeption & Management von SAP Entwicklungsprojekten
• Qualitymanagement & Performanceoptimierung
• Clean Code
• SAP Fiori/SAPUI5
Domi ABAP 7.50
Domi Bigl
Senior Consultant at Cadaxo
eMail: dominik.bigl@cadaxo.com
Twitter: @DomiBiglSAP
Beratungsschwerpunkte
• Konzeption & Management von Entwicklungsprojekten
• Qualitymanagement & Performanceoptimierung
• ABAP Units
• SAP Fiori/SAPUI5
Cadaxo GmbH ABAP 7.50
ABAP 7.50
Bevor es losgeht …
ABAP 7.50
 ISBN 978-3-8362-4456-5
 Lieferbar ab 28.11.2016
 https://www.rheinwerk-verlag.de/sapui5_4303/
 Co-Autorin: Denise Nepraunig
https://twitter.com/denisenepraunig
SAPUI5 – Der umfassende Leitfaden
ABAP 7.50SAP TechEd Las Vegas, Executive Keynote
http://events.sap.com/teched/en/session/28917
ABAP 7.50
ABAP 7.50
Umfrage
ABAP 7.50
 Diverse Neuheiten
 Globale temporäre Tabellen (GTT)
 Open SQL
 CDS Views
 Expressions and Functions
 ABAP Units
 RFC und ABAP Channels
 Ausblick 7.51
 Nächste Termine
Agenda
Diverse Neuheiten ABAP 7.50
 Diverse Neuheiten
◦ Ab 7.50 nur mehr Unicode. Nicht-Unicode-Codepages werden
nicht mehr unterstützt
◦ Neuer Datentyp INT8 (Trillionen)
 -9.223.372.036.854.775.808 bis +9.223.372.036.854.775.807
◦ ABAP Ausnahmeklassen
 Neues Interface IF_T100_DYN_MSG
 Neuer Zusatz MESSAGE bei RAISE EXCEPTION/THROW
◦ CDS Views als Vertreterobjekte -> Hände weg davon!
ABAP 7.50
Globale temporäre Tabellen (GTT)
Globale Temporäre Tabellen (GTT) ABAP 7.50
 Globale temporäre Tabellen (GTT)
◦ GTT sind spezielle transparent Tabellen,
die für temporäre Ablage von Daten
vorgesehen sind
◦ Sie sind nur innerhalb einer Datenbank-
LUW verfügbar und müssen am Ende
geleert werden
◦ GTTs können (fast) gleich wie normale
transparente Tabellen verwendet werden.
ABAP 7.50
Live Demo
Globale Temporäre Tabellen
ABAP 7.50
Open SQL
Open SQL ABAP 7.50
 Open SQL in Release 7.50
◦ Unions
◦ Subquery als Datenquelle bei INSERT
◦ Host Ausdrücke, SQL Ausdrücke & SQL Funktionen
◦ CDS Views
Open SQL - Union ABAP 7.50
 Union [ALL|DISTINCT]
◦ Mit UNION kann die
Ergebnismenge von zwei
Selects vereinigt werden
◦ Beide SELECTS haben ihre
eigenen FROM, WHERE, …
◦ Weitere Details:
 http://help.sap.com/abapdocu_750/de/inde
x.htm?file=abapunion_clause.htm
Open SQL – INSERT from SELECT ABAP 7.50
 INSERT from SELECT
◦ Bei INSERT kann hinter
FROM jetzt eine Subquery
als Datenquelle angegeben
werden
◦ Die Ergebniszeilen aus dem
Subquery werden direkt in
die Zieltabelle eingefügt
INSERT zdb_table FROM
( SELECT FROM BUT020 as b
FIELDS b~partner,
COUNT( * ) as cnt_addr
GROUP BY b~partner.
Open SQL – Host Expressions ABAP 7.50
 Neuerungen Host Expressions
◦ Überall wo Host Variablen verwendet werden können, können nun
auch Host Expressions eingesetzt werden
◦ Host Expressions sind ABAP Expressions welche in Open SQL
verwendet werden können
 Table Expressions
 String Expressions
 Funktionale Methoden
 …
Open SQL – SQL Expressions ABAP 7.50
 Neuerungen SQL Expressions
◦ Neue Verwendungsmöglichkeiten
 Linke Seite bei WHERE, HAVING, ON
und CASE
 Als Operand bei CAST
◦ Neue SQL Funktionen
 CONCAT, LPAD, LENGTH, LTRIM, REPLACE, RIGHT, RTRIM, SUBSTRING,
ROUND, COALESCE (erweitert)
ABAP 7.50
Live Demo
Host Expressions & SQL Expressions
Open SQL – SQL Expressions ABAP 7.50
 ABAP Open SQL: CONCAT
◦ Verketten von 2 Zeichenketten
◦ CONCAT( arg1, arg2 )
Open SQL – SQL Ausdrücke & Funktionen ABAP 7.50
 ABAP Open SQL: LENGTH
◦ Anzahl Zeichen
◦ LENGTH( arg )
Open SQL – SQL Ausdrücke & Funktionen ABAP 7.50
 ABAP Open SQL: REPLACE
◦ Ersetze in Zeichenkette arg1 vorkommende arg2 mit Inhalt aus
arg3
◦ REPLACE( arg1, arg2, arg3 )
Open SQL – SQL Expressions ABAP 7.50
 ABAP Open SQL: SUBSTRING
◦ Teilfeld von arg ab der Position pos in der Länge len
◦ SUBSTRING( arg, pos, len )
Open SQL – SQL Expressions ABAP 7.50
 ABAP Open SQL: ROUND
◦ Gerundeter Wert von arg an Position pos
◦ ROUND( arg, pos )
Open SQL – SQL Expressions ABAP 7.50
 ABAP Open SQL: COALESCE
◦ Gibt den ersten Wert aus den Argument arg1, arg2, … (max.
255) zurück welcher nicht NULL ist
◦ COALESCE( arg1, arg2, arg3, … )
Open SQL – SQL Expressions ABAP 7.50
 ABAP Open SQL: LPAD
◦ Zeichenkette in Länge len mit rechts. Inhalt von arg.
Verlängerte Strings werden mit src aufgefüllt.
◦ LPAD( arg, len, src )
Open SQL – SQL Expressions ABAP 7.50
 ABAP Open SQL: LTRIM
◦ Entfernt alle schließenden Leerzeichen aus arg und führende
Zeichen char
◦ LTRIM( arg, char )
Open SQL – SQL Expressions ABAP 7.50
 ABAP Open SQL: RIGHT
◦ Zeichenkette der Länge len mit den rechten Zeichen von arg
◦ RIGHT( arg, len )
Open SQL – SQL Expressions ABAP 7.50
 ABAP Open SQL: RTRIM
◦ Entfernt alle schließenden Leerzeichen aus arg und schließende
Zeichen char
◦ RTRIM( arg, char )
Open SQL – SQL Expressions ABAP 7.50
 ABAP Open SQL Funktionen ab 7.51
◦ DIVISON
◦ LOWER
◦ UPPER
◦ LEFT
◦ CONCAT_WITH_SPACE
◦ INSTR
◦ RPAD
◦ DATS_IS_VALID
◦ DATS_DAYS_BETWEEN
◦ DATS_ADD_DAYS
◦ DATS_ADD_MONTHS
Open SQL – Zugriff auf CDS Views ABAP 7.50
 Zugriff auf CDS Views mit Open SQL
◦ CDS Entitäten können nun gemeinsam mit
Datenbanktabellen und klassischen Views verwendet
werden
◦ Der Zugriff auf eine CDS-View über den CDS-Datenbank-
View ist ab nun obsolet
Open SQL – CDS Views mit Eingabeparameter ABAP 7.50
 CDS Views mit Eingabeparameter
◦ Werden jetzt von allen Datenbanken unterstützt
◦ Die Überprüfung mit der Klasse CL_ABAP_DBFEATURES ist
nicht mehr notwendig
ABAP 7.50
Live Demo
SQL Zugriff auf CDS View mit Parameter
ABAP 7.50
CDS Views
ABAP CDS ABAP 7.50
 CDS Views in Release 7.50
◦ CDS-Tabellenfunktionen
◦ CDS-Zugriffskontrolle
◦ Sitzungsvariablen
◦ Expressions & Functions
ABAP CDS - Tabellenfunktionen ABAP 7.50
 CDS Tabellenfunktionen
◦ Eine CDS Tabellenfunktion ist neue Art von CDS-Entitäten
◦ Die Implementierung einer solchen Funktion erfolgt als Native
SQL in einer AMDP Funktionsimplementierung
 Damit ist diese Funktion derzeit nur auf SAP Hana DB verfügbar
ABAP CDS - Zugriffskontrolle ABAP 7.50
 CDS Zugriffskontrolle
◦ Mit Hilfe von PFCG Rollen und einer DCL (Data Control
Language) Definition kann die Ergebnismenge eines CDS Views
(CDS Entität!) eingeschränkt werden
@MappingRole: true
define role demo_cds_role_lit_pfcg {
grant select on demo_cds_auth_lit_pfcg
where (carrid) =
aspect pfcg_auth (s_carrid, carrid,
actvt='03') and
currcode = 'EUR'; }
@AbapCatalog.sqlViewName: 'DEMO_CDS_LITPFCG'
@AccessControl.authorizationCheck: #CHECK
define view demo_cds_auth_lit_pfcg
as select from
scarr
{
key carrid,
carrname,
currcode,
url
};DCL DDL
ABAP CDS - Sitzungsvariablen ABAP 7.50
 Sitzungsvariablen
◦ $session.user (sy-uname)
◦ $session.client (sy-mandt)
◦ $session.system_language (sy-langu)
ABAP CDS – Expressions ABAP 7.50
Datumsfunktionen
DATS_DAYS_BETWEEN
DATS_ADD_DAYS
DATS_ADD_MONTHS
DATS_IS_VALID
TIMS_IS_VALID
TSTMP_IS_VALID
TSTMP_CURRENT_UTCTIMESTAMP
TSTMP_SECONDS_BETWEEN
Zeichenkettenfunktionen
Bereits seit 7.40 SP8 verfügbar
CONCAT_WITH_SPACE
INSTR
LEFT, RIGHT
LENGTH
LTRIM, RTRIM
RPAD
CONCAT
LPAD
REPLACE
SUBSTRING
Bytekettenfunktionen
BINTOHEX
HEXTOBIN
 Neue Expression für CDS Views
◦ Neue Zeichenketten-, Datums- und Bytekettenfunktionen
ABAP CDS – Expressions ABAP 7.50
 ABAP CDS: CONCAT_WITH_SPACE
◦ Wie CONCAT, jetzt jedoch mit Leerzeichen getrennt
◦ CONCAT_WITH_SPACES( arg1, arg2, spaces )
ABAP CDS – Expressions ABAP 7.50
 ABAP CDS: INSTR
◦ Position des ersten Vorkommens von sub in arg.
◦ INSTR( arg, sub )
ABAP CDS – Expressions ABAP 7.50
 ABAP CDS: LEFT
◦ Zeichenkette der Länge len mit den linken Zeichen von arg
◦ LEFT( arg, sub )
ABAP CDS – Expressions ABAP 7.50
 ABAP CDS: LENGTH
◦ Anzahl Zeichen
◦ LENGTH( arg )
ABAP CDS – Expressions ABAP 7.50
 ABAP CDS: LTRIM
◦ Entfernt alle schließenden Leerzeichen aus arg und führende
Zeichen char
◦ LTRIM( arg, char )
ABAP CDS – Ausdrücke & Funktionen ABAP 7.50
 ABAP CDS: LTRIM
◦ Entfernt alle schließenden Leerzeichen aus arg und führende
Zeichen char
◦ LTRIM( arg, char )
ABAP CDS – Ausdrücke & Funktionen ABAP 7.50
 ABAP CDS: RIGHT
◦ Zeichenkette der Länge len mit den rechten Zeichen von arg
◦ RIGHT( arg, len )
ABAP CDS – Expressions ABAP 7.50
 ABAP CDS: RPAD
◦ Zeichenkette in Länge len mit linksbündigen Inhalt von arg.
Verlängerte Strings werden mit src aufgefüllt.
◦ LPAD( arg, len, src )
ABAP CDS – Expressions ABAP 7.50
 ABAP CDS: RTRIM
◦ Entfernt alle schließenden Leerzeichen aus arg und schließende
Zeichen char
◦ RTRIM( arg, char )
Ausnahmeklassen ABAP 7.50
Ausnahmeklassen
Exception Klassen ABAP 7.50
 Exception Klassen
◦ Neues Interface IF_T100_DYN_MSG
 MESSAGE bei RAISE EXCEPTION / THROW
◦ Direkte Angabe von Meldungen
◦ „Verknüpfung“ klassischer Exceptions mit classbased Exceptions
◦ weniger „unnötige“ Exception Texte
 MESSAGE <exception_ref> TYPE <Type>
◦ „Verknüpfung“ classbased Exceptions mit klassischer Exceptions
◦ 751: bei IF_T100_DYN_MSG kein TYPE notwendig
ABAP 7.50
Expressions and Functions
IS INSTANCE OF / CASE TYPE OF ABAP 7.50
 IS INSTANCE OF
◦ Down Cast Möglichkeit vor Zuweisung prüfen
◦ <reference_var> enthält Referenz auf <Class>
◦ <reference_var> enthält Referenz auf <Interface>
 CASE TYPE OF
◦ Mehrfache Prüfung wie IS INSTANCE OF
◦ Direkte Zuweisung an Variable
DEMO ABAP 7.50
Live Demo
IS INSTANCE OF und CASE TYPE OF
# - Typermittlung ABAP 7.50
 # - Typermittlung bei Konstruktorausdrücken
◦ Ermittlung des Zieltyps wurde erweitert
◦ FUBA leider wieder nicht
Tableexpression Result ABAP 7.50
 Ergebnis ist Referenzvariable
◦ Itab[ name = ‚BUT000‘ ]-partner->partner_number
◦ WriterItab[ 1 ]->write( )
CORRESPONDING ABAP 7.50
 Lookup Table
◦ ITab1 oder „ITab1 CORRESPONDING ITab2“
 CL_ABAP_CORRESPONDING
◦ „Dynamische“ Mappings
◦ Feld/Namemapping wird im Programm erstellt
◦ KEIN Mapping abhängig von Spaltenwerten
 751: CL_ABAP_CORRESPONDING
◦ Erweitert um „Lookup Table“
DEMO ABAP 7.50
Live Demo
CORRESPONDING
ABAP 7.50
ABAP Units
http://www.cadaxo.com/high-class-
development/webinar-tdd-mit-abap-units/
TEST-SEAM / TEST-INJECTION ABAP 7.50
 TEST-SEAM / TEST-INJECTION
◦ Produktivcode (NUR !!!) bei Testausführung ersetzten
◦ Ähnlich ENHANCMENT-SECTIONs
◦ DB Zugriffe, Externe Aufrufe (RFC, HTTP, ABAP Channel,…)
DEMO ABAP 7.50
Live Demo
TEST-SEAM / TEST-INJECTION
RFC und ABAP Channels ABAP 7.50
RFC und ABAP Channels
RFC Destination ABAP 7.50
 Dynamische RFC Destination (SM59)
◦ Host, User, System,… wird zur Laufzeit definiert und als Destination
bereitgestellt
 Vorschläge möglicher UseCases???
◦ HTTP Requests auf externe Syteme
ABAP Channels ABAP 7.50
 ABAP Push Channels - APC
◦ Kommunikation zwischen Client und Server
◦ Bi-direktional: Server und Client
◦ WebSocket Protocol
 ABAP Message Channels - AMC
◦ Kommunikation zwischen Benutzersessions
◦ Publish–Subscribe Model
◦ AppServer übergreifend
ABAP Channels - Überblick ABAP 7.50
SAP System
App Server 2
User 2
Session 1
App Server 1
User 1
Session 1
User 2
Session 2
ABAP
Messaging Channel
Framework
APC Send/Receive
AMC Receive
AMC Send
AMC Subscribe
AMC – bisher ABAP 7.50
 Sender kennt Empfänger nicht
AMC – P2P ABAP 7.50
 Point-to-point communication AMC
◦ Empfänger „meldet“ sich bei Sender an
◦ Erhält gezielt und generelle Messages
APC Erweiterungen ABAP 7.50
 751: Messagegöße
◦ Von ~ 30kB auf 1 MB
◦ Profil Paramter rdisp/long_messages/max_length
APC Erweiterungen ABAP 7.50
 WebSocket oder TCP
◦ Weniger Overhead
◦ Einfacher – „kleiner“ – implementierbar
 Statefull APC
◦ „mehrere Calls – ein Commit“
 ABPA als APC Client
◦ „Report“ als Client
 weitere Änderungen – eher technisch
ABAP 7.50
ABAP 7.51 – Weitere Neuerungen
ABAP 7.50Ausblick 7.51 – Aufzählungstypen (Enumerations)
 Aufzählungstypen (Enumerations)
◦ Ein Aufzählungstyp ist ein Datentyp für Variablen mit einer
endlichen Wertemenge.
◦ Alles zulässigen Werte werden bei der Deklaration mit einem
eindeutigen Namen definiert.
TYPES:
BEGIN OF ENUM developer,
domi, “Standard 0
foess “1
END OF ENUM developer.
DATA lv_developer type developer.
lv_developer = domi. “Allowed
lv_developer = 9. “Syntax / Runtime Error
ABAP 7.50Ausblick 7.51 – Open SQL / CDS Views
 OPEN SQL / CDS Views
◦ Neuer Join Möglichkeit: CROSS JOIN
◦ Viele neue von SQL- und Aggregatfunktionen
◦ DELETE erlaubt endlich ORDER BY, OFFSET und UP TO
ABAP 7.50Ausblick 7.51 - CDS View anzeige in SE80
 CDS Views – Anzeige/Pflege
◦ Anzeige wurde in die SE80 integriert
◦ Pflege weiterhin nur mit Eclipse möglich
ABAP 7.50
Weiterführende Informationen
ABAP 7.50Weiterführende Informationen
 Weiterführende Informationen
◦ Online Dokumentation
 http://help.sap.com/abapdocu_750/en/index.htm?file=abennews-750.htm
 http://help.sap.com/abapdocu_751/en/index.htm?file=abennews-751.htm
◦ Horst Keller Blogs (https://people.sap.com/horst.keller)
 https://blogs.sap.com/2015/11/27/abap-language-news-for-release-750/
 https://blogs.sap.com/2016/11/04/abap-news-for-release-7.51/
Vergangene Webinare
http://www.cadaxo.com/blog/
ABAP 7.50
Unsere nächsten Webinare
https://www.eventbrite.com/e/sap-business-object-processing-framework-bopf-tickets-29671740976
https://www.eventbrite.com/e/cadaxo-sql-cockpit-funktionen-und-einsatzmoglichkeiten-tickets-29682682703
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
dominik.bigl@cadaxo.com
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
johann.foessleitner@cadaxo.com
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 GmbH
Stubenring 18/5a| 1010 Vienna, Austria
office@cadaxo.com
www.cadaxo.com

Weitere ähnliche Inhalte

PPTX
Linked list
PPTX
ABAP 7.x New Features and Commands
PPT
1.5 binary search tree
PPT
Single row functions
PPT
Data Structures with C Linked List
PDF
Normalization
PPTX
Tree in data structure
PPTX
Binary tree and operations
Linked list
ABAP 7.x New Features and Commands
1.5 binary search tree
Single row functions
Data Structures with C Linked List
Normalization
Tree in data structure
Binary tree and operations

Was ist angesagt? (8)

PPTX
Special operators in Database
PDF
Binary tree
PPT
Sql dml & tcl 2
PPT
Data Structures- Part7 linked lists
PPTX
Linked lists a
PPTX
Slide 5 keys
PPTX
Key and its different types
PPTX
Threaded Binary Tree.pptx
Special operators in Database
Binary tree
Sql dml & tcl 2
Data Structures- Part7 linked lists
Linked lists a
Slide 5 keys
Key and its different types
Threaded Binary Tree.pptx
Anzeige

Andere mochten auch (20)

PDF
Webinar ABAP 7.40 sp5/sp8 Releaseinformationen
PPTX
Webinar - SAP BOPF
PDF
Prüfen Sie Ihre ABAP SQL Abfragen auf SAP HANA Tauglichkeit
PDF
Abap 7.02 new features - neue stringfunktionen
PPTX
TDD mit ABAP Units
PPTX
ITSS Trainning | Curso de SAP ABAP Foundations
PDF
Analista programador SAP ABAP IV
PDF
Web dynpro for abap
PDF
Abap query
DOCX
Qué es abap
PDF
ABAP Test & Troubleshooting @SITMuc 2013
PDF
View - Tutorial ABAP
PDF
Icones - ABAP
PDF
Comandos e funções em abap
PDF
Abap 7 02 new features - new string functions
PDF
Sap abap Q&A
PDF
Funções - Tutorial ABAP
DOC
Abap coding standards
PDF
Manikanta Sai Kumar Karri SAP ABAP and OO ABAP 3 Years.doc
DOCX
Basic abap oo
Webinar ABAP 7.40 sp5/sp8 Releaseinformationen
Webinar - SAP BOPF
Prüfen Sie Ihre ABAP SQL Abfragen auf SAP HANA Tauglichkeit
Abap 7.02 new features - neue stringfunktionen
TDD mit ABAP Units
ITSS Trainning | Curso de SAP ABAP Foundations
Analista programador SAP ABAP IV
Web dynpro for abap
Abap query
Qué es abap
ABAP Test & Troubleshooting @SITMuc 2013
View - Tutorial ABAP
Icones - ABAP
Comandos e funções em abap
Abap 7 02 new features - new string functions
Sap abap Q&A
Funções - Tutorial ABAP
Abap coding standards
Manikanta Sai Kumar Karri SAP ABAP and OO ABAP 3 Years.doc
Basic abap oo
Anzeige

Mehr von Cadaxo GmbH (16)

PDF
Webinar SAP/ABAP und Microsoft
PPTX
Webinar - ABAP Releasenotes 7.53/7.54
PPTX
Webinar ABAP Managed Database Procedures
PPTX
Webinar - ABAP Development Tools
PPTX
Webinar - Entwurfsmuster in ABAP
PPTX
Webinar Modern ABAP
PPTX
Webinar ABAP 7.51 Releaseinformationen
PDF
Webinar - SAP Gateway
PPTX
Webinar - ABAP CDS Views
POTX
ABAP CodeRetreat 20.5.2017 Vienna - Refactoring
PDF
SQL Cockpit 3.1 - Overview
PPTX
Clean code in ABAP
PPTX
Webinar - Boost your ABAP
PPTX
SQL Cockpit - Releasenotes 3.0
PDF
Cadaxo SQL Cockpit 2.0 - Neue Features im Detail
PPTX
Funktionstests in SAP
Webinar SAP/ABAP und Microsoft
Webinar - ABAP Releasenotes 7.53/7.54
Webinar ABAP Managed Database Procedures
Webinar - ABAP Development Tools
Webinar - Entwurfsmuster in ABAP
Webinar Modern ABAP
Webinar ABAP 7.51 Releaseinformationen
Webinar - SAP Gateway
Webinar - ABAP CDS Views
ABAP CodeRetreat 20.5.2017 Vienna - Refactoring
SQL Cockpit 3.1 - Overview
Clean code in ABAP
Webinar - Boost your ABAP
SQL Cockpit - Releasenotes 3.0
Cadaxo SQL Cockpit 2.0 - Neue Features im Detail
Funktionstests in SAP

Webinar - ABAP 7.50 Releaseabhängige Änderungen

  • 1. ABAP 7.50 Releaseabhängige Änderungen Webinar, 25.11.2016, 10:00 Uhr
  • 2. Föß ABAP 7.50 Johann Fößleitner Senior Consultant at Cadaxo eMail: [email protected] Twitter: @foessleitnerj Beratungsschwerpunkte • Konzeption & Management von SAP Entwicklungsprojekten • Qualitymanagement & Performanceoptimierung • Clean Code • SAP Fiori/SAPUI5
  • 3. Domi ABAP 7.50 Domi Bigl Senior Consultant at Cadaxo eMail: [email protected] Twitter: @DomiBiglSAP Beratungsschwerpunkte • Konzeption & Management von Entwicklungsprojekten • Qualitymanagement & Performanceoptimierung • ABAP Units • SAP Fiori/SAPUI5
  • 5. ABAP 7.50 Bevor es losgeht …
  • 6. ABAP 7.50  ISBN 978-3-8362-4456-5  Lieferbar ab 28.11.2016  https://www.rheinwerk-verlag.de/sapui5_4303/  Co-Autorin: Denise Nepraunig https://twitter.com/denisenepraunig SAPUI5 – Der umfassende Leitfaden
  • 7. ABAP 7.50SAP TechEd Las Vegas, Executive Keynote http://events.sap.com/teched/en/session/28917
  • 9. ABAP 7.50  Diverse Neuheiten  Globale temporäre Tabellen (GTT)  Open SQL  CDS Views  Expressions and Functions  ABAP Units  RFC und ABAP Channels  Ausblick 7.51  Nächste Termine Agenda
  • 10. Diverse Neuheiten ABAP 7.50  Diverse Neuheiten ◦ Ab 7.50 nur mehr Unicode. Nicht-Unicode-Codepages werden nicht mehr unterstützt ◦ Neuer Datentyp INT8 (Trillionen)  -9.223.372.036.854.775.808 bis +9.223.372.036.854.775.807 ◦ ABAP Ausnahmeklassen  Neues Interface IF_T100_DYN_MSG  Neuer Zusatz MESSAGE bei RAISE EXCEPTION/THROW ◦ CDS Views als Vertreterobjekte -> Hände weg davon!
  • 12. Globale Temporäre Tabellen (GTT) ABAP 7.50  Globale temporäre Tabellen (GTT) ◦ GTT sind spezielle transparent Tabellen, die für temporäre Ablage von Daten vorgesehen sind ◦ Sie sind nur innerhalb einer Datenbank- LUW verfügbar und müssen am Ende geleert werden ◦ GTTs können (fast) gleich wie normale transparente Tabellen verwendet werden.
  • 13. ABAP 7.50 Live Demo Globale Temporäre Tabellen
  • 15. Open SQL ABAP 7.50  Open SQL in Release 7.50 ◦ Unions ◦ Subquery als Datenquelle bei INSERT ◦ Host Ausdrücke, SQL Ausdrücke & SQL Funktionen ◦ CDS Views
  • 16. Open SQL - Union ABAP 7.50  Union [ALL|DISTINCT] ◦ Mit UNION kann die Ergebnismenge von zwei Selects vereinigt werden ◦ Beide SELECTS haben ihre eigenen FROM, WHERE, … ◦ Weitere Details:  http://help.sap.com/abapdocu_750/de/inde x.htm?file=abapunion_clause.htm
  • 17. Open SQL – INSERT from SELECT ABAP 7.50  INSERT from SELECT ◦ Bei INSERT kann hinter FROM jetzt eine Subquery als Datenquelle angegeben werden ◦ Die Ergebniszeilen aus dem Subquery werden direkt in die Zieltabelle eingefügt INSERT zdb_table FROM ( SELECT FROM BUT020 as b FIELDS b~partner, COUNT( * ) as cnt_addr GROUP BY b~partner.
  • 18. Open SQL – Host Expressions ABAP 7.50  Neuerungen Host Expressions ◦ Überall wo Host Variablen verwendet werden können, können nun auch Host Expressions eingesetzt werden ◦ Host Expressions sind ABAP Expressions welche in Open SQL verwendet werden können  Table Expressions  String Expressions  Funktionale Methoden  …
  • 19. Open SQL – SQL Expressions ABAP 7.50  Neuerungen SQL Expressions ◦ Neue Verwendungsmöglichkeiten  Linke Seite bei WHERE, HAVING, ON und CASE  Als Operand bei CAST ◦ Neue SQL Funktionen  CONCAT, LPAD, LENGTH, LTRIM, REPLACE, RIGHT, RTRIM, SUBSTRING, ROUND, COALESCE (erweitert)
  • 20. ABAP 7.50 Live Demo Host Expressions & SQL Expressions
  • 21. Open SQL – SQL Expressions ABAP 7.50  ABAP Open SQL: CONCAT ◦ Verketten von 2 Zeichenketten ◦ CONCAT( arg1, arg2 )
  • 22. Open SQL – SQL Ausdrücke & Funktionen ABAP 7.50  ABAP Open SQL: LENGTH ◦ Anzahl Zeichen ◦ LENGTH( arg )
  • 23. Open SQL – SQL Ausdrücke & Funktionen ABAP 7.50  ABAP Open SQL: REPLACE ◦ Ersetze in Zeichenkette arg1 vorkommende arg2 mit Inhalt aus arg3 ◦ REPLACE( arg1, arg2, arg3 )
  • 24. Open SQL – SQL Expressions ABAP 7.50  ABAP Open SQL: SUBSTRING ◦ Teilfeld von arg ab der Position pos in der Länge len ◦ SUBSTRING( arg, pos, len )
  • 25. Open SQL – SQL Expressions ABAP 7.50  ABAP Open SQL: ROUND ◦ Gerundeter Wert von arg an Position pos ◦ ROUND( arg, pos )
  • 26. Open SQL – SQL Expressions ABAP 7.50  ABAP Open SQL: COALESCE ◦ Gibt den ersten Wert aus den Argument arg1, arg2, … (max. 255) zurück welcher nicht NULL ist ◦ COALESCE( arg1, arg2, arg3, … )
  • 27. Open SQL – SQL Expressions ABAP 7.50  ABAP Open SQL: LPAD ◦ Zeichenkette in Länge len mit rechts. Inhalt von arg. Verlängerte Strings werden mit src aufgefüllt. ◦ LPAD( arg, len, src )
  • 28. Open SQL – SQL Expressions ABAP 7.50  ABAP Open SQL: LTRIM ◦ Entfernt alle schließenden Leerzeichen aus arg und führende Zeichen char ◦ LTRIM( arg, char )
  • 29. Open SQL – SQL Expressions ABAP 7.50  ABAP Open SQL: RIGHT ◦ Zeichenkette der Länge len mit den rechten Zeichen von arg ◦ RIGHT( arg, len )
  • 30. Open SQL – SQL Expressions ABAP 7.50  ABAP Open SQL: RTRIM ◦ Entfernt alle schließenden Leerzeichen aus arg und schließende Zeichen char ◦ RTRIM( arg, char )
  • 31. Open SQL – SQL Expressions ABAP 7.50  ABAP Open SQL Funktionen ab 7.51 ◦ DIVISON ◦ LOWER ◦ UPPER ◦ LEFT ◦ CONCAT_WITH_SPACE ◦ INSTR ◦ RPAD ◦ DATS_IS_VALID ◦ DATS_DAYS_BETWEEN ◦ DATS_ADD_DAYS ◦ DATS_ADD_MONTHS
  • 32. Open SQL – Zugriff auf CDS Views ABAP 7.50  Zugriff auf CDS Views mit Open SQL ◦ CDS Entitäten können nun gemeinsam mit Datenbanktabellen und klassischen Views verwendet werden ◦ Der Zugriff auf eine CDS-View über den CDS-Datenbank- View ist ab nun obsolet
  • 33. Open SQL – CDS Views mit Eingabeparameter ABAP 7.50  CDS Views mit Eingabeparameter ◦ Werden jetzt von allen Datenbanken unterstützt ◦ Die Überprüfung mit der Klasse CL_ABAP_DBFEATURES ist nicht mehr notwendig
  • 34. ABAP 7.50 Live Demo SQL Zugriff auf CDS View mit Parameter
  • 36. ABAP CDS ABAP 7.50  CDS Views in Release 7.50 ◦ CDS-Tabellenfunktionen ◦ CDS-Zugriffskontrolle ◦ Sitzungsvariablen ◦ Expressions & Functions
  • 37. ABAP CDS - Tabellenfunktionen ABAP 7.50  CDS Tabellenfunktionen ◦ Eine CDS Tabellenfunktion ist neue Art von CDS-Entitäten ◦ Die Implementierung einer solchen Funktion erfolgt als Native SQL in einer AMDP Funktionsimplementierung  Damit ist diese Funktion derzeit nur auf SAP Hana DB verfügbar
  • 38. ABAP CDS - Zugriffskontrolle ABAP 7.50  CDS Zugriffskontrolle ◦ Mit Hilfe von PFCG Rollen und einer DCL (Data Control Language) Definition kann die Ergebnismenge eines CDS Views (CDS Entität!) eingeschränkt werden @MappingRole: true define role demo_cds_role_lit_pfcg { grant select on demo_cds_auth_lit_pfcg where (carrid) = aspect pfcg_auth (s_carrid, carrid, actvt='03') and currcode = 'EUR'; } @AbapCatalog.sqlViewName: 'DEMO_CDS_LITPFCG' @AccessControl.authorizationCheck: #CHECK define view demo_cds_auth_lit_pfcg as select from scarr { key carrid, carrname, currcode, url };DCL DDL
  • 39. ABAP CDS - Sitzungsvariablen ABAP 7.50  Sitzungsvariablen ◦ $session.user (sy-uname) ◦ $session.client (sy-mandt) ◦ $session.system_language (sy-langu)
  • 40. ABAP CDS – Expressions ABAP 7.50 Datumsfunktionen DATS_DAYS_BETWEEN DATS_ADD_DAYS DATS_ADD_MONTHS DATS_IS_VALID TIMS_IS_VALID TSTMP_IS_VALID TSTMP_CURRENT_UTCTIMESTAMP TSTMP_SECONDS_BETWEEN Zeichenkettenfunktionen Bereits seit 7.40 SP8 verfügbar CONCAT_WITH_SPACE INSTR LEFT, RIGHT LENGTH LTRIM, RTRIM RPAD CONCAT LPAD REPLACE SUBSTRING Bytekettenfunktionen BINTOHEX HEXTOBIN  Neue Expression für CDS Views ◦ Neue Zeichenketten-, Datums- und Bytekettenfunktionen
  • 41. ABAP CDS – Expressions ABAP 7.50  ABAP CDS: CONCAT_WITH_SPACE ◦ Wie CONCAT, jetzt jedoch mit Leerzeichen getrennt ◦ CONCAT_WITH_SPACES( arg1, arg2, spaces )
  • 42. ABAP CDS – Expressions ABAP 7.50  ABAP CDS: INSTR ◦ Position des ersten Vorkommens von sub in arg. ◦ INSTR( arg, sub )
  • 43. ABAP CDS – Expressions ABAP 7.50  ABAP CDS: LEFT ◦ Zeichenkette der Länge len mit den linken Zeichen von arg ◦ LEFT( arg, sub )
  • 44. ABAP CDS – Expressions ABAP 7.50  ABAP CDS: LENGTH ◦ Anzahl Zeichen ◦ LENGTH( arg )
  • 45. ABAP CDS – Expressions ABAP 7.50  ABAP CDS: LTRIM ◦ Entfernt alle schließenden Leerzeichen aus arg und führende Zeichen char ◦ LTRIM( arg, char )
  • 46. ABAP CDS – Ausdrücke & Funktionen ABAP 7.50  ABAP CDS: LTRIM ◦ Entfernt alle schließenden Leerzeichen aus arg und führende Zeichen char ◦ LTRIM( arg, char )
  • 47. ABAP CDS – Ausdrücke & Funktionen ABAP 7.50  ABAP CDS: RIGHT ◦ Zeichenkette der Länge len mit den rechten Zeichen von arg ◦ RIGHT( arg, len )
  • 48. ABAP CDS – Expressions ABAP 7.50  ABAP CDS: RPAD ◦ Zeichenkette in Länge len mit linksbündigen Inhalt von arg. Verlängerte Strings werden mit src aufgefüllt. ◦ LPAD( arg, len, src )
  • 49. ABAP CDS – Expressions ABAP 7.50  ABAP CDS: RTRIM ◦ Entfernt alle schließenden Leerzeichen aus arg und schließende Zeichen char ◦ RTRIM( arg, char )
  • 51. Exception Klassen ABAP 7.50  Exception Klassen ◦ Neues Interface IF_T100_DYN_MSG  MESSAGE bei RAISE EXCEPTION / THROW ◦ Direkte Angabe von Meldungen ◦ „Verknüpfung“ klassischer Exceptions mit classbased Exceptions ◦ weniger „unnötige“ Exception Texte  MESSAGE <exception_ref> TYPE <Type> ◦ „Verknüpfung“ classbased Exceptions mit klassischer Exceptions ◦ 751: bei IF_T100_DYN_MSG kein TYPE notwendig
  • 53. IS INSTANCE OF / CASE TYPE OF ABAP 7.50  IS INSTANCE OF ◦ Down Cast Möglichkeit vor Zuweisung prüfen ◦ <reference_var> enthält Referenz auf <Class> ◦ <reference_var> enthält Referenz auf <Interface>  CASE TYPE OF ◦ Mehrfache Prüfung wie IS INSTANCE OF ◦ Direkte Zuweisung an Variable
  • 54. DEMO ABAP 7.50 Live Demo IS INSTANCE OF und CASE TYPE OF
  • 55. # - Typermittlung ABAP 7.50  # - Typermittlung bei Konstruktorausdrücken ◦ Ermittlung des Zieltyps wurde erweitert ◦ FUBA leider wieder nicht
  • 56. Tableexpression Result ABAP 7.50  Ergebnis ist Referenzvariable ◦ Itab[ name = ‚BUT000‘ ]-partner->partner_number ◦ WriterItab[ 1 ]->write( )
  • 57. CORRESPONDING ABAP 7.50  Lookup Table ◦ ITab1 oder „ITab1 CORRESPONDING ITab2“  CL_ABAP_CORRESPONDING ◦ „Dynamische“ Mappings ◦ Feld/Namemapping wird im Programm erstellt ◦ KEIN Mapping abhängig von Spaltenwerten  751: CL_ABAP_CORRESPONDING ◦ Erweitert um „Lookup Table“
  • 58. DEMO ABAP 7.50 Live Demo CORRESPONDING
  • 60. TEST-SEAM / TEST-INJECTION ABAP 7.50  TEST-SEAM / TEST-INJECTION ◦ Produktivcode (NUR !!!) bei Testausführung ersetzten ◦ Ähnlich ENHANCMENT-SECTIONs ◦ DB Zugriffe, Externe Aufrufe (RFC, HTTP, ABAP Channel,…)
  • 61. DEMO ABAP 7.50 Live Demo TEST-SEAM / TEST-INJECTION
  • 62. RFC und ABAP Channels ABAP 7.50 RFC und ABAP Channels
  • 63. RFC Destination ABAP 7.50  Dynamische RFC Destination (SM59) ◦ Host, User, System,… wird zur Laufzeit definiert und als Destination bereitgestellt  Vorschläge möglicher UseCases??? ◦ HTTP Requests auf externe Syteme
  • 64. ABAP Channels ABAP 7.50  ABAP Push Channels - APC ◦ Kommunikation zwischen Client und Server ◦ Bi-direktional: Server und Client ◦ WebSocket Protocol  ABAP Message Channels - AMC ◦ Kommunikation zwischen Benutzersessions ◦ Publish–Subscribe Model ◦ AppServer übergreifend
  • 65. ABAP Channels - Überblick ABAP 7.50 SAP System App Server 2 User 2 Session 1 App Server 1 User 1 Session 1 User 2 Session 2 ABAP Messaging Channel Framework APC Send/Receive AMC Receive AMC Send AMC Subscribe
  • 66. AMC – bisher ABAP 7.50  Sender kennt Empfänger nicht
  • 67. AMC – P2P ABAP 7.50  Point-to-point communication AMC ◦ Empfänger „meldet“ sich bei Sender an ◦ Erhält gezielt und generelle Messages
  • 68. APC Erweiterungen ABAP 7.50  751: Messagegöße ◦ Von ~ 30kB auf 1 MB ◦ Profil Paramter rdisp/long_messages/max_length
  • 69. APC Erweiterungen ABAP 7.50  WebSocket oder TCP ◦ Weniger Overhead ◦ Einfacher – „kleiner“ – implementierbar  Statefull APC ◦ „mehrere Calls – ein Commit“  ABPA als APC Client ◦ „Report“ als Client  weitere Änderungen – eher technisch
  • 70. ABAP 7.50 ABAP 7.51 – Weitere Neuerungen
  • 71. ABAP 7.50Ausblick 7.51 – Aufzählungstypen (Enumerations)  Aufzählungstypen (Enumerations) ◦ Ein Aufzählungstyp ist ein Datentyp für Variablen mit einer endlichen Wertemenge. ◦ Alles zulässigen Werte werden bei der Deklaration mit einem eindeutigen Namen definiert. TYPES: BEGIN OF ENUM developer, domi, “Standard 0 foess “1 END OF ENUM developer. DATA lv_developer type developer. lv_developer = domi. “Allowed lv_developer = 9. “Syntax / Runtime Error
  • 72. ABAP 7.50Ausblick 7.51 – Open SQL / CDS Views  OPEN SQL / CDS Views ◦ Neuer Join Möglichkeit: CROSS JOIN ◦ Viele neue von SQL- und Aggregatfunktionen ◦ DELETE erlaubt endlich ORDER BY, OFFSET und UP TO
  • 73. ABAP 7.50Ausblick 7.51 - CDS View anzeige in SE80  CDS Views – Anzeige/Pflege ◦ Anzeige wurde in die SE80 integriert ◦ Pflege weiterhin nur mit Eclipse möglich
  • 75. ABAP 7.50Weiterführende Informationen  Weiterführende Informationen ◦ Online Dokumentation  http://help.sap.com/abapdocu_750/en/index.htm?file=abennews-750.htm  http://help.sap.com/abapdocu_751/en/index.htm?file=abennews-751.htm ◦ Horst Keller Blogs (https://people.sap.com/horst.keller)  https://blogs.sap.com/2015/11/27/abap-language-news-for-release-750/  https://blogs.sap.com/2016/11/04/abap-news-for-release-7.51/
  • 78. 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]

Hinweis der Redaktion

  • #8: Transaktion SE11, SAP Web IDE, CDS Views, SAP HANA Cloud Platform, SAP S/4 HANA, Mobile Devices
  • #21: Host Ausdrücke SQL Cockpit Variante: HOST_EXPRESSION SQL Ausdrücke SQL Cockpit Variante: CONCAT_CONCAT SQL Cockpit Variante: ARITHMETIC
  • #75: - Auzählungstypen (Enumerations) – Common Pattern - CROSS JOIN – Verbindet die Zeilen der rechten und linken Seite zu einer Ergebnismenge in der alle Kombinationen von Zeilen enthalten sind. Neue SQL- und Aggregatfunktionen (lower, upper, … ) Mit Extended Result wird das Ergebnis einer SQL Leseoperation in ein Objekt der Klasse CL_OSQL_EXTENDED_RESULT versorgt.
  • #76: - Auzählungstypen (Enumerations) – Common Pattern - CROSS JOIN – Verbindet die Zeilen der rechten und linken Seite zu einer Ergebnismenge in der alle Kombinationen von Zeilen enthalten sind. Neue SQL- und Aggregatfunktionen (lower, upper, … ) Mit Extended Result wird das Ergebnis einer SQL Leseoperation in ein Objekt der Klasse CL_OSQL_EXTENDED_RESULT versorgt.