Business Eventing Toolkit für SAP installieren und konfigurieren

In diesem Dokument wird beschrieben, wie Sie das Business Eventing Toolkit für SAP installieren und konfigurieren.

Business Eventing Toolkit für SAP installieren

Wenn Sie die neueste Version der lokalen oder einer beliebigen Cloud-Version des ABAP SDK for Google Cloud installieren, wird das Business Eventing Toolkit for SAP für Sie installiert. Informationen zu den Installationsschritten finden Sie unter Lokale oder Cloud-Version des ABAP SDK for Google Cloud installieren und konfigurieren.

Wenn Sie Version 1.9 oder eine frühere Version der lokalen oder einer beliebigen Cloud-Version des ABAP SDK for Google Cloud verwenden, aktualisieren Sie Ihr SDK auf die neueste Version, um das Business Eventing Toolkit for SAP zu erhalten. Weitere Informationen finden Sie unter ABAP SDK for Google Cloud aktualisieren.

Ziel- Google Cloud APIs aktivieren

Bevor Sie Ziel Google Cloud dienste verwenden, müssen Sie die entsprechendenGoogle Cloud APIs in Ihrem Projekt aktivieren. Wenn Sie beispielsweise Ereignisse in Pub/Sub veröffentlichen möchten, aktivieren Sie die Pub/Sub API.

Informationen zum Aktivieren von APIs Google Cloud finden Sie unter APIs aktivieren.

Authentifizierung einrichten

Nachdem Sie die Authentifizierung für den Zugriff auf Google Cloud APIs in Ihrer lokalen oder einer beliebigen Cloud-Version des ABAP SDK for Google Cloud eingerichtet haben, verwendet das Business Eventing Toolkit for SAP dieselbe Authentifizierungsmethode, um SAP-Ereignisse in Google Cloud APIs zu veröffentlichen. Informationen zum Einrichten der Authentifizierung in der lokalen oder einer beliebigen Cloud-Version des ABAP SDK for Google Cloud finden Sie unter Authentifizierung.

Das in der Clientschlüsselkonfiguration des ABAP SDK for Google Cloud konfigurierte Dienstkonto muss die erforderlichen IAM-Rollen für den ZielGoogle Cloud -Dienst haben.

Notieren Sie sich den Clientschlüssel, den Sie im Rahmen der Einrichtung der Authentifizierung erstellt haben. Sie verwenden diesen Clientschlüssel, wenn Sie das Business Eventing Toolkit für SAP in Ihrem SAP-System konfigurieren.

CloudEvent-Attribute konfigurieren

Sie können Standardwerte für CloudEvent-Attribute beibehalten. Diese Werte werden in der Tabelle /GOOG/CE_DEFAULT gespeichert.

Diese Konfiguration ist optional. Sie können entweder CloudEvent-Attribute übergeben oder die Standardattribute direkt in Ihrem Code überschreiben.

So konfigurieren Sie CloudEvent-Attribute:

  1. Führen Sie in der SAP-GUI den Transaktionscode /GOOG/SDK_IMG aus.

    Alternativ können Sie den Transaktionscode SPRO ausführen und dann auf SAP-Referenz-IMG klicken.

  2. Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Business Eventing: Kontextattribute für Cloud-Ereignisse konfigurieren.

  3. Klicken Sie auf Neue Einträge.

  4. Geben Sie Werte für die folgenden Felder ein:

    Feld Datentyp Beschreibung
    Standardattributschlüssel für Cloud-Ereignisse String Geben Sie einen Namen für die Standardkonfiguration des CloudEvent-Attributs an. Beispiel: CLOUD_EVENT_ATTRIBUTE_KEY.
    Quelle String Geben Sie die URI-Referenz an, die den Kontext angibt, in dem ein Ereignis aufgetreten ist.
    ID String Eindeutige Kennung für das Ereignis. Produzenten müssen dafür sorgen, dass „Quelle + ID“ für jedes Ereignis eindeutig ist.
    Spezifikationsversion String Die Version der CloudEvents-Spezifikation, die für das Ereignis verwendet wird. Wenn Sie dieses Feld leer lassen, verwendet das System 1.0.
    Typ String Beschreibt die Art des aufgetretenen Ereignisses. Wird häufig für Routing, Beobachtbarkeit und Richtliniendurchsetzung verwendet.
    Dateninhaltstyp String Der Inhaltstyp des Datenwerts. Ermöglicht die Übertragung beliebiger Datentypen.
    Datenschema String URI, der das Schema angibt, an das sich die Daten halten.
    Subject String Beschreibt das Thema des Ereignisses im Kontext des Ereigniserstellers.

    Weitere Informationen zu diesen Feldern finden Sie in der CloudEvents-Dokumentation zu Kontextattributen.

  5. Speichern Sie den neuen Eintrag.

