protected override void OnPreRender(EventArgs e) { IWfProcess currentProcess = this.process; //if (currentProcess == null && ProcessContext.Current.OriginalActivity != null) //12-29 // currentProcess = ProcessContext.Current.OriginalActivity.Process; //12-29 if (currentProcess == null && WfClientContext.Current.OriginalActivity != null) { currentProcess = WfClientContext.Current.OriginalActivity.Process; } if (currentProcess != null) { IWfProcessDescriptor processDesp = currentProcess.CurrentActivity.Descriptor.Process; if (string.IsNullOrEmpty(ProcessDespKey) == false) { //processDesp = WorkflowSettings.GetConfig().ProcessDescriptorManager.GetProcessDescriptor(ProcessDespKey); processDesp = WfProcessDescriptorManager.GetDescriptor(ProcessDespKey); } RenderActivities(this, currentProcess, processDesp); } base.OnPreRender(e); }
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 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); }
private void RenderInfo(string processDescKey) { processDescKeyHidden.Value = processDescKey; if (processDescKey.IsNotEmpty()) { IWfProcessDescriptor processDesp = WfProcessDescriptorManager.GetDescriptor(processDescKey); processDescCaption.InnerText = string.Format("流程Key: {0}, 名称: {1}", processDescKey, processDesp.Name); } }
public WfClientProcessDescriptor GetDescriptor(string processKey) { if (processKey.IsNullOrEmpty()) { throw new ApplicationException(Translator.Translate(Define.DefaultCulture, "流程描述的Key不能为空")); } OperationContext.Current.FillContextToOguServiceContext(); WfProcessDescriptor processDesp = (WfProcessDescriptor)WfProcessDescriptorManager.GetDescriptor(processKey); WfClientProcessDescriptor clientProcessDesp = null; WfClientProcessDescriptorConverter.Instance.ServerToClient(processDesp, ref clientProcessDesp); return(clientProcessDesp); }
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); }
private void InnerStartWorkflow(string processDescKey, string appName, string programName, string relativeID, string relativeURL, bool isCloned, NameValueCollection relativeParams) { StartWorkflowControllerOperation operation = new StartWorkflowControllerOperation(); operation.StartupParams.ProcessDescriptor = WfProcessDescriptorManager.GetDescriptor(processDescKey); if (operation.StartupParams.ProcessDescriptor.DefaultTaskTitle.IsNullOrEmpty()) { operation.StartupParams.DefaultTaskTitle = operation.StartupParams.ProcessDescriptor.Name; } else { operation.StartupParams.DefaultTaskTitle = operation.StartupParams.ProcessDescriptor.DefaultTaskTitle; } operation.StartupParams.ResourceID = UuidHelper.NewUuidString(); operation.StartupParams.ApplicationRuntimeParameters["ProcessRequestor"] = OguUser.CreateWrapperObject(DeluxeIdentity.CurrentUser); operation.ApplicationName = appName; operation.ProgramName = programName; operation.StartupParams.RelativeID = relativeID; operation.StartupParams.RelativeURL = relativeURL; operation.StartupParams.Department = DeluxeIdentity.CurrentUser.TopOU; operation.StartupParams.Assignees.Add(DeluxeIdentity.CurrentUser); operation.IsCloned = isCloned; operation.StartupParams.RelativeParams.CopyFrom(relativeParams); operation.NavigationCommand = CollectNavigationCommand(this.GetType()); operation.SceneInfo = CollectSceneInfo(this.GetType()); OnInitOperation(operation); PerformanceMonitorHelper.GetDefaultMonitor().WriteExecutionDuration("DoStartWorkflowControllerOperation", () => operation.DoOperation()); }
/// <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); }