問題
Apexを使用して、取引先の名前と請求先住所をコンソールに出力するクラスを作成してください。ただし、請求先住所が未入力の場合は、「住所不明」として出力してください。
この問題を解決することで、Apexでのデータの取得方法、条件分岐の使用方法、およびコンソールへの出力方法を練習することができます。
問題解決のフレームワーク
- 目的の確認
- 問題文から、取引先の名前と請求先住所をコンソールに出力することが目的であることを理解する。また、請求先住所が未入力の場合は、「住所不明」として出力する必要があることも確認する。
- 必要なデータの特定
- 取引先の名前(「Account」オブジェクトの「Name」項目)
- 取引先の請求先住所(「Account」オブジェクトの「BillingAddress」項目)
- データの取得方法の検討
- SalesforceのSOQLを使用してデータを取得する。
- 「Account」オブジェクトから名前と請求先住所のデータを取得する。
- コードの構築
- 適切なクラスとメソッドの定義を行う。
- SOQLクエリを使用して、必要なデータを取得するコードを書く。その後、条件分岐を使用して請求先住所が未入力の場合の処理を追加する。
- データの処理
- 取得した「Account」オブジェクトのリストをfor文でループ処理する。
- 各取引先の名前と請求先住所を確認し、請求先住所が未入力の場合は、「住所不明」として出力する。
- コードの最終形
- 全ての処理を組み合わせて、最終的なコードを完成させる。
解答例
public class AccountBillingAddressLogger {
public static void logAccountBillingAddresses(){
List<Account> accounts = [SELECT Name, BillingAddress FROM Account];
for(Account acc : accounts){
String address;
if(acc.BillingAddress != null) {
address = String.valueOf(acc.BillingAddress);
} else {
address = '住所不明';
}
System.debug('Account Name: ' + acc.Name + ', Billing Address: ' + address);
}
}
}
解説
このクラスAccountBillingAddressLoggerは、Salesforceの標準オブジェクト「Account」から取引先の名前と請求先住所を取得し、それをコンソールに出力する目的で作成されています。
- クラスとメソッドの定義:
AccountBillingAddressLogger
という名前のクラスが定義されています。このクラス内に、logAccountBillingAddresses
という静的メソッドが定義されています。
- データの取得:
- この行では、Salesforceの標準オブジェクト「Account」から取引先の名前(Name)と請求先住所(BillingAddress)を取得しています。
List<Account> accounts = [SELECT Name, BillingAddress FROM Account];
- データの処理と出力:
- この部分では、取得した取引先の情報を1つずつ処理しています。請求先住所がnullかどうかを確認し、nullの場合は「住所不明」として出力するようにしています。各取引先の名前と請求先住所(または「住所不明」)をコンソールに出力しています。
for(Account acc : accounts){
String address;
if(acc.BillingAddress != null) {
address = String.valueOf(acc.BillingAddress);
} else {
address = '住所不明';
}
System.debug('Account Name: ' + acc.Name + ', Billing Address: ' + address);
}
解答例(解説付き)
public class AccountBillingAddressLogger {
// logAccountBillingAddressesメソッドは、取引先の名前と請求先住所をコンソールに出力するためのメソッドです。
public static void logAccountBillingAddresses(){
// Salesforceの「Account」オブジェクトから取引先の名前(Name)と請求先住所(BillingAddress)を取得するSOQLクエリ
List<Account> accounts = [SELECT Name, BillingAddress FROM Account];
// 取得した取引先のリストをループで処理
for(Account acc : accounts){
String address;
// 請求先住所がnullかどうかを確認
if(acc.BillingAddress != null) {
address = String.valueOf(acc.BillingAddress);
} else {
// 請求先住所がnullの場合は「住所不明」として出力
address = '住所不明';
}
// 取引先の名前と請求先住所(または「住所不明」)をコンソールに出力
System.debug('Account Name: ' + acc.Name + ', Billing Address: ' + address);
}
}
}
次の問題へ
【Apex練習問題】第10問
問題 Apexを使用して、取引先の名前と関連する「Opportunity」オブジェクトのフェーズ(StageName)をコンソールに出力するクラスを作成してください。ただし、フェーズが…
前の問題へ
【Apex練習問題】第8問
問題 「Account」オブジェクトには、取引先の評価(Rating)フィールドがあります。Apexを使用して、評価が「Hot」の取引先の名前をコンソールに出力するクラスを作成して…
1問目から復習する
【Apex練習問題】第1問
問題 Salesforceには、取引先の情報を管理する標準オブジェクト「Account」があります。このオブジェクトには、取引先の名前(Name)フィールドがあります。Apexを使用し…
コメント