【SharePoint 2010】 InfoPath フォームに SOAP Web サービスを利用して、個人情報をフォームに自動入力する
【SharePoint 2010】 InfoPath 2010 (2013) を利用したアンケートフォームの作成方法 (の続き)
[目的]
前回作ったものを少しカスタマイズします。
[残案件]
・投稿者は、自分のアイテムしか閲覧できない。(http://exchange-sharepoint.hatenablog.jp/entry/2015/12/02/202817 で済)
・個人情報をプロファイルから自動取得 (http://exchange-sharepoint.hatenablog.jp/entry/2015/11/22/155057 が関連)
・Webフォームで保存や印刷などを禁止にする。
・配送先を、ドロップダウンボックスにする。
・部数を、半角数字のみ入力を許可する。
[今回]
とゆーことで、フォーム起動時に、プロファイルから情報を取得し表示させます。
すでに、関連で検証しているので改めて手順を纏めるだけです。
[手順]
1. ShrePoint 2010 のプロファイルサービスから、対象の情報が取得できているかを確認
1-1. [サーバーの全体管理]-[アプリケーション構成の管理]-[サービスアプリケーションの管理] をクリックし、[User Profile Services Application] をクリックする。
1-2. [ユーザー プロファイルの管理] をクリック
1-3. プロファイルの検索から、ユーザーを検索し、[個人用プロファイルの編集] をクリックする。
1-4. ユーザープロパティのフィールド一覧が表示されますので、値が入っている項目は取得可能です。氏名、部署、役職は既定で入っているので、従業員番号だけ ActiveDirectory または、SQL サーバーから同期する必要があります。
2. 従業員番号をプロパティに登録します。
2-1. [ユーザープロパティの管理] をクリックします。
2-2. [新しいプロパティ] をクリックします。
2-3. 各項目を修正します。
名前: Code ※ShrePoint側でもつ内部コードです。Infopathから取得するときにここを指定します。
表示名: 従業員番号 ※適当に
ソースへのデータ接続: Active Directory Connection
属性: AD上に属性を指定 (今回は、extensionAttribute1) を使用
方向: インポート
2-4. プロパティ一覧に登録されたことを確認
2-5. ユーザープロファイルを再同期
3. InfoPathから取得する属性名を確認する。
3-1. [ユーザープロパティの管理] をクリックします。
3-2. [プロパティ名] から取得したいものを探し、右クリック [編集] をクリックします。表示された [名前] が SharePoint 側の属性名となります。
名前:PreferredName
部署:Department
役職:Title
従業員番号:Code
※一覧にある [マップされた属性] は AD 側の属性名です。
4. InfoPath 側で設定します。まずは、Webサービスの接続を作成します。
4-1. 前回つくったInfoPathフォームをデザイナーで開きます。
4-2. [Web サービス] から [SOAP Web サービス] をクリックします。
4-3. [SOAP Web サービス定期の場所を入力してください] にサイトコレクションのURLを入力し、[次へ]
サイトコレクション: http://sps01.55/sites/test
ドキュメントライブラリ: http://sps01:55/sites/test/DocLib/
入力値: http://<サイトコレクション>/_vti_bin/userprofileservice.asmx?WSDL
※userprofileservice を利用して情報を取得
4-4. [GetUserProfileByName] を選択肢、[次へ]
4-5. 既定のまま、[次へ]
4-5. 既定のまま、[次へ]
4-6. 既定のまま、[完了]
※ フォームを開くときに自動的に取得し、入力するのでここは☑をいれておく。
5. 各フィールドに、Webサービスで取得したデータを設定します。
5-1. "所属部署" ボックスを右クリックし、プロパティを開きます。
5-2. "fx" ボタンをクリックします。
5-3. [フィールドまたはグループの挿入]をクリックし、[フィールド] から "GetUserProfileByName (セカンダリ)" を選択し、下記の [myFields]-[dataFields]-[....]-[Value] を選択肢、[データのフィルター] をクリックします。
5-4. [追加] をクリックします。
5-5. [value] をクリックし、[フィールドまたはグループの選択...] をクリックします。
5-6. [Name] を選択し、[OK] をクリックします。
5-7. 続いて、右側の空欄を選択し、[文字列の入力...] をクリックします。
5-8. [3-2 で取得] した Department を入力し、[OK] を4回クリックします。
5-9. 下記のように設定されたことを確認し、他の氏名、役職、従業員番号についても同様設定を行ないます。
※部署
※従業員番号
※役職
※氏名(名前)
6. 再度発行し、Chrome から確認します。
以上です。