abap

Einführung in bgRFC

Tanisha Gupta · 13. Juni 2023

Dieser Beitrag wurde aus dem englischen Original übersetzt.

Hallo liebe Leserinnen und Leser,
wir sind zurück mit einem weiteren spannenden Thema. Diesmal sprechen wir über bgRFC und einige verwandte Begriffe.

Background RFC (Remote Function Call) ist eine leistungsfähige Funktion in SAP, die auf dem Standard-RFC-Protokoll basiert und es erlaubt, Remote Function Calls im Hintergrund auszuführen, ohne die Performance des SAP-Systems zu beeinträchtigen. Vor allem wird sie eingesetzt, um lang laufende, ressourcenintensive Prozesse wie Batch-Jobs und Datenübertragungen auszuführen.

Einfach gesagt: bgRFC erlaubt es, Remote Function Calls zwischen verschiedenen SAP-Systemen oder zwischen einem SAP-System und einem Nicht-SAP-System auszuführen. Damit lassen sich Remote Function Calls in einem separaten Hintergrundprozess ausführen, der unabhängig von der Benutzeroberfläche läuft. So können Anwenderinnen und Anwender einen lang laufenden Prozess anstoßen und an anderen Aufgaben weiterarbeiten, ohne von diesem Prozess unterbrochen zu werden.

bgRFC ist der Nachfolger von tRFC und qRFC, mit deutlichen Verbesserungen bei Performance und Funktionsumfang.

Die Begriffe tRFc und qRFC klingen für manche, die neu in der SAP-Welt sind, vielleicht ungewohnt. Keine Sorge, wir klären zunächst deren Bedeutung und gehen dann weiter.

Was ist der Standard-RFC?

Standard RFC

Standard RFC bezeichnet die grundlegendste Form der Kommunikation zwischen SAP-Systemen oder zwischen einem SAP-System und einem Nicht-SAP-System (externen System).

Ein Standard-RFC wird von einem System initiiert und in einem anderen ausgeführt, wobei die Antwort auf den Aufruf sofort an das anfragende System zurückgegeben wird. Der Standard-RFC ist ein synchroner Kommunikationsprozess. Das bedeutet, dass das anfragende System blockiert bleibt, bis es die Antwort des empfangenden Systems erhält.

Üblicherweise wird er für kurze Transaktionen oder Prozesse eingesetzt, die eine sofortige Antwort erfordern. Zum Beispiel, um Daten abzurufen oder eine bestimmte Aktion in einem anderen System auszulösen.

💡 Bemerkenswert ist: Standard-RFCs bieten zwar eine einfache und unkomplizierte Möglichkeit, Daten zwischen Systemen auszutauschen, sie können jedoch zum Engpass werden, wenn das Datenvolumen hoch ist oder die Verarbeitungszeit der RFC-Aufrufe lang ausfällt.

Was ist t-RFC?

t-RFC steht für Transactional Remote Function Call. Es handelt sich um eine Kommunikationsmethode, mit der Daten zwischen SAP-Systemen zuverlässig und transaktional ausgetauscht werden.

Ein t-RFC-Aufruf wird von einem System initiiert und in einem anderen ausgeführt, wobei die Transaktion automatisch committet oder zurückgerollt wird. Ausschlaggebend ist das Ergebnis des Aufrufs.

Wird ein Aufruf an ein empfangendes System gesendet, das nicht verfügbar ist, wird der Aufruf für einen späteren Zeitpunkt in einer lokalen Queue vorgehalten. Ist ein t-RFC-Aufruf nicht erfolgreich, kann die Transaktion automatisch wiederholt werden, um die Datenkonsistenz zwischen den Systemen sicherzustellen.

💡 Zu beachten ist hier, dass ein t-RFC-Aufruf in einer einzigen Transaktion ausgeführt wird, also entweder vollständig committet oder zurückgerollt wird.

Was ist q-RFC?

q-RFC steht für Queued Remote Function Call. Es handelt sich um eine Art von Remote Function Call, die eine zuverlässige und skalierbare Kommunikation zwischen SAP-Systemen ermöglicht. Dabei wird eine Queue genutzt, um die Kommunikationsanfragen zu speichern und zu verwalten.

Ein q-RFC-Aufruf wird von einem System initiiert und in einem anderen System ausgeführt, wobei die Anfrage in einer Queue im empfangenden System abgelegt wird. Das empfangende System kann die Anfragen in der Queue dann zu einem späteren Zeitpunkt verarbeiten, je nach Konfiguration sequenziell oder parallel. Das ist hilfreich, wenn Transaktionen in einer vordefinierten Reihenfolge verarbeitet werden sollen.

Nun zurück zum eigentlichen Thema.

Das anfragende System stößt einen bgRFC an, und das empfangende System führt ihn im Hintergrund aus. Dadurch kann das anfragende System weiterarbeiten, ohne durch die Antwort des empfangenden Systems blockiert zu werden. Die Antwort des bgRFC wird üblicherweise zu einem späteren Zeitpunkt zurückgegeben und lässt sich über verschiedene Transaktionscodes und Tabellen in SAP überwachen.

Background RFCs sind eine beliebte Wahl für lang laufende Transaktionen oder Prozesse, die keine sofortige Antwort erfordern. Sie bieten eine effizientere Möglichkeit des Datenaustauschs zwischen Systemen als synchrone Kommunikationsmethoden.

Mit bgRFC lassen sich Reports und Batch-Jobs regelmäßig ausführen, etwa täglich, wöchentlich oder monatlich. Das heißt, es basiert auf einem Scheduler-getriebenen Queuing-Framework.

