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