環境: Microsoft Office SharePoint Server (MOSS) 2007 Visual Studio 2005 SharePoint Server 2007 SDK and ECM Starter Kit こんにちは。 今日は、SharePoint ワークフローの client integration のテクニックについて記載します。 ご存知の方も多いと思いますが、SharePoint ワークフローでは createTask アクティビティなどを使ってタスクを扱うことができるようになっており、作成されたワークフローは、SharePoint のタスクリストの中から編集(起動、実行)できますが、Office クライアント (Excel, Word, […]
SharePoint におけるコードからのアクセス権限の制御 (Tips)
環境:Office SharePoint Server (MOSS) 2007Visual Studio 2005 こんにちは。 今日は、SharePoint ワークフローにおけるドキュメントのアクセス権の制御について、簡単なサンプルコードをご紹介します。 ワークフローなどで、「承認ワークフロー実行中は編集させたくない」とか、「承認されるまで関係者以外見えないようにしたい」 などといった処理は現実の業務アプリでは必ず必要になってくることでしょう。今日は、Visual Studio による SharePoint ワークフローで、このような制御をおこなう方法について記載します。 概念は特筆すべきことはありません。要は、ワークフローアイテム(そのワークフローを起動したSharePoint上のリスト項目やドキュメントなどのアイテム)を取得し、プログラムコードから変えてしまえば良いわけです。SharePoint では、こういう場合には、オブジェクトモデル (Microsoft.SharePoint) の SPRoleAssignment を使用します。例えば、onWorkflowActivated アクティビティの Invoke メソッドに以下の通り記載するとします。 private void onWorkflowActivated1_Invoked(object sender, ExternalDataEventArgs e){ workflowId = […]
Microsoft Office SharePoint Server (MOSS) 2007 ワークフローの解剖学
こんにちは。 以前、Web ページ (ASP.NET ページ) の画面遷移を WF で実装する場合の例について記載しましたが(こちら)、今回は WF を使った実践的アプリケーションの1つとして、SharePoint のワークフローの世界をみていきましょう。 WF (Windows Workflow Foundation) は、ワークフロー的な動きをシステムで実現するためのベースのフレームワークエンジンです。SharePoint もそうしたエンジンを使った実践的サンプルプロダクトの 1 つとしてとらえることができます。 SahrePoint のワークフローをご存知の方にとっては既知の情報かもしれませんが、WF を理解されていて「SharePoint はちょっと知らないんだよね」という方は、みなさんのシステム実装のヒントとして是非お役立てください。 前回の画面遷移の説明と同様、このポストを理解するには、WF の性質に関する基本的な性質の理解が必要です。WF とはどのようなもので、どんな風に機能を実現していくかという点について理解してもらうため 「ワークフローの作成とランタイムサービス (EDS, 永続化サービス) の利用」 でデモをおこなっていますので、まだ WF […]
InfoPath 2007 でフォームを発行した際の「次の URL は無効です」(The following URL is not valid)の問題のワークアラウンド
ご無沙汰してしまいすみません。 InfoPath で、MOSS (Microsoft Office SharePoint Server 2007) への発行 (Publish) の際に、「次のURLは無効です」(The following URL is not valid) と表示されて発行できないことがあります。この回避方法について、以下にまとめます。 【回避方法 1 】 作成した Web アプリケーションが、SSP (Shared Service Provider, 共有サービス) と関連付けられていることを確認してください。(現RTM版では、作成した段階で SSP との関連付けがおこなわれますが、過去の Beta 版などの場合には、手動で関係付けをおこなう必要がありました。) […]
[ブログ紹介] Visual Studio で作成したカスタムアクティビティ (Custom Activity) を SharePoint Designer (SPD) で使用する方法
(2008/08/15 赤字の箇所の記述追加) (sample code を添付) こんにちは。 方法を掲載しようと思いましたが、既にチュートリアルとサンプルのダウンロードが可能なページがありますのでご紹介します。(下記リンク) Adding Activities to SPD (Microsoft SharePoint Designer Team Blog) (追加情報: Tip: Clearing the SPD workflow assembly cache ) これは、おそらく、SharePoint のワークフロー (Workflow) を本格的に使いはじめると、まず使いたくなる技であると思います。(よく御質問も受けます。) SharePoint (MOSS 2007, […]
VSTO の新機能 : SharePoint ワークフローの作成と配置の自動化
【環境】 Microsoft Office 2007 Enterprise Visual Studio Codename Orcas (Beta 1) Microsoft Office SharePoint Server 2007 (または WSS 3.0) Orcas でみる VSTO の新機能 リボンのデザインサポート Word コンテントコントロールのデータバインド ClickOnce Outlook フォーム リージョン (ここから Beta 1 […]
VSTO の新機能 : VBA との相互運用 (インターオペラビリティ)
【環境】 Microsoft Office 2007 Enterprise Visual Studio Codename Orcas (Beta 1) Orcas でみる VSTO の新機能 リボンのデザインサポート Word コンテントコントロールのデータバインド ClickOnce Outlook フォーム リージョン (ここから Beta 1 を使っています、、、) VBA との相互運用 SharePoint ワークフローの作成と配置の自動化 こんにちは。 今日は、昨日から再開した Orcas […]
VSTO の新機能 : Outlook Form Region (Outlook フォーム領域)
【環境】 Microsoft Office 2007 Enterprise Visual Studio Codename Orcas (Beta 1) Orcas でみる VSTO の新機能 リボンのデザインサポート Word コンテントコントロールのデータバインド ClickOnce Outlook フォーム リージョン (ここから Beta 1 を使っています、、、) VBA との相互運用 SharePoint ワークフローの作成と配置の自動化 こんにちは。 ご無沙汰してしまい申し訳ありません。ブログで途中までで止まっていた掲記のご紹介について、今日は、Outlook Form […]
SharePoint の非同期イベント(ItemAdded、ItemUpdated、など)におけるアイテム更新時の注意点
環境:Office SharePoint Server 2007 こんにちは。 デバッグをしている中でこのような事例がありましたので、ご参考のため記載しておきます。(私が書いたソースではないのですが、もしかして同じようなコードが多いのではないかと思い、、、) SharePoint におけるイベントレシーバ (SPItemEventReceiver) の中で、SPListItem (ドキュメントライブラリやリストなどのアイテム) の更新をおこなうというのは頻繁(というか一般的)におこなわれると思います。この際、そのイベントを発生しているアイテムと同一のアイテムの属性などを更新したい場合には、以下の点に注意してください。 ItemAfdded、ItemUpdated など “ed” と付くイベント処理は、イベント発生後に呼ばれる処理ですが、ItemAdding や ItemUpdating など処理前に呼ばれるものと異なり非同期で呼び出されます。このため、Word や Excel の文書アイテムでこの処理を記述すると、ItemAfdded や ItemUpdated が呼ばれている際に、まだ編集中の状態でアイテムにロックがかかっているという状況がタイミングによって発生します。このタイミングの場合、SPListItem の Update メソッドを呼び出しても、ロックが原因で例外(もしくはエラー)が発生します。(しかも、イベントレシーバーなので、エラーはユーザの画面には表示されず、内部でプログラムの処理が停止します。) こうした場合には、Update() メソッドではなく、SystemUpdate() メソッドを使って更新をおこなってください。SystemUpdate は、ロックに関係なくアイテムを更新します。(ただし、更新日付なども変更されません。つまり、他のドキュメントライブラリにドキュメントをアップする場合などは、いつも通り […]
VSTO の新機能 : ClickOnce
【環境】 Microsoft Office 2007 Enterprise Visual Studio Codename Orcas (March 2007 CTP) Internet Information Server (IIS) 6.0 Orcas でみる VSTO の新機能 リボンのデザインサポート Word コンテントコントロールのデータバインド ClickOnce Outlook フォーム リージョン (ここから Beta 1 を使っています、、、) VBA […]