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); }
/// <summary> /// 创建一个没有连线的客户端流程对象 /// </summary> /// <returns></returns> public static WfClientProcessDescriptor CreateSimpleClientProcessWithoutLines() { WfClientProcessDescriptor processDesp = new WfClientProcessDescriptor(); processDesp.Key = UuidHelper.NewUuidString(); processDesp.Name = "客户端测试流程"; processDesp.Activities.Add(ActivityDescriptorHelper.CreateSimpleClientActivityWithUser("Start", "开始", "Requestor", WfClientActivityType.InitialActivity)); processDesp.Activities.Add(ActivityDescriptorHelper.CreateSimpleClientActivity("End", "结束", WfClientActivityType.CompletedActivity)); processDesp.RelativeLinks.Add(new WfClientRelativeLinkDescriptor("AP1") { Category = "Process", Url = "http://www.ak47.com" }); processDesp.CancelEventReceivers.Add(new WfClientUserResourceDescriptor(Consts.Users["Requestor"])); return processDesp; }
/// <summary> /// 基类中构造开始点和结束点,不包含两个点的连线 /// </summary> /// <param name="processKey"></param> /// <param name="processName"></param> /// <returns></returns> public virtual WfClientProcessDescriptor Build(string processKey, string processName) { processKey.CheckStringIsNullOrEmpty("processKey"); processName.CheckStringIsNullOrEmpty("processName"); WfClientProcessDescriptor processDesp = new WfClientProcessDescriptor(); processDesp.Key = processKey; processDesp.ApplicationName = this._ApplicationName; processDesp.ProgramName = this._ProgramName; processDesp.Name = processName; processDesp.Activities.Add(new WfClientActivityDescriptor(WfClientActivityType.InitialActivity) { Key = "Start", Name = "起草" }); processDesp.Activities.Add(new WfClientActivityDescriptor(WfClientActivityType.CompletedActivity) { Key = "Complete", Name = "办结" }); processDesp.Properties.AddOrSetValue("ProbeParentProcessParams", "True"); return processDesp; }
public static void AssertProcessDescriptor(this WfClientProcessDescriptor cpd, WfClientProcessDescriptor spd) { cpd.AreSame(spd); cpd.Activities.AssertActivityDescriptorCollection(spd.Activities); if (cpd.InitialActivity != null) Assert.AreEqual(cpd.InitialActivity.Key, spd.InitialActivity.Key); if (cpd.CompletedActivity != null) Assert.AreEqual(cpd.CompletedActivity.Key, spd.CompletedActivity.Key); cpd.RelativeLinks.AssertRelativeLinks(spd.RelativeLinks); }
public WfClientActivityDescriptorCollection(WfClientProcessDescriptor process) { this._Process = process; }
public void SaveDescriptor(WfClientProcessDescriptor clientProcessDesp) { OperationContext.Current.FillContextToOguServiceContext(); WfProcessDescriptor processDesp = null; WfClientProcessDescriptorConverter.Instance.ClientToServer(clientProcessDesp, ref processDesp); WfSaveTemplateExecutor executor = new WfSaveTemplateExecutor(processDesp); executor.Execute(); }