BAPI-ALE-Schnittstelle pflegen 
Um den asynchronen BAPI-Aufruf in ALE-Geschäftsprozessen zu ermöglichen, muss für das BAPI die BAPI-ALE-Schnittstelle generiert werden.
Dabei werden zu einem BAPI folgende Objekte generiert:
Ein Nachrichtentyp
Ein IDoc-Typ einschließlich der Segmente
Ein Funktionsbaustein, der auf der Ausgangsseite aufgerufen wird (Er baut aus den BAPI-Daten das IDoc auf und versendet es.)
Ein Funktionsbaustein, der auf der Eingangsseite mit den IDoc-Daten das BAPI aufruft
Der Unterschied zu manuell gepflegten Nachrichtentypen besteht darin, dass der Funktionsbaustein zur Auswertung der Änderungszeiger kein IDoc aufbaut, sondern die entsprechenden BAPI-Strukturen füllt, die Empfängerermittlung durchführt und den generierten ALE-Funktionsbaustein aufruft.
Die generierten Nachrichtentypen, IDoc-Typen und Funktionsbausteine können auch für die Stammdatenverteilung über das SMD-Tool verwendet werden.
Folgende beiden Vorraussetzungen müssen erfüllt sein:
Als Grundvoraussetzung gilt das Vorhandensein eines BAPIs. Dabei sind folgende Alternativen denkbar:
Es ist ein neues BAPI entwickelt worden. Bei Entwicklungen von Kunden ist der zugehörige Kundennamensraum verwendet worden.
Ein Kunde möchte zu einem BAPI der Standardauslieferung eine BAPI-ALE-Schnittstelle generieren oder eine von SAP generierte BAPI-ALE-Schnittstelle nach der Modifikation des zugehörigen BAPIs ändern. Dazu hat er wie folgt vorzugehen:
Der zum originalen BAPI gehörende Funktionsbaustein wird kopiert und modifiziert.
Im BOR wird ein Sub-Objekttyp zu dem zum BAPI gehörigen Business-Objekttyp im Kundennamensraum angelegt (Transaktion SWO1). Beim Anlegen eines Sub-Objektyps werden die Methoden des Business-Objekts an den Subtyp vererbt.
Der Status des Objekttyps ist auf zu setzen.
Anschließend können alle Methoden des Subtyps geändert, gelöscht oder durch eigene Methoden ergänzt werden. Die BAPI-ALE-Schnittstelle wird dann für den Subtyp und eine ihm zugeordnete Methode im Kundennamensraum erzeugt.
Unabhängig davon, ob zu einem BAPI von SAP eine BAPI-ALE-Schnittstelle mit einem neuen Release ausgeliefert wurde oder nicht, funktioniert eine vom Kunden daraus generierte Schnittstelle weiter wie im alten Release-Stand. Der Kunde kann die alte Schnittstelle nachgenerieren, um eventuell neu eingefügte Parameter anzupassen, sofern SAP zum neuen Release keine Schnittstelle ausgeliefert hat.
Wenn SAP eine BAPI-ALE-Schnittstelle zu einem BAPI ausliefert, für das der Kunde bereits eine Schnittstelle generiert hat, dann sollte er diese neue Schnittstelle verwenden und die selbst generierte löschen. Die alte Schnittstelle kann zwar noch verwendet werden, allerdings nur im alten Release-Stand. Ein Nachgenerieren der alten Schnittstelle kann dazu führen, dass manche generierten Objekte, wie z.B. Segmente von SAP-Objekten, überschrieben werden, wenn die Schnittstelle in kundeneigenen BAPI-Funktionsbaustein die BAPI-Strukturen referenziert, die aber SAP gehören.
Wenn hierarchische Abhängigkeiten zwischen den BAPI-Tabellenparametern berücksichtigt werden sollen, müssen diese vor der Generierung der BAPI-ALE-Schnittstelle des BAPIs festgelegt werden (siehe Hierarchien zwischen BAPI-Parametern definieren). Die festgelegte Hierarchie wird während der Generierung ausgewertet und in den Code der Schnittstelle eingebunden. Folglich macht jede nachträgliche Änderung der Hierarchie eine Nachgenerierung der BAPI-ALE-Schnittstelle erforderlich. Nach der Freigabe des generierten IDoc-Typs kann die festgelegte Hierarchie des asynchron aufrufbaren BAPIs aus Kompatibilitätsgründen nicht mehr verändert werden.
Es sollten auch die Hinweise auf verwandte ALE-Themen beachtet werden. Dort sind Informationen zur Datenfilterung, Serialisierung von Nachrichten und zu weiteren Themen aufgeführt.
Wählen Sie in der ALE-Entwicklung den Pfad .
Beachten Sie, dass in Kundensystemen alle Objektnamen mit Y oder Z oder einem eigenen Präfix beginnen müssen.
Verfahren Sie dann wie folgt:
Geben Sie im Einstiegsbild das Ihrer Schnittstelle zugrundeliegende Business-Objekt (Objekttyp) und die Methode ein
Wählen Sie im Menü Schnittstelle eine der Optionen, um eine Schnittstelle zu pflegen, anzuzeigen, zu prüfen oder zu löschen:
Schnittstelle anlegen
Voraussetzung: Für dieses BAPI wurde noch keine Schnittstelle generiert, oder eine bereits erzeugte Schnittstelle wurde über die Option Löschen gelöscht. Die Namen für die zu generierenden Objekte werden vorgeschlagen. Sie können diese ändern. Der Ablauf beim Anlegen der Schnittstelle stellt sich wie folgt dar:
Geben Sie im ersten Dialogfenster einen Namen für den Nachrichtentyp an. Die vorgeschlagenen Namen werden nach folgender Konvention vergeben:
Nachrichtentyp:
Betriebswirtschaftlicher Begriff
Beispiel: MYTEST
Bestätigen Sie Ihre Eingabe.
Im nachfolgenden Dialogfenster können Sie folgende Angaben vornehmen:
IDoc-Typ Beispiel |
<Nachrichtentyp>01 MYTEST01 |
Funktionsbaustein im Ausgang: Beispiel |
ALE_<OBJECT>_<METHOD> ALE_EXAMPLE_TEST |
Funktionsbaustein im Eingang Beispiel |
IDOC_INPUT_<Nachrichtentyp> IDOC_INPUT_MYTEST |
Die vorgeschlagene Entwicklungsklasse und die Funktionsgruppe sind diejenigen, zu denen der BAPI-Funktionsbaustein gehört. Sie sollten bei Ihrer eigenen Schnittstellengenerierung eigene Entwicklungsklassen und Funktionsgruppen verwenden. Folgende Optionen stehen Ihnen zusätzlich zur Verfügung:
Datenfilterung erlaubt
Wenn Sie eine Datenfilterung für das BAPI durchführen möchten, dann müssen Sie im Dialogfenster beim Anlegen oder Ändern die Option Datenfilterung erlaubt wählen. Bei BAPI-ALE-Schnittstellen, die von SAP generiert werden, ist diese Option in der Regel gewählt. Beachten Sie dazu auch die Hinweise.
Aufruf in Update Task
Wenn die Datenbankänderungen durch Methoden über die Verbuchung durchgeführt werden, dann muss dieses Kennzeichen gewählt werden.
Paketverarbeitung erlaubt
Wenn Sie eine Paketverarbeitung von IDocs zulassen möchten, müssen Sie diese Option wählen. Das zugehörige BAPI muss paketverarbeitungsfähig sein. Die Paketgröße stellen Sie im ALE-Customizing ein.
Sie können nur den Nachrichtentyp (Muss-Feld) und den IDoc-Typ (Muss-Feld), oder nur einen der Funktionsbausteine (Kann-Felder) generieren, indem Sie das Feld, für das kein Objekt generiert werden soll, leer übergeben.
Bestätigen Sie Ihre Eingaben.
Es erscheint das Dialogfenster Segmentname eingeben.
Geben Sie einen Segmentnamen ein.
Der vorgeschlagene Segmenttyp ist abgeleitet aus Nachrichtentyp bzw. BAPI-Strukturen:
E1<Nachrichtentyp > |
für einzelne Felder als Kopfsegment Beispiel: E1MYTEST, bzw. |
E1BP_XX... |
für Parameter der Struktur BAPI_XX... Beispiel: E1BP_HUGO für BAPI_HUGO |
Sollte ein Segment mehr als 1000-Bytes Daten enthalten, werden automatisch Kindersegmente darunter generiert. Die Namen der Kindersegmente werden mit Ziffer 1, 2,... nach dem ursprünglichen Segment erweitert vergeben, sofern die Länge der Namen weniger als 27-stellig ist.
Schnittstelle ändern
Voraussetzung: Zu diesem BAPI wurden bereits Objekte angelegt.
Wählen sie Ändern, um nach einer Änderung des BAPIs die Objekte einer bereits existierenden ALE-Schnittstelle erneut zu generieren. Der IDoc-Typ und die IDoc-Segmente werden neu generiert, wenn sich die Schnittstellenstrukturen der Objekt-Methode geändert haben. Die Funktionsbausteine werden nur dann neu generiert, wenn sich der IDoc-Typ oder eines der Segmente geändert haben. Ähnlich wie beim Anlegen erscheint beim Ändern ein Dialogfenster. In diesem Dialogfenster werden die Objekte angezeigt, die bereits im System vorhanden sind. Sie sind nicht eingabebereit. Falls ein Feld leer ist, können Sie das entsprechende Objekt generieren.
Schnittstelle anzeigen
Voraussetzung: Zu diesem BAPI sind bereits Objekte vorhanden. Es werden alle existierenden Objekte zu diesem BAPI angezeigt. Damit erhalten Sie einen Überblick über den Zusammenhang zwischen BAPI-Methode und IDoc-Nachrichtentyp.
Schnittstelle löschen
Voraussetzung: Zu diesem BAPI wurden bereits Objekte angelegt. Die Funktionsbausteine werden in jedem Fall gelöscht, sofern sie im System vorhanden sind. Die IDoc-Struktur wird gelöscht, wenn sie noch nicht freigegeben ist. Die IDoc-Segmente werden nur dann gelöscht, wenn sie nicht freigegeben sind und nicht in anderen IDocs verwendet werden. Zum Schluss wird der Nachrichtentyp gelöscht, wenn er keine Zuordnung mehr zum Idoc-Typ hat.
Schnittstelle prüfen
Voraussetzung: Zu diesem BAPI wurden bereits Objekte angelegt. Es werden alle Objekte bezüglich dieses BAPIs darauf geprüft, ob sie bereits im System vorhanden sind. Es wird auch geprüft, ob Objekte (IDoc-Typ und Segmente) bereits freigegeben sind. Der Status der Freigabe für Objekte kann geändert werden (siehe Freigabe setzen und Freigabe aufheben unter Hinweise).
Sie können die Schnittstelle freigeben. Entwickler können den Status der Freigabe von IDoctyp und Segmenten ändern (über ).
Dafür sind die Berechtigungen S_IDCDFT_AL+ und S_IDCDFT_ALL des Berechtigungsobjekts S_IDOCDEFT erforderlich.
Die Voraussetzung für die Freigabe ist, dass das zugehörige BAPI bereits freigegeben ist. Bei der Freigabe wird zunächst geprüft, ob die generierte Schnittstelle unter der BAPI-Methode den aktuellen Status hat. Wenn nicht, wird abgefragt, ob die Schnittstelle neu generiert werden soll. Es wird ermittelt, welche Segmente und welcher IDoc-Typ für die Freigabe relevant sind. Für noch nicht freigegebene Objekte wird dann der neue Status eingesetzt. Die Freigabe kann jederzeit zurückgenommen werden. Diese Aktion ist an das Transportwesen angeschlossen. Die generierten Funktionsbausteine werden nicht freigegeben.
Auf dem Ausgabebildschirm werden die bearbeiteten Objekte mit ihrem Status angezeigt. Alle Änderungen werden in Transportaufträgen erfasst.