Apex-dml
Apex-DML
この章では、Salesforceでさまざまなデータベース変更機能を実行する方法について説明します。 機能を実行できる2つのコメントがあります。
DMLステートメント
DMLは、挿入、更新、削除、アップサート、レコードの復元、レコードのマージ、またはリードの変換操作を実行するために実行されるアクションです。
DMLはApexで最も重要な部分の1つです。ほとんどすべてのビジネスケースがデータベースの変更と修正を伴うためです。
データベースメソッド
DMLステートメントを使用して実行できるすべての操作は、データベースメソッドを使用しても実行できます。 データベースメソッドは、DML操作の実行に使用できるシステムメソッドです。 データベースメソッドは、DMLステートメントに比べて柔軟性が高くなります。
この章では、DMLステートメントを使用した最初のアプローチについて説明します。 後続の章でデータベースメソッドを見ていきます。
DMLステートメント
ここで、化学品の供給会社の例をもう一度考えてみましょう。 請求書レコードには、ステータス、支払額、残額、次回支払日、請求書番号などのフィールドがあります。 今日作成され、ステータスが「保留中」の請求書は、「支払済み」に更新する必要があります。
挿入操作
挿入操作は、データベースに新しいレコードを作成するために使用されます。 Insert DMLステートメントを使用して、標準オブジェクトまたはカスタムオブジェクトのレコードを作成できます。
例
新しい顧客の注文に対して毎日新しい請求書が生成されるため、APEX_Invoice__cオブジェクトに新しいレコードを作成できます。 最初に顧客レコードを作成してから、その新しい顧客レコードの請求書レコードを作成できます。
更新操作
更新操作は、既存のレコードの更新を実行することです。 この例では、既存の請求書レコードのステータスフィールドを「支払い済み」に更新します。
例
アップサート操作
更新挿入操作は、更新操作を実行するために使用され、更新するレコードがデータベースに存在しない場合は、新しいレコードも作成します。
例
Customerオブジェクトの顧客レコードを更新する必要があるとします。 既存の顧客レコードが既に存在する場合は更新し、そうでない場合は新しいレコードを作成します。 これは、フィールドAPEX_External_Id__cの値に基づきます。 このフィールドは、レコードがすでに存在するかどうかを識別するためのフィールドになります。
注-このコードを実行する前に、外部IDフィールドの値を「12341」としてCustomerオブジェクトにレコードを作成し、次に示すコードを実行してください-
削除操作
Delete DMLを使用して削除操作を実行できます。
例
この場合、テスト目的で作成された請求書、つまり「Test」という名前を含む請求書を削除します。
このスニペットは、クラスを作成せずに開発者コンソールからも実行できます。
元に戻す操作
削除され、ごみ箱にあるレコードの削除を取り消すことができます。 削除されたレコードが持つすべての関係も復元されます。
例
前の例で削除されたレコードを復元する必要があるとします。 これは、次の例を使用して実現できます。 前の例のコードは、この例のために変更されています。