示例#1
0
        /// <summary>
        /// 生成启动流程的Task
        /// </summary>
        /// <returns></returns>
        public InvokeServiceTask ToStartWorkflowTask()
        {
            InvokeServiceTask task = new InvokeServiceTask();

            task.TaskID     = UuidHelper.NewUuidString();
            task.ResourceID = this.ProcessID;
            task.TaskTitle  = string.Format("启动\"{0}\"", this.ProcessName);

            task.SvcOperationDefs.Add(new WfServiceOperationDefinition("StartProcess", string.Empty).
                                      SetAddress(WfServiceRequestMethod.Post, UriSettings.GetConfig().CheckAndGet("wfPlatformService", "txProcessService").ToString(), WfServiceContentType.Json).
                                      AddParameter("srcConnectionName", this.ConnectionName).AddParameter("processID", this.ProcessID));

            task.FillData();

            return(task);
        }
        /// <summary>
        /// 为待办url增加重定向器,用于解决认证后,不能重定向带#的url问题
        /// </summary>
        /// <param name="taskUrl"></param>
        /// <returns></returns>
        private static string AddRedirector(string taskUrl)
        {
            string result = taskUrl;

            Uri redirector = UriSettings.GetConfig().GetUrl("wfPlatformService", "taskRedirector");

            if (redirector != null)
            {
                NameValueCollection parameters = new NameValueCollection();

                parameters.Add("rd", taskUrl);

                result = UriHelper.CombineUrlParams(redirector.ToString(), parameters);
            }

            return(result);
        }
示例#3
0
        /// <summary>
        /// 生成同步并且执行活动的Task
        /// </summary>
        /// <returns></returns>
        public InvokeServiceTask ToSyncAndExecuteActivityTask()
        {
            this.PreviousActivity.NullCheck("流程当前活动为空。流程尚未启动或者已经完成");

            InvokeServiceTask task = new InvokeServiceTask();

            task.TaskID     = UuidHelper.NewUuidString();
            task.ResourceID = this.ProcessID;
            task.TaskTitle  = string.Format("流转\"{0}\"中的活动\"{1}\"", this.ProcessName, this.PreviousActivity.ActivityName);

            task.SvcOperationDefs.Add(new WfServiceOperationDefinition("SyncAndExecuteActivity", string.Empty).
                                      SetAddress(WfServiceRequestMethod.Post, UriSettings.GetConfig().CheckAndGet("wfPlatformService", "txProcessService").ToString(), WfServiceContentType.Json).
                                      AddParameter("srcConnectionName", this.ConnectionName).AddParameter("processID", this.ProcessID));

            task.FillData();

            return(task);
        }
示例#4
0
        /// <summary>
        /// 生成同步并且执行活动的Task
        /// </summary>
        /// <returns></returns>
        public InvokeServiceTask ToSyncAndRollbackActivityTask()
        {
            InvokeServiceTask task = new InvokeServiceTask();

            task.TaskID     = UuidHelper.NewUuidString();
            task.ResourceID = this.ProcessID;

            if (this.CurrentActivity != null)
            {
                task.TaskTitle = string.Format("回滚\"{0}\"中的活动\"{1}\"", this.ProcessName, this.CurrentActivity.ActivityName);
            }
            else
            {
                task.TaskTitle = string.Format("回滚\"{0}\"完成", this.ProcessName);
            }

            task.SvcOperationDefs.Add(new WfServiceOperationDefinition("SyncAndRollbackActivity", string.Empty).
                                      SetAddress(WfServiceRequestMethod.Post, UriSettings.GetConfig().CheckAndGet("wfPlatformService", "txProcessService").ToString(), WfServiceContentType.Json).
                                      AddParameter("srcConnectionName", this.ConnectionName).AddParameter("processID", this.ProcessID));

            task.FillData();

            return(task);
        }