Apex コードに Salesforce データを使用する
SOQL を使用して Salesforce 組織に対してクエリを実行し、取得したデータをコードで使用します。このステップでは、SOQL を使用して、ボーナス注文品目として追加する商品に関する情報を取得します。
Salesforce からデータを取得するための SOQL を追加する
- クラスの
//TO DO 3.1
のコメント (5 行目の近く) の下に次のコードを貼り付けます。
ここでは何を行うのでしょうか?
まず、SOQL を使用して、商品コードが BOT-BB-12
の花束商品の ID と ProductCode を取得し、ID を bonusProductList
.というリストに格納します。次に、bonusProductList
の項目数を確認します。リストに 1 つ以上の値があれば、新しい Product2 sObject を bonusProduct
という名前で定義して、bonusProductList
リストにある最初の sObject をその sObject に割り当てます。
次に、別の SOQL クエリを使用して、bonusProduct
の PricebookEntry の ID を取得します。PricebookEntry ID は、entryList
という名前の PricebookEntry リストに格納します。
最後に、entryList
の項目数を確認します。リストに 1 つ以上の値があれば、新しい PricebookEntry sObject を entry
という名前で定義して、entryList
リストにある最初の sObject をその sObject に割り当てます。
DML を使用して Salesforce にデータを送信する
すでに「システム管理者のためのオブジェクト指向プログラミング」モジュールを修了しているのであれば、DML が Salesforce 組織にデータを送信するために使用するデータ操作言語だということを覚えているでしょう。システム管理者であれば、DML はデータローダーなどのデータ操作ツールで使用する、Insert (レコードの作成)、Update (レコードの編集)、Delete (レコードの削除) ステートメントであると理解しています。
1 つ以上の無料の花束を作成してリストに追加しましたが、まだ Apex コードの状態です。Salesforce 組織には何も保存していません。そこで DML を使用します。
- クラスの
//TO DO 3.2
のコメントの下に次のコードを貼り付けます。 - クラスの
//TO DO 2.4
のコメントの下で、//PricebookEntryId = entry.id,
という行からコメント文字 (//
) を削除します。 - 最後に、
if
ステートメント (ボーナス花束を付与することが決定された場合に実行されるコード) を完成させます。
クラスの//TO DO 3.3
のコメントの下に次のコードを貼り付けます。 - クラスを保存します。
クラスは次のようになります。