レコードの作成
lightning:recordForm を使用したレコードの作成
lightning:recordForm を使用してレコードを作成するには、recordId 属性を除外します。
次の例では、項目のリストを持つ取引先レポートを作成するためのフォームを表示しています。フォームの一番下には、[キャンセル] ボタンと [保存] ボタンがあります。
レコードが正常に保存されると、鉛筆アイコンが表示され、インライン編集が可能なことを示します。このビューは、ページを更新または再読み込みするまで表示され続けます。更新または再読み込みを行うと、データを持たないレコード項目が再表示され、新しいレコードを作成できるようになります。
または、[Full] レイアウト種別を使用して、完全なレイアウトからすべての項目を読み込んで、レコードを作成するためのフォームを作成します。columns 属性は、レコード項目を同じ幅の 2 つの列に表示します。
lightning:recordForm でのエラー処理のカスタマイズ
保存中にエラーが発生すると、lightning:recordForm はフォームの一番上にエラーメッセージを表示します。onerror イベントハンドラを使用して、追加のエラー処理を定義できます。
次の例では、エラーが返されるとトーストメッセージを表示しています。
エラーメッセージを返すには、event.getParam("message") を使用します。
レコードが正常に保存された場合のフォーム動作をカスタマイズするには、onsuccess イベントハンドラを使用します。
フォームの表示時にカスタムレイアウトを使用したり、カスタムフィールド値を読み込んだりするには、次のセクションで説明する lightning:recordEditForm コンポーネントを使用します。
lightning:recordEditForm を使用したカスタムレイアウトレコードの作成
フォーム項目のカスタムレイアウトを指定するには、lightning:recordEditForm コンポーネントを使用します。
レコード項目種別に基づいて入力コントロールを表示する lightning:inputField に項目を渡します。
次の例では、Lightning Design System で Grid ユーティリティクラスを使用して、カスタムレイアウトを作成しています。
サーバエラーが発生すると、lightning:recordEditForm はフォーム項目の上にエラーメッセージを表示します。自動エラー処理を有効にするには、lightning:messages コンポーネントを使用します。もしくは、onerror イベントハンドラを使用して、エラー処理方法を定義します。
lightning:recordForm にはなくて lightning:recordEditForm だけにある、もう 1 つの機能は、次のセクションで説明するプリセットカスタム項目値です。
項目値の事前読み込み
フォームの表示時にカスタム項目値を表示するには、lightning:inputField で value 属性を使用します。レコード ID を事前に読み込む場合、レコードを読み込んだときに返される レコード ID によってカスタム値が上書きされることはありません。
あるいは、項目値を次の構文で設定します。
レコードの作成時に lightning:recordForm や lightning:recordEditForm では行えないカスタマイズが必要な場合には、force:recordData の使用を検討してください。
force:recordData を使用したカスタムユーザインターフェース経由でのレコードの作成
- getNewRecord をコールして、レコードテンプレートから空のレコードを作成します。このレコードは、フォームのバッキングストアとして使用できます。あるいは、その値を保存用のデータに設定することもできます。
- saveRecord をコールして、レコードを確定させます。この点は、「レコードの編集」に記載されています。
レコードテンプレートから空のレコードの作成
レコードテンプレートから空のレコードを作成する場合、force:recordData タグに recordId は設定できません。recordId がなければ、Lightning データサービスが既存のレコードを読み込むことがありません。
| 属性名 | 型 | 説明 |
|---|---|---|
| objectApiName | String | 新しいレコードのオブジェクト API 参照名。 |
| recordTypeId | String | 新しいレコードのレコードタイプの 18 文字の ID。 指定されていない場合は、ユーザのプロファイルで定義したオブジェクトのデフォルトのレコードタイプが使用されます。 |
| skipCache | Boolean | レコードテンプレートを、クライアント側の Lightning データサービスキャッシュではなく、サーバから読み込むかどうか。デフォルトは false です。 |
| callback | Function | 空のレコードの作成後に呼び出される関数。この関数は引数を受け取りません。 |
getNewRecord は結果を返しません。空のレコードを準備して、targetRecord 属性に割り当てるだけです。
レコードの作成
次の例は、Lightning データサービスを使用したレコードの作成の要点を示しています。この例は、取引先レコードの Lightning ページに追加されることを意図しています。
[取引先責任者を保存] ボタンがクリックされると、handleSaveContact ハンドラがコールされます。これは、「レコードの編集」に記載のとおり、取引先責任者を保存して、ユーザインターフェースを更新する単純明快なアプリケーションです。