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;
    }

}