JavaScriptを用いてユーザープロファイルを取得して表示してみるNintex2014年04月04日(金)皆様こんにちは、インフォシェアの小高です。Nintex関連の連載記事です。JavaScriptを用いてユーザープロファイルを取得して表示してみる方法をご紹介します。Formsをご紹介してきました。今回どうしようかと考えたのですが、せっかくJavaScriptを使用するわけですから、ちょっと楽しいというか、よくある例を取り上げるのが良いですよね。いうわけで、ユーザープロファイルを取得して画面に表示することにしました。JavaScriptを用いての列の表示非表示制御は、またの機会に取り上げますね。ベースとなるFormを用意します。これは適当ですが下記のようにしています。画面上部に2つの1行テキストありますが、ここにユーザープロファイルから取得した、ユーザー名と所属を表示します。そのうちの1つの設定です。「JavaScript変数にクライアントIDを保存」をはいにしています。「クライアントIDを保存するJavaScript変数名」にUserNameIDと入力しています。Formsの最大の特徴といってもよいと思います。この変数名の変数にコントロールのIDが格納されるのですね。一つのコントロールも設定します。「クライアントIDを保存するJavaScript変数名」はDepartmentIDとしています。はい、では次にJavaScriptを記載します。場所はForm自体の設定です。下図にある「カスタムJavaScriptに含める」と言うのは、外部スクリプトファイルの指定です。今回は、SharePointが用意してくれている「SP.UserProfiles.js」とjQueryを用いてします。あとひとつ(up.js)は、今回の処理を記載したものです。jQueryは別に必須ではありません、コードの記載が若干楽になるので、私はいつも使用しちゃっています。「カスタムJavaScript」と書いてあるところにも何か(下記)書いてあります。_spBodyOnLoadFunctionNames.push('load');これはご存知の通り、フォームのLoad時に自作のload関数を実行するという指定です。Formsは、この「カスタムJavaScript」に独自のスクリプトを記載します。非常に狭い枠ですし、使いにくいので私は上記のように、必ず外部のファイルにしちゃいます。ちなみに、外部のファイル置き場ですが、今回は「_layouts/15/demo」なんてしてます。ドキュメントライブラリなどでも構いません。メインとなる外部のJavaScriptファイルですが、長くなりますし、コード自体に興味のない人もいるかもしれませんので最後に記載します。実行結果を紹介しますね。こんな感じのプロファイルです、ここの氏名と所属を取得してます。新規フォームを起動するとこんな具合ですね。ユーザープロファイルの値が表示されています!じゃあ、表示フォームやエディットフォームはどうなるの?と疑問に思う方もいるかもしれません。ご安心ください、表示することも非表示にすることも、どうとでもなります。このあたりの話はどこかの機会で紹介しようかなと思います。Formsを用いることで、ユーザープロファイルの値、、、と言うより、JavaScriptが使用できるので、実に多くのことが実現可能です。今回は単にデータを取得するだけですが、見た目の部分の変更なんかももちろん可能です。コード(up.js)の例を記載します。(懐かしいですねー、MSでエバンジェリストをやっていた時のブログ記事のようです。)上記の「クライアントIDを保存するJavaScript変数名」のUserNameIDとDepartmentIDを使用しているのがわかると思います。コード自体「長い」と思う方が殆どだと思います。「この程度のことで毎度こんな長いコードを書いてられないYo!」とも思うかもしれませんが、こうしたコードは共通で使用するようにすればよくて、そうすればフォームには、「クライアントIDを保存するJavaScript変数名」のUserNameIDとDepartmentIDをセットしたコントロールを配置するだけですみます。その為に外部のファイルにしたという意味もあるわけです。Formsを使用するということは、「共通のJavaScriptライブラリを如何に作成するか?」ということに尽きると個人的には思います。この点がこれまでのSharePointフォーム開発と一番異なる点ですね。