Opcional: Liste las plantillas de proceso para encontrar
el nombre del proceso que desea ejecutar. Este paso es opcional si ya sabe el nombre del proceso.
ProcessTemplateData[] processTemplates = process.queryProcessTemplates
("PROCESS_TEMPLATE.EXECUTION_MODE.EXCECUTION_MODE_MICROFLOW",
"PROCESS_TEMPLATE.NAME",
new Integer(50),
null);
El resultado se clasifica por nombre.
La consulta devuelve una matriz que contiene las 50 primeras plantillas
clasificadas que se pueden iniciar como procesos de larga ejecución.
Iniciar el proceso con un mensaje de entrada del tipo adecuado. Cuando cree el mensaje, debe especificar el nombre del tipo de mensaje, para que contenga la definición del mensaje.
ActivityServiceTemplateData activity = startActivities[0];
//crear un mensaje para el servicio que se va a llamar
ClientObjectWrapper input =
process.createMessage(activity.getServiceTemplateID(),
activity.getActivityTemplateID(),
activity.getInputMessageTypeName());
DataObject myMessage = null;
if ( input.getObject()!= null && input.getObject() instanceof DataObject )
{
myMessage = (DataObject)input.getObject();
//establecer las series del mensaje, por ejemplo, un nombre de cliente
myMessage.setString("CustomerName", "Smith");
}
//ejecutar el proceso
ClientObjectWrapper output = process.call(activity.getServiceTemplateID(),
activity.getActivityTemplateID(),
input);
//comprobar la salida del proceso, por ejemplo, un número de pedido
DataObject myOutput = null;
if ( output.getObject() != null && output.getObject() instanceof DataObject )
{
myOutput = (DataObject)output.getObject();
int order = myOutput.getInt("OrderNo");}
Esta acción crea una instancia de la plantilla de proceso, CustomerTemplate, y pasa algunos datos al cliente. La operación sólo devuelve resultados cuando el proceso
se ha completado. Se devuelve el resultado del proceso, OrderNo, al proceso que efectúa la llamada.