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à
- 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.
- 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.