# code issue - deleteProcessInstances not deleting processes...

**URL:** <https://community.ofelia.com/t/code-issue-deleteprocessinstances-not-deleting-processes/5290>\
**Category:** Q&A\
**Created:** [25 October 2014 12:27 UTC](https://community.ofelia.com/t/code-issue-deleteprocessinstances-not-deleting-processes/5290 "2014-10-25T12:27:24Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sean\_McP](https://dub1.discourse-cdn.com/flex013/user_avatar/community.ofelia.com/sean_mcp/32/932_2.png) [@Sean\_McP](https://community.ofelia.com/u/Sean_McP)\
**Post date:** [25 October 2014 12:27 UTC](https://community.ofelia.com/t/code-issue-deleteprocessinstances-not-deleting-processes/5290/1 "2014-10-25T12:27:24Z")

</div>

Hi there, a code issue:

> Bonita Studio 6.3.7, Java 1.7.0.67, Windows 8.1

I’m trying to delete some processes as details … [click here](http://documentation.bonitasoft.com/javadoc/api/6.3/org/bonitasoft/engine/api/ProcessRuntimeAPI.html#deleteProcessInstances(long)) …

but it’s not working…telling me the system will not process the request as follows:

`
2014-10-25 15:12:37 org.bonitasoft 
SEVERE: Disable and Delete Process: 11 Disable Process Error: org.bonitasoft.engine.core.process.definition.exception.SProcessDisablementException: Process Pain Point Rankings with version 1.1 is already disabled
2014-10-25 15:12:37 org.bonitasoft 
SEVERE: Disable and Delete Process: 12 Delete Process Instances: 
2014-10-25 15:12:37 org.bonitasoft 
SEVERE: Disable and Delete Process: 12.1 Delete Process Instances: 
2014-10-25 15:12:37 org.bonitasoft 
SEVERE: Disable and Delete Process: 13 processAPI.deleteProcessInstances Error: org.bonitasoft.engine.transaction.STransactionCreationException: We do not support nested calls to the transaction service.
2014-10-25 15:12:37 org.bonitasoft 
SEVERE: Disable and Delete Process: 14 Delete Archived Process Instances: 
2014-10-25 15:12:37 org.bonitasoft 
SEVERE: Disable and Delete Process: 14.1 Delete Archived Process Instances: 
2014-10-25 15:12:37 org.bonitasoft 
SEVERE: Disable and Delete Process: 14.2 Delete Archived Process Instances: 
2014-10-25 15:12:37 org.bonitasoft 
SEVERE: Disable and Delete Process: Trace End: 
`

I’m only doing what the Javadoc indicates…

How do I use deleteProcessInstances to delete processes?

My code is as follows:

Code Summary:  
  
In GROOVY

1. prepare and print out existing processes
2. disable the process
3. delete the processes - using a modified while as groovy does not support do{…}while
4. delete the archived processes - using a modified while as groovy does not support do{…}while  

The code:  
  
import org.bonitasoft.engine.api.ProcessAPI;  
import org.bonitasoft.engine.api.ProcessRuntimeAPI;

import org.bonitasoft.engine.bpm.flownode.ActivityInstance;  
import org.bonitasoft.engine.bpm.flownode.HumanTaskInstance;  
import org.bonitasoft.engine.bpm.flownode.HumanTaskInstanceSearchDescriptor;  
import org.bonitasoft.engine.bpm.flownode.TaskInstance;  
import org.bonitasoft.engine.bpm.flownode.UserTaskInstance;

import org.bonitasoft.engine.bpm.process.ProcessDefinition;  
import org.bonitasoft.engine.bpm.process.ProcessDeploymentInfo;  
import org.bonitasoft.engine.bpm.process.ProcessDeploymentInfoCriterion;  
import org.bonitasoft.engine.bpm.process.ProcessDeploymentInfoSearchDescriptor;  
import org.bonitasoft.engine.bpm.process.ProcessInstance;

import org.bonitasoft.engine.search.SearchOptions;  
import org.bonitasoft.engine.search.SearchOptionsBuilder;  
import org.bonitasoft.engine.search.SearchResult;

import java.util.logging.Logger;  
Logger logger = Logger.getLogger(“org.bonitasoft”);  
String thisTrace = "Disable and Delete Process: "

logger.severe(thisTrace+"Trace Start: ");

ProcessAPI processAPI = apiAccessor.getProcessAPI();

int counter;  
int stopAfter = 100;

//prepare and print out existing processes  
String monitoringProcess = “Pain Point Rankings”;

SearchOptionsBuilder searchOptionsBuilder = new SearchOptionsBuilder(0, 500);  
searchOptionsBuilder.filter(HumanTaskInstanceSearchDescriptor.NAME, monitoringProcess);  
SearchOptions searchOptions = searchOptionsBuilder.done();

SearchResult searchHumanTaskInstancesT = processAPI.searchHumanTaskInstances(searchOptions);

logger.severe(thisTrace+"01 searchHumanTaskInstancesT: Count: "+searchHumanTaskInstancesT.getCount());  
logger.severe(thisTrace+"02 searchHumanTaskInstancesT: Result: "+searchHumanTaskInstancesT.getResult());

try{  
// disable the process  
Long delprocessDefinitionId=4812640494579983314;  
long nbDeleted = 0;  
try{  
processAPI.disableProcess(delprocessDefinitionId);  
}  
catch(Exception e9){  
logger.severe(thisTrace+"11 Disable Process Error: "+e9.message);  
}

// delete the processes  
counter = 0;  
while(true){  
logger.severe(thisTrace+"12 Delete Process Instances: ");  
try{  
logger.severe(thisTrace+"12.1 Delete Process Instances: ");  
nbDeleted = processAPI.deleteProcessInstances(delprocessDefinitionId, 0, 100);  
logger.severe(thisTrace+"12.2 Delete Process Instances: ");  
}  
catch(Exception e8){  
logger.severe(thisTrace+"13 processAPI.deleteProcessInstances Error: "+e8.message);  
}  
finally{  
if (nbDeleted \<= 0) break;  
counter++;  
if (counter \> stopAfter) break;  
}  
}

// delete the archived processes  
counter = 0;  
while(true){  
logger.severe(thisTrace+"14 Delete Archived Process Instances: ");  
try{  
logger.severe(thisTrace+"14.1 Delete Archived Process Instances: ");  
nbDeleted = processAPI.deleteArchivedProcessInstances(delprocessDefinitionId, 0, 100);  
logger.severe(thisTrace+"14.2 Delete Archived Process Instances: ");  
}  
catch(Exception e7){  
logger.severe(thisTrace+"15 processAPI.deleteArchivedProcessInstances Error: "+e7.message);  
}  
finally{  
if (nbDeleted \<= 0) break;  
counter++;  
if (counter \> stopAfter) break;  
}  
}

}  
catch (Exception e0) {  
logger.severe(thisTrace+"20 Exception e0: "+e0.toString());  
}  
logger.severe(thisTrace+"Trace End: ");
