少し前にBob Blogでユーザの凍結処理についての記事が公開されていました。
ブログの内容はだいたいこんな感じでした。
- Winter'14でユーザの凍結機能が使えるようになった
- 凍結機能は便利だが複数の対象ユーザに対して凍結ボタンをクリックするのは大変
- 凍結情報はUserオブジェクトではなくUserLoginオブジェクトが持っている
- Apexによる更新はできないことを確認した
- SOAP APIからならアクセスできる
- 簡単なサンプルを作った
サンプルはGistで公開されていたので、自分の環境で試してみました。
ユーザの姓と名、凍結ボタンが表示されました。ボタンをクリックすると凍結ステータスが更新されることを確認できました。
SOAP APIはあまりよくわかっていなかったので、これをベースに少しさわってみました。とりあえず表示される項目を増やしたり、テーブルにStyleを付けたりしてみました。
コードはこちら → Gist Link
JavaScript内でHTMLを生成して表示する方法や、SOAP APIでsObject型を宣言して値のセット、更新する方法について勉強になったと思います。
ただ、やっぱりJavaScript内でゴリゴリ処理を書くのは少し大変だったので、出来る限りApex側で処理をするのを試してみました。ユーザ情報の取得やUserとUserLoginのマッピングはApex側で行い、最後の凍結情報の更新はSOAP APIで行うようにしています。
ユーザの凍結情報はUserオブジェクトではなくUserLoginオブジェクトがもっていることと、UserLoginオブジェクトはSOAP APIから更新できるということを知ることができて良かったです。