Mark Hammer's Blog

SalesforceやTrailheadに関する情報を投稿しているブログです。

Trailhead モジュール:Territory Management Basics

※この内容は2018/5時点のものです。

Get Started with Enterprise Territory Management

https://trailhead.salesforce.com/ja/modules/territory-management-basics/units/get-started-with-enterprise-territory-management

  • 説明:英語
  • Challenge:英語ハンズオン

Challenge要約

  • 「企業テリトリー管理 を有効化」を行い、取引先のアクセス権を「テリトリー に割り当てられた取引先の参照と編集」としてください。
  • 以下内容でテリトリー種別を作成してください。
    • 表示ラベル:Managed Accounts
    • テリトリー種別名:Managed_Accounts
    • 優先度:100
    • 説明:Actively managed accounts
  • 以下内容でテリトリーモデルを作成してください。
    • 表示ラベル:Current Calendar Year
    • テリトリーモデル名:Current_Calendar_Year
    • 説明:Territory model for the current calendar year
  • 「Current Calendar Year」テリトリーモデルに、以下内容でテリトリーを作成してください。
    • 表示ラベル:US East Coast
    • テリトリー名:US_East_Coast
    • テリトリー種別:Managed Accounts
    • 説明:Managed accounts on US East Coast

Assign Accounts, Rules, and Users to Territories

https://trailhead.salesforce.com/ja/modules/territory-management-basics/units/assign-accounts-rules-and-users-to-territories

  • 説明:英語
  • Challenge:英語ハンズオン

Challenge要約

  • 「US East Coast」テリトリで、以下内容の割り当てルールを作成し、実行してください。
    • ルール名:US East Coast Zip Code
    • 一意の名前:US_East_Coast_Zip_Code
    • ステップ 2: このルールの選択条件の入力:「取引先:郵便番号(請求先)」項目が30000以下
  • 取引先「United Oil & Gas, UK」を手動で「US East Coast」テリトリに割り当ててください。
  • 「Current Calendar Year」テリトリーモデルを有効化してください。

Trailhead モジュール:Analytics ダッシュボードの作成の基本

※この内容は2018/5時点のものです。

Analytics を使用して強力なダッシュボードをすばやく作成

https://trailhead.salesforce.com/ja/modules/wave_dashboard_designer_basics/units/wave_build_powerful_dashboards_quickly

  • 説明:日本語
  • Challenge:日本語選択問題

ビジネスを評価するための主要な総計値の追加

https://trailhead.salesforce.com/ja/modules/wave_dashboard_designer_basics/units/wave_add_key_metrics_evaluate_business

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

以下内容で「Sales Performance」ダッシュボードの3番目の数値ウィジェットを作成してください。

  • ダッシュボード:Sales Performance
  • アプリケーション:私の非公開アプリケーション
  • データセット:DTC Opportunity
  • 横軸:「合計|Amount」に変更
  • 検索条件: Stage が 09 - Closed Lost と一致する
  • ステップの表示ラベル:Lost Opp Amount
  • ウィジェットタイトル:Lost Opportunities

グラフで概要を把握し、テーブルで詳細を把握

https://trailhead.salesforce.com/ja/modules/wave_dashboard_designer_basics/units/wave_get_big_picture_with_charts_and_details_with_tables

  • 説明:日本語
  • Challenge:日本語選択問題

ユーザがダッシュボードの結果を絞り込めるセレクタの追加

https://trailhead.salesforce.com/ja/modules/wave_dashboard_designer_basics/units/wave_add_selectors_allow_filters

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

以下内容で「Sales Performance」ダッシュボードの3番目のリストを作成してください。

  • ダッシュボード:Sales Performance
  • アプリケーション:私の非公開アプリケーション
  • 項目を選択:Product_Family
  • ウィジェットタイトル:Product Family

Analytics ダッシュボードウィジェットのインタラクティブ化

https://trailhead.salesforce.com/ja/modules/wave_dashboard_designer_basics/units/wave_make_dashboard_widgets_interactive

  • 説明:日本語
  • Challenge:日本語選択問題

モバイルダッシュボードによる外出先での Analytics

https://trailhead.salesforce.com/ja/modules/wave_dashboard_designer_basics/units/wave_take_analytics_on_the_go

  • 説明:日本語
  • Challenge:日本語選択問題

Trailhead モジュール:Lightning コンポーネントのスキルとツール

※この内容は2018/5時点のものです。

