执行本任务的原因和时间
如果在流程模型中为流程模板设置了相应的属性,就会自动地从业务流程编排器数据库中删除已完成的流程实例。
您可能想将流程实例保留在数据库中,例如,这样就可以查询未写入审计日志的流程实例数据,或者将流程的删除工作推迟到非高峰期进行。但是,不再需要的流程实例数据会影响磁盘空间和性能。因此,应该定期地删除流程实例数据。要删除流程实例,您需要具有流程管理员权限,并且该流程实例必须是顶级流程实例。
以下示例说明如何删除所有已完成的流程实例。
本任务的步骤
- 列示已完成的流程实例。
QueryResultSet result =
process.query("DISTINCT PROCESS_INSTANCE.PIID",
"PROCESS_INSTANCE.STATE =
PROCESS_INSTANCE.STATE.STATE_FINISHED",
null, null, null);
此操作将返回一个查询结果集,该结果集列示了已完成的流程实例。
- 删除已完成的流程实例。
while (result.next() )
{
PIID piid = (PIID) result.getOID(1);
process.delete(piid);
}
此操作将从数据库中删除选择的流程实例。