ABAP-Klassen in Prozessschritten
Innerhalb von Prozessschritten können Methoden und Attribute von ABAP-Klassen gleichbedeutend mit Methoden und Attributen von Objekten des Business Object Repository (BOR) verwendet werden. Diese Methoden können im Kontext des Prozesses aufgerufen werden.
Die Methoden von ABAP-Klassen können innerhalb von Prozessschritten in gleicher Weise eingesetzt werden wie Methoden von Objekten des Business Object Repository. Die Methoden können Dialoge enthalten, sie können synchron oder asynchron sein, im Workflow-Protokoll erscheinen usw.
Generell kann jede Methode verwendet werden, die als öffentliche Methode implementiert ist. Die Methode kann in der Klasse selbst, in einer der Superklassen der Klasse oder über ein Interface implementiert sein.

Methoden, die über ein Interface implementiert sind, z. B. IF_WORKFLOW~FIND_BY_LPOR, dürfen insgesamt nicht länger als 30 Zeichen lang sein. Falls der Methodenname zu lang ist, kann durch die Definition eines Alias eine entsprechend kürzere Bezeichnung für die Methode gewählt werden. Ist die Methode in der Klasse oder einer Superklasse implementiert, kann der Name der Methode nicht länger als 30 Zeichen sein, so dass diese Beschränkung in diesem Fall nicht zum Tragen kommt.
Es besteht die Möglichkeit, Parameter der Methoden mit Werten aus dem Workflow-Container zu versorgen. Umgekehrt können Exportparameter Werte des Workflow Containers befüllen. Folgende Übersicht zeigt die Verwendbarkeit der einzelnen Typen als Parameter:
· einfache Typen (String, Integer usw.)
· Typen aus dem Data Dictionary (Strukturen, Tabellen, komplexe Typen)
· Referenzen auf Objekte des Business Object Repository
· Referenzen auf ABAP-Klassen (die das Interface IF_WORKFLOW unterstützen)
Methodenparameter, die ein persistentes Objekt (IF_WORKFLOW oder BOR-Objekt) repräsentieren, können auf folgende Arten übergeben werden:
· ABAP-Klassen (mit Interface IF_WORKFLOW)
¡ TYPE SIBFLPORB
Objekt wird mit Hilfe der persistenten Darstellung übergeben
¡ TYPE REF TO <Klassenname>
Objekt wird als Objektreferenz übergeben
· BOR-Objekte
¡ TYPE SIBFLPORB
Objekt wird mit Hilfe der persistenten Darstellung übergeben
¡ TYPE SWOTOBJID
Objekt wird mit Hilfe der persistenten Darstellung übergeben, diese Darstellung ist nur für BOR-Objekte gültig
¡ TYPE SWC_OBJECT
Objekt wird als Objektreferenz übergeben
Die SAP WebFlow Engine kann Ausnahmen, die durch die Methode ausgelöst werden, behandeln. Hierbei werden Ausnahmen der Anwendung und temporäre Ausnahmen unterschieden. Die Unterscheidung zwischen den beiden Ausnahmekategorien erfolgt aufgrund der Ausnahme in der Klassenhierarchie oder durch Namenskonventionen. Im Fall einer temporären Ausnahme versucht die SAP WebFlow Engine erneut die Methode auszuführen. Im Fall eines dauerhaften Fehlers wird der Status fehlerhaft für den Workflow gesetzt.
Um eine temporäre Ausnahme zu erzeugen, kann z. B. die Klasse CX_BO_TEMPORARY oder eine entsprechende Subklasse verwendet werden. Für Dialog-Methoden kann es hilfreich sein, eine Ausnahme auszulösen, wenn der Benutzer den Dialog abbricht. Hier könnte z.B. die Ausnahme CX_BO_ACTION_CANCELED (Subklasse der Klasse CX_BO_TEMPORARY) ausgelöst werden.
Es können auch nicht klassenbasierte Ausnahmen ausgelöst werden. Die SAP WebFlow Engine kann die beiden Ausnahmenkategorien (temporär oder permanent) anhand des Namens unterscheiden. Beginnt die Ausnahme mit TMP oder TEMP, handelt es sich um eine temporäre Ausnahme, sonst um eine dauerhafte Ausnahme.