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

レコードの保存

Salesforce for Android、Salesforce for iOS、Salesforce モバイル Web に組み込まれたレコードの作成および編集ページを利用して、Lightning コンポーネントからレコードを作成または編集することができます。
次のコンポーネントには、クライアント側コントローラをコールしてレコードの編集ページを表示するボタンがあります。
1<aura:component>
2    <lightning:button label="Edit Record" onclick="{!c.edit}"/>
3</aura:component>
クライアント側コントローラから、指定された取引先責任者 ID を持つレコードの編集ページを表示する force:recordEdit イベントが起動されます。このイベントを正しく処理するには、コンポーネントが Salesforce for Android、Salesforce for iOS、Salesforce モバイル Web に含まれている必要があります。
1edit : function(component, event, helper) {
2    var editRecordEvent = $A.get("e.force:editRecord");
3    editRecordEvent.setParams({
4        "recordId": component.get("v.contact.Id")
5    });
6    editRecordEvent.fire();
7}

force:recordEdit イベントを使用して更新されたレコードは、デフォルトにより保持されます。

Lightning コンポーネントを使用したレコードの保存

または、ユーザがレコードを追加できるカスタムフォームを提供する Lightning コンポーネントを指定することもできます。新しいレコードを保存するには、クライアント側コントローラを Apex コントローラに結び付けます。次のリストに、コンポーネントおよび Apex コントローラを使用してレコードを保持する方法を示します。

レコード更新を処理するカスタムフォームを作成する場合は、独自の項目検証を指定する必要があります。

メモ

upsert 操作で行う更新を保存する Apex コントローラを作成する。次の例に、レコードデータを更新/挿入する Apex コントローラを示します。

1@AuraEnabled
2public static Expense__c saveExpense(Expense__c expense) {
3    // Perform isUpdateable() check here 
4    upsert expense;
5    return expense;
6}

コンポーネントからクライアント側コントローラをコールする。たとえば、「<lightning:button label="Submit" onclick="{!c.createExpense}"/>」などです。

クライアント側コントローラで、項目入力規則を提供し、レコードデータをヘルパー関数に渡す。
1createExpense : function(component, event, helper) {
2    // Validate form fields
3    // Pass form data to a helper function
4    var newExpense = component.get("v.newExpense");
5    helper.createExpense(component, newExpense);
6}
コンポーネントヘルパーで、サーバ側コントローラのインスタンスを取得し、コールバックを設定する。次の例では、カスタムオブジェクトでレコードを更新/挿入します。setParams() は、サーバ側コントローラの saveExpense() メソッドで expense 引数の値を設定します。
1createExpense: function(component, expense) {
2    //Save the expense and update the view
3    this.upsertExpense(component, expense, function(a) {
4        var expenses = component.get("v.expenses");
5        expenses.push(a.getReturnValue());
6        component.set("v.expenses", expenses);
7    });
8},
9upsertExpense : function(component, expense, callback) {
10  var action = component.get("c.saveExpense");
11  action.setParams({ 
12      "expense": expense
13  });
14  if (callback) {
15      action.setCallback(this, callback);
16  }
17  $A.enqueueAction(action);
18}