WorkflowRuntime WorkflowInstanceWord格式.docx
《WorkflowRuntime WorkflowInstanceWord格式.docx》由会员分享,可在线阅读,更多相关《WorkflowRuntime WorkflowInstanceWord格式.docx(27页珍藏版)》请在冰豆网上搜索。
为引擎绑定事件
引擎.StartRuntime()'
启动引擎
在引擎中创建
并运行实例
Dim工作流模板类AsType'
定义一个Type型对象
工作流模板类=GetType(Workflow1)'
得要要运行的工作流的类型名
Dim实例AsWorkflowInstance'
定义一个要由引擎运行的工作流实例
'
用引擎.CreateWorkflow方法返回实例,此时该实例已在引擎内创建,但还没启动
实例=引擎.CreateWorkflow(工作流模板类)
实例.Start()'
运行引擎中的实例
停止引擎
引擎.StopRuntime()
方法
加载
服务
得到
AddService
添加一个服务到工作流引擎
引擎.AddService(object)
RemoveService
从工作流引擎移除一个服务
引擎.RemoveService(object)
GetService
从加载到引擎中的指定服务
FunctionGetService(serviceTypeAsType)AsObject
FunctionGetService(OfT)()AsT
GetAllServices
得到所有加载到引擎中的服务
FunctionGetAllServices(OfT)AsReadOnlyCollection(OfT)
FunctionGetAllServices(serviceTypeAsType)AsReadOnlyCollection(OfObject)
建立
实例
CreateWorkflow
在引擎中建立一个实例,并将该实例返回
使用工作流类开为参数
FunctionCreateWorkflow(workflowTypeAsType)AsWorkflowInstance
FunctionCreateWorkflow(workflowTypeAsType,参数AsDictionary(OfString,Object))AsWorkflowInstance
使用一个XmlReader为参数
FunctionCreateWorkflow(ByValworkflowDefinitionReaderAsXmlReader)AsWorkflowInstance
FunctionCreateWorkflow(ByValworkflowDefinitionReaderAsXmlReader,ByValrulesReaderAsXmlReader,ByVal参数AsDictionary(OfString,Object))AsWorkflowInstance
GetLoadedWorkflows
得到内存中所有工作流的集合
FunctionGetLoadedWorkflowsAsReadOnlyCollection(OfWorkflowInstance)
GetWorkflow
使用Guid参数,从引擎中得到指定ID的工作流实例
FunctionGetWorkflow(ByValinstanceIdAsGuid)AsWorkflowInstance
如果引擎中没有指定GUID的实例,会报
Theworkflowhostingenvironmentdoesnothaveapersistenceserviceasrequiredbyanoperationontheworkflowinstance
如果加载了SqlWorkflowPersistenceService,没有所引的实例会报
Workflowwithid"
GUID"
notfoundinstatepersistencestore.
引擎
控制
StartRuntime
启用引擎
引擎.StartRuntime()
StopRuntime
停止引擎,停止引擎后,引擎停止后,引擎并没有释放,引擎中的实例也存在,只是所有的执行都被系统级挂起,当重新启动引擎时,所有的实例还可继续运行
资源释放
Dispose
释放工作流引擎资源
引擎.Dispose()
事件
ByValsenderAsObject返回引发该事件的工作流引擎,当一个宿主实例化了多个引擎,而这些引擎又绑定到同一组事件上时,可以使用sender参数得到触发该事件的引擎
ServicesException
_NotHandled
Occurswhenaservicethatisderivedfrom
theWorkflowRuntimeServiceclasscallsRaiseServicesExceptionNotHandledEvent(与加载服务有关)
SubOnServicesExceptionNotHandled(ByValsenderAsObject,ByValeAsServicesExceptionNotHandledEventArgs)
'
ServicesExceptionNotHandledEventArgs
e.Exception异常信息
e.WorkflowInstanceId工作流实例的GUID
Started
引擎启动后
SubOnStarted(ByValsenderAsObject,ByValeAsWorkflowRuntimeEventArgs)
WorkflowRuntimeEventArgs
e.IsStarted是否启动
Stopped
引擎停止后
SubOnStopped(ByValsenderAsObject,ByValeAsWorkflowRuntimeEventArgs)
WorkflowAborted
引擎中的某个实例:
被中断执行后
SubOnWorkflowAborted(ByValsenderAsObject,ByValeAsWorkflowEventArgs)
WorkflowEventArgs
e.WorkflowInstance工作流实例
WorkflowCompleted
完成后.
SubOnWorkflowCompleted(ByValsenderAsObject,ByValeAsWorkflowCompletedEventArgs)
WorkflowCompletedEventArgs
e.OutputParameters用参数方式与实例的属性进行通信
e.WorkflowInstance工作流实例
e.WorkflowInstance引发该事件的实例
WorkflowCreated
被创建后
SubOnWorkflowCreated(ByValsenderAsObject,ByValeAsWorkflowEventArgs)
WorkflowIdled
进入空闭状态,
如Delay控件,CallExternalMethod控件,
会触发该事件
SubOnWorkflowIdled(ByValsenderAsObject,ByValeAsWorkflowEventArgs)
WorkflowLoaded
加载到内存时
SubOnWorkflowLoaded(ByValsenderAsObject,ByValeAsWorkflowEventArgs)
WorkflowPersisted
进入持久化状态后,
注,如果没有加载持久化服务,而调用持久化方法,该事件仍会触发,但实例并没有被持久化
SubOnWorkflowPersisted(ByValsenderAsObject,ByValeAsWorkflowEventArgs)
WorkflowResumed
从挂起状态恢复后
SubOnWorkflowResumed(ByValsenderAsObject,ByValeAsWorkflowEventArgs)
WorkflowStarted
被启动后
SubOnWorkflowStarted(ByValsenderAsObject,ByValeAsWorkflowEventArgs)
WorkflowSuspended
被暂停后,如Suspend控件会触发该事件
SubOnWorkflowSuspended(ByValsenderAsObject,ByValeAsWorkflowSuspendedEventArgs)
e.Error暂停信息
WorkflowTerminated
终止后,如工作流内部的异常会引起终止
SubOnWorkflowTerminated(ByValsenderAsObject,ByValeAsWorkflowTerminatedEventArgs)
WorkflowTerminatedEventArgs
e.Exception异常
WorkflowUnloaded
从内存中移出后
SubOnWorkflowUnloaded(ByValsenderAsObject,ByValeAsWorkflowEventArgs)
事件代码快速粘贴
AddHandler引擎.ServicesExceptionNotHandled,AddressOfOnServicesExceptionNotHandled
AddHandler引擎.Started,AddressOfOnStarted
AddHandler引擎.Stopped,AddressOfOnStopped
AddHandler引擎.WorkflowAborted,AddressOfOnWorkflowAborted
AddHandler引擎.WorkflowCompleted,AddressOfOnWorkflowCompleted
AddHandler引擎.WorkflowCreated,AddressOfOnWorkflowCreated
AddHandler引擎.WorkflowIdled,AddressOfOnWorkflowIdled
AddHandler引擎.WorkflowLoaded,AddressOfOnWorkflowLoaded
AddHandler引擎.WorkflowPersisted,AddressOfOnWorkflowPersisted
AddHandler引擎.WorkflowResumed,AddressOfOnWorkflowResumed
AddHandler引擎.WorkflowStarted,AddressOfOnWorkflowStarted
AddHandler引擎.WorkflowSuspended,AddressOfOnWorkflowSuspended
AddHandler引擎.WorkflowTerminated,AddressOfOnWorkflowTerminated
AddHandler引擎.WorkflowUnloaded,AddressOfOnWorkflowUnloaded
#Region"
引擎事件"
加载服务
SubOnServicesExceptionNotHandled(ByValsenderAsObject,ByValeAsSystem.Workflow.Runtime.ServicesExceptionNotHandledEventArgs)
Console.WriteLine()
Console.WriteLine("
-------------OnServicesExceptionNotHandled--------------------"
)
有实例完成:
"
+e.WorkflowInstanceId.ToString)
异常信息"
+e.Exception.Message)
----------------------------------------------------"
EndSub
-------------OnStarted--------------------"
引擎启动状态:
+e.IsStarted.ToString)
-------------OnStopped--------------------"
被中断后
-------------OnWorkflowAborted--------------------"
被中断的实例:
+e.WorkflowInstance.InstanceId.ToString)
当有实例完成时
-------------OnWorkflowCompleted--------------------"
+e.WorkflowInstance.InstanceId.ToString())
sender:
+sender.ToString)
当有实例被创建后
-------------OnWorkflowCreated--------------------"
有实例被创建:
TextBox1.Text=e.WorkflowInstance.InstanceId.ToString
当有实例进入空闭状态
-------------OnWorkflowIdled--------------------"
有实例进入空闭状态:
当有实例加载到内存时
-------------OnWorkflowLoaded--------------------"
有实例加载到内存时:
当有实例进入持久化状态后
-------------OnWorkflowPersisted--------------------"
有实例进入持久化状态:
+e.