Un proceso de larga ejecución se ejecuta de forma asíncrona. Su mensaje de salida
no se devuelve automáticamente cuando finaliza el proceso. El mensaje se debe recuperar
explícitamente. Los resultados del proceso sólo se almacenan en la base de datos si la plantilla de proceso de la que se ha derivado la instancia de proceso no especifica que el mensaje de salida se ha de suprimir automáticamente.
Analizar los resultados del proceso, por ejemplo, comprobar el número de pedido. QueryResultSet result = process.query("PROCESS_INSTANCE.PIID",
"PROCESS_INSTANCE.NAME = 'CustomerOrder' AND
PROCESS_INSTANCE.STATE = PROCESS_INSTANCE.STATE.STATE_FINISHED",
null, null, null);
if (result.size() > 0)
{
result.first();
PIID piid = (PIID) result.getOID(1);
ClientObjectWrapper output = process.getOutputMessage(piid);
DataObject myOutput = null;
if ( output.getObject() != null && output.getObject() instanceof DataObject )
{
myOutput = (DataObject)output.getObject();
int order = myOutput.getInt("OrderNo"); }
}