private void StartWorkflow() { WfProcessStartupParams startupParams = GenerateStartupParams(); WfStartWorkflowExecutor executor = new WfStartWorkflowExecutor(null, startupParams); executor.Execute(); }
public WfClientProcessStartupParams ServerToClient(WfProcessStartupParams server, ref WfClientProcessStartupParams client) { server.NullCheck("server"); if (client == null) client = new WfClientProcessStartupParams(); if (server.ProcessDescriptor != null) client.ProcessDescriptorKey = server.ProcessDescriptor.Key; WfClientDictionaryConverter.Instance.ServerToClient(server.ApplicationRuntimeParameters, client.ApplicationRuntimeParameters); client.AutoCommit = server.AutoCommit; client.AutoStartInitialActivity = server.AutoStartInitialActivity; client.CheckStartProcessUserPermission = server.CheckStartProcessUserPermission; client.DefaultTaskTitle = server.DefaultTaskTitle; client.DefaultUrl = server.DefaultUrl; client.RelativeID = server.RelativeID; client.RelativeURL = server.RelativeURL; client.ResourceID = server.ResourceID; client.RuntimeProcessName = server.RuntimeProcessName; client.Creator = (WfClientUser)server.Creator.ToClientOguObject(); client.Department = (WfClientOrganization)server.Department.ToClientOguObject(); WfClientAssigneeCollectionConverter.Instance.ServerToClient(server.Assignees, client.Assignees); return client; }
public void ProcessWithMatrix() { try { var wfDescriptor = WfProcessDescriptorManager.GetDescriptor("workflowmatrixtest"); WfProcessStartupParams startParam = new WfProcessStartupParams(); startParam.ProcessDescriptor = wfDescriptor; var processInstance = WfRuntime.StartWorkflow(startParam); processInstance.ApplicationRuntimeParameters.Add("支付方式", "网银"); processInstance.ApplicationRuntimeParameters.Add("成本中心", "成1"); processInstance.ApplicationRuntimeParameters.Add("费用类型", "差旅费"); processInstance.ApplicationRuntimeParameters.Add("金额", "100"); processInstance.ApplicationRuntimeParameters.Add("部门", "商务部"); WfTransferParams transferParams = new WfTransferParams(processInstance.Descriptor.Activities["N2"]); var currentAct = processInstance.MoveTo(transferParams); currentAct.Candidates.ForEach(p => { Console.WriteLine(p.User.DisplayName); }); } catch { } }
public void ReturnTestWithBranchActivity() { IWfProcessDescriptor desp = WfProcessTestCommon.CreateProcessDescriptor(); desp.InitialActivity.Resources.Add(new WfUserResourceDescriptor((IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object)); GetProcDespWithBranchActivities(desp.Activities[1], 2); WfProcessStartupParams startupParams = WfProcessTestCommon.GetInstanceOfWfProcessStartupParams(desp); IWfProcess process = WfRuntime.StartWorkflow(startupParams); ProcessTestHelper.MoveToAndSaveNextActivityWithDefSelectTranstion(OguObject.approver1, process); process = WfRuntime.GetProcessByProcessID(process.ID); ProcessTestHelper.MoveToAndSaveNextActivityWithDefSelectTranstion(OguObject.approver2, process); process = WfRuntime.GetProcessByProcessID(process.ID); Assert.AreEqual(2, process.ElapsedActivities.Count); WfRuntime.ProcessContext.ActivityChangingContext.CreatorInstanceID = process.CurrentActivity.ID; process.CurrentActivity.CopyMainStreamActivities(process.Activities[1], null, WfControlOperationType.Return); //退件 ProcessTestHelper.MoveToAndSaveNextActivityWithDefSelectTranstion(OguObject.requestor, process); process = WfRuntime.GetProcessByProcessID(process.ID); Assert.IsTrue(process.CurrentActivity.CreatorInstanceID.IsNotEmpty()); Assert.AreEqual(process.ElapsedActivities[2].ID, process.CurrentActivity.CreatorInstanceID); Assert.AreEqual(10, process.Activities.Count); }
public void MainStreamActivitiesWithConditionActivityPassed() { IWfProcessDescriptor desp = WfProcessTestCommon.CreateProcessDescriptor(); desp.InitialActivity.Resources.Add(new WfUserResourceDescriptor((IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object)); IWfActivityDescriptor actDesp = desp.Activities[1]; AddActivitiesDespToSameActivityDesp(actDesp, 2); ToTransitionsDescriptorCollection transDespColl = actDesp.ToTransitions; SetTransitionCondition(transDespColl[0], false, 1); SetTransitionCondition(transDespColl[1], true, 3); WfProcessStartupParams startupParams = WfProcessTestCommon.GetInstanceOfWfProcessStartupParams(desp); IWfProcess process = WfRuntime.StartWorkflow(startupParams); ProcessTestHelper.MoveToAndSaveNextActivityWithDefSelectTranstion(OguObject.approver1, process); process = WfRuntime.GetProcessByProcessID(process.ID); ProcessTestHelper.MoveToAndSaveNextActivityWithDefSelectTranstion(OguObject.approver2, process); process = WfRuntime.GetProcessByProcessID(process.ID); ProcessTestHelper.MoveToAndSaveNextActivityWithDefSelectTranstion(OguObject.requestor, process); process = WfRuntime.GetProcessByProcessID(process.ID); Assert.AreEqual(3, process.ElapsedActivities.Count); WfMainStreamActivityDescriptorCollection coll = process.Descriptor.GetMainStreamActivities(); Assert.AreEqual(process.Activities.Count - 1, coll.Count); Assert.AreEqual(transDespColl[1].ToActivity.Key, coll[2].Activity.Key, "此处为动态添加的活动"); }
public void ActivitySerializeTest() { IWfProcessDescriptor processDesc = WfProcessTestCommon.CreateSimpleProcessDescriptor(); WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ProcessDescriptor = processDesc; IWfProcess process = WfRuntime.StartWorkflow(startupParams); Sky sky = new Sky(); sky.air = "清新"; sky.Cloud = 1; Sky space = new Sky(); space.air = "干净"; space.Cloud = 1; process.InitialActivity.Context.Add("DDO", sky); process.InitialActivity.Context.Add("DFO", space); XElementFormatter formatter = new XElementFormatter(); XElement root = formatter.Serialize(process); Console.WriteLine(root.ToString()); IWfProcess clonedProcess = (IWfProcess)formatter.Deserialize(root); Assert.IsNotNull(clonedProcess.InitialActivity.Context["DDO"]); Assert.AreEqual(process.InitialActivity.Context.Count, clonedProcess.InitialActivity.Context.Count); Assert.AreEqual(((Sky)process.InitialActivity.Context["DDO"]).air, ((Sky)clonedProcess.InitialActivity.Context["DDO"]).air); Assert.AreEqual(((Sky)process.InitialActivity.Context["DDO"]).Cloud, ((Sky)clonedProcess.InitialActivity.Context["DDO"]).Cloud); Assert.AreEqual(((Sky)process.InitialActivity.Context["DFO"]).air, ((Sky)clonedProcess.InitialActivity.Context["DFO"]).air); Assert.AreEqual(((Sky)process.InitialActivity.Context["DFO"]).Cloud, ((Sky)clonedProcess.InitialActivity.Context["DFO"]).Cloud); }
public void ProcessSerializeTest() { IWfProcessDescriptor processDesc = WfProcessTestCommon.CreateSimpleProcessDescriptor(); WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ProcessDescriptor = processDesc; IWfProcess process = WfRuntime.StartWorkflow(startupParams); ((WfProcess)process).ResourceID = UuidHelper.NewUuidString(); WfProcessContext context = process.Context; context.Add("UCC", "the same"); XElementFormatter formatter = new XElementFormatter(); //formatter.OutputShortType = false; XElement root = formatter.Serialize(process); Console.WriteLine(root.ToString()); IWfProcess clonedProcess = (IWfProcess)formatter.Deserialize(root); Assert.IsNotNull(clonedProcess.Context["UCC"]); Assert.AreEqual(process.Context.Count, clonedProcess.Context.Count); Assert.AreEqual(process.Context["UCC"], clonedProcess.Context["UCC"]); }
private static IWfProcess StartNewProcess(IWfProcessDescriptor processDesp, IWfProcess originalProcess, string newResourceID, IUser processCreator, IOrganization department) { WfProcessStartupParams wp = new WfProcessStartupParams(processDesp); IWfProcess process = WfRuntime.StartWorkflow(typeof(OAWfProcess), wp); process.OwnerDepartment = department; WfTransferParams tParams = new WfTransferParams(wp.Descriptor.InitialActivity); tParams.Operator = DeluxeIdentity.CurrentUser; tParams.Receivers.Add(processCreator); process.MoveTo(tParams); process.Context["ApplicationName"] = originalProcess.Context["ApplicationName"]; process.Context["ProgramName"] = originalProcess.Context["ProgramName"]; ((OAWfProcess)process).ResourceID = newResourceID; process.Context[WfVariableDefine.ProcessDraftDepartmentNameVariableName] = WfVariableDefine.GetProcessDraftDepartmentName(originalProcess); process.Context[WfVariableDefine.ProcessDraftUserIDVariableName] = WfVariableDefine.GetProcessDraftUserID(originalProcess); process.Context[WfVariableDefine.ProcessDraftUserNameVariableName] = WfVariableDefine.GetProcessDraftUserName(originalProcess); return(process); }
public void WfExternalUserTest() { WfExternalUser externalUser = new WfExternalUser(); externalUser.Key = "user0"; externalUser.Name = "zLing"; externalUser.Gender = Gender.Female; externalUser.Email = "*****@*****.**"; externalUser.MobilePhone = "13552630000"; externalUser.Phone = "0409987"; externalUser.Title = "programer"; IWfProcessDescriptor processDesc = WfProcessTestCommon.CreateSimpleProcessDescriptor(); processDesc.ExternalUsers.Add(externalUser); WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ProcessDescriptor = processDesc; IWfProcess process = WfRuntime.StartWorkflow(startupParams); XElementFormatter formatter = new XElementFormatter(); XElement rootProc = formatter.Serialize(process); IWfProcess clonedProcess = (IWfProcess)formatter.Deserialize(rootProc); XElement resultProc = formatter.Serialize(clonedProcess); Assert.AreEqual(processDesc.ExternalUsers[0].Name, clonedProcess.Descriptor.ExternalUsers[0].Name); Assert.AreEqual(processDesc.ExternalUsers[0].Gender, clonedProcess.Descriptor.ExternalUsers[0].Gender); Assert.AreEqual(rootProc.ToString(), resultProc.ToString()); }
/// <summary> /// /// </summary> /// <param name="processType"></param> /// <param name="startupParams"></param> /// <returns></returns> public static IWfProcess StartWorkflow(System.Type processType, WfProcessStartupParams startupParams) { ExceptionHelper.FalseThrow<ArgumentNullException>(processType != null, "processType"); ExceptionHelper.FalseThrow<ArgumentNullException>(startupParams != null, "startupParams"); IWfProcess process = (IWfProcess)Activator.CreateInstance(processType, true); Type[] types = new Type[] { }; ConstructorInfo constructorInfoObj = process.GetType().GetConstructor( BindingFlags.Instance | BindingFlags.Public, null, CallingConventions.HasThis, types, null); if (constructorInfoObj != null) process = (IWfProcess)constructorInfoObj.Invoke(new object[] { }); process.Creator = startupParams.Operator; process.OwnerDepartment = startupParams.Department; process.ResourceID = startupParams.ResourceID; WorkflowSettings.GetConfig().EnqueueWorkItemExecutor.EnqueueInitialWfWorkItem(process); AddProcessToCache(process.ID, process); return process; }
public WfProcessStartupParams ClientToServer(WfClientProcessStartupParams client, ref WfProcessStartupParams server) { client.NullCheck("client"); if (server == null) server = new WfProcessStartupParams(); if (this._TestMode == false) server.ProcessDescriptor = WfProcessDescriptorManager.GetDescriptor(client.ProcessDescriptorKey); WfClientDictionaryConverter.Instance.ClientToServer(client.ApplicationRuntimeParameters, server.ApplicationRuntimeParameters); server.AutoCommit = client.AutoCommit; server.AutoStartInitialActivity = client.AutoStartInitialActivity; server.CheckStartProcessUserPermission = client.CheckStartProcessUserPermission; server.DefaultTaskTitle = client.DefaultTaskTitle; server.DefaultUrl = client.DefaultUrl; server.RelativeID = client.RelativeID; server.RelativeURL = client.RelativeURL; server.ResourceID = client.ResourceID; server.RuntimeProcessName = client.RuntimeProcessName; server.Creator = (IUser)client.Creator.ToOguObject(); server.Department = (IOrganization)client.Department.ToOguObject(); WfClientAssigneeCollectionConverter.Instance.ClientToServer(client.Assignees, server.Assignees); return server; }
public WfClientProcessStartupParams ServerToClient(WfProcessStartupParams server, ref WfClientProcessStartupParams client) { server.NullCheck("server"); if (client == null) { client = new WfClientProcessStartupParams(); } if (server.ProcessDescriptor != null) { client.ProcessDescriptorKey = server.ProcessDescriptor.Key; } WfClientDictionaryConverter.Instance.ServerToClient(server.ApplicationRuntimeParameters, client.ApplicationRuntimeParameters); WfClientDictionaryConverter.Instance.ServerToClient(server.OverridableInitialActivityProperties, client.OverridableInitialActivityProperties); client.AutoCommit = server.AutoCommit; client.AutoStartInitialActivity = server.AutoStartInitialActivity; client.CheckStartProcessUserPermission = server.CheckStartProcessUserPermission; client.DefaultTaskTitle = server.DefaultTaskTitle; client.DefaultUrl = server.DefaultUrl; client.RelativeID = server.RelativeID; client.RelativeURL = server.RelativeURL; client.ResourceID = server.ResourceID; client.RuntimeProcessName = server.RuntimeProcessName; client.Creator = (WfClientUser)server.Creator.ToClientOguObject(); client.Department = (WfClientOrganization)server.Department.ToClientOguObject(); WfClientAssigneeCollectionConverter.Instance.ServerToClient(server.Assignees, client.Assignees); return(client); }
public WfProcessStartupParams ClientToServer(WfClientProcessStartupParams client, ref WfProcessStartupParams server) { client.NullCheck("client"); if (server == null) { server = new WfProcessStartupParams(); } if (this._TestMode == false) { server.ProcessDescriptor = WfProcessDescriptorManager.GetDescriptor(client.ProcessDescriptorKey); } WfClientDictionaryConverter.Instance.ClientToServer(client.ApplicationRuntimeParameters, server.ApplicationRuntimeParameters); WfClientDictionaryConverter.Instance.ClientToServer(client.OverridableInitialActivityProperties, server.OverridableInitialActivityProperties); server.AutoCommit = client.AutoCommit; server.AutoStartInitialActivity = client.AutoStartInitialActivity; server.CheckStartProcessUserPermission = client.CheckStartProcessUserPermission; server.DefaultTaskTitle = client.DefaultTaskTitle; server.DefaultUrl = client.DefaultUrl; server.RelativeID = client.RelativeID; server.RelativeURL = client.RelativeURL; server.ResourceID = client.ResourceID; server.RuntimeProcessName = client.RuntimeProcessName; server.Creator = (IUser)client.Creator.ToOguObject(); server.Department = (IOrganization)client.Department.ToOguObject(); WfClientAssigneeCollectionConverter.Instance.ClientToServer(client.Assignees, server.Assignees); return(server); }
/// <summary> /// 带上下文参数的启动流程 /// </summary> /// <param name="processDesp"></param> /// <returns></returns> public static IWfProcess StartupProcessByExecutor(this IWfProcessDescriptor processDesp, Dictionary <string, object> runtimeParameters = null) { WfProcessStartupParams startupParams = processDesp.PrepareStartupParams(runtimeParameters); WfStartWorkflowExecutor executor = new WfStartWorkflowExecutor(startupParams); return(executor.Execute()); }
public static IWfProcess StartSpecialReturnProcess(IWfProcessDescriptor processDesp) { WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ProcessDescriptor = processDesp; startupParams.ApplicationRuntimeParameters["IsCLine"] = true; return(WfRuntime.StartWorkflow(startupParams)); }
public void StandardStartupParamsClientToServer() { WfClientProcessStartupParams client = ProcessRuntimeHelper.PrepareClientProcessStartupParams(UuidHelper.NewUuidString()); WfProcessStartupParams server = null; WfClientProcessStartupParamsConverter.TestInstance.ClientToServer(client, ref server); client.AreSame(server); }
public static IWfProcess StartupSimpleProcessDescriptorWithTransitionCondition() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptorWithCondition(); processDesp.InitialActivity.Resources.Add(new WfUserResourceDescriptor((IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object)); WfProcessStartupParams startupParams = GetInstanceOfWfProcessStartupParams(processDesp); return(WfRuntime.StartWorkflow(startupParams)); }
public static IWfProcess CreateFreeStepsProcessInstance(params IUser[] stepUsers) { IWfProcessDescriptor processDesp = CreateFreeStepsProcess(stepUsers); WfProcessStartupParams startupParams = GetInstanceOfWfProcessStartupParams(processDesp); IWfProcess process = WfRuntime.StartWorkflow(startupParams); process.Context["Context"] = "This is a context"; return(process); }
public static IWfProcess CreateProcessInstance(WfClientProcessDescriptor client) { WfProcessDescriptor processDesp = null; WfClientProcessDescriptorConverter.Instance.ClientToServer(client, ref processDesp); WfProcessStartupParams startupParams = GetInstanceOfWfProcessStartupParams(processDesp); startupParams.ApplicationRuntimeParameters["CostCenter"] = "1001"; startupParams.ApplicationRuntimeParameters["PayMethod"] = "1"; startupParams.ApplicationRuntimeParameters["Age"] = 30; return(WfRuntime.StartWorkflow(startupParams)); }
public static IWfProcess StartupSimpleProcess() { ProcessContextAction(); IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ResourceID = UuidHelper.NewUuidString(); startupParams.ProcessDescriptor = processDesp; return(WfRuntime.StartWorkflow(startupParams)); }
public static IWfProcess StartupProcess(IWfProcessDescriptor processDesp, Dictionary <string, object> runtimeParameters) { ProcessContextAction(); WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ResourceID = UuidHelper.NewUuidString(); startupParams.ProcessDescriptor = processDesp; runtimeParameters.ForEach(kp => startupParams.ApplicationRuntimeParameters.Add(kp.Key, kp.Value)); return(WfRuntime.StartWorkflow(startupParams)); }
public WfClientProcessInfo StartWorkflow(WfClientProcessStartupParams clientStartupParams) { if (clientStartupParams == null) { throw new ApplicationException(Translator.Translate(Define.DefaultCulture, "流程的启动参数不能为空")); } //设置标准参数,优先使用外部参数 if (!clientStartupParams.ApplicationRuntimeParameters.ContainsKey("ProcessRequestor")) { clientStartupParams.ApplicationRuntimeParameters["ProcessRequestor"] = clientStartupParams.Creator; } OperationContext.Current.FillContextToOguServiceContext(); WfProcessStartupParams startupParams = null; WfClientProcessStartupParamsConverter.Instance.ClientToServer(clientStartupParams, ref startupParams); IWfProcess process = null; DoPrincipalAction(startupParams.Creator, () => { WfStartWorkflowExecutor executor = new WfStartWorkflowExecutor(startupParams); executor.AfterModifyWorkflow += (dataContext => { dataContext.CurrentProcess.GenerateCandidatesFromResources(); clientStartupParams.ProcessContext.ForEach(kp => dataContext.CurrentProcess.Context[kp.Key] = kp.Value); WfClientProcessInfoBaseConverter.Instance.FillOpinionInfoByProcessByActivity( clientStartupParams.Opinion, dataContext.CurrentProcess.CurrentActivity, clientStartupParams.Creator, clientStartupParams.Creator); }); executor.SaveApplicationData += (dataContext) => SaveOpinion(clientStartupParams.Opinion); if (clientStartupParams.AutoPersist) { process = executor.Execute(); } else { process = executor.ExecuteNotPersist(); } }); return(process.ToClientProcessInfo(clientStartupParams.Creator).FillCurrentOpinion(process.CurrentActivity, clientStartupParams.Creator)); }
private static IWfProcess PrepareProcess() { WfClientUser[] users = new WfClientUser[] { Consts.Users["Requestor"] }; IWfProcessDescriptor processDesp = ProcessHelper.CreateFreeStepsProcess(users.ToOguObjects <WfClientUser, IUser>().ToArray()); WfProcessStartupParams startupParams = ProcessHelper.GetInstanceOfWfProcessStartupParams(processDesp); IWfProcess process = WfRuntime.StartWorkflow(startupParams); WfRuntime.PersistWorkflows(); return(process); }
private static string GetStartWorkflowResourceID(IUser user) { IWfProcessDescriptor procDesp = WfProcessTestCommon.CreateProcessDescriptor(); WfUserResourceDescriptor userDesp = new WfUserResourceDescriptor(user); procDesp.InitialActivity.Resources.Add(userDesp); WfProcessStartupParams startParams = WfProcessTestCommon.GetInstanceOfWfProcessStartupParams(procDesp); WfStartWorkflowExecutor exec = new WfStartWorkflowExecutor(null, startParams); exec.Execute(); return(startParams.ResourceID); }
public static IWfProcess StartupSimpleProcessDescriptorWithActivityCondition() { IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptorWithCondition(); processDesp.InitialActivity.Resources.Add(new WfUserResourceDescriptor((IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object)); processDesp.Activities["NormalActivity"].Condition.Expression = "Amount >= 5000"; WfProcessStartupParams startupParams = GetInstanceOfWfProcessStartupParams(processDesp); startupParams.DefaultTaskTitle = "测试流程节点带条件"; return(WfRuntime.StartWorkflow(startupParams)); }
public static WfProcessStartupParams PrepareStartupParams(this IWfProcessDescriptor processDesp, Dictionary <string, object> runtimeParameters = null) { WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ResourceID = UuidHelper.NewUuidString(); startupParams.ProcessDescriptor = processDesp; startupParams.Assignees.Add(OguObjectSettings.GetConfig().Objects["admin"].User); if (runtimeParameters != null) { runtimeParameters.ForEach(kp => startupParams.ApplicationRuntimeParameters.Add(kp.Key, kp.Value)); } return(startupParams); }
public void AddApproverExecutorTest() { //Initial NormalActivity NormalActivity1 NormalActivity2 NormalActivity3 Completed IUser user = (IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object; IWfProcessDescriptor procDesp = WfProcessTestCommon.CreateProcessDescriptor(); WfUserResourceDescriptor userDesp = new WfUserResourceDescriptor(user); procDesp.InitialActivity.Resources.Add(userDesp); WfProcessStartupParams startParams = WfProcessTestCommon.GetInstanceOfWfProcessStartupParams(procDesp); WfStartWorkflowExecutor exec = new WfStartWorkflowExecutor(null, startParams); IWfProcess proc = exec.Execute(); //启动流程 IWfProcess wfp = WfRuntime.GetProcessByProcessID(proc.ID); MoveToExecutor(wfp); //流转一步 ,即第2个节点 IWfProcess p = WfRuntime.GetProcessByProcessID(proc.ID); WfAssigneeCollection assignees = new WfAssigneeCollection(); assignees.Add((IUser)OguObjectSettings.GetConfig().Objects[OguObject.approver1.ToString()].Object); WfAddApproverExecutor addExec = new WfAddApproverExecutor(p.CurrentActivity, p.CurrentActivity, assignees); addExec.Execute(); //加签,即流转到加签点上 IWfProcess process = WfRuntime.GetProcessByProcessID(p.ID); Assert.AreEqual(process.Descriptor.GetMainStreamActivities().Count, process.Activities.Count - 2, "动态添加两个活动,因被加签人要回到加签人"); Assert.AreEqual(2, process.ElapsedActivities.Count); Assert.IsTrue(ProcessTestHelper.ExistsActivityUserTasks(process.CurrentActivity.ID, TaskStatus.Ban)); Assert.IsTrue(process.CurrentActivity.Descriptor.ToTransitions.Count == 1); Assert.IsNotNull(process.CurrentActivity.Descriptor.ToTransitions[0].ToActivity); IWfProcess wfProcess9 = WfRuntime.GetProcessByProcessID(process.ID); WfWithdrawExecutor withdrawExec = new WfWithdrawExecutor(wfProcess9.CurrentActivity, wfProcess9.CurrentActivity); withdrawExec.Execute(); IWfProcess wfProcess1 = WfRuntime.GetProcessByProcessID(wfProcess9.ID); Assert.AreEqual(wfProcess1.Activities.Count, wfProcess1.Descriptor.GetMainStreamActivities().Count, "此处应该撤回到加签的活动点上,同时被加签的两个点都应该移除"); Assert.AreEqual(1, wfProcess1.ElapsedActivities.Count); Assert.IsTrue(ProcessTestHelper.ExistsActivityUserTasks(wfProcess1.CurrentActivity.ID, TaskStatus.Ban)); Assert.IsTrue(wfProcess1.CurrentActivity.Descriptor.ToTransitions.Count == 1); }
public static List <IWfProcess> StartupMultiProcesses(IWfProcessDescriptor processDesp, int totalProcesses) { List <IWfProcess> processes = new List <IWfProcess>(); //准备流程实例 for (int i = 0; i < totalProcesses; i++) { WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ProcessDescriptor = processDesp; IWfProcess process = WfRuntime.StartWorkflow(startupParams); processes.Add(process); } return(processes); }
public static WfProcessStartupParams GetInstanceOfWfProcessStartupParams(IWfProcessDescriptor procDesp) { WfProcessStartupParams startupParams = new WfProcessStartupParams(); IUser requestor = (IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object; startupParams.Creator = requestor; startupParams.Department = requestor.TopOU; startupParams.Assignees.Add(new WfAssignee(requestor)); startupParams.ResourceID = UuidHelper.NewUuidString(); startupParams.DefaultTaskTitle = "测试保存的流程"; startupParams.ProcessDescriptor = procDesp; startupParams.AutoCommit = true; return(startupParams); }
public static IWfProcess StartupSimpleProcessWithAssignee() { ProcessContextAction(); IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); processDesp.InitialActivity.Resources.Add(new WfUserResourceDescriptor((IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object)); WfProcessStartupParams startupParams = GetInstanceOfWfProcessStartupParams(processDesp); IWfProcess process = WfRuntime.StartWorkflow(startupParams); process.ApplicationRuntimeParameters["CostCenter"] = "1001"; process.ApplicationRuntimeParameters["Requestor"] = process.Creator; return(process); }
private static WfProcessStartupParams GetInstanceOfWfProcessStartupParams(IWfProcessDescriptor processDesp) { WfProcessStartupParams startupParams = new WfProcessStartupParams(); IUser requestor = OguMechanismFactory.GetMechanism().GetObjects <IUser>(SearchOUIDType.LogOnName, "liumh").First(); startupParams.Creator = requestor; startupParams.Department = requestor.TopOU; startupParams.Assignees.Add(new WfAssignee(requestor)); startupParams.ResourceID = UuidHelper.NewUuidString(); startupParams.DefaultTaskTitle = "测试报销流程"; startupParams.ProcessDescriptor = processDesp; startupParams.AutoCommit = true; return(startupParams); }
private WfProcessStartupParams GenerateStartupParams() { var wfDescriptor = WfProcessDescriptorManager.GetDescriptor(this.ProcessKey); wfDescriptor.InitialActivity.Resources.Add(new WfUserResourceDescriptor(this.Creator)); WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ProcessDescriptor = wfDescriptor; startupParams.Creator = this.Operator; startupParams.Department = this.Operator.TopOU; startupParams.Assignees.Add(this.Operator); startupParams.DefaultTaskTitle = startupParams.ProcessDescriptor.Name; startupParams.ResourceID = UuidHelper.NewUuidString(); startupParams.AutoCommit = true; return(startupParams); }
public static void AreSame(this WfClientProcessStartupParams expected, WfProcessStartupParams actual) { //Assert.AreEqual(expected.ProcessDescriptorKey, actual.ProcessDescriptorKey); Assert.AreEqual(expected.AutoCommit, actual.AutoCommit); Assert.AreEqual(expected.AutoStartInitialActivity, actual.AutoStartInitialActivity); Assert.AreEqual(expected.CheckStartProcessUserPermission, actual.CheckStartProcessUserPermission); Assert.AreEqual(expected.DefaultTaskTitle, actual.DefaultTaskTitle); Assert.AreEqual(expected.DefaultUrl, actual.DefaultUrl); Assert.AreEqual(expected.RelativeID, actual.RelativeID); Assert.AreEqual(expected.RelativeURL, actual.RelativeURL); Assert.AreEqual(expected.ResourceID, actual.ResourceID); Assert.AreEqual(expected.RuntimeProcessName, actual.RuntimeProcessName); expected.Assignees.AreSame(actual.Assignees); expected.Creator.AreSame(actual.Creator); expected.Department.AreSame(actual.Department); expected.ApplicationRuntimeParameters.AreSame(actual.ApplicationRuntimeParameters); }
public static WfProcessStartupParams GetInstanceOfWfProcessStartupParams(IWfProcessDescriptor processDesp) { WfProcessStartupParams startupParams = new WfProcessStartupParams(); IUser requestor = (IUser)Consts.Users["Requestor"].ToOguObject(); startupParams.Creator = requestor; startupParams.Department = requestor.TopOU; startupParams.DefaultUrl = "http://www.sina.com.cn"; startupParams.Assignees.Add(new WfAssignee(requestor)); startupParams.ResourceID = UuidHelper.NewUuidString(); startupParams.DefaultTaskTitle = "测试保存的流程"; startupParams.ProcessDescriptor = processDesp; startupParams.AutoCommit = true; startupParams.ApplicationRuntimeParameters["Amount"] = 1000; startupParams.ApplicationRuntimeParameters["CostCenter"] = "1001"; return startupParams; }
protected IWfProcess CreateBranchProcess(IWfProcessDescriptor descriptor) { WfProcessStartupParams branchProcessStartupParam = new WfProcessStartupParams(descriptor); return WfRuntime.StartWorkflow(this.AnchorActivity.Process.GetType(), branchProcessStartupParam); }
public static WfProcessStartupParams PrepareStartupParams(this IWfProcessDescriptor processDesp, Dictionary<string, object> runtimeParameters = null) { WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ResourceID = UuidHelper.NewUuidString(); startupParams.ProcessDescriptor = processDesp; startupParams.Assignees.Add(OguObjectSettings.GetConfig().Objects["admin"].User); if (runtimeParameters != null) runtimeParameters.ForEach(kp => startupParams.ApplicationRuntimeParameters.Add(kp.Key, kp.Value)); return startupParams; }
/// <summary> /// 启动默认的流程 /// </summary> private void StartDefaultWorkflow() { WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ResourceID = UuidHelper.NewUuidString(); startupParams.ProcessDescriptor = WfProcessDescriptorManager.GetDescriptor(DefaultProcessKey); if (string.IsNullOrEmpty(startupParams.ProcessDescriptor.Url)) startupParams.ProcessDescriptor.Url = WfClientContext.Current.EntryUri.ToString(); if (startupParams.ProcessDescriptor.InitialActivity != null) startupParams.ProcessDescriptor.InitialActivity.Properties.SetValue("AutoSendUserTask", false); startupParams.Department = DeluxeIdentity.CurrentUser.TopOU; startupParams.Assignees.Add(DeluxeIdentity.CurrentUser); WfStartWorkflowExecutor executor = new WfStartWorkflowExecutor(null, startupParams); WfClientContext.Current.Execute(executor); }
private static WfProcessStartupParams GetInstanceOfWfProcessStartupParams(IWfProcessDescriptor processDesp) { WfProcessStartupParams startupParams = new WfProcessStartupParams(); IUser requestor = OguMechanismFactory.GetMechanism().GetObjects<IUser>(SearchOUIDType.LogOnName, "liumh").First(); startupParams.Creator = requestor; startupParams.Department = requestor.TopOU; startupParams.Assignees.Add(new WfAssignee(requestor)); startupParams.ResourceID = UuidHelper.NewUuidString(); startupParams.DefaultTaskTitle = "测试报销流程"; startupParams.ProcessDescriptor = processDesp; startupParams.AutoCommit = true; return startupParams; }
public static List<IWfProcess> StartupMultiProcesses(IWfProcessDescriptor processDesp, int totalProcesses) { List<IWfProcess> processes = new List<IWfProcess>(); //准备流程实例 for (int i = 0; i < totalProcesses; i++) { WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ProcessDescriptor = processDesp; IWfProcess process = WfRuntime.StartWorkflow(startupParams); processes.Add(process); } return processes; }
private static void FillProcessInstanceProperties(WfProcessStartupParams startupParams, WfProcess process) { process.ResourceID = startupParams.ResourceID; process.RelativeParams.CopyFrom(startupParams.RelativeParams); process.RelativeID = startupParams.RelativeID; process.RelativeURL = startupParams.RelativeURL; process.BranchStartupParams = startupParams.BranchStartupParams; process.EntryInfo = startupParams.Group; process.OwnerActivityID = startupParams.OwnerActivityID; process.OwnerTemplateKey = startupParams.OwnerTemplateKey; process.Sequence = startupParams.Sequence; process.ApplicationRuntimeParameters.CopyFrom(startupParams.ApplicationRuntimeParameters); process.Committed = startupParams.AutoCommit; process.OwnerDepartment = startupParams.Department; process.Creator = startupParams.Creator; }
/// <summary> /// 准备流程 /// </summary> private void PrepareProcess() { string returnUrl = Request.QueryString.GetValue("ru", string.Empty); WfProcessDescriptor processDesp = new WfProcessDescriptor(); processDesp.Key = UuidHelper.NewUuidString(); processDesp.Name = "自由流程"; processDesp.ApplicationName = "秘书服务"; processDesp.ProgramName = "部门通知"; processDesp.Url = returnUrl; processDesp.DefaultTaskTitle = "${Subject}$"; WfActivityDescriptor initDesp = new WfActivityDescriptor("Initial", WfActivityType.InitialActivity); initDesp.Name = "起草"; initDesp.CodeName = "Initial Activity"; initDesp.Properties.SetValue("AutoSendUserTask", false); processDesp.Activities.Add(initDesp); processDesp.Activities.Add(PrepareAURelativeActivityDescriptor(processDesp.FindNotUsedActivityKey())); WfActivityDescriptor completedActDesp = new WfActivityDescriptor("Completed", WfActivityType.CompletedActivity); completedActDesp.Name = "完成"; completedActDesp.CodeName = "Completed Activity"; processDesp.Activities.Add(completedActDesp); for (int i = 0; i < processDesp.Activities.Count - 1; i++) { processDesp.Activities[i].ToTransitions.AddForwardTransition(processDesp.Activities[i + 1]); } WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ApplicationRuntimeParameters["AdministrativeUnit"] = "Group"; startupParams.ApplicationRuntimeParameters["Amount"] = ""; startupParams.ApplicationRuntimeParameters["CostCenter"] = "1001"; startupParams.ProcessDescriptor = processDesp; startupParams.Creator = DeluxeIdentity.CurrentUser; startupParams.Assignees.Add(DeluxeIdentity.CurrentUser); startupParams.DefaultTaskTitle = "${Subject}$"; startupParams.ResourceID = UuidHelper.NewUuidString(); startupParams.Department = DeluxeIdentity.CurrentUser.Parent; string relativeParams = Request.QueryString["relativeParams"]; if (relativeParams.IsNotEmpty()) startupParams.RelativeParams.CopyFrom(UriHelper.GetUriParamsCollection(relativeParams)); WfStartWorkflowExecutor executor = new WfStartWorkflowExecutor(WfClientContext.Current.OriginalActivity, startupParams); executor.AfterModifyWorkflow += new ExecutorEventHandler(executor_AfterModifyWorkflow); executor.Execute(); IWfProcess process = WfClientContext.Current.OriginalActivity.Process; returnUrl = UriHelper.RemoveUriParams(returnUrl, "relativeParams"); HttpContext.Current.Response.Redirect(string.Format("{0}?resourceID={1}&activityID={2}", returnUrl, process.ResourceID, process.CurrentActivity.ID)); }
private static void FillProcessDescriptorProperties(WfProcessStartupParams startupParams, IWfProcessDescriptor processDesp) { if (startupParams.DefaultTaskTitle.IsNotEmpty()) processDesp.DefaultTaskTitle = startupParams.DefaultTaskTitle; if (startupParams.DefaultUrl.IsNotEmpty()) processDesp.Url = startupParams.DefaultUrl; if (startupParams.RuntimeProcessName.IsNotEmpty() && processDesp.Properties.ContainsKey("RuntimeProcessName")) processDesp.Properties.SetValue("RuntimeProcessName", startupParams.RuntimeProcessName); }
public static WfProcessStartupParams GetInstanceOfWfProcessStartupParams(IWfProcessDescriptor procDesp) { WfProcessStartupParams startupParams = new WfProcessStartupParams(); IUser requestor = (IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object; startupParams.Creator = requestor; startupParams.Department = requestor.TopOU; startupParams.Assignees.Add(new WfAssignee(requestor)); startupParams.ResourceID = UuidHelper.NewUuidString(); startupParams.DefaultTaskTitle = "测试保存的流程"; startupParams.ProcessDescriptor = procDesp; startupParams.AutoCommit = true; return startupParams; }
protected void btnOK_Click(object sender, EventArgs e) { string returnUrl = Request.QueryString.GetValue("ru", string.Empty); WfProcessDescriptor processDesc = new WfProcessDescriptor(); processDesc.Key = UuidHelper.NewUuidString(); processDesc.Name = "自由流程"; processDesc.ApplicationName = "秘书服务"; processDesc.ProgramName = "部门通知"; processDesc.Url = returnUrl; processDesc.DefaultTaskTitle = "${Subject}$"; WfActivityDescriptor initAct = new WfActivityDescriptor("Initial", WfActivityType.InitialActivity); initAct.Name = "起草"; initAct.CodeName = "Initial Activity"; initAct.Properties.SetValue("AutoSendUserTask", false); initAct.Properties.TrySetValue("AllowWithdraw", true); processDesc.Activities.Add(initAct); foreach (IUser user in processUsers.SelectedOuUserData) { string key = processDesc.FindNotUsedActivityKey(); WfActivityDescriptor normalAct = new WfActivityDescriptor(key, WfActivityType.NormalActivity); normalAct.Name = user.DisplayName; normalAct.CodeName = key; normalAct.Properties.SetValue("AutoAppendSecretary", true); //normalAct.ActivityType = WfActivityType.NormalActivity; WfUserResourceDescriptor userResourceDesc = new WfUserResourceDescriptor(user); normalAct.Resources.Add(userResourceDesc); processDesc.Activities.Add(normalAct); } WfActivityDescriptor completedAct = new WfActivityDescriptor("Completed", WfActivityType.CompletedActivity); completedAct.Name = "完成"; completedAct.CodeName = "Completed Activity"; processDesc.Activities.Add(completedAct); for (int j = 0; j < processDesc.Activities.Count - 1; j++) { processDesc.Activities[j].ToTransitions.AddForwardTransition(processDesc.Activities[j + 1]); } WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ProcessDescriptor = processDesc; startupParams.Creator = DeluxeIdentity.CurrentUser; startupParams.Assignees.Add(DeluxeIdentity.CurrentUser); startupParams.DefaultTaskTitle = "${Subject}$"; startupParams.RuntimeProcessName = "${Subject}$"; startupParams.ResourceID = UuidHelper.NewUuidString(); startupParams.Department = DeluxeIdentity.CurrentUser.Parent; string relativeParams = Request.QueryString["relativeParams"]; if (relativeParams.IsNotEmpty()) startupParams.RelativeParams.CopyFrom(UriHelper.GetUriParamsCollection(relativeParams)); WfStartWorkflowExecutor executor = new WfStartWorkflowExecutor(WfClientContext.Current.OriginalActivity, startupParams); executor.AfterModifyWorkflow += new ExecutorEventHandler(executor_AfterModifyWorkflow); executor.Execute(); IWfProcess process = WfClientContext.Current.OriginalActivity.Process; returnUrl = UriHelper.RemoveUriParams(returnUrl, "relativeParams"); Response.Redirect(string.Format("{0}?resourceID={1}&activityID={2}", returnUrl, process.ResourceID, process.CurrentActivity.ID)); }
public static IWfProcess StartupProcess(IWfProcessDescriptor processDesp, Dictionary<string, object> runtimeParameters) { ProcessContextAction(); WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ResourceID = UuidHelper.NewUuidString(); startupParams.ProcessDescriptor = processDesp; runtimeParameters.ForEach(kp => startupParams.ApplicationRuntimeParameters.Add(kp.Key, kp.Value)); return WfRuntime.StartWorkflow(startupParams); }
private WfProcessStartupParams PrepareOneBranchProcessStartupParams(WfBranchProcessTransferParams branchTransferParams, IWfBranchProcessGroup group, int index) { IWfBranchProcessTemplateDescriptor template = branchTransferParams.Template; WfBranchProcessStartupParams branchStartupParams = branchTransferParams.BranchParams[index]; //准备启动子流程的参数 //先检查有没有预定义好的分支流程 IWfProcessDescriptor subProcessDesp = null; using (WfApplicationParametersContext apContext = WfApplicationParametersContext.CreateContext(branchStartupParams.ApplicationRuntimeParameters)) { subProcessDesp = template.GetBranchProcessDescriptor(); } if (template.DefaultProcessName.IsNotEmpty()) { string runtimeProcessName = this.Process.ApplicationRuntimeParameters.GetMatchedString(template.DefaultProcessName); if (runtimeProcessName.IsNullOrEmpty()) runtimeProcessName = template.DefaultProcessName; if (runtimeProcessName.IsNullOrEmpty()) ((WfProcessDescriptor)subProcessDesp).Name = runtimeProcessName; if (subProcessDesp.InitialActivity != null && subProcessDesp.InitialActivity.Name.IsNullOrEmpty()) ((WfActivityDescriptor)subProcessDesp.InitialActivity).Name = runtimeProcessName; } if (template.DefaultTaskTitle.IsNotEmpty()) subProcessDesp.DefaultTaskTitle = template.DefaultTaskTitle; if (template.DefaultUrl.IsNotEmpty()) subProcessDesp.Url = template.DefaultUrl; if (subProcessDesp.Url.IsNullOrEmpty()) subProcessDesp.Url = this.Descriptor.Url.IsNotEmpty() ? this.Descriptor.Url : this.Descriptor.Process.Url; WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.Creator = this.Operator; if (branchStartupParams.Department == null) startupParams.Department = this.Process.OwnerDepartment; else startupParams.Department = branchStartupParams.Department; startupParams.Assignees.CopyFrom(branchStartupParams.Assignees); startupParams.ProcessDescriptor = subProcessDesp; if (branchStartupParams.DefaultTaskTitle.IsNullOrEmpty()) { if (startupParams.DefaultTaskTitle.IsNullOrEmpty()) { if (subProcessDesp.DefaultTaskTitle.IsNotEmpty()) startupParams.DefaultTaskTitle = subProcessDesp.DefaultTaskTitle; else startupParams.DefaultTaskTitle = this.Process.Descriptor.DefaultTaskTitle; } else startupParams.DefaultTaskTitle = this.Descriptor.TaskTitle; } else startupParams.DefaultTaskTitle = branchStartupParams.DefaultTaskTitle; if (branchStartupParams.ResourceID.IsNullOrEmpty()) { WfSubProcessResourceMode mode = template.Properties.GetValue("CreateResourceMode", WfSubProcessResourceMode.DependsOnProcess); switch (mode) { case WfSubProcessResourceMode.DependsOnProcess: if (subProcessDesp.Properties.GetValue("Independent", false)) startupParams.ResourceID = UuidHelper.NewUuidString(); else startupParams.ResourceID = this.Process.ResourceID; break; case WfSubProcessResourceMode.SameWithRoot: startupParams.ResourceID = this.Process.ResourceID; break; case WfSubProcessResourceMode.NewCreate: startupParams.ResourceID = UuidHelper.NewUuidString(); break; } } else startupParams.ResourceID = branchStartupParams.ResourceID; if (branchStartupParams.RelativeParams.Count == 0) startupParams.RelativeParams.CopyFrom(this.Process.RelativeParams); else startupParams.RelativeParams.CopyFrom(branchStartupParams.RelativeParams); startupParams.BranchStartupParams = branchStartupParams; startupParams.Group = group; startupParams.OwnerActivityID = this.ID; startupParams.OwnerTemplateKey = template.Key; startupParams.Sequence = index; startupParams.AutoCommit = this.Process.Committed; //子流程的提交属性默认等于主流程的 branchStartupParams.ApplicationRuntimeParameters.ForEach(kp => startupParams.ApplicationRuntimeParameters.Add(kp.Key, kp.Value)); //如果是串行执行,且不是第一个流程,则不启动第一个活动,子流程处于未启动状态 if (template.ExecuteSequence == WfBranchProcessExecuteSequence.Serial && index > 0) startupParams.AutoStartInitialActivity = false; return startupParams; }
public static IWfProcess StartWorkflow(WfProcessStartupParams startupParams) { startupParams.NullCheck<WfRuntimeException>("startupParams"); WfProcess process = new WfProcess(startupParams.ProcessDescriptor); FillProcessDescriptorProperties(startupParams, process.Descriptor); FillProcessInstanceProperties(startupParams, process); WfProcessContextCache.Instance.Add(process.ID, process); if (process.Creator == null && DeluxePrincipal.IsAuthenticated) process.Creator = DeluxeIdentity.CurrentUser; if (process.InitialActivity != null) { if (process.InitialActivity.Descriptor.Properties.GetValue("AutoGenerateCadidates", true)) { process.InitialActivity.GenerateCandidatesFromResources(); WfMatrix matrix = process.GetMatrix(); if (matrix != null) ((WfActivityBase)process.InitialActivity).GenerateCandidatesFromMatrix(matrix); } if (startupParams.CheckStartProcessUserPermission) CheckStartProcessUserPermission(process); if (startupParams.Assignees.Count == 0) { startupParams.Assignees.CopyFrom(process.InitialActivity.Candidates); } if (process.InitialActivity.Descriptor.Resources.Count == 0) { startupParams.Assignees.ToUsers().ForEach(u => process.InitialActivity.Descriptor.Resources.Add(new WfUserResourceDescriptor(u))); } WfSimulator.WriteSimulationInfo(process, WfSimulationOperationType.Startup); //如果自动启动第一个活动且存在活动点,则流转到第一个点 if (startupParams.AutoStartInitialActivity) { WfAssigneeCollection assignees = startupParams.Assignees; process.InitialActivity.Candidates.Clear(); process.InitialActivity.Candidates.CopyFrom(startupParams.Assignees); IWfActivity originalInitial = process.InitialActivity; WfRuntime.DecorateProcess(process); //修饰流程后,如果起始点发生了变化... if (originalInitial != process.InitialActivity) assignees = process.InitialActivity.Candidates; WfTransferParams transferParams = new WfTransferParams(process.InitialActivity.Descriptor); //设置初始节点子流程参数 process.InitialActivity.Descriptor.BranchProcessTemplates.ForEach(branchTemplate => { transferParams.BranchTransferParams.Add(new WfBranchProcessTransferParams(branchTemplate)); }); transferParams.Operator = startupParams.Creator; transferParams.Assignees.CopyFrom(assignees); process.MoveTo(transferParams); WfRuntime.ProcessContext.NormalizeTaskTitles(); } } WfRuntime.ProcessContext.AffectedProcesses.AddOrReplace(process); return process; }
public static IWfProcess StartupSimpleProcess() { ProcessContextAction(); IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateSimpleProcessDescriptor(); WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ResourceID = UuidHelper.NewUuidString(); startupParams.ProcessDescriptor = processDesp; return WfRuntime.StartWorkflow(startupParams); }
public static IWfProcess StartSpecialReturnProcess(IWfProcessDescriptor processDesp) { WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ProcessDescriptor = processDesp; startupParams.ApplicationRuntimeParameters["IsCLine"] = true; return WfRuntime.StartWorkflow(startupParams); }