28
R2-3 InfoPath ウウウウウウウウ SharePoint ウウウウウウウ Data-driven Design: 4 ウウウウ InfoPath ウウウウウウウウウウ SharePoint ウウウウウウウ 2012 ウ 6 ウ 9 ウ Qdabra Software ( ウウウウウウ ) ウウウウウ ウウウ InfoPath MVP

Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

Embed Size (px)

Citation preview

Page 1: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

R2-3: InfoPathウェブフォームでSharePointの機能をアップ

Data-driven Design: 4つの技法InfoPathを用いたスケーラブル

SharePointソリューション

2012 年 6 月 9 日

Qdabra Software ( キューダブラ )

ジェイムス リシュInfoPath MVP

Page 2: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

目次• データ駆動型デザインとは ? • データ駆動型デザインの利点• データ駆動型デザインの 4 つの例• デモ– 調査フォームの作成– ローカリゼーション: UI 言語の切り替えを追加– Web サービス : XML データを SQL のテーブルに

マッピング– 繰り返しデータをテーブルにコピー

Page 3: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

「データ駆動型デザイン」とは ?

• データに基づいて動的な挙動を行うソリューションの設計

• フォームの挙動をハードコードしない

• ひたすら頑張るのではなく、賢く省力化する

Page 4: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

データ駆動型デザインの利点• 開発

– 仕様変更に際して、設計変更の労力が少なくてすむ。– メインテナンスの簡略化– ロジックの簡略化– 基本設計は一回で、アップデートはいつでも簡単– コードへの依存を減らす

• 統一性– プロセスが複数ある場合にも、統一されたレポートを作

成しやすい。同一のフォーマットを使っているから。• 信頼性

– アップデート時にシステム停止なしで移行可能

Page 5: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

InfoPath: データ駆動型デザインを実現する便利なツール

• Office Professional Plus に含まれる• フォームは SharePoint に展開でき、ブ

ラウザで入力できる• 電子フォーム作成の GUI :内部ロジッ

ク、データ検証、 XML データ表現を含む

• XML web サービスやその他の XML データ接続を幅広くサポートする

Page 6: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

InfoPath バリュー・プロップ

• ネイティブ XML サポート• 使い慣れた Office UI• Web サービスにコードなしで接続• クライアント側でのインストールは必須で

ない• SharePoint ページを、 InfoPath Web パーツで

デザイン可

Page 7: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

データ駆動型デザインの例電子フォーム

• データフィールド:色々な値を扱える– 例:調査フォームの質問を変更する

• ラベル:ハードコードしない– 例: フォームの変更なしてで、 UI 言語を追加する

• データクエリは動的に、データ送信は疎結合で– 本当に必要なデータのみを取ってくる– XML を送信し、 Web サービスでマッピングする

• コードを書かない、少なくともフォーム特有のコードを書かない– XPath に依存しない共通ライブラリを使用– あるいは、ロジックを Web サービスの中に置く

“ コードを避ける ! 密結合を避ける !”

Page 8: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

例 : データソース• 「質問」フォームを使う ?

– フィードバック、調査、チェックリスト、テスト、質問表など• 質問が変わった場合には… ?

– フォーム内で変更すると、昔のデータが失われる– コンテントタイプによるサイド・バイ・サイドは、良さそうな技法だが

…– しかし!フォームが急増し、メンテナンスコストの増大を招く

• それぞれに新フォームを作らないこと!– 一つのフォームですべての変化形を扱う。それがデータ駆動

• 技法– データソースを汎用に。ファイル名などをハードコードしないように– フォームロード時に、質問を ID をともに取り込む– 質問セットの管理に別プロセスを作成

Page 9: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

デモシナリオ: 調査• たくさんの調査

– たくさんの質問事項• たくさんの質問事項

– たくさんの答え• 目標

– すべての調査を一つのフォームで実現• なぜ調査ごとに別のフォームを作らないか

– メンテナンスが困難 ( 編集、発行の手間が増える )

– それぞれを作るのに時間がかかる– 結果の集計やマージができない– 質問の統計が取れない– 質問が変わった場合に、古い調査表を開けな

くなる

Page 10: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

なぜデータをあらかじめ投入するのか ?

• フォームの記入が速い• より統一的なデータ入力が期待できる• 入力値のコントロールが可能• ユーザへのヘルプとしてデータ例を見せる• フォームテンプレート数を減らす• フォームで収集したデータを報告可能なものにする

同一テンプレートで作成されたフォームデータ (XML ファイル ) は、スキーマ・レポートを共有する。 SQL でレポートを一つ書けばすべてに適用可能!

Page 11: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

データ自動投入の手法• フォームのサンプルデータ

– 規定値データ : うまくデータソースを設計する要あり– XML リソースファイル : データの追加削除が容易

• インターネット上のデータ– XML config ファイル : 再発行せずにデータの変更が可能– SharePoint リスト / ライブラリ : データ更新の分散化

• ビジネスデータ: SQL 、または Web サービス– SQL データベース : 内部システムからデータ取得– Web サービス : オンラインデータベースからデータ取得

Page 12: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

規定値データは良いデザインに繋がる

• 理由 : データソースをより良く構築することになる ( ハードコードしない )

• 技法 : データ ⇒ 規定値

Page 13: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

2つのフォームでの手法= Data-Driven Design

質問を表示するフォーム Config ファイルから読み込み…

Page 14: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

デモ• データ駆動型 データソースの作成

– ラボ 1: データ駆動型の調査フォームを作成– ラボ 2: 質問事項をフォームの外で設定– ラボ 3: 別フォームで質問事項を編集

Page 15: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