基本的なスキルの確認

https://trailhead.salesforce.com/ja/modules/lex_dev_lc_vf_fundamentals/units/lex_dev_lc_vf_fundamentals_skills

  • 説明:日本語
  • Challenge:日本語選択問題

不可欠なツールの収集

https://trailhead.salesforce.com/ja/modules/lex_dev_lc_vf_fundamentals/units/lex_dev_lc_vf_fundamentals_tools

  • 説明:日本語
  • Challenge:日本語選択問題

Lightning コンポーネントの開発プロセスについて

https://trailhead.salesforce.com/ja/modules/lex_dev_lc_vf_fundamentals/units/lex_dev_lc_vf_fundamentals_process

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • Lightning コンポーネント「myFirstComponent」を作成してください。
  • 「myFirstComponent」コンポーネントに、「I solemnly swear I know JavaScript」のテキストが表示されるようコードを記述してください。
  • Lightning アプリケーション「harnessApp」を作成してください。
  • 「harnessApp」アプリケーションに、マークアップ「<c:myFirstComponent/>」を追記してください。
  • 「harnessApp」アプリケーションのプレビューボタンを押して、テキストが表示されることを確認してください。
  • 「myFirstComponent」コンポーネントのテキストを、「I am proficient in JavaScript」に変更してください。
  • 「harnessApp」アプリケーションのプレビューボタンを押して、変更後のテキストが表示されることを確認してください。

Trailhead モジュール:SalesforceIQ to Sales Cloud Setup

※この内容は2018/5時点のものです。

Import Records to Sales Cloud

https://trailhead.salesforce.com/ja/modules/salesforceiq-to-sales-cloud-setup/units/import-contacts-calls-and-meetings

  • 説明:英語
  • Challenge:英語ハンズオン

Challenge要約

以下内容でパス設定を行ってください。

  • パス名:Weddings
  • API参照名:Weddings
  • オブジェクト:商談
  • レコードタイプ:--マスタ--
  • 選択リスト:Delivery/Installation Status
  • フェーズ「In Progress」に、以下項目を追加してください。
    • 取引先名
    • 金額
    • 数量
    • 商談 所有者
  • フェーズ「In Progress」の成功へのガイダンスに「Verify that there are fewer than 3 weddings booked that week.」を設定してください。
  • パスを保存し、有効化してください。

Customize Sales Cloud for Your Business

https://trailhead.salesforce.com/ja/modules/salesforceiq-to-sales-cloud-setup/units/customize-sales-cloud-for-your-business

  • 説明:英語
  • Challenge:英語ハンズオン

Challenge要約

商談オブジェクトに、以下内容でリストビューを作成してください。

  • リスト名:High Probability Opportunities
  • 誰がこのリストビューを表示しますか?:すべてのユーザがこのリストビューを表示できる
  • 検索条件:
    • フェーズが「Proposal/Price Quote」か「Negotiation/Review」のいずれかである。
    • 確度(%)が50%以上である。

Trailhead モジュール:JavaScript ボタンの Lightning の代替法

※この内容は2018/5時点のものです。

Lightning の活用および JavaScript ボタンからの移行

https://trailhead.salesforce.com/ja/modules/lex_javascript_button_migration/units/lex_javascript_button_migration_intro

  • 説明:日本語
  • Challenge:日本語選択問題

クイックアクション、カスタムボタン、Apex の使用

https://trailhead.salesforce.com/ja/modules/lex_javascript_button_migration/units/javascript_button_alternatives

  • 説明:日本語
  • Challenge:日本語選択問題

Lightning アクションについて

https://trailhead.salesforce.com/ja/modules/lex_javascript_button_migration/units/javascript_buttons_to_lightning_actions

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • Challenge実施のためにこのパッケージをDeveloper Edition組織にインストールしてください。
    名前が「quickcontact」であるLightningコンポーネントが作成されます。
  • 「quickcontact」Lightningコンポーネントに適切なインターフェースを追加してください。(ヒント:使用できるインターフェースは2つあります)
  • 取引先オブジェクトに、 quickcontact コンポーネントを呼び出す新規アクションを作成してください。
    アクションの表示ラベルは「Quick Contact」、名前は「Quick_Contact」としてください。
  • 作成したアクションを「Account Layout」ページレイアウトの「Salesforce モバイルおよび Lightning Experience のアクション」セクションに追加してください。
    (ヒント:このセクションの「定義済みアクションを上書き」をクリックしてから、アクションを追加する必要がある場合があります。)
  • パッケージインストールに問題がある場合はこの記事を参考にしてください。

