/// <summary> /// 创建工作流实例 /// </summary> /// <param name="p"></param> /// <returns></returns> public static WorkflowInstance CreateInstance(Process p, IWorkflowParser parser) { var workflow = parser.Parse(GetCacheKey(p.ProcessType) , p.ProcessType.Workflow.Serialized , p.ProcessType.ActivitySettings); var instance = new WorkflowInstance(workflow, p.ID, p.GetInputs()); //HACK:【重要】强制让Core调度使用同步上下文进行调度而不使用Threaded模式,使得事务与resumption嵌套,便于事务控制和错误处理 20120507 instance.SynchronizationContext = new WorkflowInstance.DefaultSynchronizationContext(); //标记为可持久化 instance.IsPersistable = true; //数据字段扩展 instance.Extensions.Add <DataFieldExtension>(WorkflowBuilder.CreateDataFieldExtension(p)); //自定义节点扩展 instance.Extensions.Add <CustomExtension>(new CustomExtension(p.ProcessType.ActivitySettings .Where(o => o is CustomSetting) .Select(o => o as CustomSetting) .ToList())); //人工节点扩展 instance.Extensions.Add <HumanExtension>(new HumanExtension()); //服务端节点扩展 instance.Extensions.Add <ServerExtension>(new ServerExtension()); //并行节点扩展 instance.Extensions.Add <ParallelExtension>(new ParallelExtension()); //子流程节点扩展 instance.Extensions.Add <SubProcessExtension>(new SubProcessExtension()); return(instance); }
/// <summary> /// 创建工作流实例 /// </summary> /// <param name="p"></param> /// <returns></returns> public static WorkflowInstance CreateInstance(Process p, IWorkflowParser parser) { var workflow = parser.Parse(GetCacheKey(p.ProcessType) , p.ProcessType.Workflow.Serialized , p.ProcessType.ActivitySettings); var instance = new WorkflowInstance(workflow, p.ID, p.GetInputs()); //HACK:【重要】强制让Core调度使用同步上下文进行调度而不使用Threaded模式,使得事务与resumption嵌套,便于事务控制和错误处理 20120507 instance.SynchronizationContext = new WorkflowInstance.DefaultSynchronizationContext(); //标记为可持久化 instance.IsPersistable = true; //数据字段扩展 instance.Extensions.Add<DataFieldExtension>(WorkflowBuilder.CreateDataFieldExtension(p)); //自定义节点扩展 instance.Extensions.Add<CustomExtension>(new CustomExtension(p.ProcessType.ActivitySettings .Where(o => o is CustomSetting) .Select(o => o as CustomSetting) .ToList())); //人工节点扩展 instance.Extensions.Add<HumanExtension>(new HumanExtension()); //服务端节点扩展 instance.Extensions.Add<ServerExtension>(new ServerExtension()); //并行节点扩展 instance.Extensions.Add<ParallelExtension>(new ParallelExtension()); //子流程节点扩展 instance.Extensions.Add<SubProcessExtension>(new SubProcessExtension()); return instance; }
public ProcessService(ILoggerFactory factory, IWorkflowParser parser, IEventBus eventBus, ISchedulerService schedulerService) { this._log = factory.Create(typeof(ProcessService)); this._parser = parser; this._eventBus = eventBus; this._schedulerService = schedulerService; }
public ConverterService(IWorkflowConverterFactory factory , IProcessService processService , IWorkflowParser workflowParser) { this._factory = factory; this._processService = processService; this._workflowParser = workflowParser; }
/// <summary> /// /// </summary> /// <param name="generator">流程的XML数据源</param> /// <param name="parser">是流程中XML结点中的转换器,将节点的具体内容转换出来</param> /// <param name="schemePersistenceProvider">获取方案的具体操作</param> public WorkflowBuilder(IWorkflowGenerator <TSchemeMedium> generator, IWorkflowParser <TSchemeMedium> parser, ISchemePersistenceProvider <TSchemeMedium> schemePersistenceProvider) { Generator = generator; Parser = parser; SchemePersistenceProvider = schemePersistenceProvider; }
public SubProcessCompleteWaitingResumption(ILoggerFactory factory , IWorkflowParser parser , IProcessService processService , ISchedulerService resumption) { this._log = factory.Create(typeof(SubProcessCompleteWaitingResumption)); this._parser = parser; this._processService = processService; this._resumption = resumption; }
public TFlowEngine(ILoggerFactory factory , IUserService userService , IAgentService agentService , IWorkItemService workItemService , IProcessService processService , IProcessTypeService processTypeService , ITimeZoneService timeZoneService , IWorkflowParser workflowParser , IMethodInvoker invoker ,ISchedulerService schedulerService) { this._log = factory.Create(typeof(TFlowEngine)); this._userService = userService; this._agentService = agentService; this._workItemService = workItemService; this._processService = processService; this._processTypeService = processTypeService; this._timeZoneService = timeZoneService; this._workflowParser = workflowParser; this._invoker = invoker; this._schedulerService = schedulerService; }
public TFlowEngine(ILoggerFactory factory , IUserService userService , IAgentService agentService , IWorkItemService workItemService , IProcessService processService , IProcessTypeService processTypeService , ITimeZoneService timeZoneService , IWorkflowParser workflowParser , IMethodInvoker invoker , ISchedulerService schedulerService) { this._log = factory.Create(typeof(TFlowEngine)); this._userService = userService; this._agentService = agentService; this._workItemService = workItemService; this._processService = processService; this._processTypeService = processTypeService; this._timeZoneService = timeZoneService; this._workflowParser = workflowParser; this._invoker = invoker; this._schedulerService = schedulerService; }
public ProcessServiceMock(ILoggerFactory factory, IWorkflowParser parser, IEventBus eventBus, ISchedulerService schedulerService) : base(factory, parser, eventBus, schedulerService) { }
public ErrorWaitingResumption(ILoggerFactory factory, IWorkflowParser parser) { this._log = factory.Create(typeof(ErrorWaitingResumption)); this._parser = parser; }
public BookmarkWaitingResumption(ILoggerFactory factory, IWorkflowParser parser,IProcessService processService) { this._log = factory.Create(typeof(BookmarkWaitingResumption)); this._parser = parser; this._processService = processService; }
public static IWorkflowBuilder WithParser <TSchemeMedium>(this WorkflowBuilder <TSchemeMedium> bulder, IWorkflowParser <TSchemeMedium> parser) where TSchemeMedium : class { bulder.Parser = parser; return(bulder); }
public ProcessStartWaitingResumption(ILoggerFactory factory, IWorkflowParser parser) { this._log = factory.Create(typeof(ProcessStartWaitingResumption)); this._parser = parser; }
public BookmarkWaitingResumption(ILoggerFactory factory, IWorkflowParser parser, IProcessService processService) { this._log = factory.Create(typeof(BookmarkWaitingResumption)); this._parser = parser; this._processService = processService; }
public WorkflowService(IWorkflowParser workflowParser) { _workflowParser = workflowParser; }