工作流跟踪服务数据库

通过 Windows Workflow Foundation 中的 SQL 跟踪服务,您可以添加有关工作流及其关联活动的跟踪信息。SqlTrackingQuery 类提供对包含在跟踪数据库中的数据的高级别访问。但是,您也可以直接查询 SQL 跟踪服务数据库视图以获取更多详细信息。这些视图直接映射到基础 SQL 跟踪服务表架构。

SQL 跟踪服务数据库表

以下信息概述了 SQL 跟踪服务使用的表及其关联列。

工作流

Workflow 表存储了所有工作流类型的工作流定义,该表已由 SqlTrackingService 进行跟踪。它在第一次将工作流实例化并为该工作流类型启用 SqlTrackingService 时填充。

说明

WorkflowTypeId

链接至存储类型名称和在其中出现工作流类型的程序集名称的 Type 表。

WorkflowDefinition

工作流的定义。

Activity

Activity 表存储在对应工作流类型中出现的所有活动类型。

说明

WorkflowTypeId

链接至存储类型名称和在其中出现工作流类型的程序集名称的 Type 表。

QualifiedName

工作流定义中的活动限定名。

ActivityTypeId

链接至存储类型名称和在其中出现活动类型的程序集名称的 Type 表。

ParentQualifiedName

如果该活动是另一个活动的组成部分,则此字段将包含该父级活动的活动限定名。

Type

Type 表存储了所有类型信息和在其中出现类型的程序集名称。这包括了工作流类型、活动类型以及 SqlTrackingService 中使用的其他所有类型。例如,如果将字符串作为跟踪数据项进行跟踪,则该字符串类型信息将存储在此表中。

说明

TypeId

类型的唯一 ID。

TypeFullName

该类型的完全限定名。

AssemblyFullName

存储类型的程序集的全名。

IsInstanceType

指示工作流实例是否为仅 XOML 实例的布尔值(在这种情况下,类型和程序集全名为空)。

WorkflowInstance

WorkflowInstance 表维护跟踪数据库中已跟踪的所有工作流实例的列表。

说明

WorkflowInstanceInternalId

由数据库给予工作流实例的唯一内部 ID。该 ID 用作外键以联接数据库中的其他表。

WorkflowInstanceId

工作流实例的 GUID。

ContextGuid

有关此工作流实例的上下文信息。

CallerInstanceId

调用此工作流实例的工作流实例的 ID。

CallPath

当工作流实例调用一个工作流实例,本身又被另一个工作流实例调用时使用的完整调用路径。

CallerContextGuid

有关调用方的上下文信息。

CallerParentContextGuid

有关调用实例的父级工作流实例的上下文信息。

WorkflowTypeId

使用工作流类型 ID 链接至 Workflow 表。

InitializedDateTime

初始化工作流实例的日期和时间。

CreatedDateTime

创建工作流实例的日期和时间。

DbInitializedDateTime

初始化工作流实例记录时的数据库日期和时间。

EndDateTime

完成/终止工作流实例的日期和时间。

DbEndDateTime

提交工作流实例记录时的数据库日期和时间。

ActivityInstance

ActivityInstance 表用于存储正在跟踪的活动的实例。此表与 WorkflowInstance 表之间存在多对一的关系。

说明

WorkflowInstanceInternalId

活动所属的工作流实例的内部数据库 ID。

ActivityInstanceId

给定工作流实例正在跟踪的活动的唯一 ID。

QualifiedName

工作流定义中的活动的限定名。

ContextGuid

活动的上下文。

ParentContextGuid

父活动的上下文。

WorkflowInstanceEventId

工作流实例事件记录的唯一 ID。

ActivityExecutionStatusEvent

ActivityExecutionStatusEvent 表存储了活动在其生命周期中已经历的不同状态。给定工作流实例中的给定活动可以有多个活动状态。只有其中一个是当前状态。

说明

ActivityExecutionStatusEventId

活动执行状态记录的唯一 ID。

WorkflowInstanceInternalId

活动所属的工作流实例的内部数据库 ID。

EventOrder

事件发生的顺序。

