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"]); }
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 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 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()); }
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 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 static IWfProcess StartSpecialReturnProcess(IWfProcessDescriptor processDesp) { WfProcessStartupParams startupParams = new WfProcessStartupParams(); startupParams.ProcessDescriptor = processDesp; startupParams.ApplicationRuntimeParameters["IsCLine"] = true; return(WfRuntime.StartWorkflow(startupParams)); }
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 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 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 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)); }
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); }
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 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 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); }
/// <summary> /// 将服务定义加入流程每个节点上 /// </summary> /// <param name="enter"></param> /// <param name="leave"></param> /// <returns></returns> public static IWfProcess StartupProcessWithServiceDefinition(WfServiceOperationDefinition enter, WfServiceOperationDefinition leave) { ProcessContextAction(); IWfProcessDescriptor processDesp = WfProcessTestCommon.CreateProcessDescriptor(); foreach (var item in processDesp.Activities) { item.EnterEventExecuteServices.Add(enter); item.LeaveEventExecuteServices.Add(leave); } processDesp.InitialActivity.Resources.Add(new WfUserResourceDescriptor((IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object)); WfProcessStartupParams startupParams = GetInstanceOfWfProcessStartupParams(processDesp); return(WfRuntime.StartWorkflow(startupParams)); }
public void SimpleProcessServerInstanceToClientTest() { 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); process.Context["Context"] = "This is a context"; WfClientProcess client = null; WfClientProcessConverter.Instance.ServerToClient(process, ref client); Console.WriteLine(client.InitialActivity.ID); Console.WriteLine(client.CompletedActivity.ID); Console.WriteLine(client.Descriptor.Url); Assert.AreEqual(startupParams.DefaultUrl, client.Descriptor.Url); Assert.AreEqual(process.Context["Context"], client.ProcessContext["Context"]); }
/// <summary> /// 带上下文参数的启动流程 /// </summary> /// <param name="processDesp"></param> /// <param name="runtimeParameters"></param> /// <returns></returns> public static IWfProcess StartupProcess(this IWfProcessDescriptor processDesp, Dictionary <string, object> runtimeParameters = null) { WfProcessStartupParams startupParams = PrepareStartupParams(processDesp, runtimeParameters); return(WfRuntime.StartWorkflow(startupParams)); }
private static IWfProcess StartProcess(IWfProcessDescriptor processDesp) { WfProcessStartupParams startupParams = GetInstanceOfWfProcessStartupParams(processDesp); return(WfRuntime.StartWorkflow(startupParams)); }