問題
Apexを使用して、取引先の名前と年間売上をコンソールに出力するクラスを作成してください。ただし、年間売上の高い順に5つの取引先のみを出力してください。
この問題を解決することで、Apexでのデータの取得方法、ORDER BY句の使用方法、LIMIT句の使用方法、およびコンソールへの出力方法を練習することができます。
問題解決のフレームワーク
- 目的の確認:
- 問題文から、年間売上の高い上位5つの取引先の名前と年間売上をコンソールに出力することが目的であることを理解する。
- 必要なデータの特定:
- 取引先の名前(「Account」オブジェクトの「Name」項目)
- 取引先の年間売上(「Account」オブジェクトの「AnnualRevenue」項目)
- データの取得方法の検討:
- SalesforceのSOQLを使用してデータを取得する。
- 「Account」オブジェクトからデータを取得する際に、年間売上の高い順にソートし、上位5つのみを取得するためのORDER BY句とLIMIT句を使用する。
- コードの構築:
- 適切なクラスとメソッドの定義を行う。
- SOQLクエリを使用して、必要なデータを取得するコードを書く。
- データの処理:
- 取得した「Account」オブジェクトのリストをfor文でループ処理する。
- 各取引先の名前と年間売上をコンソールに出力する。
- コードの最終形:
- 全ての処理を組み合わせて、最終的なコードを完成させる。
解答例
public class AccountRevenueLogger {
public static void logTopRevenueAccounts(){
List<Account> accounts = [SELECT Name, AnnualRevenue FROM Account ORDER BY AnnualRevenue DESC LIMIT 5];
for(Account acc : accounts){
System.debug('Account Name: ' + acc.Name + ', Annual Revenue: ' + acc.AnnualRevenue);
}
}
}
解説
このクラスは、Salesforceの標準オブジェクト「Account」から年間売上の高い上位5つの取引先の名前と年間売上を取得し、それをコンソールに出力する目的で作成されています。
- クラスとメソッドの定義:
AccountRevenueLogger
という名前のクラスが定義されています。このクラス内に、logTopRevenueAccounts
という静的メソッドが定義されています。
- データの取得:
- この行は、Salesforceの標準オブジェクト「Account」から取引先の名前と年間売上を取得するSOQLクエリを実行しています。取得するデータは年間売上の高い順にソートされ、上位5つの取引先のみが取得されます。
List<Account> accounts = [SELECT Name, AnnualRevenue FROM Account ORDER BY AnnualRevenue DESC LIMIT 5];
- データの処理と出力:
- 取得した取引先のデータをforループを使用して1つずつ処理します。各取引先の名前と年間売上をコンソールに出力するためのコードを書きます。
for(Account acc : accounts){
System.debug('Account Name: ' + acc.Name + ', Annual Revenue: ' + acc.AnnualRevenue);
}
解答例(解説付き)
public class AccountRevenueLogger {
// 静的メソッドを定義: 年間売上の高い上位5つの取引先をコンソールに出力
public static void logTopRevenueAccounts(){
// 年間売上の高い順に取引先を取得 (上位5つのみ)
List<Account> accounts = [SELECT Name, AnnualRevenue FROM Account ORDER BY AnnualRevenue DESC LIMIT 5];
// 取得した取引先のリストをループ処理
for(Account acc : accounts){
// 取引先の名前と年間売上をコンソールに出力
System.debug('Account Name: ' + acc.Name + ', Annual Revenue: ' + acc.AnnualRevenue);
}
}
}
次の問題へ
【Apex練習問題】第8問
問題 「Account」オブジェクトには、取引先の評価(Rating)フィールドがあります。Apexを使用して、評価が「Hot」の取引先の名前をコンソールに出力するクラスを作成して…
前の問題へ
【Apex練習問題】第6問
問題 「Account」オブジェクトに関連する「Contact」オブジェクトがあります。Apexを使用して、取引先の名前と、その取引先に関連する取引先責任者の数をコンソールに出…
1問目から復習する
【Apex練習問題】第1問
問題 Salesforceには、取引先の情報を管理する標準オブジェクト「Account」があります。このオブジェクトには、取引先の名前(Name)フィールドがあります。Apexを使用し…
コメント