サンプルアプリで覚えるRemoteObjectsの使い方

RemoteObjectsとはAPIの使用制限の影響を受けずにJavaScriptからSalesforceに直接アクセスできる便利な機能です。Spring'14でパイロットリリースされ、Winter'15で正式リリースされる予定になっています。このRemoteObjectsの使い方を少し勉強してみたので、今回はそのことについて書きたいと思います。

RemoteObjectsでSalesforceにアクセスする際にはapex:remoteObjectsタグを宣言する必要があります。処理内で使用するSalesforceの項目はここで宣言して下さい。

RemoteObjectsでデータを登録する場合は"create"で実行できます。

RemoteObjectsでデータを更新する場合は"update"で実行できます。

RemoteObjectsでデータを削除する場合は"del"で実行できます。

このRemoteObjectsを使用してレコードの作成、更新、削除と基本的な処理を実行できるサンプルアプリをつくってみました。次のような画面になっています。

実際に動作確認できるようにパッケージ化してあります。興味のある方はDeveloper環境にインストールして試してみてください。

https://login.salesforce.com/packaging/installPackage.apexp?p0=04t100000007Md9

このサンプルアプリではVisualStrapというAppExchangeを利用しています。無料で利用できる管理パッケージになっていますので、こちらを事前にインストールしてください。

https://appexchange.salesforce.com/listingDetail?listingId=a0N3000000B56AMEAZ

また、ToDoのステータスを"完了"に更新する処理があるのですが、更新後のステータスの値を固定値で指定しているので環境に合わせて変更してください。(Developer環境のデフォルト値から変更していなければそのままで大丈夫だと思います。)

変更対象はパッケージ内にあるTaskRegisterScript.pageの7行目でセットしている値です。

このアプリでは以下の処理を実行できます。

  • - 初期表示の際に登録済みのToDoを取得して画面に表示します。
  • - 画面左側の追加ボタンをクリックするとToDoの登録処理が実行されます。
  • - 画面右側の緑のアイコンをクリックするとToDoのステータスを完了に更新します。
  • - 画面右側の赤のアイコンをクリックするとToDoを削除します。


VisualStrapを利用して画面サイズに合わせたレイアウトに最適化されるようになっているので、Salesforce1アプリやパブリッシャーアクションでも問題なく動作します。showHeader="true"で標準ヘッダーを表示しているページでも自動で非表示に切り替えてくれます。

Salesforce1アプリ

パブリッシャーアクション

RemoeObjectsを使用した処理はApexクラスの処理と比べてサクサク動作することが確認できると思います。複雑な機能の処理はApexクラス側で行う方が開発やメンテナンスが容易になると思っていますが、シンプルな機能の処理を開発する際にはRemoeObjectsが便利だと思います。

参考リンク