如何以编程方式获取待审批的页面



我有一个继承了多个子网站的网站,

每个子网站都有一个默认的 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;

每当页面等待审批时,工作流状态为"未启动",批准后为"已完成"。

因此,如果我根据所有工作流状态等于未启动进行查询,那么它将返回所有待审批的结果?以及如何获取页面标题和文件引用网址?

提前感谢您的任何建议。

就个人而言,我会这样做:

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

相关内容

  • 没有找到相关文章

最新更新