Ziel Google Cloud dienste konfigurieren

Mit dieser Einstellung können Sie die Zieldienste für Ihre Ereignisse verwalten. Google Cloud

Diese Einstellung wird verwendet, wenn Ereignisse mit dem Business Eventing Toolkit für SAP von SAP in Google Cloud Dienste veröffentlicht werden.

So konfigurieren Sie Ziel Google Cloud dienste:

  1. Führen Sie in der SAP-GUI den Transaktionscode /GOOG/SDK_IMG aus.

    Alternativ können Sie den Transaktionscode SPRO ausführen und dann auf SAP-Referenz-IMG klicken.

  2. Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Business Eventing: Google Cloud-Ziele für ein Ereignis konfigurieren.

  3. Klicken Sie auf Neue Einträge.

  4. Geben Sie Werte für die folgenden Felder ein:

    Feld Datentyp Beschreibung
    Ereignisschlüssel String Geben Sie einen Namen für die Ereigniskonfiguration des Publishers an. Beispiel: EVENT_KEY.
    Ereignis-Prozessorklasse String

    Geben Sie die Prozessorklasse für das Ereignis an. Wählen Sie je nach Zieldienst eine der folgenden Optionen aus: Google Cloud

    • /GOOG/CL_PUBLISHER_PUBSUB: Zum Veröffentlichen von Ereignissen in Pub/Sub.
    • /GOOG/CL_PUBLISHER_CLOUDFUNC: Zum Veröffentlichen von Ereignissen in Cloud Run-Funktionen.
    • /GOOG/CL_PUBLISHER_FCM: Zum Veröffentlichen von Ereignissen in Firebase Cloud Messaging (FCM).
    • /GOOG/CL_PUBLISHER_CONNECTORS: Zum Veröffentlichen von Ereignissen in der Integration Connectors API.
    Google Cloud-Schlüsselname String Der Clientschlüssel, den Sie während der Einrichtung der Authentifizierung für die Authentifizierung bei Google Cloud konfiguriert haben. Google Cloud
    Ereignisparameter 1 String Geben Sie alle zusätzlichen Attribute an, die für den gewünschten Zieldienst erforderlich sind. Google Cloud
    Ereignisparameter 2 String Geben Sie alle zusätzlichen Attribute an, die für den gewünschten Zieldienst erforderlich sind. Google Cloud
    Ereignisparameter 3 String Geben Sie alle zusätzlichen Attribute an, die für den gewünschten Zieldienst erforderlich sind. Google Cloud
    Standardattributschlüssel für Cloud-Ereignisse String Wenn Sie das Ereignis als Cloud-Ereignis senden möchten, geben Sie den Wert des entsprechenden Standardattributschlüssels an, den Sie im Abschnitt Cloud-Ereignisattribute konfigurieren konfiguriert haben.
    Cloud-Ereignis: Codierung String

    Wählen Sie einen geeigneten Modus für die Codierung Ihrer CloudEvents aus:

    • Strukturiert: CloudEvent-Attribute werden im Anfragetext übergeben.
    • Binär: CloudEvent-Attribute werden in den Anfrageheader übergeben.

    Wenn Sie Rohereignisdaten direkt an Google Cloud Dienste senden und dabei die CloudEvents-Spezifikation umgehen möchten, lassen Sie dieses Feld leer.

  5. Speichern Sie den neuen Eintrag.

Publisher-Modul erweitern

