0

私が働いている会社は最近、SharePoint2007プロジェクトを別の会社から引き継ぎました。他社は、CollaborationPortalPublishingテンプレートを使用してサイトを作成しました。これはインターネットのウェブサイトなので、これは私にいくつかの問題を引き起こしています。

デフォルトでは、承認ワークフローはサイトのページライブラリでアクティブ化されておらず、クライアントはワークフローがすべてのページライブラリでアクティブである必要があります。問題は、サイトが大規模であり、これを手動で行うには時間がかかりすぎることです。また、サイトが非常に大きいため、最初から再作成することはできません。

サイトのすべてのページライブラリで承認ワークフローをアクティブ化する方法はありますか?サイト定義の何かを変更できますか?または、プログラムでアクティブ化する方法はありますか?次に、サイトを再帰的に繰り返し、ワークフローをページライブラリに添付するコンソールアプリを作成できますか?

4

1 に答える 1

0

このコードで試すことができます:

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

または これで試すことができます

それが役立つことを願っています

于 2011-04-17T09:22:47.300 に答える