示例#1
0
        public void EnterActivityTest()
        {
            WfServiceOperationDefinition enterSvcDef = new WfServiceInvokerFactory().SvcOpDef;
            WfServiceOperationDefinition leaveSvcDef = new WfServiceInvokerFactory().SvcOpDef;

            enterSvcDef.AddressDef.RequestMethod = WfServiceRequestMethod.Get;
            enterSvcDef.OperationName            = "SayHelloWorld";
            enterSvcDef.RtnXmlStoreParamName     = "EnterServiceRtnXml";

            leaveSvcDef.AddressDef.RequestMethod = WfServiceRequestMethod.Get;
            leaveSvcDef.OperationName            = "Add";
            leaveSvcDef.RtnXmlStoreParamName     = "LeaveServiceRtnXml";
            leaveSvcDef.Params.Add(new WfServiceOperationParameter()
            {
                Name  = "a",
                Type  = WfSvcOperationParameterType.Int,
                Value = 50
            });
            leaveSvcDef.Params.Add(new WfServiceOperationParameter()
            {
                Name  = "b",
                Type  = WfSvcOperationParameterType.Int,
                Value = 5
            });

            IWfProcess process = WfProcessTestCommon.StartupProcessWithServiceDefinition(enterSvcDef, leaveSvcDef);

            Console.WriteLine("进入起始活动点");
            Console.WriteLine(process.ApplicationRuntimeParameters[enterSvcDef.RtnXmlStoreParamName]);
            Console.WriteLine(process.ApplicationRuntimeParameters[leaveSvcDef.RtnXmlStoreParamName]);

            IWfActivityDescriptor nextActivityDesp = process.CurrentActivity.Descriptor.ToTransitions[0].ToActivity;
            WfTransferParams      tp = ProcessTestHelper.GetInstanceOfWfTransferParams(nextActivityDesp, OguObject.approver2);

            process.MoveTo(tp);

            Console.WriteLine("离开起始活动点");
            Console.WriteLine(process.ApplicationRuntimeParameters[enterSvcDef.RtnXmlStoreParamName]);
            Console.WriteLine(process.ApplicationRuntimeParameters[leaveSvcDef.RtnXmlStoreParamName]);
            WfRuntime.PersistWorkflows();
            process = WfRuntime.GetProcessByProcessID(process.ID);
        }