Как программно получить страницы, ожидающие утверждения?
У меня есть сайт с несколькими SubSite унаследованных,
каждый из подсайтов получил рабочий процесс утверждения Sharepoint по умолчанию, прикрепленный к библиотеке страниц,
поэтому всякий раз, когда страницы передаются на утверждение,
будет задача, созданная в списке задач рабочего процесса на каждом из подсайтов.
С помощью SPSiteDataQuery удается запрашивать данные со всех дочерних сайтов в списке задач рабочего процесса, как показано в следующем примере:
DataTable dt = null;
using (SPSite site = new SPSite("Site Url"))
{
using (SPWeb web = site.OpenWeb())
{
SPSiteDataQuery q = new SPSiteDataQuery();
q.Lists = "<Lists ServerTemplate='107' />";
q.Query = @"<OrderBy><FieldRef Name='Modified' Ascending='False' /></OrderBy>";
q.ViewFields = "<FieldRef Name=\"Title\" />"\;
q.Webs = "<Webs Scope='Recursive'/>";
q.RowLimit = 20;
dt = web.GetSiteData(q);
}
}
return dt;
всякий раз, когда страница ожидает одобрения, статус рабочего процесса не запускается и завершается, когда она утверждается.
Так что, если я сделаю запрос, основанный на статусе всех рабочих процессов, равном Not Started, то он вернет все результаты, ожидающие утверждения? и как мне получить страницы Title и FileRefUrl?
заранее благодарю за любые советы.
1 ответ
Лично я бы сделал это:
using (SPSite site = new SPSite(SharepointServerURL))
{
using (SPWeb web = site.OpenWeb())
{
SPFolder sitePages = web.Folders["/SitePages"];
SPListItemCollection pages = sitePages.DocumentLibrary.Items;
foreach (SPListItem page in pages)
{
if (page.ModerationInformation.Status == SPModerationStatusType.Pending)
{
Console.WriteLine(page.Title + page.Url);
}
}
}
}