Uncategorized

MOSS 的センスを身につけよう! : SharePoint がつなぐ Office の世界

環境:
Microsoft Office SharePoint Server (MOSS) 2007

こんにちは。

新しい 2007 Office における大きなポイントとして、「サーバ」を介して各システム間を連携させるという点はセミナーなどでもよく強調しますが、開発者の方向けのセッションでは、いつもこの辺りの利用の側面は、薄い説明になってしまいます。そこで今日は、その辺りを開発の方以外にもイメージして頂けるような実例をピックアップして記載することで、皆さんにMOSS的活用センスを身に着けて頂こうと思います。(実は、最近、社内外よりいくつかの質問を受けて、まとまって書かれているページもないため、こうしたイメージもちゃんと伝えるべきと感じたためです。今日はコードレス (コード 0 ステップ) でいきます!)

おそらく 2007 以前の SharePoint を使ってこられた方や、そもそも SharePoint を知らない方にとっては、ただのバイナリデータを管理するフォルダ代わりといった程度のイメージしかないかもしれません。その役割も重要ではありますが (コンテンツは、アプリサーバ上ではなく、データベースに格納されます。このことは、インフラ構成上、実は重要なことです)、2007 では、そうした枠をはるかに超えた強力な連携の仕組みを備えています。

Excel サービスによる表やグラフの共有、Outlook 上での SharePoint ドキュメントライブラリや予定表共有など、個々の機能を説明するときりがありません。しかし、今日はそうした個々の機能の分散した説明ではなく、だいたいどんな感じで連携するものかという勘所 (カンドコロ) をつけてもらえるようにしたいというのが主旨です。こうした概念をおぼえておくと、「この辺りにこんな機能があるのではないか」という MOSS 的活用センスのようなものが理解してもらえると思います。

まず、イメージ図で記載すると、こんな感じの連携です (下図)。

最終的には、BDC (ビジネスデータカタログ) などにみられるように、これにバックエンドのビジネスデータを組み合わせる必要が生じることでしょう。しかし、既存システム (SharePoint 外のパッケージシステムや、自社システムなど) とのデータ連携などを検討する際にも、いきなり全部をスコープにぐちゃぐちゃと組み立てるのではなく、MOSS や Office クライアントの範囲内でまずはどこまで可能か、どこだけを作りこめば良いか、といった整理の上に必要な部分のみを組んでいけばよいのです。(例えば、何も、Excel が持っている機能とまったく同じものを作りこむ必要はありません。)

考え方のベースは、Office 製品どうしを異なった方法で個別に連携させるのではなく、「SharePoint リスト」 という入れ物を介すことで、

InfoPath -> SharePoint List -> Excel
Word -> SharePoint List -> InfoPath
Word -> SharePoint List -> Visio
………

などのように統一的な媒介を通して連携することができるようになるというアイデアです。
例えばこんな感じです。InfoPath で入力した内容も、Word で入力された内容も、「SharePoint リスト」として格納してしまうと、そのデータがどこから来たかに関係なく、Excel 上でグラフを作ることができます。
さらに、「マウスだけで作る、Word ドキュメントの内容 (中身) と連携したワークフロー」 で記載しているように、いったんこの「SharePoint リスト」に入れてしまえば、ワークフロープロセスで活用することも可能になってしまうのです。

InfoPath -> SharePoint List <-> Workflow
Word -> SharePoint List <-> Workflow

では、以下に、上図をもとに、いくつかピックアップして例示していきます。

①データ収集のイロハ

まず上図 ① の「データ収集」を説明しましょう。
さまざまな Office 製品を入力として、上述した「SharePoint リスト」にデータを設定することができます。

例1 : InfoPath によるデータ収集

InfoPath フォームを使ってユーザにデータを入力させ、このデータを単体の XML ファイルとしてのみではなく、SharePoint リストに格納できます。手順は以下の通りです。

  1. InfoPath を起動して、新規のフォームを作成します。この際、[ブラウザ互換の機能のみを有効にする] にチェックをつけます。
  2. コントロールを適当に配置するなどしてフォームを作成します。
    この際、入力するコントロールごとに [データソース] の名前がわりあてられますので、デザインタスクペイン (右) の [データソース] を選択して、必要に応じフィールド名などを変更します。
  3. このあと、発行をおこないますので、[ツール] – [フォームオプション] の [セキュリティと信頼] タブで環境におうじたセキュリティ設定を実施しておいてください。(これを適切に実施しないと発行できません)
  4. 作成した xsn ファイルを保存し、[ファイル] – [発行] を選択して、SharePoint サイトに発行します。
    ここがミソ ですが、このウィザードの途中で、[SharePoint サイトまたは Outlook フォルダで使用可能な列] を選択する画面が出てきます。ここに、SharePoint リストとして設定したい列を指定することができます。
  5. 作成したフォームライブラリの詳細設定で [Web ページとして表示する] にチェックをつけておくと良いでしょう。

これで、ユーザが InfoPath のブラウザフォームから入力をおこなうと、 そこで入力した内容が SharePoint リストのフィールド (列) として設定されるため、後述する方法でさまざまな Office 製品から活用することができます。

例2 : Word によるデータ収集

