コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
 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();
 }
コード例 #6
0
        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));
        }
コード例 #7
0
        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));
        }
コード例 #8
0
 public ProcessCallActivityClientTest()
 {
     client = ctx.CreateWorkflowHttpProxy().GetProcessInstanceClient();
 }
コード例 #9
0
 public ProcessInstanceVariableClientTest()
 {
     client = ctx.CreateWorkflowHttpProxy().GetProcessInstanceClient();
 }