IBM BPM, V8.0.1, All platforms > Programming IBM BPM > Developing using the web service API > Samples

Terminating a process instance

The following sample shows how to use the web API to terminate a process instance.

package teamworks.samples.scenarios;

import com.lombardisoftware.webapi.ProcessInstanceStatus;
import com.lombardisoftware.webapi.Search;
import com.lombardisoftware.webapi.SearchColumn;
import com.lombardisoftware.webapi.SearchCondition;
import com.lombardisoftware.webapi.SearchOperator;
import com.lombardisoftware.webapi.SearchResults;
import com.lombardisoftware.webapi.WebAPI;

/**
 * This scenario illustrates terminating (aborting) a process instance  *
 */
public class TerminateProcessInstance extends Scenario {
    
    public void testScenario() throws Exception {
        // Create a new WebAPI client stub
        WebAPI webAPI = getWebAPIFactory().newWebAPI();
        
        // Find an active process instance that is visible to the user         SearchResults results = webAPI.executeSearch(buildActiveInstancesSearch(), 1, null);
        if (results.getRows().length > 0) {
            long processInstanceId = (Long) results.getRows()[0].getValues()[0];
            
            System.out.println("abortProcessInstance(" + processInstanceId + ")");
            
            // Terminate (abort) this process instance             webAPI.abortProcessInstance(processInstanceId);
        }         else {
            System.out.println("No matching process instance found");
        }     }     
    private Search buildActiveInstancesSearch() {
        Search search = new Search();
        search.setOrganizedByType("ProcessInstance");
        search.setColumns(new SearchColumn[] {
                new SearchColumn("ProcessInstance", "Id", null)
        search.setConditions(new SearchCondition[] {
                new SearchCondition(
                        new SearchColumn("ProcessInstance", "Status", null),                         SearchOperator._EQUALS,                         ProcessInstanceStatus._Active
                        )                
        return search;
    } }

Samples