Trailhead モジュール:Lightning データサービスの基本

※この内容は2018/5時点のものです。

Lightning データサービスの使用開始

https://trailhead.salesforce.com/ja/modules/lightning_data_service/units/lightning_data_service_get_started

  • 説明:日本語
  • Challenge:日本語選択問題

force:recordData を使用したレコードの操作

https://trailhead.salesforce.com/ja/modules/lightning_data_service/units/lightning_data_service_manipulate_records

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • 取引先レコード表示用コンポーネントとなる「accDisplay.cmp」Lightningコンポーネントを作成してください。
    • レコードを表示するための record属性に「accountRecord」と名付けてください。
    • 取引先名(Name)項目を lightning:card を用いて表示してください。
    • 業種(Industry), 説明(Description) の各項目を lightning:formattedText を用いて表示してください。
    • 電話(Phone) 項目を lightning:formattedPhone を用いて表示してください。
  • 取引先レコード編集用コンポーネントとなる「accEdit.cmp」Lightningコンポーネントを作成してください。
    • レコードを表示するための record属性に「accountRecord」と名付けてください。
    • UI要素として以下を追加してください。
      • 取引先名(Name)項目:lightning:input を用いてください。表示ラベルは "Account Name" としてください。
      • 保存用ボタン:lightning:button を用いてください。表示ラベルは "Save Account" としてください。
  • Salesforce UI に、Lightningアプリケーションビルダーを用いて取引先レコードページにaccDisplay.cmp と accEdit.cmp を追加してください。
    必要に応じて「Lightning アプリケーションビルダー」モジュールを参照してください。

レコードの変更およびエラーの処理

https://trailhead.salesforce.com/ja/modules/lightning_data_service/units/lightning_data_service_handle_notifications

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • コンポーネントで行われた編集が無効な場合、accEdit コンポーネントにてエラーメッセージを表示するよう変更してください。
  • エラーメッセージを保持する属性の名前は「recordSaveError」としてください。

Trailhead モジュール:Lightning コンポーネントの基本

※この内容は2018/5時点のものです。

始める前に

https://trailhead.salesforce.com/ja/modules/lex_dev_lc_basics/units/lex_dev_lc_basics_prereqs

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • [私のドメイン] にてカスタムドメインを組織へ追加してください。
    • ※筆者注:Trailhead Playground 組織を利用する場合は、既に追加済みのため対応する必要はありません。
  • カスタムオブジェクト「Expense」を(英語側の)ユニット本文に従い、以下内容で作成してください。
    • 表示ラベル:Expense
    • 表示ラベル(複数形):Expenses
    • 母音で始まる場合はチェック:チェックを入れる
    • API 参照名:Expense__c

※筆者注:設定項目に「表示ラベル(複数形)」が表示されない場合は、組織情報にて言語のデフォルト値を「英語」に設定してください。

  • カスタムオブジェクト「Expense」に、(英語側の)ユニット本文に従い、以下のカスタム項目を作成してください。
    • データ型:通貨、項目の表示ラベル:Amount、API参照名:Amount__c、文字数:16、小数点の位置:2
    • データ型:テキスト、項目の表示ラベル:Client、API参照名:Client__c、文字数:50
    • データ型:日付、項目の表示ラベル:Date、API参照名:Date__c
    • データ型:チェックボックス、項目の表示ラベル:Reimbursed、API参照名:Reimbursed__c
  • カスタムオブジェクト「Camping Item」を作成し、以下項目を設定してください。
    • Name:カスタムオブジェクト作成時に設定するレコード名
    • データ型:数値、項目の表示ラベル:Quantity、API参照名:Quantity__c、文字数:18、小数点の位置:0、必須項目:チェックを入れる
    • データ型:通貨、項目の表示ラベル:Price、API参照名:Price__c、文字数:16、小数点の位置:2、必須項目:チェックを入れる
    • データ型:チェックボックス、項目の表示ラベル:Packed、API参照名:Packed__c、デフォルト値:チェックなし

Lightning コンポーネントの使用開始

https://trailhead.salesforce.com/ja/modules/lex_dev_lc_basics/units/lex_dev_lc_basics_intro

  • 説明:日本語
  • Challenge:日本語選択問題

Lightning コンポーネントの作成および編集

