デフォルトのリモートオブジェクト操作の上書き
リモートオブジェクトの基本的な操作 (create()、retrieve()、update()、del()) では、通常の Visualforce ページの標準コントローラに相当するリモートオブジェクトコントローラが自動的に使用されます。リモートオブジェクト操作を上書きして、このコントローラの組み込みの動作を拡張したり、置き換えたりすることができます。リモートオブジェクト操作の上書きは、Apex で記述され、ページのリモートオブジェクト定義に追加することで有効になります。
メソッド上書きのためのリモートオブジェクトアクセス定義
1<apex:remoteObjectModel name="Contact" fields="FirstName,LastName,Phone"
2 create="{!$RemoteAction.RemoteObjectContactOverride.create}"/>この属性は、Visualforce 式を取り、@RemoteAction メソッドを参照して組み込みの create() 操作の上書きとして使用します。この式は、$RemoteAction.OverrideClassName.overrideMethodName という形式を取ります。この場合、$RemoteAction グローバルが、JavaScript Remoting で行うときと同様に組織の名前空間を処理します。@RemoteAction メソッドが含まれるクラスは、ページのコントローラまたはページのコントローラ拡張として設定されている必要があります。
この宣言により、ページの JavaScript コードが、取引先責任者リモートオブジェクトに対して create() 関数をコールすると常に、リモートオブジェクトコントローラが使用されるのではなく、リモートメソッドがコールされます。
リモートオブジェクト上書きメソッド
リモートオブジェクト上書きメソッドは、Apex クラスの @RemoteAction メソッドとして記述され、ページにコントローラまたはコントローラ拡張として追加されます。
1@RemoteAction
2public static Map<String,Object> methodName(String type, Map<String,Object> fields)戻り値は、リモートオブジェクト操作の結果を表す対応付けです。この対応付けには通常、コールの結果、状況、およびカスタムメソッドの一部として提供するカスタムデータが含まれます。
1@RemoteAction
2public static Map<String, Object> create(String type, Map<String, Object> fields) {
3 Map<String, Object> result = RemoteObjectController.create(type, fields);
4 return result;
5}