public int DispatchStartBranchProcessTasks(string ownerActivityID, IWfBranchProcessTemplateDescriptor template, bool autoAddExitMaintainingStatusTask)
		{
			ownerActivityID.CheckStringIsNullOrEmpty("ownerActivityID");
			template.NullCheck("template");

			StartBranchProcessSysTaskProcessBuilder builder = new StartBranchProcessSysTaskProcessBuilder(ownerActivityID, template, autoAddExitMaintainingStatusTask);

			SysTaskProcess sysTaskProcess = builder.Build();

			SysTaskProcessRuntime.StartProcess(sysTaskProcess);

			return sysTaskProcess.Activities.Count;
		}
		public void BuildStartBranchProcessTaskProcessTest()
		{
			IWfProcessDescriptor processDesp = CreateProcessWithAutoMaintainProperty();

			IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp);

			MoveToExecutor(process);

			process = WfRuntime.GetProcessByProcessID(process.ID);
			IWfActivity ownerActivity = process.CurrentActivity;

			Console.WriteLine("OwnerActivityID: {0}", ownerActivity.ID);

			//在Template设置资源为一个组织,用于后续分发分支流程的测试
			IWfBranchProcessTemplateDescriptor template = ownerActivity.Descriptor.BranchProcessTemplates[0];

			IUser userInTemplate = template.Resources.ToUsers().FirstOrDefault();

			WfDepartmentResourceDescriptor deptResourceDesp = new WfDepartmentResourceDescriptor(userInTemplate.Parent);

			template.Resources.Clear();
			template.Resources.Add(deptResourceDesp);

			SysTaskAdapter.Instance.ClearAll();

			StartBranchProcessSysTaskProcessBuilder builder = new StartBranchProcessSysTaskProcessBuilder(ownerActivity.ID, template, true);

			SysTaskProcess sysTaskProcess = builder.Build();

			SysTaskProcessRuntime.ClearCache();

			sysTaskProcess = SysTaskProcessRuntime.GetProcessByID(sysTaskProcess.ID);

			Console.WriteLine("SysTaskProcess ID: {0}", sysTaskProcess.ID);
			Console.WriteLine("SysTaskProcess Activities: {0}", sysTaskProcess.Activities.Count);

			Assert.AreEqual(template.Resources.ToUsers().Count + 1, sysTaskProcess.Activities.Count);
		}