SAP Business Workflow - Abap-Klassen
In der SAP ABAP Workbench ist Class Builder ein Tool in ABAP, mit dem Sie globale ABAP-Klassen und -Schnittstellen definieren, ändern und testen können. Class Builder verfügt über zwei Modi:
- Formularbasierter Modus
- Quellcode-basierter Modus
Mit der IF_WORKFLOW-Schnittstelle können Sie ABAP-Klassen in SAP WebFlow Engine verwenden. Im SAP-System wird eine WebFlow Engine (SAP Business Workflow) verwendet, um die Geschäftsprozesse zu definieren und abzubilden, die nicht zugeordnet sind. Es umfasst die Freigabe- oder Genehmigungsprozesse sowie komplexe Prozesse wie das Erstellen einer Bestellung usw. und verschiedene Aktionen der beteiligten Abteilungen. SAP WebFlow Engine wird hauptsächlich für Prozesse verwendet, die sich in der Natur wiederholen oder Aktionen von einer großen Anzahl von Agenten in einer vordefinierten Reihenfolge beinhalten.
Eine WebFlow Engine kann auch verwendet werden, um Fehler in den vorhandenen Prozessen und Workflows zu behandeln. Mit WebFlow Engine können Sie auch einen Workflow starten, wenn vordefinierte Ereignisse auftreten.
Um ABAP-Klassen in Workflows verwenden zu können, muss die Schnittstelle IF_WORKFLOW in der ABAP-Klasse implementiert werden. Diese Schnittstelle enthält eine Methode, die bestimmte Voraussetzungen erstellt, damit das Objekt in der SAP WebFlow Engine verwendet werden kann.
Die Schnittstelle IF_WORKFLOW enthält die folgenden Methoden:
- BI_PERSISTENT~FIND_BY_LPOR
- BI_PERSISTENT~REFRESH
- BI_OBJECT~EXECUTE_DEFAULT_METHOD
- BI_PERSISTENT~LPOR
- BI_OBJECT~DEFAULT_ATTRIBUTE_VALUE
- BI_OBJECT~RELEASE
Wie füge ich einen IF_WORKFLOW in eine ABAP-Klasse ein?
Um einer Klasse eine IF_WORKFLOW-Schnittstelle hinzuzufügen, müssen Sie den Class Builder T-Code: SE24 öffnen.
Gehen Sie zur Registerkarte Schnittstelle und fügen Sie die Schnittstelle IF_WORKFLOW hinzu. Sobald Sie diese Schnittstelle hinzugefügt haben, werden auch zwei Unterschnittstellen hinzugefügt: BI_OBJECT und BI_PERSISTENT. Wenn Sie zur Registerkarte Methoden wechseln, werden einige Methoden dieser Schnittstellen automatisch an die ABAP-Klasse vererbt.
Damit eine Utility-Klasse die IF_WORKFLOW-Schnittstelle implementieren kann, müssen Sie jede der von der IF_WORKFLOW-Schnittstelle geerbten Methoden öffnen und dann den leeren Quellcode aktivieren → die ABAP-Klasse aktivieren.
Note- Wenn Sie die IF_WORKFLOW-Schnittstelle in einer Klasse implementieren, kann sie in jedem Workflow verwendet werden. Eine ABAP-Klasse wird automatisch freigegeben, um bei der Implementierung dieser Schnittstelle verwendet zu werden. Sie sollten Kompatibilitätsänderungen erst nach der Implementierung der Schnittstelle vornehmen und keine Attribute, Typänderungen oder Methoden entfernen. Im SAP-System wird keine Liste definiert, in der erwähnt wird, dass die Klasse in diesen Workflows verwendet wird.
Beachten Sie auch, dass die IF_WORKFLOW-Schnittstelle nicht in internen Klassen einer Anwendung implementiert werden sollte, da dies bedeuten würde, dass jede Methode der ABAP-Klasse in den Workflows verwendet werden kann.