Show TOC Anfang des Inhaltsbereichs

Funktionsdokumentation Registerkarte Programmier-Exits  Dokument im Navigationsbaum lokalisieren

Verwendung

Auf dieser Registerkarte können Sie Programmier-Exits angeben. Ein Programmier-Exit ist eine ABAP-Klasse, die das System zu einem bestimmten Zeitpunkt während der Verarbeitung eines Workflows ausführt. Über Programmier-Exits können Sie eigene Erweiterungen und Anpassungen implementieren.

Achtung

In einer ABAP-Klasse, die Sie als Programmier-Exit verwenden, dürfen Sie die folgenden Elemente nicht verwenden:

      COMMIT WORK

      ROLLBACK WORK

      Aufruf des Funktionsbausteins DB_COMMIT

      Jegliche Art von RFC-Aufrufen

      Ändern eines Systemelements im Container

Aus Performance-Gründen sollten Sie nur absolut notwendige Datenbankselektionen ausführen.

Funktionsumfang

Eine ABAP-Klasse, die Sie hier als Programmier-Exit angeben, muss das Interface IF_SWF_IFS_WORKITEM_EXIT implementieren. Das System führt die Klassen in der angegeben Reihenfolge aus.

Aus jeder ABAP-Klasse wird die Methode EVENT_RAISED ausgeführt, sobald das zugehörige Workitem einen im Interface definierten Statuswechsel durchläuft.

Container-Zugriffe

Um in einer ABAP-Klasse mit dem Container zu arbeiten, müssen Sie die Include-Dateien <CNTN02> und <CNTN03> einbinden.

Siehe auch: Makrobefehle zum Bearbeiten eines Containers

Ausnahmebehandlung

Für ABAP-Klassen, die das Interface IF_SWF_IFS_WORKITEM_EXIT implementieren, können Sie in der Methode EVENT_RAISED eine Ausnahme der Klasse CX_SWF_IFS_WORKITEM_EXIT_ERROR auslösen.

Tritt eine Ausnahme auf, erhalten das entsprechende Workitem und der Workflow den Status Fehler. Um den Workflow nach Behebung des Fehlers fortzusetzen, müssen Sie ihn manuell mit der Transaktion SWPR fortsetzen. Dialog-Workitems erhalten den Status Bereit und werden erneut ausgeführt.

Sie können eine T100 Meldung für die Ausnahme definieren (Transaktion SE91). Tritt die Ausnahme auf, schreibt das System die Meldung in das Workflow-Protokoll.

Folgende Tabelle zeigt die Details der Ausnahmbehandlung in Abhängigkeit vom Zeitpunkt des Auftretens der Ausnahme:

Auslösen der Ausnahme

Ausnahmebehandlung

Während der Erzeugung eines Workflows (BEF_CREATE und CREATED)

Der Workflow wird nicht erzeugt.

Ein manuell von einem Benutzer gestarteter Workflow meldet den Fehler direkt an den Benutzer.

Bei einem Workflow, der durch ein Startereignis gestartet wird, ist der Fehler im Ereignisprotokoll ersichtlich.

Während der Ausführung eines Workflows

Das aktuelle Workitem und der Workflow erhalten den Status Fehler. Ist das aktuelle Workitem nicht auf der Datenbank vorhanden, zeichnet das Workflow-Protokoll den Fehler für den vorhergehenden Schritt auf.

Während der Bearbeitung eines Workitems (z. B. Weiterleiten, Annehmen, Zurücklegen, Auf erledigt setzen, Statusänderung)

Die Änderungen werden zurückgesetzt und der entsprechende Funktionsbaustein gibt einen Fehler zurück.

Während einer Statusänderung auf Fehler oder Beendet

Das Workflow-Protokoll zeichnet die Ausnahme auf, sie wird ansonsten jedoch ignoriert.

In einem Programmier-Exit sollten Sie daher keine Ausnahmen beim Übergang des Ereignisses STATE_CHG auslösen. Der Programmier-Exit kann jedoch unter Verwendung des Workitem-Kontexts eine Meldung ins Workflow-Protokoll schreiben.

 

Beispiel

Ein Beispiel für eine ABAP-Klasse, die das Interface IF_SWF_IFS_WORKITEM_EXIT unterstützt, ist die Klasse CL_SWH_WORKITEM_EXIT.

Mit Hilfe der Programmier-Exits ist für SAP-Workflow Abwesenheitsmitteilung bearbeiten (AF_APPROVE, WS30000015) ein Prozessinfosystem realisiert. Dazu wird die Workflow-Eigenschaft sap.bc.bmt.wfm.process.status im Programmier-Exit ausgewertet.

Um das Prozessinfosystem aufzurufen, wählen Sie Werkzeuge Business Workflow Entwicklung Demo Workitem-Exits Prozessinfosystem.

Ende des Inhaltsbereichs