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

У меня есть сайт с несколькими 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);                            
                    }
                }
            }                
        }
Другие вопросы по тегам