Lobster Experten Fragen

SAP ALE und RFC

Eines vorweg: Im Folgenden geht es um die „großen“ SAP-Systeme, ehemals SAP R/3 genannt, heute Business Suite. Die kleinere Lösung SAP Business One ist ein Thema für sich, das hier nicht behandelt werden soll.

Vielleicht haben Sie den Abschnitt über die IDocs schon gelesen. Hier wird von zwei Grundformaten gesprochen, dem FixRecord- und dem XML-IDoc. Die XML-Variante hat mit SAP XI bzw. PI zu tun, das ist eine von SAP mitgelieferte Art von Schnittstelle zur Außenwelt. Hier hat man es einfach mit XML als grundlegendem Format und z.B. HTTP(S) als üblichem Kommunikationsprotokoll zu tun (natürlich geht auch anderes). Auch diese interessiert uns an dieser Stelle nicht besonders, da es sowohl zu XML wie auch zu HTTP bereits allgemeine Artikel gibt.

IDocs, die auf dem FixRecord-Format basieren, werden dagegen über eine ganz eigene, von SAP zur Verfügung gestellte, Schnittstelle transportiert: ALE
ALE steht für Application Link Enabling. Es diente ursprünglich dazu, mehrere logisch zusammengehörige SAP-Installationen miteinander zu vernetzen. Oder, um SAP selbst zu zitieren:
„Das Grundkonzept von Application Link Enabling ist die Gewährleistung einer verteilten, aber integrierten SAP-Installation. Dies umfaßt einen betriebswirtschaftlich kontrollierten Nachrichtenaustausch bei konsistenter Datenhaltung auf lose gekoppelten SAP-Anwendungssystemen.“ (Zitat siehe hier)
Allerdings kann diese Schnittstelle auch zur Kommunikation mit Fremdsoftware genutzt werden. Diese muß in der Lage sein, ALE sauber zu bedienen.
Eine Ebene tiefer wiederum liegt RFC, das steht für Remote Function Call. ALE baut letztlich auf RFC auf, so sind zum Beispiel die beiden wichtigsten Funktionsbausteine (RFCs), die von ALE genutzt werden, IDOC_INBOUND_ASYNCHRONOUS (zum Einliefern von IDocs in SAP) und IDOC_OUTBOUND_ASYNCHRONOUS (über den SAP IDocs nach draußen gibt). Es gibt aber noch eine ganze Menge mehr. Letztlich muss auch eine Fremdsoftware nicht einfach nur ALE, sondern eben RFC beherrschen.

RFC

Funktionen (oder in SAP-Sprache Funktionsbausteine), die man von außen aufrufen kann, gibt es in Hülle und Fülle. Und was nicht von SAP mitgeliefert wird, kann man dazuprogrammieren. Dafür gibt es wiederum die SAP Consultants (auch in Hülle und Fülle). Oder natürlich, Sie haben einen Spezialisten im Haus.
Oben wurden schon zwei solche Funktionen genannt:

  • Über IDOC_INBOUND_ASYNCHRONOUS kann ein IDoc von außen ins SAP eingeliefert werden, zum Beispiel ein neuer Auftrag.
  • Über IDOC_OUTBOUND_ASYNCHRONOUS wirft SAP ein IDoc aus, das zum Beispiel von einer EDI-Software konvertiert und versendet werden soll.

Es gibt noch andere, wichtige RFCs. Zum Beispiel den RFC_READ_TABLE, um sich schnell mal ein paar Daten aus einem SAP-System zu besorgen. Der kann eine ganze Menge, man kann über ihn auch herausbekommen, welche IDoc-Typen es in einem SAP-System überhaupt gibt oder welche Erweiterungen zu diesen bekannt sind. Auch Beschreibungen dazu lassen sich erfragen.

Aber RFCs existieren nicht nur im SAP-System selbst. Auch eine angeschlossene Fremdsoftware (wie z.B. ein EDI- oder EAI-System) kann RFCs bereitstellen, die wiederum das SAP-System ansprechen. So kann also diese Form der Kommunikation in beide Richtungen erfolgen.

ALE

ALE ist sozusagen eine Zwischenschicht zwischen reinen RFCs und der Außenwelt. Fremdsoftware oder andere SAP-Installationen, die IDocs mit einem SAP-System austauschen wollen, greifen auf ALE zurück. Dieses verbirgt einige Feinheiten der eigentlichen RFC-Aufrufe, die es letztlich durchführt. Und eine solche Fremdsoftware wird in vielen Fällen eben ein EDI- oder EAI-System sein.
SAP selbst spricht auch von Translatoren, die sich auf der einen Seite via ALE mit dem SAP-System unterhalten und auf der anderen Seite mit irgendeiner anderen Software kommunizieren. An einen solchen Translator werden gewisse Anforderungen gestellt (siehe auch hier). Er muss:

  • automatisch Strukturbeschreibungen von IDocS in seine eigenen Strukturdefinitionen übernehmen können.
  • ein IDoc vom SAP-System übernehmen und die Informationen entsprechend seiner Strukturdefinitionen interpretieren können.
  • ausreichend mächtige Mapping-Funktionalitäten bieten (also die Konvertierung zwischen Datenformaten beherrschen).
  • erzeugte IDocs an das SAP-System übergeben können.

Alles in allem wird also neben einer vernünftigen Kommunikation mit dem SAP-System noch die einfachste Grundfunktionalität einer EDI- bzw. EAI-Software gefordert.
Wenn Sie auf der Suche nach einer solchen Software sind und ein SAP-System einsetzen (oder dies auf Sie zukommen könnte), achten Sie darauf, dass die Software in der Lage ist, SAP ALE und RFC zu „sprechen“ und oben genannte Punkte erfüllt.

Für Software, die diese beiden Schnittstellen nutzen wollen, bietet SAP bereits Bibliotheken von Routinen an, die Programmierer nutzen können. Diesen sogenannten Connector gibt es für verschiedene Programmiersprachen, z.B. Java oder .NET. Diese wiederum nutzt dann der Hersteller der EDI/EAI-Software.

Eine recht ausführliche (und ziemlich technische) Darstellung von ALE finden Sie bei SAP selbst, inklusive Hinweisen zur Programmierung auf SAP-Seite.