public virtual IList <ProcessInstanceDto> queryProcessInstances(ProcessInstanceQueryDto queryDto, int?firstResult, int?maxResults) { ProcessEngine engine = ProcessEngine; queryDto.ObjectMapper = ObjectMapper; ProcessInstanceQuery query = queryDto.toQuery(engine); IList <ProcessInstance> matchingInstances; if (firstResult != null || maxResults != null) { matchingInstances = executePaginatedQuery(query, firstResult, maxResults); } else { matchingInstances = query.list(); } IList <ProcessInstanceDto> instanceResults = new List <ProcessInstanceDto>(); foreach (ProcessInstance instance in matchingInstances) { ProcessInstanceDto resultInstance = ProcessInstanceDto.fromProcessInstance(instance); instanceResults.Add(resultInstance); } return(instanceResults); }
public virtual ProcessInstanceDto submitForm(UriInfo context, StartProcessInstanceDto parameters) { FormService formService = engine.FormService; ProcessInstance instance = null; try { IDictionary <string, object> variables = VariableValueDto.toMap(parameters.Variables, engine, objectMapper); string businessKey = parameters.BusinessKey; if (!string.ReferenceEquals(businessKey, null)) { instance = formService.submitStartForm(processDefinitionId, businessKey, variables); } else { instance = formService.submitStartForm(processDefinitionId, variables); } } catch (AuthorizationException e) { throw e; } catch (FormFieldValidationException e) { string errorMessage = string.Format("Cannot instantiate process definition {0}: {1}", processDefinitionId, e.Message); throw new RestException(Response.Status.BAD_REQUEST, e, errorMessage); } catch (ProcessEngineException e) { string errorMessage = string.Format("Cannot instantiate process definition {0}: {1}", processDefinitionId, e.Message); throw new RestException(Response.Status.INTERNAL_SERVER_ERROR, e, errorMessage); } catch (RestException e) { string errorMessage = string.Format("Cannot instantiate process definition {0}: {1}", processDefinitionId, e.Message); throw new InvalidRequestException(e.Status, e, errorMessage); } ProcessInstanceDto result = ProcessInstanceDto.fromProcessInstance(instance); URI uri = context.BaseUriBuilder.path(rootResourcePath).path(org.camunda.bpm.engine.rest.ProcessInstanceRestService_Fields.PATH).path(instance.Id).build(); result.addReflexiveLink(uri, HttpMethod.GET, "self"); return(result); }
public virtual IList <ProcessInstanceDto> evaluateCondition(EvaluationConditionDto conditionDto) { if (!string.ReferenceEquals(conditionDto.TenantId, null) && conditionDto.WithoutTenantId) { throw new InvalidRequestException(Status.BAD_REQUEST, "Parameter 'tenantId' cannot be used together with parameter 'withoutTenantId'."); } ConditionEvaluationBuilder builder = createConditionEvaluationBuilder(conditionDto); IList <ProcessInstance> processInstances = builder.evaluateStartConditions(); IList <ProcessInstanceDto> result = new List <ProcessInstanceDto>(); foreach (ProcessInstance processInstance in processInstances) { result.Add(ProcessInstanceDto.fromProcessInstance(processInstance)); } return(result); }
public static MessageCorrelationResultWithVariableDto fromMessageCorrelationResultWithVariables(MessageCorrelationResultWithVariables result) { MessageCorrelationResultWithVariableDto dto = new MessageCorrelationResultWithVariableDto(); if (result != null) { dto.ResultType = result.ResultType; if (result.ProcessInstance != null) { dto.ProcessInstance = ProcessInstanceDto.fromProcessInstance(result.ProcessInstance); } else if (result.Execution != null) { dto.Execution = ExecutionDto.fromExecution(result.Execution); } dto.variables = VariableValueDto.fromMap(result.Variables, true); } return(dto); }
public virtual ProcessInstanceDto startProcessInstance(UriInfo context, StartProcessInstanceDto parameters) { ProcessInstanceWithVariables instance = null; try { instance = startProcessInstanceAtActivities(parameters); } catch (AuthorizationException e) { throw e; } catch (ProcessEngineException e) { string errorMessage = string.Format("Cannot instantiate process definition {0}: {1}", processDefinitionId, e.Message); throw new RestException(Response.Status.INTERNAL_SERVER_ERROR, e, errorMessage); } catch (RestException e) { string errorMessage = string.Format("Cannot instantiate process definition {0}: {1}", processDefinitionId, e.Message); throw new InvalidRequestException(e.Status, e, errorMessage); } ProcessInstanceDto result; if (parameters.WithVariablesInReturn) { result = ProcessInstanceWithVariablesDto.fromProcessInstance(instance); } else { result = ProcessInstanceDto.fromProcessInstance(instance); } URI uri = context.BaseUriBuilder.path(rootResourcePath).path(org.camunda.bpm.engine.rest.ProcessInstanceRestService_Fields.PATH).path(instance.Id).build(); result.addReflexiveLink(uri, HttpMethod.GET, "self"); return(result); }