sql - Sharepoint 工作流程表

标签 sql sharepoint

试图弄清楚状态和参与者等工作流信息在 Sharepoint 数据库中的存储位置。有一个名为 workflow 的表,但我似乎无法在 worflow 数据中找到文档和数据之间的联系。有人吗?

最佳答案

SharePoint 工作流基于 Windows Workflow Foundation 3.5,因此您找到的任何相关信息很可能适用于 SharePoint 工作流。其中之一是 hydrating and dehydrating workflows这实际上以序列化形式将工作流的当前状态保存到数据库(或其他任何地方)。

SharePoint 工作流依赖于四种机制:

  1. 工作流程模板
  2. ...协会
  3. ...实例

工作流模板是您将在 SharePoint Designer/Visual Studio 中创建的模板。使用 SharePoint 设计器,这将生成一个声明性 *.XOML 文件,使用 Visual Studio 生成一个 *.DLL - 您的所有工作流逻辑、它将分配给谁、您的参与者是谁都存储在其中。

您关联的此工作流程模板,例如SharePoint 中的列表、内容类型或网站以及(隐藏的)工作流历史列表和工作流任务列表 - 即使您不使用它。通过此关联,您还可以拥有一个关联表单,一旦关联您的工作流,该表单就会执行。

工作流实例是运行在例如上的实际实例。一个列表项(在实例化中也可以显示一个表单)。该实例实际上执行您在模板中告诉它执行的操作。

现在,回答您的问题:“状态和参与者等工作流信息存储在数据库中的什么位置?”
简短回答:不是。

更长的答案:表 WorkflowAssociation 存储关联。所以我可以看到带有 BaseID XYZ 的工作流与带有 ListIdSiteId xyz 相关联等等(这是之间的连接文档和数据)。数据库中的 Workflow 表存储有关正在运行和过去的工作流的信息。所以你知道工作流实例在哪个 ItemGUID 上运行,它是什么时候创建的以及它处于什么 InternalState 中。这个内部状态对你没有帮助,因为它没有在 SP Designer 中映射您设计的状态,它只是 SharePoint 内部的状态,例如“正在运行/未运行/错误”。但是,有 InstanceData 列。我不确定,但有可能一旦工作流脱水,当前状态就可以保存在那里。以什么编码/形式 - 不知道。您将无法在数据库中找到有关正在运行的工作流的信息(当前参与者)。
最重要的是:无论如何您都不应该查看数据库。

您只能通过代码找到诸如状态和参与者之类的信息,更好的是您可以调试您的工作流程以查看其中的所有信息。您还可以为此信息创建字段并简单地显示“参与者”。

关于sql - Sharepoint 工作流程表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10353649/

相关文章:

sql - 如何将Excel公式转换为SQL来计算每日复利

sql - MD5 : Generate excel's files

sql - 应该独立的子查询不是。为什么?

sharepoint - 自定义 SharePoint 2010 移动登录屏幕

javascript - 这是什么日期格式 2013-07-03T15 :00:00Z?

sql - 一个查询中的两个计数与相反的 where 条件

MySQL 老化触发器

Sharepoint 权限问题 - "Access Denied"

excel - 使用 ReportService2010.asmx 以编程方式从共享点导出 SSRS 报告

c# - 如何使用 Sharepoint Web 服务从 .NET 获取文档列表?