環境: Office SharePoint Server (MOSS) 2007 Visual Studio 2005 Office SharePoint 2007 SDK (ECM Starter Kit) InfoPath 2007 こんにちは。 今日は、SharePoint ワークフロー (Workflow) で、ステータスやカスタムな属性(ユーザ属性)に応じて異なるフォームを表示する方法について説明します。 InfoPath のフォームを使用したワークフローの作成方法をご存知ない方については、まずは こちらのチュートリアル を参照して理解してください。以下、これを前提として記述していきます。 上記のチュートリアルでもご紹介しているように、タスクにカスタムな UI (フォーム) を割り当てるには、TaskType プロパティに固有の識別子 […]
WF 標準アクティビティ (Base Activity Library) の歩き方
対象フレームワーク : .NET Framework 3.5 (2008/08/05 ビデオ更新に伴い、ビデオのリンクを修正) こんにちは。 WF (Windows Workflow Foundation) は、プロセスの再利用と柔軟性をモデル駆動で実装するためのフレームワークです。WF は、基本的にはベースのエンジンであり、典型的な使い方としては、再利用性の高いアクティビティを開発者が作成し、これらを組み合わせて作成していきます。 しかしご存知の通り、0 からすべて作成する必要はなく、デフォルトでいくつかの使えるアクティビティを Base Activity Library として提供しています (開発者が作成するカスタムアクティビティの中でもこれらを使用することができます)。 そこで今日は、これら標準のアクティビティが何のために存在し、どんな風に活用できるかを理解していただきたいとと思います (既にあるものは、作る必要はありません)。Replicator や Sequence、EventHandlingScope などは SharePoint でも使用できますので、おぼえておいて損はないでしょう。よく使いそうなものから順に記載します。 Code C#, VB.NET などで記述されたコードを実行するというもっとも一般的で、普通なアクティビティです。要は、単に「処理を実行する」アクティビティです。 […]
SharePoint ワークフローの Office クライアント (Word, Excel, etc) からの起動
環境: 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 […]
[ブログ紹介] 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, […]
.NET Framework 3.0 時代のサーバ開発 (Webキャスト追加)
こんにちは。 Windows Server 2008 の Developer Center の Web キャストを追加しました。 http://www.microsoft.com/japan/msdn/windows/windowsserver2008/ Windows Server 2008 の登場で本格化するサーバ開発について、まずは .NET Framework 3.0 によるサーバ開発がどのような姿になるかを理解してもらうため、WCF/WF を中心として Web キャストを紹介しています。今回は、WF 系の開発イメージをつかんでもらうための Web キャストを追加しました。(今後は管理系も「組める」感覚をつかんでもらえるようなデモを提供し、さらにはもっと Longhorn 的なインフラとどう組み合わせるかといったところも出していきたいのですが、まずはその準備として、新しいサーバ開発の姿を実感してもらえればと思います。) 「ワークフローの作成とランタイムサービスの利用」は、かなり長めの 50 分もののビデオですが、WF の本質を実感したい方は、お時間のある折に是非ご覧ください。普段セミナーなどでも、時間の制約上、「Hello World」的な実用とかけはなれたデモや、逆に、いきなりできあがった複雑な完成品をみせられてしまうなど、なかなかこの辺りの「深み」を理解してもらう時間がとれないのですが、このWebキャストでは、その辺りの制約もなく、思い切りスクラッチから作成してみました。(あとはこれに、トラッキングサービスなどを組み合わせると、もっとエレガントなアプリになります。) このビデオを通して、ワークフローのエンジンが、 エンジンそのものが […]
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 […]
[CLT (Community Launch Team) イベント in 札幌 follow-up] WCF と WF の連携
// 2007.12.27 変更: RTM版にあわせてソースを修正しました こんにちは。 先日の土曜、札幌にて、Microsoft主催による CLTイベント が開催されました。 内容は、以下の通りです。 開発者のための WPF 入門 (赤坂玲音氏) WCF/WFとその連携 (松崎剛) 開発プラットフォームとしての 2007 Office System (スタンドアロン編) (今村丈史氏) 赤坂玲音さんによる「WPF入門」では、WPF を XAML でなく敢えて VB/C# のコードで見ることでその動きの詳細や使われているテクノロジーを理解するというセッションで、WPF の中身を解剖的に理解することのできるという点で、深みの中に分かりやすさがある、「WPFはじめての人」と「WPFを知っている人」の双方が楽しめる内容でした。(赤坂さんは こちら の本を書かれている方です。続きを知りたいという方は是非参考にしてみては如何でしょう。)今村丈史さんの「開発プラットフォームとしての2007 Office System」では、VBA と […]
[Community Ring follow-up 1] Office SharePoint Server で Office 文書を自動作成して登録するデモ
こんにちは。 5日(日)の Community Ring は、休日にも関わらず多くの方にご参加いただきありがとうございます。また技術の輪を共に広げましょう。 ところでお約束のデモのソースコードを掲載します。 まずは、Office Developer Center に掲載されている「ある工作機械メーカーA社」のアプリケーションを実装しよう!と題して大失敗した最初のデモについて、本ブログに 添付 しておきました。(デモで使用した Word 文書のテンプレートも添付しました。) この Word 文書 (ドキュメント) は、お見せした CustomXml の xml データと表示データをバインドしていて、このCustomXml の xml データはデモでお見せした InfoPath のフォームで作成されています。 動作はデモ(のリベンジ戦)で見て頂いた通りですが、あまりにトラブルが多かったので説明が尻切れトンボになってしまいましたので、以下に補足します。 開発方法ですが、ワークフロー自体は、ちゃんと作ろうと思うと、過去の記事 に記載した通りやや難しいのですが、このデモでは、以下の通り、至って簡単なはずでした、、、(四苦八苦してましたが) VS でワークフロープロジェクトを新規作成 […]