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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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());
        }
Esempio n. 8
0
        /// <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);
        }