/// <summary> /// 创建一个新的processInstance。并初始化 /// </summary> /// <param name="processName"></param> /// <param name="processId"></param> /// <param name="parameters"></param> public void CreateInstance(string processName, Guid processId, IDictionary <string, IEnumerable <object> > parameters) { //根据公文流程名称processName构建内存对象processInstance var processInstance = Builder.CreateNewProcess(processId, processName, parameters); //保存到数据库WorkflowProcessInstance表中 PersistenceProvider.InitializeProcess(processInstance); //设置流程的状态 SetProcessNewStatus(processInstance, ProcessStatus.Initialized); if (processInstance.ProcessScheme.InitialActivity.HaveImplementation) { try { SetProcessNewStatus(processInstance, ProcessStatus.Running); //执行该活动 ExecuteRootActivity(processInstance); } catch (Exception) { //TODO SetProcessNewStatus(processInstance, ProcessStatus.Idled); } } SetProcessNewStatus(processInstance, ProcessStatus.Idled); }