2012-04-27 4 views
2

Попытка выяснить, где информация рабочего процесса, такая как статус и участники, хранится в базе данных Sharepoint. Существует таблица, называемая workflow, но я не могу найти связь между документом и данными в данных потока. Кто угодно?Таблица рабочего стола Sharepoint

ответ

5

Рабочие процессы SharePoint основаны на Windows Workflow Foundation 3.5, поэтому любая информация, которую вы найдете об этом, скорее всего, применима к рабочим потокам SharePoint. Одна из этих вещей - hydrating and dehydrating workflows, которая существенно сохраняет текущее состояние рабочего процесса в сериализованной форме в базу данных (или где-либо еще).

SharePoint рабочие процессы опираются на четыре механизма:

  1. шаблоны Workflow
  2. ... ассоциаций
  3. ...
  4. инстанций

шаблон рабочего процесса является то, что вы можете создать в SharePoint Designer/Visual Studio. С конструктором SharePoint это создаст декларативный * .XOML-файл с Visual Studio a * .DLL - всю вашу логику рабочего процесса, которому он будет назначен, кто ваши участники хранятся там.

Этот шаблон рабочего процесса, который вы связываете, например. список, тип контента или сайт в SharePoint, а также список скрытых данных рабочего процесса и список задач рабочего процесса, даже если вы его не используете. С помощью этой ассоциации вы также можете иметь форму ассоциации, которая выполняется после связывания вашего рабочего процесса.

Экземпляр рабочего процесса - это фактический экземпляр, выполняющийся, например. элемент списка (в экземпляре также может быть представлена ​​форма). Этот экземпляр действительно заставляет вас говорить об этом в шаблоне.

Теперь, на ваш вопрос: «Где информация о рабочем процессе, такая как статус и участники, хранящиеся в базе данных?»
Короткий ответ: Это не так.

Более длинный ответ: Таблица WorkflowAssociation магазины ассоциации. Поэтому я мог видеть, что рабочий процесс с ним BaseID XYZ связан с SiteId xyz с ListId и т. Д. (Это соединение между документом и данными). Таблица Workflow в базе данных хранит информацию о запуске и прошлых рабочих процессах. Итак, вы знаете, какой из ItemGUID работает экземпляр рабочего процесса, когда он был создан и что InternalState он находится. Это внутреннее состояние вам не поможет, так как оно не отображает состояния, которые вы запрашиваете в SP Designer, это просто например, «running/not running/error» для SharePoint. Однако есть столбец InstanceData. Я не уверен, но было бы возможно, что после того, как рабочий процесс будет обезвожен, текущее состояние может быть сохранено там. В какой кодировке/форме - нет идеи. Вы не сможете узнать информацию, которую вы используете (текущие участники) в текущем рабочем процессе в базе данных.
Самое главное: вам не нужно в любом случае заглядывать в базу данных.

Информация, подобная статусу и участникам, которую вы можете узнать только через код, еще лучше, чтобы вы могли отлаживать рабочий процесс, чтобы увидеть всю имеющуюся информацию. Вы также можете создавать поля для этой информации и просто отображать «участников».

Смежные вопросы