#sharepoint #sharepoint-2007 #sharepoint-workflow
#sharepoint #sharepoint-2007 #sharepoint-рабочий процесс
Вопрос:
Компания, в которой я работаю, недавно приняла проект SharePoint 2007 от другой компании. Другая компания создала сайт, используя шаблон публикации Портала совместной работы. Поскольку это веб-сайт в Интернете, это вызывает у меня пару проблем.
По умолчанию рабочий процесс утверждения не активирован в библиотеках Pages сайта, и клиенту требуется, чтобы рабочий процесс был активен во всех библиотеках Pages. Проблема в том, что сайт огромен, и выполнение этого вручную займет слишком много времени, а поскольку это такой большой сайт, я не могу воссоздать его с нуля.
Есть ли способ активировать рабочий процесс утверждения во всех библиотеках страниц сайта? Могу ли я что-то изменить в определении сайта? Или есть способ активировать его программно? Тогда я мог бы создать консольное приложение, которое будет рекурсивно выполнять итерации по сайтам и присоединять рабочий процесс к библиотекам страниц?
Ответ №1:
Вы можете попробовать использовать этот код :
using (MossFramework.DocumentLibraryHelper docLibraryHelper = new MossFramework.DocumentLibraryHelper("SITENAME"))
{
using (SPSite site = new SPSite(docLibraryHelper.MossSiteAddress))
{
SPWeb siteCollection = site.OpenWeb();
siteCollection.AllowUnsafeUpdates = true;
SPFolder folder = siteCollection.GetFolder("Document Centre");
SPList list = siteCollection.Lists["Document Centre"];
Guid wfBaseId = new Guid("{5703E6AC-1C65-440F-88DC-EB65F2C6DF82}");
SPWorkflowAssociation wrkFl = list.WorkflowAssociations.GetAssociationByBaseID(wfBaseId);
foreach (SPListItem spListItem in list.Items)
{
site.WorkflowManager.StartWorkflow(spListItem, wrkFl, wrkFl.AssociationData);
// Error occurs here
}
site.Close();
}
}
или
Вы можете попробовать с этим
Я надеюсь, что это поможет