长期流程以异步方式运行。它的输出消息不会在该流程完成时自动返回。您必须显式地检索该消息。仅当用于派生流程实例的流程模板未指定自动删除所派生的流程实例时,流程结果才会存储在数据库中。
分析流程结果,例如,检查订单号。 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");
}
}