Invio di un messaggio a un'attività in attesa

È possibile utilizzare attività del messaggio in entrata (attività di ricezione, onMessage in attività di selezione, onEvent in gestori eventi) per sincronizzare un processo in esecuzione con eventi dal "mondo esterno". Ad esempio, la ricezione di un'e-mail da un cliente in risposta a una richiesta di informazioni potrebbe rappresentare un evento di questo tipo.

Perché e quando effettuare questa attività

È possibile utilizzare attività di origine per inviare il messaggio all'attività.

Procedura di questa attività

  1. Elencare le maschere del servizio attività in attesa di un messaggio dall'utente collegato in un'istanza di processo con uno specifico ID istanza di processo.
    ActivityServiceTemplateData[] services = process.getWaitingActivities(piid);
  2. Inviare un messaggio al primo servizio in attesa.

    Si presume che il primo servizio è l'unico che si desidera servire. Il chiamante deve essere un potenziale inizializzatore dell'attività che riceve il messaggio o un amministratore dell'istanza di processo.

    VTID vtid = services[0].getServiceTemplateID();
    ATID atid = services[0].getActivityTemplateID();
    String inputType = services[0].getInputMessageTypeName(); 
      
    // create a message for the service to be called
      ClientObjectWrapper message = 
            process.createMessage(vtid,atid,inputMessageTypeName);  
      DataObject myMessage = null;
      if ( message.getObject()!= null && message.getObject() instanceof DataObject )
      {
        myMessage = (DataObject)message.getObject();
        //impostare le stringhe nel messaggio, ad esempio, ordinare della cioccolata
        myMessage.setString("Order", "chocolate");
      }
    
      // send the message to the waiting activity 
      process.sendMessage(vtid, atid, message);  
    }

    Questa azione invia il messaggio specificato al servizio attività in attesa e inoltra alcuni dati degli ordini.

    Inoltre, è possibile specificare l'ID istanza di processo per assicurarsi che il messaggio venga inviato all'istanza di processo specificata. Se non viene specificato l'ID istanza di processo, il messaggio viene inviato al servizio attività e l'istanza di processo identificata dai valori di correlazione nel messaggio. Se tale ID viene specificato, l'istanza di processo rilevata utilizzando i valori di correlazione viene controllata per verificare se dispone dell'ID dell'istanza di processo specificato.


(c) Copyright IBM Corporation 2005, 2006.
This information center is powered by Eclipse technology (http://www.eclipse.org)