sharepoint - 如何以编程方式获取待批准的页面?

标签 sharepoint sharepoint-2007 spsitedataquery

我有一个站点继承了多个子站点,

每个 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;

每当页面等待批准时,工作流状态为未开始,批准后为已完成。

因此,如果我根据所有等于未开始的工作流状态进行查询,那么它会返回所有等待批准的结果吗? 以及如何获取页面 Title 和 FileRefUrl?

提前感谢您的任何建议。

最佳答案

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

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

关于sharepoint - 如何以编程方式获取待批准的页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6006663/

相关文章:

recursion - 如何在 PowerApps 中从屏幕上的图库制作递归菜单?

javascript - 尝试为 SharePoint 实现 CORS 时出现 401

sharepoint - 加快 VS2010 "SharePoint"Web 部件开发的周期时间

c# - 无法使用客户端对象模型从 SharePoint 库检索文件信息

sharepoint - SharePoint 2007日志查看器

sharepoint - 通过代码安装 WebApplication 范围的功能 - SharePoint

sharepoint - SharePoint网站定义