Wenn Sie das Publisher-Modul um andere Google Cloud Dienste oder benutzerdefinierte Ziele erweitern möchten, können Sie eigene Implementierungen erstellen.

So erstellen Sie eine benutzerdefinierte Implementierung:

  1. Erstellen Sie in der SAP-Transaktion SE24 eine neue Klasse, die von /GOOG/CL_PUBLISHER_BASE erbt.
  2. Implementieren Sie die Methoden PUBLISH_EVENT und VALIDATE_PARAMS.

    • PUBLISH_EVENT: Enthält Ihre benutzerdefinierte Logik zum Senden von Ereignisdaten an das Ziel. Die Eingabeparameter werden zugeordnet, die Daten übertragen und die Ausgabestruktur mit der Antwort des Ziels gefüllt.
    • VALIDATE_PARAMS: Hiermit können Sie prüfen, ob alle erforderlichen Parameter in Tabelle /GOOG/CE_ROUTER konfiguriert sind. Wenn erforderliche Werte fehlen, werfen Sie eine Ausnahme vom Typ /GOOG/CX_SDK.

Wenn der ABAP-Code ausgeführt wird, liest die Publisher-Klasse die Konfigurationen aus dieser Tabelle, um den Ereignisveröffentlichungsprozess zu steuern.

Listener für Geschäftsereignisse konfigurieren

Wenn Sie die Ereignisse erfassen möchten, die durch Änderungen an Geschäftsobjekten ausgelöst werden, müssen Sie für jedes Geschäftsobjekt einen Listener für Geschäftsereignisse konfigurieren.

So konfigurieren Sie einen Ereignis-Listener für Unternehmen:

  1. Führen Sie in der SAP-GUI den Transaktionscode SWETYPV aus.

  2. Klicken Sie auf Neue Einträge.

  3. Geben Sie eine geeignete Kategorie und einen geeigneten Typ für das Geschäftsobjekt an.

  4. Geben Sie mit dem Business Eventing Toolkit für SAP ein Ereignis an, für das Sie das Ereignis überwachen und weiterleiten möchten.

  5. Geben Sie im Feld Empfängertyp entweder Google_Cloud oder Google ein.

  6. Geben Sie im Abschnitt Verknüpfungseinstellung (Empfänger) Folgendes an:

    • Empfängeranruf: Wählen Sie in der Drop-down-Liste Methode aus.
    • Kursname: Geben Sie /GOOG/CL_BO_EVENT_FORWARD ein.
  7. Klicken Sie das Kästchen Verknüpfung aktiviert an.

  8. Speichern Sie die Konfiguration.

Event-Listener einem Ereignisschlüssel zuordnen

So ordnen Sie einem Ereignis-Listener einen Ereignisschlüssel zu:

  1. Führen Sie in der SAP-GUI den Transaktionscode /GOOG/SDK_IMG aus.

    Alternativ können Sie den Transaktionscode SPRO ausführen und dann auf SAP-Referenz-IMG klicken.

  2. Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Business Eventing: Ereignis-Listener für Geschäftsobjekte konfigurieren.

  3. Klicken Sie auf Neue Einträge.

  4. Geben Sie Werte für die folgenden Felder ein:

    Feld Datentyp Beschreibung
    Objekttyp CHAR Der Name des Geschäftsobjekts, das Sie in der Transaktion SWETYPV konfiguriert haben.
    Ereignis CHAR Der Name des Ereignisses, das mit dem Geschäftsobjekt verknüpft ist.
    Name des Empfängers CHAR Der Name des Empfängers, der in Transaktion SWETYPV für die Kombination aus Objekttyp und Ereignis konfiguriert wurde.
    Ereignisschlüssel CHAR Der Name der Publisher-Ereigniskonfiguration, die im Bereich Zieldienste konfigurieren verwaltet wird. Google Cloud
    Prozessorklasse CHAR

    Optional. Der Name der Prozessorklasse, in der Sie zusätzliche Logik zum Ausfüllen des Ereignis-Eintrags oder zum Erweitern der Erweiterungsattribute geschrieben haben. Mit dieser Klasse muss die Schnittstelle /GOOG/IF_BOR_EVNT_DATA_HANDLER implementiert werden.

    Informationen zum Erstellen einer Prozessorklasse finden Sie unter Prozessorklasse erweitern.

  5. Speichern Sie die Konfiguration.

