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