我有一个站点继承了多个子站点,
每个 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/