Standardattribute für Body und Cloud-Ereigniserweiterung

Standardmäßig leitet der Ereignis-Listener die folgenden Attribute, die Teil des Ereigniscontainers sind, an das Ziel weiter, das anhand des Ereignisschlüssels ermittelt wird:

{
  "EVENT_OBJECT": "BUS2012",
  "EVENT_OBJECT_KEY": "450000011",
  "EVENT_NAME": "CHANGED",
  "EVENT_CREATOR": "USER-ID",
  "EVENT_CREATION_DATE": "20250321",
  "EVENT_CREATION_TIME": "135050",
  "EVENT_CREATION_TIMESTAMP": "20250321135050",
  "EVENT_CREATION_LANGUAGE": "EN"
}

Wenn die Cloud-Ereignisattribute konfiguriert sind, hat die Nutzlast folgende Struktur:

{
  "eventObjectType": "BUS2012", - Picked from Event Container
  "eventObjectKey": "450000011", - Picked from Event Container
  "eventName": "RELEASED", - Picked from Event Container
  "eventCreator": "USER", - Picked from Event Container
  "eventCreationDate": "20250321", -Picked from Event Container
  "eventCreationTime": "135850", - Picked from Event Container
  "eventCreationTimestamp": "20250321135850", - Picked from Event Container
  "id": "D5D1CB352A321FD081FFF6EEA9566190", - Auto Populated
  "source": "sap-s4hana-doc",  - Picked from CE Defaults
  "type": "pochanged", - Picked from CE Defaults
  "specversion": "1.0", - Picked from CE Defaults
  "time": "2025-04-09T16:16:38Z", - Auto Populated
  "subject": "test-subject-A" - Picked from CE Defaults Table
}

Wenn Sie in Ihrem Ereignis-Listener eine Prozessorklasse erstellen und konfigurieren, entspricht die resultierende Nutzlast Ihrer benutzerdefinierten Nutzlaststruktur.

Prozessorklasse erweitern

Mit dem Business Eventing Toolkit können Sie die Daten festlegen und Cloud-Ereignissen zusätzliche Erweiterungsattribute hinzufügen. Implementieren Sie dazu eine Klasse, die die Schnittstelle /GOOG/IF_BOR_EVNT_DATA_HANDLER erbt und die Schnittstellenmethode FILL_EVENT_DATA implementiert. Diese Methode hat die folgenden Import- und Änderungsparameter:

Name Typ Verknüpfter Typ Beschreibung
SENDER Wird importiert SIBFLPORB Lokale persistente Objektreferenz: BOR-kompatibel
EVENT Wird importiert SIBFEVENT Ereignis
EVENT_CONTAINER Wird importiert Typ „Ref To“ für IF_SWF_IFS_PARAMETER_CONTAINER Container für die Übertragung von Parametern
RECTYPE Wird importiert SWFERECTYP Name des Empfängertyps
HANDLER Wird importiert SIBFLPORB Lokale persistente Objektreferenz: BOR-kompatibel
CT_DATA Wird geändert /GOOG/CL_PUBLISHER_BASE=>TT_MESSAGES Tabelle der Nachrichten
CT_CE_EXTN_ATTRIBUTES Wird geändert /GOOG/T_CE_ATTR_VALUE Cloud-Ereignis: Tabelle mit Attributnamen und Wertpaaren

