2012-04-27 120 views
2

試圖找出工作流信息(如狀態和參與者)存儲在Sharepoint數據庫中的位置。有一個表格叫做工作流程,但我似乎無法找到文檔和worflow數據中的數據之間的聯繫。任何人?Sharepoint工作流程表

回答

5

SharePoint工作流程基於Windows Workflow Foundation 3.5,因此無論您將找到哪些信息,都可能適用於SharePoint工作流程。其中之一是hydrating and dehydrating workflows,它基本上將序列化形式的工作流的當前狀態保存到數據庫(或其他任何地方)中。

SharePoint工作流依靠四種機制:

  1. 工作流模板
  2. ...協會
  3. ...實例

工作流模板是你會在SharePoint Designer中創造什麼/ 視覺工作室。使用SharePoint設計器,這將生成一個聲明性的* .XOML文件,其中包括Visual Studio a * .DLL - 您工作流程的所有邏輯,將分配給誰以及您的參與者的存儲位置。

與您關聯的此工作流程模板列表,SharePoint中的內容類型或網站以及(隱藏)工作流歷史列表和工作流任務列表 - 即使您不使用它。通過這種關聯,您還可以擁有關聯表單,該關聯表單在您關聯工作流程後執行。

工作流實例是運行在實例上的實際實例。一個列表項(在實例化中也可以表示一個表單)。這個實例確實是你告訴它在模板中做的事情。

現在,在您的問題:「工作流信息如狀態和參與者存儲在數據庫中的位置?
簡答:不是。

較長的回答:表WorkflowAssociation存儲關聯。所以我可以看到他與BaseID XYZ的工作流程與SiteId xyz和ListId等(這是文檔和數據之間的連接)相關聯。數據庫中的Workflow表存儲有關運行和過去工作流程的信息。因此,您知道工作流實例正在運行哪個ItemGUID,它在什麼時候被創建以及它在哪個InternalState中。這個內部狀態對您沒有幫助,因爲它沒有映射您在SP Designer中設置的狀態,它僅僅是狀態,如SharePoint內部的「正在運行/未運行/錯誤」。但是有列InstanceData。我不確定,但有可能一旦工作流程脫水,當前狀態可以保存在那裏。在什麼編碼/形式 - 不知道。在數據庫中正在運行的工作流程中,您將無法找到您的eek(當前參與者)的信息。
最重要的是:你不應該看看數據庫。

類似狀態和參與者的信息只能通過代碼找到,甚至可以更好地調試工作流以查看所有信息。您也可以爲這些信息創建字段並簡單顯示「參與者」。