public void StartWorkflowWithoutPersist() { WfClientProcessDescriptor processDesp = OperationHelper.PrepareSimpleProcess(); WfClientProcessStartupParams clientStartupParams = ProcessRuntimeHelper.PrepareClientProcessStartupParams(processDesp.Key); clientStartupParams.AutoPersist = false; WfClientProcessInfo processInfo = WfClientProcessRuntimeServiceProxy.Instance.StartWorkflow(clientStartupParams); processInfo.Output(); AssertStartedProcess(processInfo, clientStartupParams); try { WfClientProcess process = WfClientProcessRuntimeServiceProxy.Instance.GetProcessByID(processInfo.ID, Consts.Users["Requestor"]); } catch (WfClientChannelException ex) { if (ex.Message.IndexOf("不能找到") == -1) { throw ex; } } }
/// <summary> /// 创建一个简单流程,并且启动该流程 /// </summary> /// <returns></returns> public static WfClientProcessInfo PrepareSimpleProcessInstance() { WfClientProcessDescriptor processDesp = OperationHelper.PrepareSimpleProcess(); WfClientProcessStartupParams clientStartupParams = ProcessRuntimeHelper.PrepareClientProcessStartupParams(processDesp.Key); return(WfClientProcessRuntimeServiceProxy.Instance.StartWorkflow(clientStartupParams)); }
public void StandardStartupParamsClientToServer() { WfClientProcessStartupParams client = ProcessRuntimeHelper.PrepareClientProcessStartupParams(UuidHelper.NewUuidString()); WfProcessStartupParams server = null; WfClientProcessStartupParamsConverter.TestInstance.ClientToServer(client, ref server); client.AreSame(server); }
/// <summary> /// 创建一个有4个节点的流程,并且保存它。开始点有两条出线,根据Amount是否大于等于5000来判断。 /// </summary> /// <returns></returns> public static WfClientProcessInfo PreapreProcessWithConditionLinesInstance() { WfClientProcessDescriptor processDesp = OperationHelper.PreapreProcessWithConditionLines(); WfClientProcessStartupParams clientStartupParams = ProcessRuntimeHelper.PrepareClientProcessStartupParams(processDesp.Key); clientStartupParams.ApplicationRuntimeParameters["Amount"] = 10000; clientStartupParams.ProcessContext["Context"] = "This is a context"; return(WfClientProcessRuntimeServiceProxy.Instance.StartWorkflow(clientStartupParams)); }
public void StartWorkflow() { WfClientProcessDescriptor processDesp = OperationHelper.PrepareSimpleProcess(); WfClientProcessStartupParams clientStartupParams = ProcessRuntimeHelper.PrepareClientProcessStartupParams(processDesp.Key); WfClientProcessInfo processInfo = WfClientProcessRuntimeServiceProxy.Instance.StartWorkflow(clientStartupParams); processInfo.Output(); AssertStartedProcess(processInfo, clientStartupParams); }
public static WfClientProcessInfo PrepareProcessWithWithActivityMatrixResourceInstance() { WfClientProcessDescriptor processDesp = ProcessDescriptorHelper.CreateClientProcessWithActivityMatrixResourceDescriptor(); WfClientProcessDescriptorServiceProxy.Instance.SaveDescriptor(processDesp); WfClientProcessStartupParams clientStartupParams = ProcessRuntimeHelper.PrepareClientProcessStartupParams(processDesp.Key); clientStartupParams.ApplicationRuntimeParameters["CostCenter"] = "1001"; clientStartupParams.ApplicationRuntimeParameters["PayMethod"] = "1"; clientStartupParams.ApplicationRuntimeParameters["Age"] = 30; return(WfClientProcessRuntimeServiceProxy.Instance.StartWorkflow(clientStartupParams)); }
public void SimpleStartupParamsSerializationTest() { WfClientJsonConverterHelper.Instance.RegisterConverters(); WfClientProcessStartupParams startupParams = ProcessRuntimeHelper.PrepareClientProcessStartupParams(UuidHelper.NewUuidString()); string data = JSONSerializerExecute.Serialize(startupParams); Console.WriteLine(data); WfClientProcessStartupParams deserializedParams = JSONSerializerExecute.Deserialize <WfClientProcessStartupParams>(data); startupParams.AreSame(deserializedParams); }
public static WfClientProcessInfo PrepareBranchProcesses() { WfClientProcessDescriptor processDesp = ProcessDescriptorHelper.CreateSimpleClientProcessWithoutLines(); //增加子节点 WfClientActivityDescriptor branchActDesp = new WfClientActivityDescriptor(WfClientActivityType.NormalActivity); branchActDesp.Key = "N1"; branchActDesp.Name = "CFO"; branchActDesp.Properties.AddOrSetValue("AutoStartBranchProcesses", true); branchActDesp.Properties.AddOrSetValue("AutoStartBranchApprovalProcess", true); branchActDesp.Properties.AddOrSetValue("AutoStartBranchProcessExecuteSequence", 0); //增加审批人 branchActDesp.Resources.Add(new WfClientUserResourceDescriptor(Consts.Users["Requestor"])); branchActDesp.Resources.Add(new WfClientUserResourceDescriptor(Consts.Users["Approver1"])); branchActDesp.Resources.Add(new WfClientUserResourceDescriptor(Consts.Users["CEO"])); processDesp.Activities.Add(branchActDesp); //线 WfClientTransitionDescriptor transition = new WfClientTransitionDescriptor(processDesp.InitialActivity.Key, branchActDesp.Key); transition.Key = "L1"; processDesp.InitialActivity.ToTransitions.Add(transition); WfClientTransitionDescriptor transition2 = new WfClientTransitionDescriptor(branchActDesp.Key, processDesp.CompletedActivity.Key); transition2.Key = "L2"; branchActDesp.ToTransitions.Add(transition2); WfClientProcessDescriptorServiceProxy.Instance.SaveDescriptor(processDesp); //启动参数 WfClientProcessStartupParams clientStartupParams = ProcessRuntimeHelper.PrepareClientProcessStartupParams(processDesp.Key); //流程实例 WfClientRuntimeContext runtimeContext = new WfClientRuntimeContext(); WfClientProcessInfo process = WfClientProcessRuntimeServiceProxy.Instance.StartWorkflow(clientStartupParams); return(WfClientProcessRuntimeServiceProxy.Instance.MoveToNextDefaultActivity(process.ID, runtimeContext)); }
public void StartWorkflowAndMoveToNext() { WfClientProcessDescriptor processDesp = OperationHelper.PrepareSimpleProcess(); WfClientProcessStartupParams clientStartupParams = ProcessRuntimeHelper.PrepareClientProcessStartupParams(processDesp.Key); clientStartupParams.Opinion = new WfClientOpinion() { Content = "我启动流程很高兴" }; WfClientProcessInfo processInfo = WfClientProcessRuntimeServiceProxy.Instance.StartWorkflowAndMoveTo(clientStartupParams, null, null); processInfo.Output(); WfClientOpinionCollection opinions = WfClientProcessRuntimeServiceProxy.Instance.GetOpinionsByResourceID(processInfo.ResourceID); Assert.IsTrue(opinions.Count > 0); Assert.AreNotEqual(processInfo.CurrentActivity.ID, opinions[0].ActivityID); }