Überwachen der Lösung für die Geschäftsprozessverwaltung mit BAM
Im Rahmen der Lösung werden die Schritte der Auftragsverarbeitung mithilfe der BAM-API (Business Activity Monitoring, Geschäftsaktivitätsüberwachung) überwacht. Die Aktivitäten des Geschäftsprozesses sind in mehrere Stufen eingeteilt. Die Aktivitäten können jedoch auch neu kombiniert werden, um in gewisser Weise einen fortlaufenden Prozess zu erstellen. Von BAM werden auch aggregierte Daten bereitgestellt, sodass Sie feststellen können, wie viel Zeit verschiedene Back-Ends benötigen, wie viele Aufträge abgeschlossen wurden usw.
Wie die dienstorientierte Lösung verwendet sie das neue OrchestrationEventStream-Objekt . Eine Diskussion über das OrchestrationEventStream-Objekt finden Sie unter Was ist das OrchestrationEventStream-Objekt unter Überwachen der dienstorientierten Lösung mit BAM.
Allgemeine Informationen zu BAM finden Sie unter Verwenden der Überwachung von Geschäftsaktivitäten. Informationen zum Nachverfolgungsprofil-Editor (TPE) finden Sie unter Nachverfolgungsprofil-Editor.
Umschließen des OrchestrationEventStream-Objekts
Wie die dienstorientierte Lösung umschließt die Geschäftsprozessverwaltungslösung das OrchestrationEventStream-Objekt . Und wie bei der dienstorientierten Lösung sind alle Methoden statisch, sodass von den Orchestrierungen keine Instanzen von Objekten erstellt werden müssen, um die Methoden verwenden zu können. Dies bedeutet auch, dass die für die Überwachung verwendeten Objekte nicht serialisiert und nicht gespeichert werden müssen (nicht serialisierbar sein müssen), wenn eine Orchestrierung von der Engine pausiert wird. Die Geschäftsprozessverwaltungslösung umschließt jedoch OrchestrationEventStream mit mehreren Objekten, die alle von einem einzelnen, abstrakten Objekt abgeleitet sind.
Die abstrakte Klasse ist BasicActivity. Obwohl die Klasse abstrakt ist, dient sie nicht als Vorlage für abgeleitete Klassen. Sie stellt vielmehr über die statischen Methoden einen Satz von Methoden bereit, die ohne Qualifikation in einer abgeleiteten Klasse verfügbar sind. Dadurch stehen Ihnen vier Standardimplementierungen der Methoden zur Verfügung. Die vier statischen Methoden sind CreateActivityId, BeginActivity, UpdateActivity und EndActivity.
Die -Klasse überlädt die BeginActivity-Methode . Eine Version übernimmt einen Aktivitätsnamen als einzelnes Argument, erstellt eine als Aktivitätsbezeichner zu verwendende GUID, ruft dann die eigene Version auf, die einen Aktivitätsnamen und einen Aktivitätsbezeichner aufweist, und gibt anschließend den Aktivitätsbezeichner zurück. Diese Einzelargumentversion ist in bestimmten Fällen sinnvoll, in denen ein Auftrag möglicherweise keinen eindeutigen Bezeichner aufweist.
Die CreateActivityId-Methode verwendet eine Zeichenfolge und einen eindeutigen Bezeichner wie den Anforderungsbezeichner und gibt eine Zeichenfolge zurück, die sie mit einem Unterstrich verkettet. Auf diese Weise wird ein eindeutiger Aktivitätsbezeichner bereitgestellt. Diese Methode wird sehr häufig in den abgeleiteten Klassen verwendet. Die BeginActivity-, UpdateActivity- und EndActivity-Methoden rufen die BeginActiviy-, UpdateActivity- und EndActivity-Methoden von OrchestrationEventStream auf.
Die Lösung leitet Klassen von BasicActivity für den Auftragsbroker (CustomerOrderRequest), den Auftragsmanager (OrderManager) und die Verarbeitungsphasen (ServiceOrderRequest) ab. Jede Klasse entspricht einer Aktivität. Jede Klasse stellt eine Zeichenfolge für den Aktivitätsnamen bereit, der in CreateActivityId zum Erstellen des Aktivitätsbezeichners sowie für die Aktivitätsmeilensteine spezialisierte Methoden verwendet werden soll.
Da der Auftragsbroker den Auftrag übergibt und später eine Antwort empfängt, enthält er eine Methode zum Wiederherstellen des Aktivitätsbezeichners, der dem Anforderungsbezeichner des Auftrags zugewiesen ist. Dadurch können die endgültigen Elemente der Auftragsverarbeitung vom Geschäftsprozess weiterhin überwacht werden.
Hinweis
Wenn Sie Aufträge über die Dateifunktion statt über die Kundendienst-Webanwendung senden, müssen Sie einen für jede Anforderung eindeutigen Bezeichner hinzufügen.