Запросите все рабочие процессы Sharepoint для их внутреннего статуса - PullRequest
1 голос
/ 23 июля 2010

Я пытаюсь получить внутреннее состояние всех рабочих процессов sharepoint.

Есть ли способ программно запрашивать все рабочие процессы и получать их статус?Либо с помощью запроса CAML, либо с помощью объектной модели?

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

Спасибо!
Дейв

Ответы [ 2 ]

0 голосов
/ 30 июля 2010

Представление в своей основе является запросом CAML. Комментарий от @pst - хороший выбор, если вы не хотите перебирать все элементы; просто проведите CAML от определения представления любого представления, которое показывает столбец состояния рабочего процесса. Здесь может пригодиться веб-служба Lists.asmx, хотя я обычно использую PowerShell на сервере для извлечения определений представлений.

Если вы перебираете элементы в объектной модели, вот фрагмент для запуска:

using (var site = new SPSite(url))
using (var web = site.OpenWeb())
{
    var manager = site.WorkflowManager;
    var list = web.Lists[listname];
    if (list == null || list.Hidden)
    {
        return "Cannot work under these conditions.";
    }

    foreach (SPListItem item in list.Items)
    {
        foreach (SPWorkflow workflow in item.Workflows)
        {
            if ((workflow.InternalState & SPWorkflowState.Faulting) == SPWorkflowState.Faulting)
            {
                Console.WriteLine(SPWorkflowState.Faulting.ToString());
            }

            // ...
        }
    }
}
0 голосов
/ 24 июля 2010

Взгляните на SPSite.WorkflowManager.Это позволит вам изучить определения рабочих процессов и запускать экземпляры по всему семейству сайтов.CountWorkflows метод, вероятно, то, что вы хотите.

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsite.workflowmanager.aspx

-Oisin

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...