Die Typkopplung beschreibt die Zuordnung eines Verbraucherfunktionsbausteins und eines Verbrauchertyps zu einer bestimmten Kombination von Objekttyp und Ereignis .
Eine Typkopplung muss angelegt werden, sofern in irgendeiner Weise immer auf ein Ereignis eines bestimmten Objekttyps reagiert werden soll. Die Typkopplungen werden zur Laufzeit vom Ereignismanager ausgewertet.
Die Definition einer Typkopplung ist vom Ereignisverbraucher über einen zur Verfügung gestellten Funktionsbaustein vorzunehmen.
Wenn Ereignisse im Rahmen des SAP Business Workflow genutzt werden (als auslösende und beendende Ereignisse, bei Warteschritten), werden die erforderlichen Einträge vom Workflow-System vorgenommen.
Wenn Sie beispielsweise ein Ereignis als auslösendes Ereignis eines Workflow eintragen, erfolgen die folgenden Einträge automatisch:
Objekttyp und Ereignisname
zu startender Workflow als Verbrauchertyp
Funktionsbaustein SWW_WI_CREATE_VIA_EVENT als Verbraucherfunktionsbaustein
Transport und Mandanten-Copy
Typkopplungen sind mandantenabhängig und werden automatisch auf einen Customizing-Transportauftrag geschrieben, sofern der Mandant (in der Tabelle T000) so eingestellt ist, dass Änderungen automatisch aufgezeichnet werden. Alle Einträge einschließlich ihres Aktivierungskennzeichens werden dann transportiert.
Beim Mandanten-Copy ist zu beachten, dass die Typkopplungen in den Zielmandanten kopiert werden, aber im Zielmandanten immer deaktiviert sind.
Das Kennzeichen der Aktivierung jeder einzelnen Typkopplung wird nur auf expliziten Wunsch (Parameteroption zum Kopieren von Tabellen der Klasse A) beim Mandanten-Copy mitkopiert.
Ablauf
Der Ereignismanager beginnt die Auswertung der aktiven Typkopplungen, wenn ihm der Name eines erzeugten Ereignisses mitgeteilt wird. Damit eine Ereignisbehandlung stattfindet, muss bei der Typkopplung entweder das erzeugte Ereignis und sein auslösender Objekttyp oder das erzeugte Ereignis und ein Supertyp des auslösenden Objekttyps eingetragen sein.
Wenn der Ereignismanager für das erzeugte Ereignis eine Typkopplung findet, laufen folgende Verarbeitungsschritte ab:
Wenn ein Verbrauchertyp-Funktionsbaustein eingetragen ist, wird dieser zur Ermittlung des Verbrauchertyps aufgerufen.
Wenn ein Check-Funktionsbaustein eingetragen ist, wird dieser aufgerufen. Endet dessen Ausführung mit einer Ausnahme, wird die Kopplung nicht ausgeführt.
Der Verbraucherfunktionsbaustein wird mit den Parametern Ereignis , Verbrauchertyp und Ereigniscontainer aufgerufen.
Beim Auftreten eines Fehlers innerhalb des Funktionsbausteines SWW_WI_CREATE_VIA_EVENT (fehlende oder fehlerhafte Aufgabe, Probleme beim tRFC) wird eine Mail an den Systemadministrator für Workflow verschickt.
Daten einer Typkopplung
In der Typkopplungstabelle stehen folgende Felder zur Verfügung:
Objekttyp und Ereignisname
Objekttyp und Ereignis müssen im Business Object Repository definiert sein
Verbrauchertyp
Verbraucherfunktionsbaustein
Check-Funktionsbaustein (optional)
Verbrauchertyp-Funktionsbaustein (optional)
Kennzeichen: Typkopplung aktiviert
Wenn dieses Kennzeichen gesetzt ist, wird die Typkopplung vom Ereignismanager ausgewertet.
Kennzeichen: Ereignis-Queue ermöglichen
Dieses Kennzeichen wird nur ausgewertet, wenn die Ereignis-Queue aktiv ist.
Wenn das Kennzeichen gesetzt ist, erfolgt der Start des Ereignisverbrauchers durch die Ereignis-Queue. Wird dieses Kennzeichen nicht gesetzt oder ist die Ereignis-Queue nicht aktiv, wird der Verbraucher sofort gestartet.
Verhalten bei Fehlerrückmeldung
Hier kann die Systemvoreinstellung, die auf der Registerkarte Grunddaten der Ereignis-Queue-Administration gepflegt wird, übernommen oder überdefiniert werden.
Verbraucherstatus
Der Status des Ereignisverbrauchers hat Auswirkung auf den Start des Verbrauchers. Generell muss die Verbraucherkopplung aktiv sein, um den Verbraucher starten zu können. Der Status der Verbraucherkopplung hat dabei folgende Auswirkungen:
fehlerfrei
Ist die Verbraucherkopplung im Status fehlerfrei , so werden die Verbraucher durch das System gestartet. Der Start kann dabei direkt oder durch die Ereignis-Queue erfolgen.
fehlerhaft
Ist die Verbraucherkopplung im Status fehlerhaft , so wird der Verbraucher nicht sofort gestartet, sondern automatisch in die Ereignis-Queue gestellt. Dort erhält der Eintrag den Status wartend wegen Fehler . Somit wird der Verbraucher einerseits nicht gestartet, andererseits besteht jedoch die Möglichkeit, diese Verbraucher nach der Beseitigung des Fehlers erneut zu starten. Ausgelöste Ereignisse gehen damit auch bei fehlerhaften Kopplungen nicht verloren. Das erneute Starten der Ereignisverbraucher kann über die Registerkarte Fehlerhafte Kopplungen vorgenommen werden.
Pflege der Typkopplung
In folgenden Fällen müssen Sie Typkopplungen manuell definieren und bearbeiten:
Sie verwenden die Ereignissteuerung im Rahmen eigener Entwicklungen unabhängig vom Workflow.
Sie wollen die vom Workflow-System vorgenommenen Einträge analysieren.
Sie wollen einen Check-Funktionsbaustein nachtragen.
Sie wollen eine Typkopplung aktivieren, die nicht durch den Workflow gesteuert wird.
Sie wollen, dass die Ereignisse einer bestimmten Typkopplung die Ereignis-Queue nutzen.
Die Pflege der Typkopplungen im Rahmen des SAP Business Workflow wird ansonsten vom Workflow-System übernommen.
Über folgenden Funktionsbaustein können Sie eine Typkopplung anlegen:
SWE_EVENT_REC_TYPE_ENTER
Darüber hinaus stehen APIs zum Bearbeiten einzelner Felder einer Typkopplung zur Verfügung:
Name des Funktionsbausteins |
Erläuterung |
---|---|
SWE_EVENT_REC_TYPE_CHECK_FB |
Ändern des Check-Funktionsbausteins für den Ereignisverbraucher |
SWE_EVENT_REC_TYPE_DISABLE |
Deaktivieren einer Typkopplung |
SWE_EVENT_REC_TYPE_ENABLE |
Aktivieren einer Typkopplung |
SWE_EVENT_REC_TYPE_FB |
Ändern des Verbraucherfunktionsbausteins |
SWE_EVENT_REC_TYPE_GET_FB |
Ändern des Verbrauchertyp-Funktionsbausteins |
SWE_EVENT_REC_TYPE_GLOBAL |
Setzen einer globalen Ereigniskopplung |
SWE_EVENT_REC_TYPE_NOT_GLOBAL |
Löschen einer globalen Ereigniskopplung |
SWE_EVENT_REC_TYPE_READ |
Lesen einer Typkopplung |
Verwenden Sie folgenden Funktionsbaustein, um eine Typkopplung zu löschen:
SWE_EVENT_REC_TYPE_DELETE
Wenn Sie Typkopplungen anlegen, achten Sie darauf, diese auch wieder zu löschen, wenn sie nicht mehr erwartet wird.
Die Pflege der Typkopplungen erfolgt über
.In der Übersicht werden die bereits bestehenden Typkopplungen mit Angaben zu Objekttyp, Ereignis und Verbrauchertyp angezeigt.
Wählen Sie
, um neue Typkopplungen hinzuzufügen.Wählen Sie
, um Typkopplungen zu ändern.