Esecuzione di un microflusso contenente un servizio di avvio univoco

Un microflusso può essere avviato da un'attività di ricezione o di selezione. Il servizio di avvio è univoco se il microflusso viene avviato con un'attività receive o quando l'attività pick dispone solo di una definizione onMessage.

Perché e quando effettuare questa attività

Se il microflusso implementa un'operazione richiesta-risposta, ovvero se il processo contiene una risposta, è possibile utilizzare il metodo call per eseguire il processo inoltrando il nome della maschera del processo come parametro di richiamo.

Se il microflusso è un'operazione di sola andata, utilizzare il metodo sendMessage per eseguire il processo. Questo metodo non è illustrato nell'esempio.

Procedura di questa attività

  1. Opzionale: Elencare le maschere del processo per trovare il nome del processo che si desidera eseguire.

    Se si conosce già il nome del processo, questa operazione è facoltativa.

    ProcessTemplateData[] processTemplates = process.queryProcessTemplates
    ("PROCESS_TEMPLATE.EXECUTION_MODE =
           PROCESS_TEMPLATE.EXECUTION_MODE.EXCECUTION_MODE_MICROFLOW",
     "PROCESS_TEMPLATE.NAME",
      new Integer(50),
      (TimeZone)null);

    I risultati vengono ordinati per nome. La query restituisce una matrice contenente le prime 50 maschere che possono essere avviate mediante il metodo call.

  2. Avviare il processo con un messaggio di input del tipo appropriato.

    Quando si crea un messaggio, è necessario specificare il nome del tipo di messaggio, in modo che contenga la definizione del messaggio.

    ProcessTemplateData template = processTemplates[0];
    //creare un messaggio per la singola attività di avvio ricezione
    ClientObjectWrapper input = process.createMessage
                               (template.getID(),
                                template.getInputMessageTypeName());
    DataObject myMessage = null;
    if ( input.getObject()!= null && input.getObject() instanceof DataObject )
    {
      myMessage = (DataObject)input.getObject();
      //impostare le stringhe nel messaggio, ad esempio, un nome cliente
      myMessage.setString("CustomerName", "Smith");
    }
    
    //eseguire il processo
    ClientObjectWrapper output = process.call(template.getName(), input);
    DataObject myOutput = null;
    if ( output.getObject() != null && output.getObject() instanceof DataObject )
    {
      myOutput  = (DataObject)output.getObject();
      int order = myOutput.getInt("OrderNo");
    }

    Questa operazione crea un'istanza della maschera del processo, CustomerTemplate, e invia alcuni dati del cliente. L'operazione prevede restituzioni solo quando il processo è completo. Il risultato del processo, OrderNo, viene restituito al chiamante.

Concetti correlati
Query sugli oggetti del processo aziendale e relativi alle attività

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