https://trailhead.salesforce.com/ja/modules/lex_dev_lc_basics/units/lex_dev_lc_basics_create

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • 「Bug Spray」、「Bear Repellant」、「Goat Food」を含めた順序付きリストを持つLightningコンポーネント「campingList」を作成してください。
  • 「Camping List」という文字列をH1タグを使い、フォントサイズ:18で表示するLightningコンポーネント「campingHeader」を作成してください。
  • 上記「campingList」、「campingHeader」コンポーネントを含むLightningコンポーネント「camping」を作成してください。

属性と式

https://trailhead.salesforce.com/ja/modules/lex_dev_lc_basics/units/lex_dev_lc_basics_attributes_expressions

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • Lightningコンポーネント「campingListItem」を作成してください。
  • 「campingListItem」コンポーネントに以下属性を追加してください。
    • name属性:item
    • type属性:Camping_Item__c
    • この属性は必須としてください。
  • 「Name」、 「Price」、 「Quantity」、 「Packed」の各項目を式を用いて表示してください。
  • 「Price」、 「Quantity」の各項目を表示する際は、適切な書式を設定してください。
  • 「Packed」項目を表示する際は、切り替え形式のチェックボックス(toggle)の書式を設定してください。

コントローラを使用したアクションの処理

https://trailhead.salesforce.com/ja/modules/lex_dev_lc_basics/units/lex_dev_lc_basics_controllers

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • 前のChallengeで作成した「campingListItem」コンポーネントに、以下のボタンを作成してください。
    • ラベル(label): Packed!
    • 呼び出すコントローラ関数: packItem
  • コントローラ関数に、以下を実行するよう実装してください。
    • item属性のPacked項目に対し、Trueを設定する。
    • ボタンを無効にするため、disabled属性に対し、Trueを設定する。

フォームを使用したデータの入力

https://trailhead.salesforce.com/ja/modules/lex_dev_lc_basics/units/lex_dev_lc_basics_forms

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • 「campingHeader」コンポーネントをlightning:layoutやSLDSを用いて、以下のように変更してください。
    • このユニットのソースコードを参考に、「slds-page-header」の中にH1タグにある「Camping List」を入れてください。
    • lightning:iconを用いて「action:goal」SLDSアイコンを追加してください。
  • 「campingList」コンポーネントを、新規アイテム追加フォームの表示、及び追加したアイテムを表示するために「campingListItem」コンポーネントを繰り返し実行するよう変更してください。  変更内容の詳細は以下の通りです。
    • Camping Itemカスタムオブジェクトの配列を型(type)とする「items」属性を追加してください。
    • Camping_Item__cを型(type)とする「newItem」属性を追加してください。Quanitity、Price のデフォルト値は0としてください。
    • 「campingList」コンポーネントには、「newItem」属性より適切な入力コンポーネントタイプ、値を用いてName、Quanitity、Price、およびPackedの各項目のフォームを表示してください。 Quantity項目に入力可能な値は1以上としてください。
    • フォームを登録した場合に、JavaScriptコントローラにある「clickCreateItem」アクションを実行するようにしてください。
    • フォームが有効な場合、JavaScriptコントローラーは newItem を既存のitemの配列に挿入し、items value providerが変更されたことの通知をトリガーし、空の Camping_Item__c 型(type)の sObjectType で newItem をリセットしてください。 このコードは、ヘルパーではなくコンポーネントのコントローラに記述してください。

サーバ側コントローラを使用した Salesforce への接続

https://trailhead.salesforce.com/ja/modules/lex_dev_lc_basics/units/lex_dev_lc_basics_server

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • 「CampingListController」Apexクラスを作成し、getItems, saveItemメソッドを実装してください。
  • コンポーネントの起動時にデータベースから既存レコードの読み込みを行う、「doInit」初期化ハンドラを追加してください。
  • 有効なフォーム送信内容からデータベースにレコードを保存するため、ヘルパーに記述したcreateItemメソッドを使用するようにJavaScript コントローラを変更してください。新しいitemは、コントローラのitems value provider に追加されます。

コンポーネントとイベントの接続