ActivityInstanceId

记录了状态的活动的唯一 ID。

ExecutionStatusId

链接至存储了不同状态的说明的 ActivityExecutionStatus 表。

EventDateTime

事件发生的日期和时间。

DbEventDateTime

事件发生时的数据库日期和时间。

ActivityExecutionStatus

ActivityExecutionStatus 表是一个参考表,该表存储活动可经历的所有执行状态的文本值。

说明

ExecutionStatusId

状态的唯一 ID。

Description

状态的文本值。

TrackingDataItem

对于每个活动状态,TrackingDataItem 表都存储了一组数据(如变量、属性等),前提是 SqlTrackingService 正在跟踪这些项(如跟踪配置文件所指示)。跟踪配置文件可以指定当特定活动达到特定状态时必须跟踪哪些工作流属性。

说明

TrackingDataItemId

表示给定活动状态的给定项目的记录的唯一 ID,属于特定的 workflowInstance。

WorkflowInstanceInternalId

工作流实例的内部数据库 ID。

EventId

从其中提取跟踪数据项的事件 ID。

EventTypeId

从其中提取跟踪数据项的事件类型。

FieldName

被跟踪变量(数据项)的名称。

FieldTypeId

被跟踪变量(数据项)的类型 ID。引用 Type 表。

Data_Str

被跟踪数据的字符串值(如果该数据属于基元类型并可转换为字符串)。

Data_Blob

被跟踪数据的值的二进制大型对象值(如果该数据属于非基元类型并可进行二进制序列化)。

DataNonSerializable

用于指示数据存在,但不能转换为字符串或进行二进制序列化的标志。

TrackingDataItemAnnotation

TrackingDataItemAnnotation 表存储了为工作流中的给定跟踪数据项添加的批注。批注由跟踪配置文件指示。

说明

TrackingDataItemId

为其存储批注的跟踪数据项的 ID。

WorkflowInstanceInternalId

工作流实例的内部数据库 ID。

Annotation

批注的文本值。

EventAnnotation

EventAnnotation 表存储了与工作流事件关联的所有批注。

说明

WorkflowInstanceInternalId

工作流实例的内部数据库 ID。

EventId

在其中进行批注的事件的内部数据库 ID。

EventTypeId

事件类型的内部数据库 ID。

Annotation

批注的文本值。

WorkflowInstanceEvent

WorkflowInstanceEvent 表存储了工作流在其生命周期中已经历的不同事件。一个给定工作流实例可以有多个事件;但是只有其中一个是当前事件。.

说明

WorkflowInstanceEventId

工作流实例事件记录的唯一 ID。

WorkflowInstanceInternalId

活动所属的工作流实例的内部数据库 ID。

EventDateTime

事件发生的日期和时间。

EventOrder

事件发生的顺序。

EventArgTypeId

事件参数的数据类型的内部数据库 ID。

EventArg

事件参数的二进制序列化数据。

DbEventDateTime

事件发生时的数据库日期和时间。

TrackingWorkflowEvent

TrackingWorkflowEvent 表存储了工作流可经历的所有事件的文本值。

说明

TrackingWorkflowEventId

事件的唯一 ID。

Description

事件的文本值。

UserEvent

“UserEvent“表存储了由自定义用户跟踪点发出和跟踪的不同事件。一个给定工作流实例可以有多个用户事件。

说明

UserEventId

用户事件的唯一 ID。

WorkflowInstanceInternalId

活动所属的工作流实例的内部数据库 ID。

EventOrder

事件发生的顺序。

ActivityInstanceId

发生用户事件的活动的唯一 ID(在该活动中,发出事件的代码出现在工作流代码中)。

EventDateTime

事件发生的日期和时间。

UserDataKey

在用户事件中传递的键值(当您使用 TrackData 方法时)。

UserDataTypeId

正在跟踪的用户数据的 Type 表中的类型 ID。

UserData_Str

被跟踪数据的字符串值(如果该数据属于基元类型并可转换为字符串)。

UserData_Blob

被跟踪数据的值的二进制大型对象值(如果该数据属于非基元类型并可进行二进制序列化)。

