2010-07-22 2 views
1

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

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

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

Спасибо!
Dave

+0

После запуска рабочего процесса на элементе, когда-либо заметили какие-либо новые столбцы? :-) Возможно, вам придется изменить представление. –

+0

Хм ... это действительно мне не помогает. То есть в gui. Мне нужно сделать что-то программно, где я могу запросить все рабочие процессы и определить их статус. Любые другие идеи? Благодаря! –

ответ

0

мнение является, по своей сути, запрос 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()); 
      } 

      // ... 
     } 
    } 
} 
Смежные вопросы