Salesforce Trailheadチャレンジメモ(Apex の基礎とデータベース)
(チャレンジの回答がどうしてもわからないとき)
Trailblazer CommunityやStack Overflowで、問題文のタイトルやエラーメッセージで調べてみると回答についての投稿が見つかることがあります。Salesforce Trailblazer Community https://success.salesforce.com/successHome
Stack Overflow - Where Developers Learn, Share, & Build Careers https://stackoverflow.com/
モジュール「Apex の基礎とデータベース」
Apex の使用開始
Create an Apex class that returns an array (or list) of strings.
- public class StringArrayTest {
- public static String[] generateStringArray(Integer numbers) {
- List<String> arraylist = new List<String> ();
- for(Integer i=0; i<numbers; i++) {
- arraylist.add('Test ' + i);
- // System.debug(arraylist[i]);
- }
- return arraylist;
- }
- }
arraylist.add('Test ' + i);
arraylist.add('Test ' + i.format());
DML を使用したレコードの操作
Create a method for inserting accounts.
- public class AccountHandler {
- public static Account insertNewAccount(String name) {
- try {
- Account acct = new Account();
- acct.Name = name;
- acct.Phone= '(123)444-1212';
- insert acct;
- return acct;
- } catch (DmlException e) {
- System.debug('A DML exception has occurred; ' + e.getMessage());
- return null;
- }
- }
- }
このメソッドを実行する際、
AccountHandler.insertNewAccount('Account Name');
だと成功しますが、
AccountHandler acct = new AccountHandler();
acct.insertNewAccount('Account Name');
だとエラーになってしまいますが、チャレンジには成功します。
Execute Anonymous Error
Line: 2, Column: 4
Static method cannot be referenced from a non static context: Account AccountHandler.insertNewAccount(String) |
SOQL クエリの作成
Create an Apex class that returns contacts based on incoming parameters.
- public class ContactSearch {
- public static List<Contact> searchForContacts(String lastname, String postalcode) {
- try {
- List<Contact> cts = [SELECT Id, Name FROM Contact WHERE LastName = :lastname AND MailingPostalCode = :postalcode];
- return cts;
- } catch (Exception e) {
- System.debug('An extention has occured: ' + e.getMessage());
- return null;
- }
- }
- }
try ~ catch は不要かも知れません。
リードと取引先責任に「姓(LastName)」が「Smith」のレコードを登録し、Query EditorでSOSLで検索できることを確かめます。
SOSLをStringの変数に代入し、search.query(searchQuery)を実行する手段は、Trailheadのこのコースでは説明されてないので、Webで「SOSL in Apex」の検索語で調べました。
SOSL クエリの作成
Create an Apex class that returns both contacts and leads based on a parameter.
- public class ContactAndLeadSearch {
- public static List<List< sObject>> searchContactsAndLeads(String searchKey) {
- String searchQuery = 'FIND \'' + searchKey + '\' IN ALL FIELDS RETURNING Lead(LastName),Contact(FirstName,LastName,Department)';
- List<List< sObject>> searchList = search.query(searchQuery);
- // System.debug('searchList size is ' + searchList.size());
- return searchList;
- }
- }
リードと取引先責任に「姓(LastName)」が「Smith」のレコードを登録し、Query EditorでSOSLで検索できることを確かめます。
- FIND {Smith} IN ALL FIELDS RETURNING Lead(FirstName,LastName), Contact(FirstName,LastName,Department)
SOSLをStringの変数に代入し、search.query(searchQuery)を実行する手段は、Trailheadのこのコースでは説明されてないので、Webで「SOSL in Apex」の検索語で調べました。
コメント
コメントを投稿