Ereignishandhabung

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

  1. 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() );
  2. 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.


Rechtliche Hinweise |

Letzte Aktualisierung: LASTUPDATEDVAR

(c) Copyright IBM Corporation 2005.
Dieses Information Center basiert auf Eclipse-Technologie. (http://www.eclipse.org)