tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:SOAP APIによるユーザの凍結を試してみました

少し前にBob Blogでユーザの凍結処理についての記事が公開されていました。

Bob Buzzard Blog: Freezing Users from Visualforce

ブログの内容はだいたいこんな感じでした。

  • Winter'14でユーザの凍結機能が使えるようになった
  • 凍結機能は便利だが複数の対象ユーザに対して凍結ボタンをクリックするのは大変
  • 凍結情報はUserオブジェクトではなくUserLoginオブジェクトが持っている
  • Apexによる更新はできないことを確認した
  • SOAP APIからならアクセスできる
  • 簡単なサンプルを作った


サンプルはGistで公開されていたので、自分の環境で試してみました。

f:id:tyoshikawa1106:20131227124544p:plain

ユーザの姓と名、凍結ボタンが表示されました。ボタンをクリックすると凍結ステータスが更新されることを確認できました。


SOAP APIはあまりよくわかっていなかったので、これをベースに少しさわってみました。とりあえず表示される項目を増やしたり、テーブルにStyleを付けたりしてみました。

f:id:tyoshikawa1106:20131227125548p:plain


コードはこちら → Gist Link


JavaScript内でHTMLを生成して表示する方法や、SOAP APIでsObject型を宣言して値のセット、更新する方法について勉強になったと思います。


ただ、やっぱりJavaScript内でゴリゴリ処理を書くのは少し大変だったので、出来る限りApex側で処理をするのを試してみました。ユーザ情報の取得やUserとUserLoginのマッピングはApex側で行い、最後の凍結情報の更新はSOAP APIで行うようにしています。

f:id:tyoshikawa1106:20131227013614p:plain

tyoshikawa1106/Apex_MultipleUsersFrozen · GitHub

ユーザの凍結情報はUserオブジェクトではなくUserLoginオブジェクトがもっていることと、UserLoginオブジェクトはSOAP APIから更新できるということを知ることができて良かったです。