https://trailhead.salesforce.com/ja/modules/lex_dev_lc_basics/units/lex_dev_lc_basics_events

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • 「campingList」コンポーネントにあるHTMLフォーム部分のコードを、新しく作成した「campingListForm」コンポーネントに移動してください。また、ボタンをクリックした際に「clickCreateItem」JavaScript コントローラアクションを呼び出すようにしてください。
  • 「campingList」コンポーネントは、c:addItemEvent イベントをリスン(listen)し、JavaScriptコントローラにある handleAddItem アクションを実行するようにしてください。 handleAdditemメソッドはレコードをデータベースに保存し、レコードを items value provider に追加するようにしてください。
  • addItemEvent イベントの type は component とし、 Camping_Item__c 型(type)の item という名前の属性を持つようにしてください。
  • 「campingListForm」コンポーネントには、c:addItemEvent 型(type)の addItem イベントを登録してください。
  • フォームが有効な場合、campingListFormController JavaScriptコントローラは、ヘルパーにある createItem メソッドを呼び出すようにしてください。
  • campingListFormHelper JavaScriptヘルパーは、追加する item を持つ addItem イベントを作成し、イベントを発生させるようにしてください。その後、newItem value provider を、空の Camping_Item__c 型(type) の sObjectType でリセットしてください。

次のステップの確認

https://trailhead.salesforce.com/ja/modules/lex_dev_lc_basics/units/lex_dev_lc_basics_next_steps

  • 説明:日本語
  • Challenge:日本語選択問題

Trailhead モジュール:Apex インテグレーションサービス

※この内容は2018/4時点のものです。

Apex インテグレーションの概要

https://trailhead.salesforce.com/ja/modules/apex_integration_services/units/apex_integration_callouts

  • 説明:日本語
  • Challenge:日本語選択問題

Apex REST コールアウト

https://trailhead.salesforce.com/ja/modules/apex_integration_services/units/apex_integration_rest_callouts

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • Apexクラス「AnimalLocator」を作成してください。
  • Apexクラス「AnimalLocator」に「getAnimalNameById」メソッドを作成してください。「getAnimalNameById」メソッドの引数の型はInteger、返り値の型はStringとしてください。
  • 「getAnimalNameById」メソッドでは、引数のIDを使用して https://th-apex-http-callout.herokuapp.com/animals/<引数のID> をコールしてください。「getAnimalNameById」メソッドの返り値は「name」プロパティの値(例えば動物の名前)としてください。
  • コールアウトの疑似応答を行うApexテストクラス「AnimalLocatorMock」を使用して、Apexテストクラス「AnimalLocatorTest」を作成してください。
  • 単体テストでは、Apexクラス「AnimalLocator」に含まれる全ての行のコードをカバーする必要があります。結果としてコードカバレッジが100%になります。
  • このChallengeを確認する前に、テストクラスを少なくとも1回(開発者コンソールの[Run All]で)実行してください。

Apex SOAP コールアウト

https://trailhead.salesforce.com/ja/modules/apex_integration_services/units/apex_integration_soap_callouts

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • WSDL2Apexを使用し、public Apexクラス「ParkService」をこのWSDLファイルから作成してください。[WSDLからの生成]ボタンをクリックした後、Apexクラス名を「parksServices」から「ParkService」に必ず変更してください。
  • Apexクラス「ParkLocator」クラスを作成し、「country」メソッドを含めてください。
  • 「country」メソッドに以下のロジックを記述してください。
    • 先に作成した「ParkService」クラスを使用してください。
    • 使用できる引数は国名(例: Germany, India, Japan, United States など)としてください。
    • 返り値は、引数の国名をWebサービスに渡した際に返却される利用可能な公園名の配列としてください。
  • コールアウトの疑似応答を行うApexテストクラス「ParkServiceMock」を使用して、Apexテストクラス「ParkLocatorTest」を作成してください。
  • 単体テストでは、Apexクラス「ParkLocator」に含まれる全ての行のコードをカバーする必要があります。結果としてコードカバレッジが100%になります。
  • このChallengeを確認する前に、テストクラスを少なくとも1回(開発者コンソールの[Run All]で)実行してください。

Apex Web サービス

https://trailhead.salesforce.com/ja/modules/apex_integration_services/units/apex_integration_webservices

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • Apexクラス「AccountManager」を作成してください。
  • Apexクラス「AccountManager」に「@HttpGet」アノテーションを持ち、Accountオブジェクトを返り値の型とする「getAccount」メソッドを作成してください。
  • 「getAccount」メソッドの返り値は、リクエストされたレコードのID, 取引先名(Name)および 関連する全ての取引先責任者(Contact)のID, 名前(Name)としてください。
  • Apexテストクラス「AccountManagerTest」を作成してください。
  • 単体テストでは、Apexクラス「AccountManager」に含まれる全ての行のコードをカバーする必要があります。結果としてコードカバレッジが100%になります。
  • このChallengeを確認する前に、テストクラスを少なくとも1回(開発者コンソールの[Run All]で)実行してください。

