Как программно получить страницы, ожидающие утверждения? - PullRequest
3 голосов
/ 15 мая 2011

У меня есть Сайт с несколькими 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 Ответ

4 голосов
/ 02 июня 2011

Лично я бы так и сделал:

        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);                            
                    }
                }
            }                
        }
...