




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 SqlTrackingService的状态查询类1.通过SqlTrackingQuery的TryGetWorkflow方法得到SqlTrackingWorkflowInstance对象2.通过SqlTrackingWorkflowInstance对象的属性与集合访问各类具体信息3.不依赖在WorkflowRuntime与SqlTrackingService,该类只接对数据操作1.1 相关的类关系图System.Workflow.Runtime.Tracking.SqlTrackingQuerySystem.Workflow.Runtime.Tracking.SqlTrackingWorkflowInstanceSystem.Workflow.Runtime.Tracking.WorkflowTrackingRecordSystem.Workflow.Runtime.Tracking.TrackingWorkflowEventSystem.Workflow.Runtime.Tracking.ActivityTrackingRecordSystem.Workflow.ComponentModel.ActivityExecutionStatusSystem.Workflow.Runtime.Tracking.UserTrackingRecord System.Workflow.Activities.Rules.RuleActionTrackingEvent1.2 类的调用说明SqlTrackingWorkflowInstanceWorkflowEvents 属性ActivityEvents属性UserEvents 属性Status属性SqlTrackingQueryNew(数据连接串)TryGetWorkflow(实例GUID, out OBJ)WorkflowTrackingRecordEventArgsEventDateTimeTrackingWorkflowEventTrackingWorkflowSuspendedEventArgs:挂起TrackingWorkflowTerminatedEventArgs:终止TrackingWorkflowExceptionEventArgs:异常Aborted Changed CompletedCreated Exception IdleLoaded Persisted ResumedStarted Suspended Terminated UnloadedActivityTrackingRecordActivityTypeParentContextContextGuidEventDateTimeExecutionStatusQualifiedNameCanceling Closed Compensating Executing Faulting InitializedUserTrackingRecordActivityTypeParentContextContextGuidEventDateTimeQualifiedNameUserDataKeyUserDataRuleActionTrackingEventRuleNameConditionResult可能是这几种类型可能是该类型1.3 SqlTrackingQuery 查询对象1.3.1 成员GetWorkflows方法TryGetWorkflow(Guid ,out SqlTrackingWorkflowInstance)方法得到指定GUID的工作流状态对象ConnectionString属性连接字符串1.3.2 使用说明SqlTrackingQuery trackingQuery;SqlTrackingWorkflowInstance trackingInstance;trackingQuery = new SqlTrackingQuery(constring);System.Guid guid = new Guid(gid);bool b = trackingQuery.TryGetWorkflow(guid, out temp);使用SqlTrackingQuery的TryGetWorkflow方法返回SqlTrackingWorkflowInstance对SqlTrackingWorkflowInstance进行具体的查询操作具体操作见SqlTrackingWorkflowInstance1.4 SqlTrackingWorkflowInstance 查询返回的实例对象1.4.1 属性AutoRefreshInitializedInvokingWorkflowInstanceId StatusWorkflowDefinition WorkflowDefinitionUpdated WorkflowInstanceIdWorkflowInstanceInternalId WorkflowType 1.4.2 集合ActivityEvents当前WorkFlow实例Activity状态对象(ActivityTrackingRecord)的集合InvokedWorkflows 得到 SqlTrackingWorkflowInstance 对象的列表, that correspond to workflows that have been invoked by this workflow.UserEvents 业务状态对象(UserTrackingRecord)的集合WorkflowEvents WorkFlow状态对象(WorkflowTrackingRecord)的集合1.4.3 方法Refresh刷新当前状态1.5 WorkflowTrackingRecord 工作流状态AnnotationsGets the collection of annotations associated with the WorkflowTrackPoint that was matched.EventDateTime记录该实例状态的时间EventOrderEventOrder字段值TrackingWorkflowEvent状态说明,TrackingWorkflowEvent类型,值如下Aborted: Changed: Completed: Created: Exception: Idle: Loaded: Persisted: Resumed: Started: Suspended: Terminated: Unloaded: EventArgs当前工作流状态记录的EventArgs,可能返回TrackingWorkflowSuspendedEventArgs : 挂起TrackingWorkflowTerminatedEventArgs:终止(异常就是引起终止的原因之一)TrackingWorkflowExceptionEventArgs:异常对不同的返回对象,会有不同的状态信息具体见得到工作流实例的挂起、终止、异常的具体信息 Shared Sub 得到实例运行状况列表(ByVal 实例Id As Guid) Dim sql As String = Initial Catalog=Tracking;Data Source=WXWINTERSQLEXPRESS;Integrated Security=SSPI; Dim 查询 As SqlTrackingQuery = New SqlTrackingQuery(sql) Dim 被查询的实例 As SqlTrackingWorkflowInstance = Nothing 查询.TryGetWorkflow(实例Id, 被查询的实例) If 被查询的实例 IsNot Nothing Then Console.WriteLine(工作流实例曾发生的状态列表:) Dim 实例状态 As WorkflowTrackingRecord For Each 实例状态 In 被查询的实例.WorkflowEvents Console.WriteLine(曾发生的状态 + 实例状态.TrackingWorkflowEvent.ToString) Console.WriteLine(该状态发生的时间 + 实例状态.EventDateTime.ToString) Console.WriteLine(EventOrder字段值: + 实例状态.EventOrder.ToString) 工作流实例可能会有如下状态 Aborted、 Changed、 Completed、 Created、 Exception、 Idle、 Loaded、 Persisted、 Resumed、 Started、 Suspended、 Terminated、 Unloaded、 Next End If End Sub1.6 WorkflowTrackingRecord.EventArgs实例挂起、终止、异常的具体信息TrackingWorkflowSuspendedEventArgs : 挂起TrackingWorkflowTerminatedEventArgs:终止(异常就是引起终止的原因之一)TrackingWorkflowExceptionEventArgs:异常等TrackingWorkflow_Args对象,通过数据类型转换后可得到 挂起 / 终止 / 异常 的具体信息下例可配合两个工作流分别使用 void code1_ExecuteCode(object sender, EventArgs e) throw new ApplicationException(测试用错误:自定义错误信息); static void 查询实例的_挂起_终止_异常(Guid 实例ID) string sql = Initial Catalog=Tracking;Data Source=WXWINTERSQLEXPRESS;Integrated Security=SSPI; SqlTrackingQuery 查询= new SqlTrackingQuery(sql); SqlTrackingWorkflowInstance 被查询的实例; if (查询.TryGetWorkflow(实例ID, out 被查询的实例) foreach (WorkflowTrackingRecord 实例状态 in 被查询的实例.WorkflowEvents) Console.WriteLine(); Console.WriteLine(-); Console.WriteLine(实例ID + 被查询的实例.WorkflowInstanceId.ToString(); Console.WriteLine(结果描述: + 实例状态.TrackingWorkflowEvent.ToString(); Console.WriteLine(时间 + 实例状态.EventDateTime.ToString(); object 状态类型= 实例状态.EventArgs; /判断实例状态信息是否为挂起类型 if (状态类型 is TrackingWorkflowSuspendedEventArgs) TrackingWorkflowSuspendedEventArgs obj = (TrackingWorkflowSuspendedEventArgs)状态类型; Console.WriteLine(暂停信息: + obj.Error); /判断实例状态信息是否为终止类型 if (状态类型 is TrackingWorkflowTerminatedEventArgs) TrackingWorkflowTerminatedEventArgs obj = (TrackingWorkflowTerminatedEventArgs)状态类型; /如果是由异常引起的结止,显示该Exception信息,(Activity的) if (null != obj.Exception) Console.WriteLine(异常终止信息: + obj.Exception.Message.ToString(); /判断实例状态信息是否为异常类型 if (状态类型 is TrackingWorkflowExceptionEventArgs) TrackingWorkflowExceptionEventArgs obj = (TrackingWorkflowExceptionEventArgs)状态类型; Console.WriteLine(异常信息的Activity控件来源: + obj.OriginalActivityPath.ToString(); /如果Exception信息不为空,显示该信息(Activity的) if (null != obj.Exception) Console.WriteLine(异常信息: + obj.Exception.Message.ToString(); /END foreach /END if /END 查询实例的_挂起_终止_异常1.7 ActivityTrackingRecord 结点状态Activity状态对象ActivityTrackingRecord以集合成员的方式存于SqlTrackingWorkflowInstance的ActivityEvents集合中ActivityTypeActivity类型AnnotationsBodyContextGuidActivity上下文GUIDEventArgsEventDateTime该状态发生的时间EventOrderEventOrder字段值ExecutionStatus状态说明,ActivityExecutionStatus类型,值如下 Canceling: Closed: Compensating: Executing: Faulting: Initialized:ParentContextActivity容器对象GUIDQualifiedNameActivity名(开发时对象名) Shared Sub 得到Activity运行状况列表(ByVal 实例Id As Guid) Dim sql As String = Initial Catalog=Tracking;Data Source=WXWINTERSQLEXPRESS;Integrated Security=SSPI; Dim 查询 As SqlTrackingQuery = New SqlTrackingQuery(sql) Dim 被查询的实例 As SqlTrackingWorkflowInstance = Nothing 查询.TryGetWorkflow(实例Id, 被查询的实例) If 被查询的实例 IsNot Nothing Then Console.WriteLine(vbCrLf + Activity 曾发生的状态列表: + vbCrLf) Console.WriteLine() Dim Activity状态 As ActivityTrackingRecord For Each Activity状态 In 被查询的实例.ActivityEvents Console.WriteLine(Activity类型: + Activity状态.ActivityType.ToString) Console.WriteLine(Activity上下文GUID: + Activity状态.ContextGuid.ToString) Console.WriteLine(该状态发生的时间: + Activity状态.EventDateTime.ToString) Console.WriteLine(Activity曾发生的状态: + Activity状态.ExecutionStatus.ToString) Console.WriteLine(EventOrder字段值: + Activity状态.EventOrder.ToString) Console.WriteLine(Activity容器对象GUID: + Activity状态.ParentContextGuid.ToString) Console.WriteLine(Activity名(开发时对象名): + Activity状态.QualifiedName) Console.WriteLine() 此时,该WorkFlow 类本身也作为一个Activity被记录状态,他是所有Activity的容器 有些Activity可以成为另一个Activity的容器Activity可能会有如下状态 Canceling、Closed、Compensating、Executing、Faulting、Initialized Next End If1.8 UserTrackingRecord 用户状态用户状态:UserTrackingRecord以集合成员的方式存于SqlTrackingWorkflowInstance的UserEvents集合中ActivityTypeActivity类型AnnotationsGets the collection of annotations associated with the user event.BodyGets a list containing any additional data extracted from the workflow for the UserTrackPoint that was matchedContextGuid上下文IDEventArgsAlways a null reference (Nothing in Visual Basic) for a UserTrackingRecord.EventDateTime时间EventOrderGets or sets a value that indicates the order of the user event that matched the UserTrackPoint in the workflow instanceParentContextGuidParent上下文IDQualifiedName所属Activity,该状态信息是在那个Activity里用TrackData方法记录的UserData内容UserDataKey键值 p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 体育健身行业私教课程训练伤害免责合同
- 场房屋租赁合同
- 五人合伙合同协议书
- 建筑工程防水承包合同
- 建筑工程钢筋采购合同
- 保险契约居间合同书
- 购物网站交易保障合同
- 临建板房搭设施工合同
- 技术辅导合同协议书模板
- 提送车协议合同
- 神经生长因子在神经退行性疾病中的作用
- 2024年内蒙古中考地理生物试卷
- 小学毕业考试数学试卷附答案【b卷】
- 文献检索智慧树知到期末考试答案章节答案2024年宁夏医科大学
- 2024年互联网营销师(直播销售员)三级理论考试题库(含答案)
- 化学实验室能源消耗优化措施
- 江苏省常州市2023-2024学年六年级下学期期中综合测试数学试卷(苏教版)
- 部编版小学语文二年级下册第三单元集体备课教材分析
- 中国人寿财产险培训
- 汉字真有趣第一课时五年级下册语文
- 2024-2030年中国马养殖行业市场深度分析及投资策略研究报告
评论
0/150
提交评论