リモートオブジェクトを使用したレコードの更新/挿入
リモートオブジェクトモデルインスタンスで upsert() をコールすることでレコードを保存します。
upsert() は、レコードが存在すれば更新し、存在しなければ作成する便利な関数です。upsert() は create() または update() によって自動的に代行されます。レコードが新規入力フォームとレコード編集ページのどちらから取得されても影響がないページまたはアプリケーションの関数を作成するには、upsert() を使用します。
upsert() は、2 つの引数 (両方とも省略可能) 受け入れます。
1RemoteObjectModel.upsert({field_values}, callback_function)
field_values ブロックでは、1 つのステートメントで値を設定してレコードを保存できます。JSON 文字列を使用してモデルの作成時と同様に項目値を設定します。たとえば、次の 2 つの upsert() コールは同等です。
1// Call upsert() on a Contact model, with no arguments
2// ct is a RemoteObjectModel.Contact that already has data
3ct.set('Phone', '(415) 777-1212');
4ct.upsert();
5
6// Call upsert() on a Contact model, passing in field values
7// ct is a RemoteObjectModel.Contact that already has data
8ct.upsert({Phone: '(415) 777-1212'});前の例では、データベースに取引先責任者が存在するのか、入力フォームから取得された新規取引先責任者なのかが明確ではありません。upsert() で詳細を処理します。取引先責任者に Id 項目が設定されていれば、取引先責任者が更新されます。Id がない場合は、新規取引先責任者が作成されます。
upsert() は結果を直接返しません。コールバック関数では、サーバー応答を非同期に処理できます。
コールバック関数は、最大 3 つの引数を受け入れることができます。
リモートオブジェクトコールバック関数を作成する方法の詳細は、「リモートオブジェクトコールバック関数」を参照してください。
1function callback(Error error, Array results, Object event) { // ... }