Beispielimplementierung für das Geschäftsobjekt BUS2012 (Auftrag), um Informationen zum Auftragskopf als Cloud-Ereigniskörper einzufügen:

 TYPES: BEGIN OF ty_event_attributes,
             ekgrp TYPE ekgrp,
             werks TYPE werks_d,
             stlnr TYPE stnum,
             stlal TYPE mast-stlal,
             stlty TYPE stko-stlty,
           END OF ty_event_attributes.
    DATA: ls_po_header TYPE bapimepoheader.

    DATA: ls_event_attributes TYPE ty_event_attributes,
          lv_json             TYPE string.

    DATA ls_data TYPE /goog/cl_publisher_base=>ty_message.

    CALL FUNCTION 'BAPI_PO_GETDETAIL1'
      EXPORTING
        purchaseorder = '4500000007'
      IMPORTING
        poheader      = ls_po_header.

    /ui2/cl_json=>serialize(
      EXPORTING
        data   = ls_po_header
      RECEIVING
        r_json = lv_json
    ).

    ls_data-data = lv_json.
    APPEND ls_data TO ct_data.

Listener für RAP-Ereignisse konfigurieren

Für jedes RAP-Ereignis, das an Google Cloudgesendet werden soll, müssen Sie eine Ereignis-Handler-Klasse erstellen. Diese Event-Handler-Klasse fungiert als Event-Listener für dieses RAP-Ereignis.

Wenn Sie eine Ereignishandler-Klasse programmatisch erstellen möchten, können Sie die Community-Ressource auf GitHub verwenden. Sie müssen die RAP-Entitätsdetails angeben und die Ereignishandler-Klassen generieren. Informationen zu Ereignisobjekten finden Sie in der SAP-Dokumentation SAP Business Accelerator Hub.

So erstellen Sie manuell eine Event-Handler-Klasse:

  1. Erstellen Sie eine ABAP-Klasse für RAP-Ereignisse:

    1. Klicken Sie mit der rechten Maustaste auf Ihr ABAP-Paket und wählen Sie Neu > ABAP-Klasse aus.
    2. Geben Sie die folgenden Details für Ihre ABAP-Klasse ein:

      • Name: Geben Sie einen Namen für den Kurs ein, z. B. ZCL_PRODUCT_EXT.
      • Beschreibung: Eine Beschreibung für Ihren Kurs, z. B. Event handler for RAP events.
    3. Klicken Sie auf Beenden.

  2. Aktualisieren Sie die Klassendefinition so:

      class CLASS_NAME definition
      public
      abstract
      final
      for events of RAP_ENTITY_NAME .
    
        public section.
        protected section.
        private section.
        ENDCLASS.
    
    CLASS CLASS_NAME IMPLEMENTATION.
    ENDCLASS.
    

    Ersetzen Sie Folgendes:

    • CLASS_NAME: Name der Klasse, z. B. ZCL_PRODUCT_EXT.
    • RAP_ENTITY_NAME: Name der RAP-Entität, z. B. R_PRODUCT.
  3. Öffnen Sie den Tab Lokale Typen und erstellen Sie eine lokale Implementierung:

    CLASS lcl_event_extension DEFINITION INHERITING FROM cl_abap_behavior_event_handler.
    
    PRIVATE SECTION.
      METHODS on_EVENT_NAME FOR ENTITY EVENT
         created FOR RAP_ENTITY_NAME~EVENT_NAME.
    ENDCLASS.
    
    CLASS lcl_event_extension IMPLEMENTATION.
    
      METHOD on_EVENT_NAME.
        TRY.
            /goog/cl_event_publisher=>publish_event(
              EXPORTING
                iv_event_key = 'EVENT_KEY'
                it_data      = VALUE #( FOR <ls_created> IN created (
                                        data = /goog/cl_json=>serialize( data = <ls_created> ) ) )
              IMPORTING
                et_output    = DATA(lt_output)
            ).
          CATCH /goog/cx_sdk INTO DATA(lo_exp).
    "Error handling logic here
        ENDTRY.
      ENDMETHOD.
    ENDCLASS.
    

Ersetzen Sie Folgendes:

  • EVENT_NAME: Name des Ereignisses, z. B. CREATED.
  • RAP_ENTITY_NAME: Name der RAP-Entität, z. B. ZCL_PRODUCT_EXT.
  • EVENT_KEY: Ereignisschlüssel mit der Zielkonfiguration.

Support anfordern

Wenn Sie Hilfe bei der Behebung von Problemen mit dem ABAP SDK für Google Cloud benötigen, gehen Sie so vor: