Beruflich Dokumente
Kultur Dokumente
in SAP
Präsentation für das
Seminar „Verteilte Systeme“
von Sebastian Reidemeister
Gliederung
Grundlagen
◦ Aufbau SAP-System
◦ ABAP + Funktionsbausteine
◦ Kommunikationsarten
RFC
◦ Definition
◦ Kommunikationsszenarien
◦ Arten & deren Funktionsweise
Programmierung
Fazit
Aufbau SAP-System
Application
NetWeaver Application
AS ABAP
Server
Server
Java EE Applikationsserver
SAP NetWeaver
Kommunikationsschnittstellen
SAP
ABAP
SAP-eigene Programmiersprache
„Advanced Business Application Programming“
Ähnlich zu COBOL
Sprachumfang nicht genau definiert
Basis für SAP R/3 Module
Entwicklung in ABAP-Workbench
ABAP-Eigenschaften
OpenSQL: integrierter DB-Zugriff
Integriertes Konzept des Online Transaction
Processing (OLTP)
Schnittstelle zu XML
Schnittstelle zu entfernten Systemen (RFC)
Vorteil: Abwärtskompatibilität
Funktionsbausteine
Funktion 1
Funktionsbaustei
n1
Funktion n
Funktionsgruppe
Funktion 1
Funktionsbaustei
nn
Funktion n
Funktionsbausteine
Elemente Bedeutung
Import-Parameter •Eingabedaten
•Grundlage für Bearbeitung
Export-Parameter •Ausgabedaten
•Ergebnis der Bearbeitung
Changing-Parameter •Beinhaltet interne veränderbare
Tabellen
Tabellen-Parameter •Beinhaltet interne veränderbare
Tabellen
Ausnahmen (Exceptions) •(bausteinspezifische)
Fehlermeldungen
Sebastian Reidemeister, B. Sc. 7
Grundlagen RFC Programmierung Fazit
Kommunikationsarten
Synchrone Kommunikation
Sender Empfänger
Funktionsaufruf
• Programm setzt • Funktionsaufruf
Aufruf ab wird sofort
• Wartet auf bearbeitet
Antwort
Rückantwort
Kommunikationsarten
Asynchrone Kommunikation
Sender Empfänger
Funktionsaufruf
Ausgangsqueue
Rückantwort
RFC-Definition
Kommunikation zwischen Anwendungen
verschiedener Systeme
Standard-Schnittstelle zur Realisierung von
Kommunikation
Ruft Funktion auf, die in entfernten System
ausgeführt werden soll
Erweiterung von „CALL FUNCTION“
RFC-Definition
Dienste:
◦ Aufruf und Steuerung der Kommunikationsroutinen
◦ An- und Abmeldung an das entfernte System
◦ Berechtigungsprüfungen für die verwendete
Funktionsgruppe
◦ Konvertierung von Aktualparametern
◦ Fehlerbehandlung
RFC-Schnittstelle
Aufrufschnittstelle für ABAP-Programme
◦ Aufrufer: jedes beliebige ABAP-Programm
◦ Gerufener: ein als entfernt registrierter
Funktionsbaustein
◦ sRFC: CALL FUNCTION … DESTINATION
◦ aRFC: CALL FUNCTION – STARTING NEW TASK
◦ tRFC: CALL FUNCTION – IN BACKGROUND TASK
RFC-Schnittstelle
Aufrufschnittstellen für Nicht-ABAP-Programme
◦ Muss als Kommunikationspartner programmiert
werden
◦ Lösung über Connectoren:
SAP Java Connector
SAP Java Resource Adapter
SAP .NET Connector
AS ABAP AS ABAP
ABAP ABAP
Programm Programm
RFC-Schnittstelle RFC-Schnittstelle
AS ABAP Fremdsystem
ABAP- Nicht-
Programm ABAP-
Programm
RFC-Schnittstelle RFC-API
AS ABAP AS Java
ABAP- Java-
Programm Programm
AS ABAP AS Java
ABAP- Java-
Programm Client
Synchroner RFC-sRFC
Ausführung externer Funktion aus AS ABAP auf
Grundlage der synchronen Kommunikation
Wird höchstens einmal ausgeführt und nicht
wiederholt
Synchroner RFC-sRFC
Asynchroner RFC-aRFC
Eigenständiger RFC-Typ „pseudo-asychron“
Wartet nicht die erfolgreiche Bearbeitung der
Funktion im aufgerufenen System ab
Gerufene Server muss zur Verfügung stehen
Höchstens einmal ausgeführt
transaktioneller RFC-tRFC
Führt gerufene Funktion genau einmal aus
Gerufenes System muss nicht verfügbar sein
Bei Kommunikationsproblemen:
Speicherung der RFC-Funktion + Daten in
Datenbank
In jedem Fall:
Statusfortschreibung auf der Datenbank
transaktioneller RFC-tRFC
PROGRAM … Logische Einheit
.
.
CALL FUNCTION ‘X1‘ FUNCTION X1
IN BACKGROUNDTASK .
DESTINATION ‘A‘ .
… ENDFUNCTION
CALL FUNCTION ‘X2‘
IN BACKGROUNDTASK FUNCTION X2
DESTINATION ‘A‘ .
… .
COMMIT WORK. ENDFUNCTION
.
queued RFC-qRFC
Serialisierung des tRFC über Queues
Eigenschaften:
◦ Ausführung der Aufrufe in Eingangsreihenfolge
des Queue
◦ Verteilung von Ausführungseinheiten in
verschiedene Queues
◦ Aufzeichnung der Queues wie bei tRFC
queued RFC-qRFC
Queue
Eingang Ausgang
Funktionsbaustein 1 Funktionsbaustein 1
Funktionsbaustein 2 Funktionsbaustein 2
Funktionsbautein 3 Funktionsbautein 3
qRFC - Einsatzszenarien
Outbound Inbound
Senders Empfängers
• Anwendungs-
parallelisierung
Sebastian Reidemeister, B. Sc. 28
Grundlagen RFC Programmierung Fazit
qRFC - Einsatzszenarien
Out-in No-Send
• Anbindung mobiler
Endgeräte
Background RFC-bgRFC
Aufzeichnung von Daten, für spätere Übertragung
Daten können genau einmal in:
◦ Beliebiger Reihenfolge,
◦ Reihenfolge der Erzeugung übergeben werden
Optimierungsmöglichkeiten durch Asynchronität
Optimierungs-Szenarien auch als Out-In
kombinierbar
Background RFC-bgRFC
Organisation verschiedener Aufrufe durch
Queues
◦ Aufruf in mehreren Queues Abhängigkeiten
◦ Abhängige Queues können bearbeitet werden bis
Eintrag mit Abhängigkeit
Verarbeitbar wenn Abhängigkeit in allen
Queues an 1. Stelle
Background RFC-bgRFC
API:
◦ Definition der Eigenschaften für Übertragung
◦ Datenaufzeichnung
◦ Mehrere Funktionsbausteine als Unit bündelbar
Unit: Einheit der Übertragung
Background RFC-bgRFC
Performance-Effekte:
◦ Bessere Skalierbarkeit
◦ Leistung Hardwareabhängig
◦ Optimierte Vorgehensweise durch API
Redundante Funktionen entfernt
Reduzierung des Support-/ Entwicklungsaufwands
Ablauf
Destination festlegen
Remotefähigen Funktionsbaustein suchen/
erstellen
Programm je nach RFC-Typ gestalten
Destination festlegen
Verwaltung aller RFC-Verbindungen
Notwendig um überhaupt externe Systeme
ansprechen zu können
Erfolgt im SAP unter:
Werkzeuge Administration Verwaltung
Netzwerk SM59 RFC-Destinationen
Destination festlegen
Destination festlegen
Funktionsbaustein suchen
Schon eine Vielzahl an remotefähigen
Funktionsbausteinen vorhanden
Zu suchen unter:
Werkzeuge ABAP Workbench Entwicklung
SE37 – Function Builder
Funktionsbaustein suchen
Funktionsbaustein suchen
Funktionsbaustein programmieren
Funktionsgruppe definieren
Werkzeuge ABAP-Workbench Übersicht
SE 80 Object Navigator
Globale Daten erstellen
Funktionsbaustein erstellen
Funktionsbaustein programmieren
Funktionsbaustein programmieren
Ergebnis
Ergebnis
Fazit
Standardfunktion bei SAP für die
Kommunikation
Bietet Lösungen für fast alle Möglichkeiten
Sehr Komplex
Verwendung von Java immer mehr unterstützt
Weitere Entwicklungen basieren auf dem RFC-
Konzept
http://
help.sap.com/saphelp_47x200/helpdata/en/26/64f6
1dfa8911d386e70000e82011b8/content.htm
Schulungsunterlagen:
BC415-Kommunikationsschnittstellen in ABAP
Keller, H.; Krüger, S.: „ABAP Objects – ABAP-
Programmierung mit SAP NetWeaver“, 3. Auflage,
2006, Galileo Press, Bonn Sebastian Reidemeister, B. Sc. 48
Vielen Dank für Ihre
Aufmerksamkeit