InfoPathで記入したフォームがSharePoint Serverのライブラリに保存される設定
現在取り組んでいるユーザーシナリオを実現するためには、InfoPathでテンプレートを編集して、送信機能を追加する必要がありました。
- ボタンを配置する。
- ボタンに動作規則を設定する。(少なくとも、保存先のライブラリとファイル名の付け方を指定する。)
これをするためには事前に
- SharePoint サイトにドキュメントライブラリを作っておく。
- ライブラリに保存するドキュメントの種類をInfoPathにしておく。
ことが必要です。
InfoPathのテンプレート(.xnsファイル)に送信機能を追加する
データ接続ウィザードで送信先として指定するアドレス
ドキュメントライブラリのデフォルトビューのURLが
http://(サーバー名)/sites/(サイト名)/DocLib/Forms/AllItems.aspx
である場合、「ドキュメント ライブラリ」欄には http://(サーバー名)/sites/(サイト名)/DocLib/ までを記入すると正しく動作しました。ディレクトリ/Formsまで記入してしまうと、その後InfoPathでフォームを記入してドキュメントを送信しても、ライブラリに保存されませんでした。(エラーも出ないのでどこが悪いのかわからず悩んでしまいました。)
ファイル名の規則
ユーザーが記入した要素データを利用してファイル名を付けることによって、ドキュメントライブラリ上でドキュメントの分類ができます。(SharePoint本来の使い方としては、要素をビューの列にして分類する方法をとりますが、今回はファイル名でも分類できることを重視しました。)
データソースの要素に含まれるCategoryNameとResourceNameを利用して、ユーザーが選んだカテゴリとリソース名がファイル名からわかるようにし、また、ファイル名が重複しないように、日付と時間を付加しました。now()を使うと保存時の日付と日時がISO形式でつけられます。
これら3つの要素をつなげてファイル名とするために、concat()関数を使用して「ファイル名」欄に記入しました。
concat(CategoryName, ResourceName, now())
こうすると、3つの要素が接続されたファイル名で保存されます。(ドキュメントライブラリをリロードすると確認できます。保存されていない場合は、上記のURL指定が原因かもしれません。)
設定済みの送信先とファイル名の規則を変更する場合
- InfoPathの右側に「作業ウィンドウ」を表示させ、「データソース」を選択する。
- 「操作」エリアにある「データ接続の管理」をクリックすると「データ接続」ダイアログボックスが開かれる。
- 「追加」ボタンをクリックすると、「データ接続ウィザード」が開かれる。