環境 :
Microsoft Office SharePoint Server 2007
Visual Studio 2008 (Professional Edition 以上)
こんにちは。
昨日のセミナー (SharePoint Developer Forum 「インターネットでのSharePoint Server 2007 活用技術」) では、1 時間延長というとんでもない延長試合になってしまい、申し訳ございませんでした。
さんざんデモだけ実施して終わってしまいましたが、SharePoint の CMS 関連の機能 (= WCM, Web コンテンツ管理) の利点は、ご覧頂いたように以下が特徴です。
- .NET を基盤としてフルカスタマイズ可能
- さらに、カスタマイズした機能をモジュール化できる (デザイン担当、ベース機能開発、カスタマイズ& 設定 & 管理 の明確な分業が可能)
逆にカスタマイズをまったく実施しないのであれば、フリーの CMS ツールなどと比べ、SharePoint の利点がかすんでしまうかもしれません。(世の中には、同等の機能を持ったいくつかの CMS ツールが存在しています。) SharePoint の CMS 機能は、上記の特性から、Web サイトの構築/保守がコア業務で、専門の機能を永続的に保守していくような場合に投資 (機能の初期構築) する価値のあるソリューションと言えるかもしれません。
さて、ご参加いただいた皆様向けに、セミナーでさらさらと流してしまったコードの部分のみを順番に掲載していきます。
SharePoint WCM (セミナー補足) :
- コンテンツ承認ワークフロー (CMS 用ワークフロー) の開発と設定
- メニュー/ツリー/ナビゲーションのカスタマイズ
- コンテンツ管理用のソリューションパッケージ作成
まず最初は、デモで構築したコンテンツ承認ワークフローです。
事前の設定 (軽い復習, ただし匿名認証等は除く、、、)
セミナーでご説明した要領で、コンテンツ管理 (WCM) 用にサイトを構成します。下記に手順を復習します。
- サイトコレクション (SPSite) の [発行インフラストラクチャー] の機能 (フィーチャー) と、サイト (SPWeb) の [発行機能] の機能 (フィーチャー) をアクティブにします。
(この設定により、このサイトで、ページの発行機能、再利用可能コンテンツ、リンク関連の追跡、差分管理、バリエーション等々の CMS 関連のさまざまな機能が使用可能になります。) - 上記でも基本機能は使えますが、スケジュール設定 (公開日の設定、など)、ワークフローによる承認発行などの便利機能も使えるように、設定をおこないます。
作成するページが保管される [ページ] のドキュメントライブラリの設定ページを開き、 [バージョン管理] をクリックして、[コンテンツ承認] 欄の [送信されたアイテムに対してコンテンツの承認を必須にする] のラジオボタンを選択して確定します。
以上で、設定が終了しました。
ページを新規作成して、[ワークフロー] メニューをドロップダウンするとわかりますが、この段階だと、まだ、承認ワークフローにまわさずに、いきなり [発行] をおこなうことができてしまいます (下図)。そこで、ワークフローを設定して、承認をおこなって発行させるように変更します。
ワークフローの作成 / 設定
ご説明したように、ワークフローは、わざわざ自作をしなくても、発行承認用のワークフローが既に入っていて、これを設定することができます。
しかし、日本の多くのコンテンツ管理の現場では、企業にあわせて独自のワークフローが必要とされる場面が多くなることでしょう。そこで、以下では、独自のワークフローを作成して、これをコンテンツ承認で使用していきます。
まず、ワークフローの作成からはじめます。簡単なワークフローで結構ですので、Visual Studio 2008 を使用して、こちら で紹介しているような単純なワークフローを作成してみてください。(ここでは、基本的な作成方法は省略します。)
ここで、コンテンツ承認用のワークフローを作成するためには、セミナーでご説明したように 2 つだけやるべきことがあります。
まず 1 つ目は、下図のように、このワークフローが完了したら、アイテムをメジャーバージョン (バージョン 1.0) として発行できるようにしておくという点です。
この設定がおこなえるようにするために、開発したワークフローのワークフローマニフェスト (workflow.xml) に以下のように #OnMajorCheckIn の初期化フラグを設定しておきます。
<?xml version="1.0" encoding="utf-8" ?><Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <Workflow Name="SharePointWorkflow1" . . . . .<MetaData> <InitiationType>Manual;#OnMajorCheckIn</InitiationType> . . . . .</MetaData> </Workflow></Elements>
2 つ目は、ワークフローの完了時に、発行モデレート機能のステータスを設定するという点です。
たとえば、さいごのタスク完了アクティビティのハンドラに、以下のように記述をおこなうことで、ワークフロー終了時に「承認澄み」のコンテンツ承認用のステータスを設定します。(実際の開発では、ワークフロー開始時に「承認待ち」ステータスにするなど、細やかに設定をおこなってください。)
private void completeTask1_MethodInvoking(object sender, EventArgs e){SPListItem item = workflowProperties.Item;SPModerationInformation modInfo = item.ModerationInformation;modInfo.Status = SPModerationStatusType.Approved;item.Update();}
以上で、このワークフローは、立派なコンテンツ承認ワークフローとして使用することができます。
このワークフローをビルド / 配置して、[ページ] ライブラリのワークフローとして設定をおこなってください。(上図の通り、[アイテムのメジャーバージョンの発行を承認するために、このワークフローを開始する] のチェックをおこなってワークフローの設定をおこなうようにしてください。)
これで、下図のように、承認をせずに「発行」をおこなうことはできなくなり、必ず承認依頼 (ワークフローの開始、など) をおこなわないとページの公開ができないような “まっとうなコンテンツ管理” のサイトが完成しました。[ワークフロー] メニューの [承認のため送信] を選択すると、ワークフローが開始され、ワークフローが完了すると、ドキュメントのメジャーバージョンが発行されて公開されます。
Categories: Uncategorized
セミナーではお世話になりまして、ありがとうございました。
クリエ・イルミネートさんのインターネット接続のご説明と、松崎さんの開発よりのご説明で、ボリューム満載のセミナーとなっておりました。(マウスをお貸しできなかったのが、唯一の私の失態です。)
また機会があるときには、よろしくお願い致します。
LikeLike