Auswertung und Pflege der Instanzkopplungstabelle 

Verwendung

Die Instanzkopplung beschreibt die Zuordnung einer Verbraucherinstanz zu einer bestimmten Kombination von Objekttyp, Objektschlüssel und Ereignis. Diese Kopplung wird in die Instanzkopplungstabelle von der Verbraucherinstanz selbst über einen zur Verfügung gestellten Funktionsbaustein eingetragen.

Die Einträge in die Instanzkopplungstabelle erfolgen immer erst zur Laufzeit des Ereignisverbrauchers.

Wenn Ereignisse im Rahmen des SAP Business Workflow genutzt werden (als auslösende und beendende Ereignisse, bei Warteschritten), werden die erforderlichen Einträge in die Kopplungstabellen vom Workflow-System vorgenommen.

Ein Eintrag in der Instanzkopplungstabelle wird vom Workflow-System dann vorgenommen, wenn Workitems auf ein beendendes Ereignis warten. Dies kann bei folgenden Workitem-Typen der Fall sein:

Integration

Die Instanzkopplung erweitert die Typkopplung dahingehend, daß die Reaktion auf das Ereignis nur dann hergestellt wird, wenn das Ereignis von einem bestimmten Objekt stammt. Dieses Objekt wird über seinen Objektschlüssel in der Instanzkopplungstabelle angegeben.

Darüber hinaus kann in der Instanzkopplungstabelle auch die eindeutige Kennung (Verbraucher-ID) einer Verbraucherinstanz angegeben werden. Diese Verbraucher-ID wird dann vom Ereignismanager in den Ereigniscontainer geschrieben und beim Aufruf des Verbraucherfunktionsbausteins an den Ereignisverbraucher weitergegeben.

Die Instanzkopplungstabelle wird vom Ereignismanager nur dann im Anschluß an die Auswertung der Typkopplungstabelle ausgewertet, wenn die Kopplung in der Typkopplungstabelle nicht als globale Ereigniskopplung markiert ist. Der Ablauf ist dabei wie folgt:

  1. Der Ereignismanager überprüft, ob Objekttyp, Objektschlüssel und Ereignis in der Instanzkopplungstabelle mit den Ereignisparametern des erzeugten Ereignisses übereinstimmen.
  2. Ist das der Fall, dann wird die Kennung der Verbraucherinstanz (Verbraucher-ID) aus der Instanzkopplungstabelle in den Ereigniscontainer eingetragen.

  3. Der Check-Funktionsbaustein wird aufgerufen, wenn er in der Typkopplungstabelle eingetragen ist.
  4. Wenn dieser Funktionsbaustein ohne Ausnahme beendet wird (oder wenn kein Check-Funktionsbaustein angegeben ist), wird der in der Typkopplungstabelle hinterlegte Verbraucherfunktionsbaustein mit den Übergabeparametern Ereignis, Verbrauchertyp und Ereigniscontainer aufgerufen.
  5. Wenn die Instanzkopplung hergestellt werden konnte, wird der Eintrag aus der Instanzkopplungstabelle gelöscht. Der Eintrag in der Typkopplungstabelle bleibt bestehen.

Zur eigentlichen Zuordnung vom Ereignis zum Verbraucher wird damit wieder auf die zur Definitionszeit hinterlegten Angaben der Typkopplungstabelle zurückgegriffen. Diese Doppelkonstruktion ist nötig, da die generische Auswahl des Verbraucherfunktionsbausteins nicht mehr zur Laufzeit festgelegt werden kann, sondern bereits vorab definiert werden muß, während umgekehrt die Instanzwerte zur Definitionszeit noch nicht bekannt sind.

Die Kopplungslogik läßt es nicht zu, daß eine konkrete Verbraucherinstanz auf ein Ereignis wartet, dessen auslösendes Objekt noch nicht bekannt ist. Vielmehr muß für eine Instanzkopplung immer auch der Schlüssel des auslösenden Objektes bekannt sein.

Diese Problematik tritt dann auf, wenn in einem Workitem durch eine asynchrone Methode ein Objekt erzeugt wird und dies durch ein Ereignis an das Workflow-System zurückgemeldet wird. Das Workitem als konkrete Verbraucherinstanz soll auf ein Ereignis warten, dessen auslösendes Objekt noch nicht bekannt ist, wenn sich das Workitem in der Instanzkopplungstabelle einträgt.

Für diesen Fall gibt es das Hilfskonstrukt des Workflow-Requesters, über den eine Beziehung zwischen dem noch unbekannten Objekt und dem wartenden Workitem hergestellt werden kann.

Funktionsumfang

Aufbau der Instanzkopplungstabelle

In der Instanzkopplungstabelle stehen folgende Felder zur Verfügung:

Typ des Objektes, das das Ereignis erzeugt

Ereignis, das erzeugt wird

Objekttyp und Ereignis müssen im Business Object Repository definiert sein

Zusammengesetzter Schlüssel des Objektes, das das Ereignis erzeugt

Kennung oder Instanz eines Verbrauchertyps

Die Instanzkopplungen (mit den zugehörigen Typkopplungen), die für die Warteschritte und die beendenden Ereignisse einer Aktivität in der Workflow-Definition erforderlich sind, werden automatisch eingetragen.

Verändern Sie diese Einträge nicht!

In die Typkopplungstabelle werden eingetragen:

In die Instanzkopplungstabelle werden eingetragen:

Wenn die Instanzkopplung hergestellt werden konnte, wird der Eintrag aus der Instanzkopplungstabelle gelöscht. Der Eintrag in der Typkopplungstabelle bleibt bestehen.

Auswertung der Instanzkopplungstabelle

Für Zweck der Fehlersuche und -analyse kann es hilfreich sein, die eingetragenen Instanzkopplungen anzuzeigen. Sie können sich dazu einen Ausschnitt aus der Instanzkopplungstabelle gemäß bestimmter Selektionskriterien anzeigen lassen.

Pflege der Instanzkopplungstabelle

Sie pflegen die Instanzkopplungstabelle, wenn Sie die Ereignissteuerung im Rahmen eigener Entwicklungen unabhängig vom Workflow verwenden.

Die Pflege der Instanzkopplungstabelle ist über folgende Funktionsbausteine möglich:

Über die Parameter dieses Funktionsbausteins können Sie Einträge in die Instanzkopplungstabelle einfügen.

Mit Hilfe dieses Funktionsbaustein können Sie einen Eintrag aus der Instanzkopplungstabelle löschen.

Mit Hilfe dieses Funktionsbausteins können Sie alle Einträge für einen Verbraucher aus der Instanzkopplungstabelle löschen.

Wenn Sie in der Instanzkopplungstabelle Einträge vornehmen, achten Sie darauf, diese auch wieder zu löschen, wenn eine Instanzkopplung nicht mehr erwartet wird.

Die zugehörigen Einträge in der Typkopplungstabelle sollten Sie ebenfalls löschen. Dabei ist sicherzustellen, daß keine Instanzkopplungen (mehr) zu dieser Typkopplung existieren.

Aktivitäten

Die Pflege der Typkopplungstabelle erfolgt über Werkzeuge ® Business Workflow ® Entwicklung ® Hilfsmittel ® Ereignisse ® Instanzkopplungen.