Word 文書も、InfoPath 同様にデータ収集の入力手段に化けます。
これについは、実は以前、「マウスだけで作る、Word ドキュメントの内容 (中身) と連携したワークフロー」 で記載していますので、そちらの手順を参照してください。
この手順では、dotx をテンプレートとしていましたが、作成した docx ファイルをコンテンツタイプトのテンプレートファイルに設定しておくと、所定の Word 文書のテンプレートに文書を入力させて文書の中の入力された値を「SharePoint リスト」の列として設定することができるようになります。

例3 : Access によるデータ収集

Access で作成されたテーブルも以下の手順で SharePoint リストのデータの入り口になります。

  1. SharePoint リストを作成します
  2. Access でデータベースを作成し、[外部データ] タブの [SharePoint リスト] を選択し、SharePoint リストとリンクされたテーブルを作成します。

とこれだけですが、Access では、Access らしいもっとおもしろい使い方ができます。例えば、営業担当者の方が、Access 上で [オフライン作業] として、外周りなどで Acccess データベースをもって出かけ、データをさんざん入力した後で帰社後 [オンライン作業] とするだけで、SharePoint リストと同期がおこなわれます。(オートナンバーなどについては、オンライン時に採番されます。) さらに Access では、Outlook のメールと連携して、メールからデータ収集をおこなうなどの機能もありますので、こうした機能と連携すると、さらに効果を発揮します。

②ビジネスインテリジェンスのイロハ

では、「収集した SharePoint リストを Office クライアントがもつさまざまな表現力を使って活用する編」です。

例 1 :  Excel によるビジネスインテリジェンス

上記で収集したデータを元にグラフ作成など分析をおこないたくなることがあるでしょう。
Excel を使って、以下の手順で SharePoint リストのデータを活用することができます。

  1. SharePoint リストの [操作] – [スプレッドシートにエクスポート] を選択します。
  2. 拡張子 .iqy というファイルがローカルに保存されますので、これを開くと、 Excel のブック (もしくは開いているブックのシートの追加) などの形でリンクされたデータが表示されます。
  3. 尚、更新をおこなう場合には、Excel を開き、データ接続を有効にしてから、[データ] タブの [すべて更新] を選択します。

例 2 : Visio によるビジネスインテリジェンス

SharePoint リストのデータを Visio の上で連携させて利用することができます。
この手順の詳細ですが、日本の SharePoint Server Developer ポータル からリンクされている 「Visio 2007 を SharePoint 製品およびテクノロジと統合する」 が非常によく書かれていますので参考にしてみてください。
Visio は、ビジネスインテリジェンスとして非常に強力なツールです。ここで紹介されているタスクリストの例以外にも、例えば、「ネットワーク構成表を SharePoint リスト上に収集して、Visio 上でネットワーク構成図として連携して表示させる」など、実は非常に多彩なシナリオで活用していくことができます。

例 3 :  InfoPath によるビジネスインテリジェンス

InfoPath は、上述したデータ収集用のフォームとしての役割以外に、以下のように SharePoint リスト上に収集されたデータの報告レポートなど、BI 的なフォームソリューションとしても活用できます。

  1. InfoPath で新規にフォームを作成し、右のペインで、[データソース] をクリックします
  2. [データ接続の管理] をクリックします。
    ここで表示されるダイアログボックスで、

    1. [追加] をクリック
    2. [新しいデータ接続先] – [データの受信] をチェックして [次へ]
    3. [SharePoint ライブラリまたはリスト] をチェックして [次へ]
    4. 集計したいリストのあるサイトの URL を入力して [次へ]
    5. 集計したいリストを選択して [次へ]
    6. 集計したいカラムを選択して [次へ]
    7. あとは、どんどん [次へ] で先に進めて画面を終了
  3. [データソース] ペインで、上記で追加したデータソースが表示されるので、それを選択します。
    挿入したいノードのドロップダウンリストで [繰り返しテーブル] などを選択することで、SharePoint リストの内容が繰り返しテーブルなどの形で InfoPath のフォーム上に展開されます。

といった具合です。

上記は、「SharePoint リスト」を中核とした連携について記載しました。何度も記載しますが、これは、SharePoint が持つ「連携」という側面の 1 つに他なりません。この他にも、Groove で入れた日常的なファイルを SharePoint に入れて「管理下」に置いたり、PowerPoint スライドライブラリを活用したり、など製品間の連携方法がさまざま提供されています。
しかし、これら全部をいっきにおぼえなくとも、まずはここで記載した 「SharePointリスト」 というサーバ上の入れ物を媒介とした基本形を理解しておくだけでも、ずいぶんと活用の幅や機能性のカンドコロは広がることでしょう。
少なくとも、以下のような状況に出くわして、もう頭を抱えたり、開発者を呼びつけたりする必要はないでしょう。

  • アンケートを収集して集計フォームを作りたいが自動化したい
  • 機器構成表を部門ごとに管理させてわざわざ構成図を作っているが自動化したい
  • 年間通して作成した設計書からレビュー記録だけ取り出して統計をとりたいが、転記が大変、、、
  • 回収結果をまとめて Select … Where … とかやって分析したいんだけど、データベースなんて重いもの使いたくない、、、
  • 部内で月例で利用統計を出力しているが、ころころ変わって大変、、、   などなどなど

Categories: Uncategorized

Tagged as:

3 replies»

Leave a Reply