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.

Verwendung

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.

Voraussetzungen

Folgende Voraussetzungen müssen erfüllt sein:

Beispiel:

Sender
Empfänger
BUSOBJECT.METHOD

Empfängerermittlung
Filtergruppe
FILTER
1010

Aufbau eines Business Add-Ins in einer Form-Routine

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:
  2. EXPORTING
    object = busobject
    method = method

    TABLES
    receiver_input = receivers
    filterobjects = t_filter_object_type

    EXCEPTIONS
    error_in_ale_customizing

  3. Den von SAP ausgelieferten Filterobjekttypen in der Struktur t_filter_object_type die aktuellen Werte der Anwendung in Parametern parameters zuweisen.
  4. Das definierte Business Add-In aufrufen, um die von Kunden definierten Filterobjekttypen in der Ablauflogik der Anwendung auszuwerten:
  5. EXPORTING
    object = busobject
    method = method
    parameters = ...
    filterobjtype = t_filter_object_type

    CHANGING
    filterobjvalue = t_filter_object_value

  6. 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)

Vorgehensweise

Implementieren Sie die Objekt-Methode für das Business Add-In unter Verwendung Ihres selbst definierten Filterobjekttyps.

Ergebnis

Die Empfänger für den asynchronen BAPI-Aufruf wurden anhand der vorgegebenen Filterobjekte ermittelt.