Infopath 2003 + SharePoint でコードを使わず現在のユーザ情報を表示する

Infopath でフォームをデザインした際、自動的にユーザ情報(名前や所属など)を表示させたいというニーズは結構頻繁にあると思います。これを、コードを書かずに MOSS 標準の Webサービスと Infopath の基本U/Iだけで実現します。

まず、データ接続を作成します。
[ツール]→[データ接続]→[追加]→[データの受信]

[Webサービス]を選択。

URLに、
http://MOSS_Server/_vti_bin/userprofileservice.asmx?WSDL
を入力します。

一覧から GetUserProfileByName を選択します。

パラメータは無視して [次へ]

適当な名前をつけます。(ここではそのまま GetUserProfileByName とします)
[フォームを開くとき自動的に…]はお好みで。
※チェックしない場合は、別にデータ接続を行うボタンを用意する必要があります。

次に、[コントロール]から、「テキストボックス」を追加します。
これをダブルクリックしてプロパティ画面を開きます。

既定値の[値:]欄の右端にある fx をクリックします。

[フィールドまたはグループの挿入]をクリックし、データソースは先ほど作成したセカンダリ「GetUserProfileByName」を選択します。

dataFields から階層を辿り、Value を選択します(まだOKしないこと)

ダイアログの左下にある [フィルタ データ]をクリックします。
フィルタ データダイアログで [追加] をクリック。

フィルタ条件の指定ダイアログで、左欄は [フィールドまたはグループの選択]を選択。

セカンダリソースの、Name を選択して [OK]

フィルタ条件の指定ダイアログで、中央欄は [が次の値に等しい]のまま。
右欄は [文字列の入力] を選択し、AccountName と入力します。

[OK]を5回クリックして完成です。

このフォームをプレビューすると、自動的にそのユーザのADのアカウントが表示される筈です。

その他のプロパティを取得するには、上記の手順をを繰り返し、フィルタ文字列だけ変更します。
GetUserProfileByName では、以下の値が取得できます。
主に利用するは PreferredName (表示名)と、Department(所属)、Title(役職)、WorkEmail(メールアドレス)あたりでしょうか。

UserProfile_GUID
AccountName
FirstName
LastName
PreferredName
WorkPhone
Office
Department
Title
Manager
AboutMe
PersonalSpace
PictureURL
UserName
QuickLinks
WebSite
PublicSiteRedirect
SPS-Dotted-line
SPS-Peers
SPS-Responsibility
SPS-Skills
SPS-PastProjects
SPS-Interests
SPS-School
SPS-SipAddress
SPS-Birthday
SPS-MySiteUpgrade
SPS-DontSuggestList
SPS-ProxyAddresses
SPS-HireDate
SPS-LastColleagueAdded
SPS-OWAUrl
SPS-ResourceAccountName
SPS-MasterAccountName
Assistant
WorkEmail
CellPhone
Fax
HomePhone

ご参考までに、私が作成したサンプルフォームを置いておきます。
当然ですが、データ接続のURLはお使いの環境にあわせて書き換えてください。

Infopath 2003 コードを使わずにユーザのプロファイルを取得するフォーム by SharePoint Maniacs

InfoPath - Get the current user without writing code - itaysk


Author

中村 和彦(シンプレッソ・コンサルティング株式会社 代表)が「ユーザ視点の SharePoint 情報」を発信します。元大手製造業 SharePoint 運用担当。現SharePoint コンサルタント。お仕事のお問い合わせはこちらまでお願いします。当ブログにおける発信内容は個人に帰属し所属組織の公式発信/見解ではありません。
FB : 中村 和彦
blog: Be・Better!
MS MVP SharePoint 2009/10-2011/9
MS MVP Office 365 2012/10-2014/9