wf資料庫Tracking服務 資料庫表詳解 工作流程Tracing Service資料庫
通過 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
此角色適用於需要修改設定檔資料的使用者帳戶。
轉自:http://www.cnblogs.com/sky266/archive/2010/04/21/1717024.html