Anlass und Zeitpunkt für die Ausführung dieser Task
Ein vollständiger Business-Prozess und jeder seiner Bereiche kann
Ereignissteuerroutinen zugeordnet werden, die aufgerufen werden, wenn das
zugeordnete Ereignis auftritt. Eine Gemeinsamkeit zwischen Ereignissteuerroutinen
und Empfangs- oder Auswahlaktivitäten besteht darin, dass ein Prozess anhand von
Ereignissteuerroutinen Webserviceoperationen bereitstellen kann. Eine Ereignissteuerroutine
kann beliebig oft aufgerufen werden, solange der entsprechende Bereich ausgeführt wird. Zusätzlich können mehrere Instanzen einer
Ereignissteuerroutine gleichzeitig aktiviert werden.
Das folgende Codefragment
zeigt, wie die aktiven Ereignissteuerroutinen für eine angegebene Prozessinstanz
abgerufen werden, und wie eine Eingabenachricht gesendet wird.
Erforderliche Schritte für diese Task
- Ermitteln Sie die Daten für die Prozessinstanz-ID, und listen Sie die aktiven
Ereignissteuerroutinen für den Prozess auf.
ProcessInstanceData processInstance =
process.getProcessInstance( "Kundenbestellung2711");
EventHandlerTemplateData[] events = process.getActiveEventHandlers(
processInstance.getID() );
- Senden Sie die Eingabenachricht.
In diesem Beispiel wird der erste
gefundene Ereignishandler verwendet.
EventHandlerTemplateData event = null;
if ( events.length > 0 )
{
event = events[0];
// Erstellen einer Nachricht für den aufzurufenden Service
ClientObjectWrapper input = process.createMessage(
event.getID(), event.getInputMessageTypeName());
if (input.getObject() != null && input.getObject() instanceof DataObject )
{
DataObject inputMessage = (DataObject)input.getObject();
// Festlegen des Nachrichteninhalts (z. B. Kundenname, Bestellnummer)
inputMessage.setString("Kundenname", "Schmidt");
inputMessage.setString("Bestellnr", "2711");
// Senden der Nachricht
process.sendMessage( event.getProcessTemplateName(),
event.getPortTypeNamespace(),
event.getPortTypeName(),
event.getOperationName(),
input );
}
}
Diese Aktion sendet die angegebene Nachricht
an die aktive Ereignissteuerroutine für den Prozess.