JBoss Community

Re: Removing history information of completed process instances

created by Michael Wohlfart in jBPM - View the full discussion

in jbpm4 the DbSessionImpl has a deleteProcessDefinitionHistory() method, you can use that as base for whatever history information you want to delete:

 

   List<HistoryProcessInstanceImpl> historyProcessInstances = session
            .createCriteria(HistoryProcessInstanceImpl.class)
            .add(Restrictions.eq("processDefinitionId", processDefinitionId))

            .add(... insert random other Restriction here ...)

            .list();

    // you also have to delete the activity since they have a foreign key relationship

    for (HistoryProcessInstanceImpl hpi : historyProcessInstances) {
      List<HistoryActivityInstanceImpl> historyActivityInstances = session
              .createCriteria(HistoryActivityInstanceImpl.class)
              .add(Restrictions.eq("historyProcessInstance", hpi))
              .list();
      for (HistoryActivityInstanceImpl hai : historyActivityInstances) {
        session.delete(hai);
      }
      session.delete(hpi);
    }

Reply to this message by going to Community

Start a new discussion in jBPM at Community