例 : ラベルを複数言語で• 言語ごとに別のフォームをを作らない

– 二度手間、メンテナンスコストの増加• 複数言語をサポートするフォームを作成

– 言語の追加、ラベルの変更 ⇒ 再発行なしで可能• どうやってやるの ? 意外に簡単 !

– UI 言語データをセコンダリ config ファイルに格納• 言語 ID• ラベル ID• ローカリゼーション文字列

– 式ボックスの算出値を使用– さらに、 UI文字列編集のためのフォームを作成

• デモ : 複数 UI 言語による調査フォーム

Page 16: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

経費報告書テンプレート複数 UI 言語用

Page 17: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

デモ• 複数 UI 言語に対応した経費報告書–経費報告のローカリゼーション– 言語文字列編集用のフォーム

Page 18: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

例 : Web サービス• フォームにあらかじめデータを設定する?

SQL に送信する ?– もちろん !

• クエリをハードコードしないこと!– でないとメンテナンスは悪夢と化す…

• 送信を密結合で行わないこと! データ喪失が発生しやすい– データ移行は悪夢と化す…

• こちらの技法を使え!– UDC ファイル– REST クエリと動的クエリ文字列– フォーム全体を XML の「塊」として送信するこ

と。構成可能なマッピングファイルに従って、リレーショナルテーブルに必要なデータを抽出

• デモ– 経費報告書を SQL にマップする

Page 19: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

良い Web サービスとは ? XML クライエントと SQL データベー

スを、緩やかに結合するデータブリッジ

Page 20: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

デモ• 経費報告書を SQL にマップ• データを SQL からクエリ

Page 21: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

例 : コード拡張• ベストプラクティス(お勧めの手法) : コードを

フォーム内に書かない!– メンテナンスに、コード開発者が必要になる– コード開発者は、 XPaths をフォーム内に書きがちである

• フォーム数が増えてくると… (100以上のフォーム ?)– 各フォームが少しずつ違ったコードを持つ– 費用喰いの悪夢となる…

• 技法– 共有ライブラリを作成 ( あるいは Qdabra の qRules 使用 ) – データソース XPaths をルール経由でコマンドに渡す– あるいは、必要な機能を備えた Web サービスを使う

( 例 : Excel REST サービス )• デモ

– qRules コマンド : 繰り返しテーブルに複数項目を挿入

Page 22: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

カスタムコードの場合 

Page 23: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

デモ• 繰り返しデータのコピー–規定値データとセット– qRules挿入

Page 24: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

複数リストへのマッピング: SharePoint リストをデータベースとして使用

• SubmitToSharePointList の改善: より簡単に複数リストへのマッピングを可能にSharePoint への保存 : ビデオや巨大ファイルをアップロード

• SaveToSharePoint の改善: バックグラウンドでのアップロード• バックグラウンドでアップロード中にもフォームの編集が可能• 『処理中』インディケータが、完了%を表示

文字列コマンド: 文字列操作のための新しいコマンド群• CompareStrings: 文字列比較。規定値では大文字小文字の違いを無視• PadString: 文字列の右あるいは左に指定文字を埋め込み• GetIndex: 検索文字列の位置を返す• RemoveFromString: 指定文字列を削除• ReplaceString : 指定文字列で置換。正規表現による複雑なパターンマッチングも可能 !• SetCase: 大文字に、あるいは小文字に変換• TrimString: 指定文字を文字列頭あるいは文字列末より削除

算術コマンド : 計算のための新しいコマンド群• 三角関数コマンド : Acos, Asin, Asin, Cos, Cosh, Tan, Tanh 等• 切り捨て、切り上げ、丸め: フィールド値を整数に変換• Pow, Exp, Sqrt• TBD: 会計機能: 支払い、レート、内部収益率等

Qdabra製品紹介 : qRules v4.2 、 6月発売予定

Page 25: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

まとめ : Data-Driven Design はコスト削減に有効

• データソース– 一つのテンプレートを多様に使用

• ビュー– 複数 UI 言語では、ラベルを式ボックスの算出値で表示

• コード– できるだけ、やめましょう– どうしても必要ならば、 xpath を限定しない共通ライブラリで

• Web サービス– InfoPath では疎結合のシステムが可能 (XSD を強制 )

すなわち…そうしなくても良い ! – クエリフィルタを、 Web サービスで解析されるパラメタとして

手渡し– データを塊として送信し、 Web サービス内でマッピング

Page 26: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

本日のサンプルパッケージ ? 当講演で用いたサンプルパッケージに興味がある方は…• Microsoft の PinPoint サイトで

– http://pinpoint.microsoft.com/en-US/home– Qdabra で検索して、レビューを書く

• または、 Twitter でフェードバックをつぶやく– @QdabraSoftware

• または、 facebook.com/qdabra を「いいね ! 」する

本日のサンプルパッケージをお送りします– 発表スライド– Data-driven サンプル : 調査フォーム、複数 UI 言語による経費報告書– qRules とサンプルフォーム: 繰り返しデータをテーブルにコピー– 3 つの無料ラボ : データソース技法の紹介– ボーナスラボ: InfoPath チェックリストフォーム

Page 27: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

InfoPath のあらゆる知識がここに集約

InfoPath ソリューション開発の実績 No1 最も多くの InfoPath MVPs 最大のリソース: ブログ、ツール、フォーム等

最先端のトレーニングクラス 毎週の無償webinars

InfoPathDev フォーラム 2003年創立• 50k ユニークビジター / 月• かならずお答えします

Page 28: Data-driven Design: 4つの技法InfoPathを用いたスケーラブルSharePointソリューション

どうも有難うございました