DataNonSerializable

用于指示数据存在,但不能转换为字符串或进行二进制序列化的标志。

DbEventDateTime

事件发生时的数据库日期和时间。

AddedActivity

AddedActivity 表存储了发生工作流更改时添加至工作流的活动。每次发生工作流更改时都可能会添加许多活动。

说明

WorkflowInstanceInternalId

工作流实例的内部数据库 ID。

WorkflowInstanceEventId

对工作流实例的事件的引用。

QualifiedName

添加活动的限定名。

ActivityTypeId

链接至 Type 表,以指示作为动态更改的一部分添加的活动的类型和程序集名称。

ParentQualifiedName

包含此活动的父级活动的限定名。

AddedActivityAction

从动态更新事件创建的 ActivityChangeAction 对象的序列化值。

Order

将活动添加至工作流的顺序

RemovedActivity

RemovedActivity 表存储了因工作流更改而移除的所有活动。每次发生工作流更改时都可能会移除许多活动。

说明

WorkflowInstanceInternalId

工作流实例的内部数据库 ID。

WorkflowInstanceEventId

对工作流实例的事件的引用。

QualifiedName

移除活动的限定名。

ParentQualifiedName

包含此活动的父级活动的限定名。

RemovedActivityAction

从动态更新事件创建的 ActivityChangeAction 对象的序列化值。

Order

将活动添加至工作流的顺序

TrackingProfile

TrackingProfile 表存储了给定工作流类型的跟踪配置文件。

说明

TrackingProfileId

跟踪配置文件的唯一 ID。

Version

跟踪配置文件的版本,应与 Tracking Profile 的版本对应(跟踪配置文件 XML 中的 TrackingProfile.Version 或版本属性)

WorkflowTypeId

链接至存储了工作流的类型名称和程序集名称的 Type 表。

TrackingProfileXml

跟踪配置文件 XML。

InsertDateTime

插入配置文件的日期和时间。

TrackingProfileInstance

TrackingProfileInstance 表存储了与特定工作流实例关联的跟踪配置文件。当不同配置文件用于不同工作流实例时使用此表。

说明

InstanceId

存储跟踪配置文件的工作流实例的内部 ID。

TrackingProfileXml

跟踪配置文件 XML。

UpdatedDateTime

发生更新的日期和时间。

DefaultTrackingProfile

DefaultTrackingProfile 表存储了默认跟踪配置文件。如果跟踪配置文件与给定工作流类型不关联,则使用默认跟踪配置文件。

说明

Version

跟踪配置文件的版本号,应与 Tracking Profile 的版本对应(跟踪配置文件 XML 中的 TrackingProfile.Version 或版本属性)

TrackingProfileXml

跟踪配置文件 XML。

InsertDateTime

插入跟踪配置文件的日期和时间。

TrackingPartitionInterval

TrackingPartitionInterval 表存储了用于启用数据维护分区的分区间隔。只有在将 SqlTrackingService 类的 PartitionOnCompletion 属性设置为 true 时,此事件才会发生。默认为每月(“m”)。您可以将其设置为每日(“d”)或每年(“y”)。

说明

Interval

要对表进行分区所设置的间隔。

TrackingPartitionSetName

TrackingPartitionSetName 表包含了有关分区集名称的信息。

说明

PartitionId

分区的唯一 ID。

Name

分区的名称。

CreatedDateTime

创建分区的日期和时间。

EndDateTime

结束分区的日期和时间。

PartitionInterval

此特定集的分区间隔。

SQL 跟踪服务数据库角色

  • tracking_writer

    运行宿主进程的帐户应在此角色下运行。该角色具有检索跟踪配置文件和写入跟踪数据的权限。

  • tracking_reader

    此角色中的帐户可以查看所有数据,但不能更新或修改数据。此角色中的用户也不能访问基础表。

  • tracking_profilereaderwriter

    此角色适用于需要修改配置文件数据的用户帐户。

请参见

参考

SqlTrackingService

其他资源

Simple Tracking Example
Windows Workflow Foundation 常规参考

Footer image

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。