Trailhead モジュール:非同期 Apex

※この内容は2018/4時点のものです。

非同期処理の基本

https://trailhead.salesforce.com/ja/modules/asynchronous_apex/units/async_apex_introduction

  • 説明:日本語
  • Challenge:日本語選択問題

future メソッドの使用

https://trailhead.salesforce.com/ja/modules/asynchronous_apex/units/async_apex_future_methods

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • 取引先オブジェクトにAPI参照名が「Number_of_Contacts__c」となるカスタム数値項目を作成してください。この項目には取引先オブジェクトに紐づく取引先責任者の数を保存します。
  • クラス名が「AccountProcessor」のApexクラスを作成してください。このApexクラスには取引先レコードIDのリストを引数とする「countContacts」メソッドを含めてください。また、「countContacts」メソッドには @future アノテーションを必ず使用してください。
  • 「countContacts」メソッドでは、引数の取引先レコードIDのリストに対して、各取引先レコードに関連付けられた取引先責任者レコードの数をカウントし、「Number_of_Contacts__c」項目をカウントした値で更新するロジックを記述してください。
  • Apexテストクラス「AccountProcessorTest」を作成してください。
  • 単体テストでは、Apexクラスに含まれるコードすべての行のシナリオをカバーする必要があります。結果としてコードカバレッジが100%になります。
  • このChallengeを確認する前に、テストクラスを少なくとも1回(開発者コンソールの[Run All]で)実行してください。

Apex 一括処理の使用

https://trailhead.salesforce.com/ja/modules/asynchronous_apex/units/async_apex_batch

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • Database.Batchable インターフェースを使ったApexクラス「LeadProcessor」を作成してください。
  • startメソッドに、QueryLocatorを使用して組織内の全てのリード(Lead)レコードを収集するロジックを記述してください。
  • executeメソッドに、組織内の全てのリード(Lead)レコードのリードソース(LeadSource)項目の値を 「Dreamforce」に更新するロジックを記述してください。
  • Apexテストクラス「LeadProcessorTest」を作成してください。
  • Apexテストクラス「LeadProcessorTest」に、以下のロジックを記述してください。
    • リードのレコードを200個作成する。
    • Apexクラス「LeadProcessor」のBatchメソッドを実行する。
    • 全てのリード(Lead)レコードが正しく更新されていることをテストする。
  • 単体テストでは、Apexクラス「LeadProcessor」に含まれる全ての行のコードをカバーする必要があります。結果としてコードカバレッジが100%になります。
  • このChallengeを確認する前に、テストクラスを少なくとも1回(開発者コンソールの[Run All]で)実行してください。

Queueable Apex を使用したプロセスの制御

https://trailhead.salesforce.com/ja/modules/asynchronous_apex/units/async_apex_queueable

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • Queueableインターフェースを実装したApexクラス「AddPrimaryContact」を作成してください。
  • Apexクラス「AddPrimaryContact」のコンストラクタの引数は、以下としてください。
    • 1番目:取引先責任者(Contact) sObject
    • 2番目:米国の州の省略形を表す文字列
  • Apexクラス「AddPrimaryContact」のexecuteメソッドに、以下ロジックを記述してください。
    • コンストラクタの引数として渡される米国の州の省略形を表す文字列と「都道府県(請求先)」(BillingState)項目が一致する最大200個の取引先(Account)レコードに対し、各取引先レコードに関連付けられた取引先責任者(Contact) sObjectレコードを挿入する。
    • sObjectクラスのclone()メソッドも参考にしてください。
  • Apexテストクラス「AddPrimaryContactTest」を作成してください。
  • Apexテストクラス「AddPrimaryContactTest」に、以下のロジックを記述してください。
    • 「都道府県(請求先)」(BillingState)項目が「NY」の取引先(Account)レコードを50個作成する。
    • 「都道府県(請求先)」(BillingState)項目が「CA」の取引先(Account)レコードを50個作成する。
    • Apexクラス「AddPrimaryContact」のインスタンスを作成し、ジョブとしてキューに追加し、「都道府県(請求先)」(BillingState)項目が「CA」の取引先レコード50個それぞれに対して取引先責任者(Contact)レコードが挿入されていることを確認する。
  • 単体テストでは、Apexクラス「AddPrimaryContact」に含まれる全ての行のコードをカバーする必要があります。結果としてコードカバレッジが100%になります。
  • このChallengeを確認する前に、テストクラスを少なくとも1回(開発者コンソールの[Run All]で)実行してください。

