Eigene Filterobjekte über
Business Add-Ins ermitteln
Sie erfahren, wie Business Add-Ins von SAP definiert sind und wie Sie ein Business Add-In implementieren, um Ihre selbst definierten Filterobjekte bei der Empfängerermittlung abzufragen.
Diese Beschreibung gilt nur für die Empfängerermittlung mit Business Add-Ins.
Sie ist nur für solche BAPIs relevant, für die ALE-Schnittstellen vorhanden sind und für die Business Add-Ins implementiert werden sollen.
Als Standard liefert die SAP-Anwendung für die Empfängerermittlung eine Reihe von Filterobjekttypen, die mit den von Ihnen zugeordneten Werten zur Laufzeit ausgewertet werden (z.B. Filterobjekt Werk 0001, 0002). Die voreingestellten Werte können Sie ergänzen.
Wenn Sie jedoch für die Abbildung Ihrer eigenen Geschäftsprozesse andere Filterobjekttypen verwenden möchten, um den asynchronen BAPI-Aufruf unter erweiterten Bedingungen durchzuführen, benötigen Sie dafür von SAP definierte Business Add-Ins, die Sie implementieren und aktivieren müssen. Business Add-Ins sind von SAP-Programmierern definierte Stellen im Quellcode, an denen Sie Ihren Code einfügen können, ohne das Originalobjekt zu modifizieren.
Welche Ihrer SAP-Anwendungen Business Add-Ins enthalten, erfahren Sie in Ihrer Anwendungsdokumentation.
Folgende Voraussetzungen müssen erfüllt sein:
· Ihre SAP-Anwendungen enthalten Business Add-Ins, die von SAP definiert wurden (über Werkzeuge → ABAP Workbench → Hilfsmittel → Business Add-Ins ® Definition, siehe auch das Beispiel Aufbau eines Business Add-Ins in einer Form-Routine unten).
· Sie haben im ALE-Entwicklungsumfeld einen Filterobjekttyp für die Empfängerermittlung definiert, z.B. FILTER, und dem entsprechenden BAPI zugeordnet (über das SAP-Menü: Werkzeuge → IDoc-Schnittstelle / ALE ® Entwicklung → Empfängerermittlung).
· Sie haben das Business Add-In implementiert und aktiviert (über das SAP-Menü: Werkzeuge → ABAP Workbench → Hilfsmittel → Business Add-Ins ® Implementierung).
· Sie haben im Verteilungsmodell ein Filterobjekt mit bestimmten Bedingungen unter der Sender-Empfänger-Beziehung gepflegt (über den Einführungsleitfaden (IMG): SAP Web Application Server → IDoc-Schnittstelle / ALE).
Beispiel:
Sender
Empfänger
BUSOBJECT.METHOD
Empfängerermittlung
Filtergruppe
FILTER
1010
Die Empfängerermittlung für ein BAPI (BUSOBJECT.METHOD) kann in SAP-Anwendungen durch SAP-Entwickler beispielsweise mit einer Form-Routine (z.B. BUSOBJECT_METHOD_RECEIVERS) nach folgendem Ablauf aufgebaut werden:
Schnittstelle:
TABLES receivers STRUCTURE bdi_logsys
USING
object TYPE swo_objtyp
method TYPE swo_method
parameters LIKE ...
return_info LIKE
syst.
In diesem Beispiel enthalten die Parameter parameters alle für die Empfängerermittlung notwendigen Filterobjektwerte der Anwendung. Sie sind anwendungsabhängig.
Der Parameter receivers enthält als vorgegebenen Wert die gewünschten Empfänger (oder Initialwert), und als Rückgabewert die ermittelten Empfänger.
Variablen-Definition:
t_filter_object_type TYPE
bdi_flttyp_tab
t_filter_object_value TYPE bdi_fobj_tab
receivers_output LIKE bdi_logsys OCCURS 0 WITH HEADER
LINE
Im Code einer SAP-Anwendung werden folgende Schritte durchgeführt.
Es handelt sich um die gleichen Schritte wie bei der Ermittlung der von SAP
definierten Filterobjekttypen mit dem Zusatzschritt (Schritt 3) für die
Ermittlung Ihrer selbst definierten Filterobjekte.
1) Filterobjekttyp für das BAPI mit dem Funktionsbaustein ALE_BAPI_GET_FILTEROBJECTS abfragen:
EXPORTING
object = busobject
method = method
TABLES
receiver_input = receivers
filterobjects = t_filter_object_type
EXCEPTIONS
error_in_ale_customizing
2) Den von SAP ausgelieferten Filterobjekttypen in der Struktur t_filter_object_type die aktuellen Werte der Anwendung in Parametern parameters zuweisen.
3) Das definierte Business Add-In aufrufen, um die von Kunden definierten Filterobjekttypen in der Ablauflogik der Anwendung auszuwerten:
EXPORTING
object = busobject
method = method
parameters = ...
filterobjtype
= t_filter_object_type
CHANGING
filterobjvalue =
t_filter_object_value
4) Die Empfänger für den asynchronen BAPI-Aufruf mit dem Baustein ALE_ASYNC_BAPI_GET_RECEIVER ermitteln:
EXPORTING
object = busobject
method =
method
TABLES
receiver_input =
receivers
receivers_output =
receivers_output
filterobject_values =
t_filter_object_value
EXCEPTIONS
error_in_filterobjects
error_in_ale_customizing
receivers[] = receivers_output[]
(Den Programmcode dieses Beispiels finden Sie unter Beispielprogramme mit asynchronem BAPI-Aufruf, Empfängerermittlung mit Business Add-In)
Implementieren Sie die Objekt-Methode für das Business Add-In unter Verwendung Ihres selbst definierten Filterobjekttyps.
Die Empfänger für den asynchronen BAPI-Aufruf wurden anhand der vorgegebenen Filterobjekte ermittelt.