この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

JavaScript でのリモートオブジェクトの使用

リモートオブジェクトコンポーネントで生成された JavaScript モデルでは、値を読み込んで再び Salesforce に戻して保存するアプリケーションの関数を作成するための JavaScript API が提供されます。<apex:remoteObjects> コンポーネントで作成されたベースモデルを使用して、対応する sObject に対し特定のモデルをインスタンス化します。次に、特定のモデルを使用して sObject に対して取得、作成、更新、削除などのアクションを実行します。
リモートオブジェクトのベースモデルは、<apex:remoteObjects> コンポーネントによって作成されます。このベースモデルは、それを使用して作成したリモートオブジェクトの疑似名前空間を提供します。デフォルトでは、ベースモデルの名前は SObjectModel ですが、jsNamespace 属性を使用して名前を設定できます。関連するリモートオブジェクトを機能またはパッケージ行でグループ化するには、別のベースモデルを使用します。次に例を示します。
1<apex:remoteObjects jsNamespace="MyCorpModels">
2    <apex:remoteObjectModel name="Contact" fields="FirstName,LastName"/>
3</apex:remoteObjects>
4<apex:remoteObjects jsNamespace="TrackerModels">
5    <apex:remoteObjectModel name="Shipment__c" fields="Id,TrackNum__c"/>
6</apex:remoteObjects>

特定のモデル

通常、ベースモデルを自分で作成することはなく、代わりに、生成されたベースモデルを特定のモデルを作成するためのファクトリとして使用します。たとえば、上記の宣言では、JavaScript で Contact モデルを次のようにインスタンス化します。
1var ct = new MyCorpModels.Contact();
ct は Contact オブジェクトの JavaScript モデルであり、特定の Contact レコードではありません。

ct は特定のオブジェクト Contact を表し、ページの JavaScript と Salesforce サービスの間の接続を提供します。ct は、データベースの取引先責任者オブジェクトに対する基本的な「CRUD」操作 (作成、参照、更新、削除) の実行に使用できます。

以降のセクションの例は、次のリモートオブジェクト宣言に基づいており、3 つのリモートオブジェクトコンポーネントのすべてを使用し、カスタム��目 Notes__c を「短縮」名で追加して JavaScript でより自然にアクセスできるようにします。
1<apex:remoteObjects jsNamespace="RemoteObjectModel">
2    <apex:remoteObjectModel name="Contact" fields="Id,FirstName,LastName,Phone">
3        <apex:remoteObjectField name="Notes__c" jsShorthand="Notes"/>
4    </apex:remoteObjectModel>
5</apex:remoteObjects>
この宣言により、Contact レコードの 5 つの項目にアクセスできます。

モデルのインスタンス化と項目のアクセス

目的に応じて、項目値を設定して、または設定せずにモデルをインスタンス化します。一般に、データベースに変更を書き込むときには項目を設定し、参照のみの場合は項目を除外します。項目値は、新規モデルに設定する項目の値が含まれる JSON 文字列を渡すことで設定されます。

項目を設定せずにモデルを作成するには、空のパラメータリストでモデルを作成します。
1var ct = new RemoteObjectModel.Contact();
項目を設定してモデルをインスタンス化するには、通常、新しいレコードを作成し、項目名と値のペアを含むオブジェクトを渡します。次に例を示します。
1var ct = new RemoteObjectModel.Contact({ 
2    FirstName: "Aldo",
3    LastName: "Michaels", 
4    Phone: "(415) 555-1212"
5});
リモートオブジェクトモデルは基本的な get() および set() メソッドを使用して項目値を取得し、設定します。次に例を示します。
1var ct = new RemoteObjectModel.Contact({ FirstName: "Aldo" });
2ct.get('FirstName');  // 'Aldo'
3ct.get('Phone'); // <undefined>
4ct.set('FirstName', 'Benedict');
5ct.set('Phone', '(415) 555-1212');
コンストラクタのプロパティリストを使用して項目値を設定する場合と、set() で項目値を設定する場合に機能上の違いはありません。