Apex スケジューラを使用したジョブのスケジュール

https://trailhead.salesforce.com/ja/modules/asynchronous_apex/units/async_apex_scheduled

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • Schedulable インターフェースを実装したApexクラス「DailyLeadProcessor」を作成してください。
  • Apexクラス「DailyLeadProcessor」のexecuteメソッドにて、リードソース(LeadSource)項目の値が空白であるリード(Lead)のうち最初の200個のレコードに対し、リードソース(LeadSource)項目の値を 「Dreamforce」に更新するロジックを記述してください。
  • Apexテストクラス「DailyLeadProcessorTest」を作成してください。
  • Apexテストクラス「DailyLeadProcessorTest」に、以下のロジックを記述してください。
    • リード(Lead)レコードを200個作成する。
    • DailyLeadProcessorクラスを実行するようスケジュールする。
    • 全てのリード(Lead)レコードが正しく更新されたことをテストする。
  • 単体テストでは、Apexクラス「DailyLeadProcessor」に含まれる全ての行のコードをカバーする必要があります。結果としてコードカバレッジが100%になります。
  • このChallengeを確認する前に、テストクラスを少なくとも1回(開発者コンソールの[Run All]で)実行してください。

非同期 Apex の監視

https://trailhead.salesforce.com/ja/modules/asynchronous_apex/units/async_apex_monitoring

  • 説明:日本語
  • Challenge:日本語選択問題

Trailhead モジュール:Apex と .NET の基本

※この内容は2018/4時点のものです。

.NET の概念の Force.com への対応付け

https://trailhead.salesforce.com/ja/modules/apex_basics_dotnet/units/mapping_concepts

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • Apexクラス「AccountUtils」を作成してください。
  • Apexクラス「AccountUtils」の中に以下内容の static メソッド:「accountsByState」を作成してください。
    • 引数:アメリカの州を省略した文字列
    • 返り値の型:取引先(Account)のList型
    • 内容:取引先レコードの「都道府県(請求先)」(BillingState)項目のうち、引数の文字列と一致する全てのレコードの「取引先ID」(ID)と「取引先名」(Name)を返り値とする。

実行コンテキストの理解

https://trailhead.salesforce.com/ja/modules/apex_basics_dotnet/units/execution_context

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • Apexクラス「AccountTriggerHandler」を作成してください。
  • Apexクラス「AccountTriggerHandler」の中に取引先(Account)のList型を引数の型とする public static メソッド「CreateAccounts」を作成してください。
  • メソッド「CreateAccounts」に、取引先レコードの保存前に、「都道府県(納入先)」(ShippingState)項目の値を「都道府県(請求先)」(BillingState)項目と同じにするロジックを記述してください。
  • レコードが挿入される前に起動するApexトリガ「AccountTrigger」を作成してください。
  • Apexトリガ「AccountTrigger」に、新しいレコードのコレクションを使用してAccountTriggerHandler.CreateAccounts() メソッドを呼び出すロジックを記述してください。
  • Apexトリガ「AccountTrigger」に、「isBefore」と「isInsert」のトリガコンテキスト変数を使用していることを確認してください。
  • Apexテストクラス「AccountTriggerTest」を作成してください。
  • Apexテストクラス「AccountTriggerTest」に、「都道府県(請求先)」(BillingState)項目が「CA」である取引先(Account)レコードを200個挿入し、挿入後、全てのレコードの「都道府県(納入先)」(ShippingState)項目の値が「CA」であることを確認するロジックを記述してください。
  • 「Challengeを確認」をクリックする前に、テストクラスを少なくとも1回(開発者コンソールの[Run All]で)実行してください。

非同期 Apex の使用

https://trailhead.salesforce.com/ja/modules/apex_basics_dotnet/units/async_apex

  • 説明:日本語
  • Challenge:日本語選択問題

デバッグと診断の実行

https://trailhead.salesforce.com/ja/modules/apex_basics_dotnet/units/debugging_diagnostics

  • 説明:日本語
  • Challenge:日本語選択問題