我有一个继承了多个子网站的网站,
每个子网站都有一个默认的 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);
}
}
}
}