/// <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); }
/// <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); }
/// <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); }