Download - RFC in SAP Vortrag
Remote Function Call in SAPPräsentation für das
Seminar „Verteilte Systeme“von Sebastian Reidemeister
2
Grundlagen◦ Aufbau SAP-System◦ ABAP + Funktionsbausteine◦ Kommunikationsarten
RFC◦ Definition◦ Kommunikationsszenarien◦ Arten & deren Funktionsweise
Programmierung Fazit
Sebastian Reidemeister, B. Sc.
Gliederung
Sebastian Reidemeister, B. Sc. 3
SA
P N
etW
eaver
Ap
plicati
on
Serv
er
AS ABAP
Java EE Applikationsserver
Kommunikationsschnittstellen
Aufbau SAP-System
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 4
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
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 5
OpenSQL: integrierter DB-Zugriff
Integriertes Konzept des Online Transaction
Processing (OLTP)
Schnittstelle zu XML
Schnittstelle zu entfernten Systemen (RFC)
Vorteil: Abwärtskompatibilität
ABAP-Eigenschaften
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 6
Funktionsbausteine
Funktionsgruppe
Funktionsbaustein 1
Funktion 1
Funktion n
Funktionsbaustein n
Funktion 1
Funktion n
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 7
FunktionsbausteineElemente 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
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 8
Kommunikationsarten Synchrone Kommunikation
Sender
• Programm setzt Aufruf ab
• Wartet auf Antwort
Empfänger
• Funktionsaufruf wird sofort bearbeitet
Funktionsaufruf
Rückantwort
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 9
Kommunikationsarten Asynchrone Kommunikation
Sender
• Aufruf wird wiederholt
• Keine Rückantwort erwartet
Empfänger
• Abarbeitung des Funktionsaufrufs, wenn verfügbar
FunktionsaufrufAusgangsqueue
Rückantwort
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 10
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
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 11
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-Definition
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 12
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
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 13
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
RFC-Schnittstelle
Programmierung FazitRFCGrundlagen
14Sebastian Reidemeister, B. Sc.
RFC-Kommunikation aus R/3R/3-Applikationsserver Remote-System
• Externes Nicht-SAP-System• R/2-System• Applikationsserver eines
andren R/3-Systems• Applikationsserver des
selben R/3-Systems
Lokaler AufrufPROGRAM …
CALL FUNCTION…
FB
Remote AufrufPROGRAM …
CALL FUNCTION…DESTINATION
Remote Aufruf
FBRemote
Programmierung FazitRFCGrundlagen
15Sebastian Reidemeister, B. Sc.
Szenario 1: ABAP - ABAP
AS ABAP
RFC-Schnittstelle
ABAPProgramm
AS ABAP
ABAPProgramm
RFC-Schnittstelle
Programmierung FazitRFCGrundlagen
16Sebastian Reidemeister, B. Sc.
Szenario 2: AS ABAP - Fremdsystem
AS ABAP
RFC-Schnittstelle
ABAP-Programm
Fremdsystem
Nicht-ABAP-
Programm
RFC-API
Programmierung FazitRFCGrundlagen
17Sebastian Reidemeister, B. Sc.
Szenario 3: ABAP – SAP Java
AS ABAP
RFC-Schnittstelle
ABAP-Programm
AS Java
Java-Programm
SAP JCo
Programmierung FazitRFCGrundlagen
18Sebastian Reidemeister, B. Sc.
Szenario 4: ABAP – Java extern
AS ABAP
RFC-Schnittstelle
ABAP-Programm
Java System (nicht SAP)
Java-Programm
SAP JCo
Programmierung FazitRFCGrundlagen
19Sebastian Reidemeister, B. Sc.
Szenario 5: ABAP – SAP JRA
AS ABAP
RFC-Schnittstelle
ABAP-Programm
AS Java
Java-Client
SAP JCo SAP JRA
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 20
Synchroner RFC (sRFC)
Asynchroner RFC (aRFC)
Transaktioneller RFC (tRFC)
Queued RFC (qRFC)
Background RFC (bgRFC)
RFC-Arten & deren Funktionsweise
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 21
Ausführung externer Funktion aus AS ABAP
auf Grundlage der synchronen
Kommunikation
Wird höchstens einmal ausgeführt und nicht
wiederholt
Synchroner RFC-sRFC
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 22
Synchroner RFC-sRFC
Programmierung FazitRFCGrundlagen
PROGRAM …..CALL FUNCTION ‘XYZ‘DESTINATION ‘A‘EXPORTING ….....
Remote Function
FUNCTION XYZ...ENDFUNCTION
Sebastian Reidemeister, B. Sc. 23
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
Asynchroner RFC-aRFC
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 24
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
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 25
transaktioneller RFC-tRFC
Programmierung FazitRFCGrundlagen
PROGRAM …..CALL FUNCTION ‘X1‘IN BACKGROUNDTASKDESTINATION ‘A‘…CALL FUNCTION ‘X2‘IN BACKGROUNDTASKDESTINATION ‘A‘…COMMIT WORK..
Logische Einheit
FUNCTION X1..ENDFUNCTION
FUNCTION X2..ENDFUNCTION
Sebastian Reidemeister, B. Sc. 26
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
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 27
Queue
queued RFC-qRFC
Programmierung FazitRFCGrundlagen
Eingang
Funktionsbaustein 1
Funktionsbaustein 2
Funktionsbautein 3
Ausgang
Funktionsbaustein 1
Funktionsbaustein 2
Funktionsbautein 3
Sebastian Reidemeister, B. Sc. 28
Outbound Inbound
• Aufzeichnung der Aufrufe
als Ausgangsqueue auf DB
des Senders
• Verwendung:
• Entkopplung zwischen
Sender und Empfänger
• Aufzeichnung der Aufrufe
als Eingangsqueue auf DB
des Empfängers
• Empfänger meist kein
entferntes System
• Verwendung:
• Anwendungs-
parallelisierung
• Lastverteilung
qRFC - Einsatzszenarien
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 29
Out-in No-Send
• Kombination von Outbound-
und Inbound-Szenario
Doppelte Bereitstellung
der Daten
• Spezialfall
• Kein Scheduler
Pull-Prinzip
• Verwendung:
• Anbindung mobiler
Endgeräte
qRFC - Einsatzszenarien
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 30
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
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 31
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
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 32
API:
◦ Definition der Eigenschaften für Übertragung
◦ Datenaufzeichnung
◦ Mehrere Funktionsbausteine als Unit bündelbar
Unit: Einheit der Übertragung
Background RFC-bgRFC
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 33
Performance-Effekte:
◦ Bessere Skalierbarkeit
◦ Leistung Hardwareabhängig
◦ Optimierte Vorgehensweise durch API
Redundante Funktionen entfernt
Reduzierung des Support-/ Entwicklungsaufwands
Background RFC-bgRFC
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 34
Destination festlegen
Remotefähigen Funktionsbaustein suchen/
erstellen
Programm je nach RFC-Typ gestalten
Ablauf
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 35
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
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 36
Destination festlegen
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 37
Destination festlegen
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 38
Schon eine Vielzahl an remotefähigen
Funktionsbausteinen vorhanden
Zu suchen unter:
Werkzeuge ABAP Workbench Entwicklung
SE37 – Function Builder
Funktionsbaustein suchen
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 39
Funktionsbaustein suchen
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 40
Funktionsbaustein suchen
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 41
Funktionsgruppe definieren
Werkzeuge ABAP-Workbench Übersicht
SE 80 Object Navigator
Globale Daten erstellen
Funktionsbaustein erstellen
Funktionsbaustein programmieren
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 42
Funktionsbaustein programmieren
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 43
Funktionsbaustein programmieren
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 44
Programm für sRFC
Programmierung FazitRFCGrundlagen
Quelle: Tutotrial von http://help.sap.com/saphelp_srm40/helpdata/ja/26/64f61dfa8911d386e70000e82011b8/content.htm
Sebastian Reidemeister, B. Sc. 45
Ergebnis
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 46
Ergebnis
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 47
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
Fazit
Programmierung FazitRFCGrundlagen
Sebastian Reidemeister, B. Sc. 48
http://help.sap.com/printdocu/core/Print46c/de/data/pdf/BCFESDE2/BCFESDE2.pdf
http://help.sap.com/saphelp_47x200/helpdata/en/26/64f61dfa8911d386e70000e82011b8/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
Quellen
Vielen Dank für Ihre Aufmerksamkeit