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