💡 Beim Empfang eines Aufrufs muss sichergestellt sein, dass er entweder genau einmal in beliebiger Reihenfolge (Qualität von t-RFC) oder genau einmal in der Reihenfolge der Erstellung (Qualität von q-RFC) an den Empfänger übertragen wurde.

Architektur von bgRFC

Die Architektur eines Background Remote Function Call (bg-RFC) in SAP besteht aus den folgenden Komponenten:

  • Calling System
    Dies ist das System, das den bg-RFC-Aufruf initiiert. Das aufrufende System sendet die Anfrage an das Callee System und arbeitet weiter, ohne durch die Antwort des bgRFC blockiert zu werden.
  • Callee System
    Dies ist das System, das den bg-RFC-Aufruf empfängt und verarbeitet. Das Callee System verarbeitet den bg-RFC im Hintergrund und gibt die Antwort zu einem späteren Zeitpunkt an das aufrufende System zurück.
  • bg-RFC-Schnittstelle
    Dies ist die Schnittstelle, die Struktur und Inhalt des bg-RFC-Aufrufs definiert. Das Callee System stellt eine Reihe von Funktionsbausteinen bereit, die vom aufrufenden System aufgerufen werden können.
  • bg-RFC-Queue
    Eine Queue dient dazu, die bgRFC-Aufrufe zu speichern und zu verwalten. Die bg-RFC-Queue fungiert als Puffer zwischen aufrufendem und Callee System und erlaubt es Letzterem, die bg-RFC-Aufrufe asynchron und parallel zu verarbeiten.
  • bg-RFC-Koordinator
    Dies ist die Komponente, die für die Verwaltung und Koordination der bg-RFC-Aufrufe im Callee System zuständig ist. Der bg-RFC-Koordinator holt die bg-RFC-Aufrufe aus der Queue und verteilt sie zur Verarbeitung an die passenden Funktionsbausteine.

Funktionsweise von bgRFC

Im Diagramm sehen wir zwei Systeme:
1. Calling System
2. Callee System

Das aufrufende System nutzt eine Destination, um eine bgRFC-Anfrage an das Callee System zu senden. Diese gibt das Callee System und den aufzurufenden bgRFC-Funktionsbaustein an. Das Callee System legt die bgRFC-Anfrage in eine Queue. Anschließend prüft der Hintergrundprozessor die Queue in regelmäßigen Abständen auf neue Anfragen und verarbeitet sie im Hintergrund. Das sendende beziehungsweise aufrufende System kann fortfahren, ohne auf eine Antwort des empfangenden beziehungsweise Callee Systems zu warten, da dieses die Anfragen asynchron verarbeitet.
Die Kommunikation zwischen den beiden Systemen erfolgt über ein Kommunikationsprotokoll wie RFC oder ein Netzwerkprotokoll. Das Callee System führt den Funktionsbaustein aus, der durch die bgRFC-Anfrage aufgerufen wurde.
Das Callee System empfängt die RFC-Anfrage und startet einen Hintergrund-Task zur Ausführung des Funktionsbausteins. Der Hintergrund-Task führt den Remote Function Call aus und erzeugt den Report beziehungsweise erledigt die gewünschte Aufgabe. Je nach Komplexität des Reports oder der ausgeführten Aufgabe kann die Abarbeitung des Funktionsbausteins einige Zeit dauern.
Nach Abschluss des Hintergrund-Tasks speichert das Callee System die Ergebnisse im Task-Log oder gibt sie als Ausgabedaten an das aufrufende System zurück. Das aufrufende System holt die Ergebnisse aus dem Task-Log oder den Ausgabedaten und verarbeitet sie nach Bedarf.

Vorteile von bgRFC

  1. Bessere Systemperformance: Asynchrone Kommunikation reduziert die Last auf dem Sendersystem, was die Gesamtperformance des Systems verbessern kann.

  2. Höhere Zuverlässigkeit: bgRFC erhöht die Zuverlässigkeit, indem es eine belastbare Kommunikation zwischen Systemen bietet und eine korrekte, fehlerfreie Datenübertragung sicherstellt.

  3. Skalierbarkeit: bgRFC ist sehr gut skalierbar, das heißt, es kann große Datenmengen verarbeiten und mehrere Systeme oder Anwendungen unterstützen.

  4. Bessere User Experience: bgRFC ermöglicht es Anwenderinnen und Anwendern, Aufgaben zu erledigen, ohne auf Antworten anderer Systeme oder Anwendungen warten zu müssen, was die User Experience verbessern kann.

Zusammenfassung

Background RFC ist eine Kommunikationsmethode in SAP, mit der Anwenderinnen und Anwender asynchron zwischen verschiedenen Systemen kommunizieren können.

Mit bg-RFC können Entwicklerinnen und Entwickler Prozesse anlegen und einplanen, die im Hintergrund eines beliebigen SAP-Systems laufen. Das wiederum reduziert die Last auf der GUI und steigert die Performance. Wenn große Datenmengen übertragen werden müssen, erweist sich bgRFC als praktisch. Ob Sie bgRFC einsetzen sollten, hängt von den Anforderungen und Eigenschaften Ihres Integrationsszenarios ab.

Empfohlene Artikel:

Entdecken Sie unsere Expertenservices, die Sie bei Ihrer SAP HCM Transformation unterstützen und Ihnen helfen, die passende Deployment-Strategie für Ihr Unternehmen zu finden. Mehr erfahren Sie hier.

Ähnliche Beiträge

Das könnte Sie auch interessieren

Aktualisieren Sie Ihre Unternehmensintegration.

Mit zunehmender Effizienz bei Digitalisierung und Datenfluss erwarten Sie einen höheren Unternehmenswert und eine bessere Wettbewerbsfähigkeit.