Nachricht an wartende Aktivität senden

Anlass und Zeitpunkt für die Ausführung dieser Task

Auswahlaktivitäten (auch Empfangsauswahlaktivitäten genannt) und Empfangsaktivitäten können zum Synchronisieren eines aktiven Prozesses mit externen Ereignissen verwendet werden. Ein solches Ereignis kann der Empfang einer E-Mail-Nachricht von einem Kunden als Antwort auf eine Informationsanfrage sein.

Erforderliche Schritte für diese Task

  1. Listen Sie die Serviceschablonen für Aktivitäten auf, die auf eine Nachricht von dem angemeldeten Benutzer warten.
    QueryResultSet result = 
       process.query("ACTIVITY_SERVICE.VTID,ACTIVITY.ATID", 
                     "ACTIVITY.STATE=ACTIVITY.STATE.STATE_WAITING AND
                      ACTIVITY_SERVICE.PORT_TYPE='Süßwaren' AND
                      ACTIVITY_SERVICE.OPERATION='Bestellungsanforderung' AND
                      WORK_ITEM.REASON=WORK_ITEM.REASON.REASON_POTENTIAL_OWNER",
                      null, null, null); 
  2. Senden Sie eine Nachricht.

    Der Aufrufende muss ein potenzieller Eigner der Aktivität sein, die die Nachricht empfängt, oder ein Administrator der Prozessinstanz.

    if ( result.size() > 0 )
    {
      result.first();
      VTID vtid = (VTID)result.getOID(1);
      ATID atid = (ATID)result.getOID(2); 
      ActivityServiceTemplateData activity = 
              process.getActivityServiceTemplate(vtid,atid);
    
      // Erstellen einer Nachricht für den aufzurufenden Service
      ClientObjectWrapper message = 
            process.createMessage(vtid,atid,activity.getInputMessageTypeName()); 
      DataObject myMessage = null;
      if ( message.getObject()!= null && message.getObject() instanceof DataObject )
      {
        myMessage = (DataObject)message.getObject();
        // Festlegen der Zeichenfolge in der Nachricht (es soll z. B. Schokolade bestellt werden)
        myMessage.setString("Schokolade", "bestellen");
      }
    
      // Senden der Nachricht an die wartende Aktivität
      process.sendMessage(vtid, atid, message);  
    }

    Diese Aktion sendet die angegebene Nachricht an den wartenden Aktivitätsservice und übergibt Bestellungsdaten.

    Sie können auch die ID der Prozessinstanz angeben, um sicherzustellen, dass die Nachricht an die angegebene Prozessinstanz gesendet wird. Wenn die ID der Prozessinstanz nicht angegeben ist, wird die Nachricht an den Aktivitätsservice gesendet und an die Prozessinstanz, die durch die Korrelationswerte in der Nachricht identifiziert wird. Ist die ID der Prozessinstanz angegeben, wird die anhand der Korrelationswerte gefundene Prozessinstanz überprüft, um sicherzustellen, dass sie die angegebene Prozessinstanz-ID hat.

Zugehörige Konzepte
Abfragen für Business-Prozessobjekte und taskbezogene Objekte

Rechtliche Hinweise |

Letzte Aktualisierung: LASTUPDATEDVAR

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