This sample script demonstrates how to terminate a pending or active task for a specified domain object.
Applicability
This functionality is available anywhere users can write C# code.
Code Sample
// Get active tasks from database
//
var id = domainObject.Id.ToString();
var query = String.Format("SELECT * FROM [ray].[BPMS_TaskInstance] WHERE [Status] = 'Active' AND ObjectId = '0'", id);
var tasks = bpmAppService.BPMSServices.SqlService.ExecuteSqlQueryFromDB<Ray.BPMS.Model.TaskInstance>(query);
//
// Terminate all active tasks
//
if (tasks != null && tasks.Count > 0)
{
foreach (var task in tasks)
{
var taskObject = bpmAppService.BPMSServices.DomainObjectService.GetDomainObject<Ray.BPMS.Model.TaskInstance>(task.Id);
var user = bpmAppService.BPMSServices.MercuryService.GetUser(taskObject.StarterUserId);
bpmAppService.BPMSServices.TaskService.SendToTerminated(domainObject, user);
}
}