public async Task <ProcessInstance[]> StartAsync(string bpmnFile, string[] users, IDictionary <string, object> variables = null, string bpmnName = null) { IProcessInstanceController client = CreateWorkflowHttpProxy().GetProcessInstanceClient(); Deployment dep = await DeployAsync(bpmnFile, bpmnName).ConfigureAwait(false); StartProcessInstanceCmd[] cmds = new StartProcessInstanceCmd[users.Length]; for (int idx = 0; idx < users.Length; idx++) { var user = users[idx]; var vars = new Dictionary <string, object>(variables ?? new Dictionary <string, object>()) { { "name", new string[] { user } } }; StartProcessInstanceCmd cmd = new StartProcessInstanceCmd() { ProcessName = dep.Name, Variables = vars, TenantId = TenantId }; cmds[idx] = cmd; } ProcessInstance[] instances = await client.Start(cmds).ConfigureAwait(false); return(instances); }
public void Remove_删除部署的流程_如果当前流程已存在实例则抛出异常_否则删除(string bpmnFile) { var ex = Record.Exception(() => { string bpmnName = string.Join("", ctx.Guid2IntString(Guid.NewGuid())); Deployment deployment = AsyncHelper.RunSync <Deployment>(() => ctx.DeployAsync(bpmnFile, bpmnName)); IProcessInstanceController instanceController = ctx.CreateWorkflowHttpProxy().GetProcessInstanceClient(); StartProcessInstanceCmd cmd = new StartProcessInstanceCmd { ProcessName = bpmnName, TenantId = ctx.TenantId, Variables = new Dictionary <string, object> { { "name", new string[] { "用户1" } } }, }; ProcessInstance[] instances = AsyncHelper.RunSync <ProcessInstance[]>(() => instanceController.Start(new StartProcessInstanceCmd[] { cmd })); Assert.True(instances.Length > 0); IProcessDefinitionDeployerController deployerController = ctx.CreateWorkflowHttpProxy().GetDefinitionDeployerClient(); AsyncHelper.RunSync(() => deployerController.Remove(deployment.Id)); }); Assert.NotNull(ex); Assert.IsType <Http400Exception>(ex); }
public Task <ProcessInstance[]> StartUseFile(string bpmnFile, string[] users, IDictionary <string, object> variables = null, string businessKey = null) { IProcessInstanceController client = CreateWorkflowHttpProxy().GetProcessInstanceClient(); string processDefinitionId = GetOrAddProcessDefinition(bpmnFile).Id; var vars = new Dictionary <string, object>(variables ?? new Dictionary <string, object>()); if (users is object) { vars.TryAdd("name", users); } StartProcessInstanceCmd cmd = new StartProcessInstanceCmd() { ProcessDefinitionId = processDefinitionId, Variables = vars, BusinessKey = businessKey, TenantId = TenantId }; StartProcessInstanceCmd[] cmds = new StartProcessInstanceCmd[] { cmd }; return(client.Start(cmds)); }
public ProcessInstance[] Start(string bpmnFile, string[] users, IDictionary <string, object> variables = null) { IProcessInstanceController client = CreateWorkflowHttpProxy().GetProcessInstanceClient(); string bpmnName = string.Join("", Guid2IntString(Guid.NewGuid())); Deployment dep = Deploy(bpmnFile, bpmnName); StartProcessInstanceCmd[] cmds = new StartProcessInstanceCmd[users.Length]; for (int idx = 0; idx < users.Length; idx++) { var user = users[idx]; var vars = new Dictionary <string, object>(variables ?? new Dictionary <string, object>()); vars.Add("name", new string[] { user }); StartProcessInstanceCmd cmd = new StartProcessInstanceCmd() { ProcessName = bpmnName, Variables = vars, TenantId = TenantId }; cmds[idx] = cmd; } ProcessInstance[] instances = client.Start(cmds).GetAwaiter().GetResult(); return(instances); }
public WorkflowClientController(WorkflowHttpClientProxyProvider workflowHttpClientProxy, IAccessTokenProvider accessToken, IHttpContextAccessor httpContextAccessor) { httpContext = httpContextAccessor.HttpContext; this.accessToken = accessToken; processInstanceClient = workflowHttpClientProxy.GetProcessInstanceClient(); taskClient = workflowHttpClientProxy.GetTaskClient(); taskAdminClient = workflowHttpClientProxy.GetTaskAdminClient(); deployerClient = workflowHttpClientProxy.GetDefinitionDeployerClient(); processDefinitionClient = workflowHttpClientProxy.GetProcessDefinitionClient(); processInstanceTaskClient = workflowHttpClientProxy.GetProcessInstanceTasksClient(); }
public Task <ProcessInstance[]> StartUseFile(ProcessDefinition process, IDictionary <string, object> variables = null) { IProcessInstanceController client = CreateWorkflowHttpProxy().GetProcessInstanceClient(); var vars = new Dictionary <string, object>(variables ?? new Dictionary <string, object>()); StartProcessInstanceCmd cmd = new StartProcessInstanceCmd() { ProcessDefinitionId = process.Id, Variables = vars, TenantId = TenantId }; StartProcessInstanceCmd[] cmds = new StartProcessInstanceCmd[] { cmd }; return(client.Start(cmds)); }
public Task <ProcessInstance[]> Start(IProcessInstanceController client, string bpmnFile, string[] users) { string bpmnName = string.Join("", ctx.Guid2IntString(Guid.NewGuid())); ctx.Deploy(bpmnFile, bpmnName); var vars = new Dictionary <string, object> { { "name", users } }; StartProcessInstanceCmd cmd = new StartProcessInstanceCmd() { ProcessName = bpmnName, Variables = vars, TenantId = ctx.TenantId }; StartProcessInstanceCmd[] cmds = new StartProcessInstanceCmd[] { cmd }; return(client.Start(cmds)); }
public ProcessCallActivityClientTest() { client = ctx.CreateWorkflowHttpProxy().GetProcessInstanceClient(); }
public ProcessInstanceVariableClientTest() { client = ctx.CreateWorkflowHttpProxy().GetProcessInstanceClient(); }