public virtual void Execute(IJobHandlerConfiguration configuration, ExecutionEntity execution, CommandContext commandContext, string tenantId) { var config = (BatchSeedJobConfiguration)configuration; var batchId = config.BatchId; BatchEntity batch = commandContext.BatchManager.FindBatchById(batchId); EnsureUtil.EnsureNotNull("Batch with id '" + batchId + "' cannot be found", "batch", batch); IBatchJobHandler batchJobHandler = commandContext.ProcessEngineConfiguration.BatchHandlers[batch.Type]; var done = batchJobHandler.CreateJobs(batch); if (!done) { batch.CreateSeedJob(); } else { // create monitor job initially without due date to // enable rapid completion of simple batches batch.CreateMonitorJob(false); } }
public override IBatch Execute(CommandContext commandContext) { IList <AbstractProcessInstanceModificationCommand> instructions = builder.Instructions; ICollection <string> processInstanceIds = CollectProcessInstanceIds(); EnsureUtil.EnsureNotEmpty(typeof(BadUserRequestException), "Restart instructions cannot be empty", "instructions", instructions); EnsureUtil.EnsureNotEmpty(typeof(BadUserRequestException), "Process instance ids cannot be empty", "processInstanceIds", processInstanceIds); EnsureUtil.EnsureNotContainsNull(typeof(BadUserRequestException), "Process instance ids cannot be null", "processInstanceIds", processInstanceIds); commandContext.AuthorizationManager.CheckAuthorization(Permissions.Create, Resources.Batch); ProcessDefinitionEntity processDefinition = GetProcessDefinition(commandContext, builder.ProcessDefinitionId); EnsureUtil.EnsureNotNull(typeof(BadUserRequestException), "Process definition cannot be null", processDefinition); EnsureTenantAuthorized(commandContext, processDefinition); WriteUserOperationLog(commandContext, processDefinition, processInstanceIds.Count, true); List <string> ids = new List <string>(); ids.AddRange(processInstanceIds); BatchEntity batch = CreateBatch(commandContext, instructions, ids, processDefinition); batch.CreateSeedJobDefinition(); batch.CreateMonitorJobDefinition(); batch.CreateBatchJobDefinition(); batch.FireHistoricStartEvent(); batch.CreateSeedJob(); return(batch); }