RFC in SAP Vortrag

49
Remote Function Call in SAP Präsentation für das Seminar „Verteilte Systeme“ von Sebastian Reidemeister

Transcript of RFC in SAP Vortrag

Page 1: RFC in SAP Vortrag

Remote Function Call in SAPPräsentation für das

Seminar „Verteilte Systeme“von Sebastian Reidemeister

Page 2: RFC in SAP Vortrag

2

Grundlagen◦ Aufbau SAP-System◦ ABAP + Funktionsbausteine◦ Kommunikationsarten

RFC◦ Definition◦ Kommunikationsszenarien◦ Arten & deren Funktionsweise

Programmierung Fazit

Sebastian Reidemeister, B. Sc.

Gliederung

Page 3: RFC in SAP Vortrag

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

Page 4: RFC in SAP Vortrag

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

Page 5: RFC in SAP Vortrag

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

Page 6: RFC in SAP Vortrag

Sebastian Reidemeister, B. Sc. 6

Funktionsbausteine

Funktionsgruppe

Funktionsbaustein 1

Funktion 1

Funktion n

Funktionsbaustein n

Funktion 1

Funktion n

Programmierung FazitRFCGrundlagen

Page 7: RFC in SAP Vortrag

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

Page 8: RFC in SAP Vortrag

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

Page 9: RFC in SAP Vortrag

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

Page 10: RFC in SAP Vortrag

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

Page 11: RFC in SAP Vortrag

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

Page 12: RFC in SAP Vortrag

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

Page 13: RFC in SAP Vortrag

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

Page 14: RFC in SAP Vortrag

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

Page 15: RFC in SAP Vortrag

15Sebastian Reidemeister, B. Sc.

Szenario 1: ABAP - ABAP

AS ABAP

RFC-Schnittstelle

ABAPProgramm

AS ABAP

ABAPProgramm

RFC-Schnittstelle

Programmierung FazitRFCGrundlagen

Page 16: RFC in SAP Vortrag

16Sebastian Reidemeister, B. Sc.

Szenario 2: AS ABAP - Fremdsystem

AS ABAP

RFC-Schnittstelle

ABAP-Programm

Fremdsystem

Nicht-ABAP-

Programm

RFC-API

Programmierung FazitRFCGrundlagen

Page 17: RFC in SAP Vortrag

17Sebastian Reidemeister, B. Sc.

Szenario 3: ABAP – SAP Java

AS ABAP

RFC-Schnittstelle

ABAP-Programm

AS Java

Java-Programm

SAP JCo

Programmierung FazitRFCGrundlagen

Page 18: RFC in SAP Vortrag

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

Page 19: RFC in SAP Vortrag

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

Page 20: RFC in SAP Vortrag

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

Page 21: RFC in SAP Vortrag

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

Page 22: RFC in SAP Vortrag

Sebastian Reidemeister, B. Sc. 22

Synchroner RFC-sRFC

Programmierung FazitRFCGrundlagen

PROGRAM …..CALL FUNCTION ‘XYZ‘DESTINATION ‘A‘EXPORTING ….....

Remote Function

FUNCTION XYZ...ENDFUNCTION

Page 23: RFC in SAP Vortrag

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

Page 24: RFC in SAP Vortrag

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

Page 25: RFC in SAP Vortrag

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

Page 26: RFC in SAP Vortrag

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

Page 27: RFC in SAP Vortrag

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

Page 28: RFC in SAP Vortrag

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

Page 29: RFC in SAP Vortrag

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

Page 30: RFC in SAP Vortrag

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

Page 31: RFC in SAP Vortrag

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

Page 32: RFC in SAP Vortrag

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

Page 33: RFC in SAP Vortrag

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

Page 34: RFC in SAP Vortrag

Sebastian Reidemeister, B. Sc. 34

Destination festlegen

Remotefähigen Funktionsbaustein suchen/

erstellen

Programm je nach RFC-Typ gestalten

Ablauf

Programmierung FazitRFCGrundlagen

Page 35: RFC in SAP Vortrag

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

Page 36: RFC in SAP Vortrag

Sebastian Reidemeister, B. Sc. 36

Destination festlegen

Programmierung FazitRFCGrundlagen

Page 37: RFC in SAP Vortrag

Sebastian Reidemeister, B. Sc. 37

Destination festlegen

Programmierung FazitRFCGrundlagen

Page 38: RFC in SAP Vortrag

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

Page 39: RFC in SAP Vortrag

Sebastian Reidemeister, B. Sc. 39

Funktionsbaustein suchen

Programmierung FazitRFCGrundlagen

Page 40: RFC in SAP Vortrag

Sebastian Reidemeister, B. Sc. 40

Funktionsbaustein suchen

Programmierung FazitRFCGrundlagen

Page 41: RFC in SAP Vortrag

Sebastian Reidemeister, B. Sc. 41

Funktionsgruppe definieren

Werkzeuge ABAP-Workbench Übersicht

SE 80 Object Navigator

Globale Daten erstellen

Funktionsbaustein erstellen

Funktionsbaustein programmieren

Programmierung FazitRFCGrundlagen

Page 42: RFC in SAP Vortrag

Sebastian Reidemeister, B. Sc. 42

Funktionsbaustein programmieren

Programmierung FazitRFCGrundlagen

Page 43: RFC in SAP Vortrag

Sebastian Reidemeister, B. Sc. 43

Funktionsbaustein programmieren

Programmierung FazitRFCGrundlagen

Page 44: RFC in SAP Vortrag

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

Page 45: RFC in SAP Vortrag

Sebastian Reidemeister, B. Sc. 45

Ergebnis

Programmierung FazitRFCGrundlagen

Page 46: RFC in SAP Vortrag

Sebastian Reidemeister, B. Sc. 46

Ergebnis

Programmierung FazitRFCGrundlagen

Page 47: RFC in SAP Vortrag

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

Page 48: RFC in SAP Vortrag

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

Page 49: RFC in SAP Vortrag

Vielen Dank für Ihre Aufmerksamkeit