前回は長い英文を翻訳して終わりになりました。
今回から、ハンズオンに入ります。
チャレンジは前後半の2回に分けようと思います。
ハンズオン実施前の準備作業
Trailhead Playground環境の作成
必須ではありませんが、スーパーバッジ用に使い分けた方がいいです。
パスワードのリセット
後述するパッケージのインストールに必要です。
ユーザ言語をEnglishにする
ラベル名なども指定されているため、Englishsにした方が無難です。
アンマネージドパッケージのインストール
今までのスーパーバッチと同じで、必要なクラスやページが入っていますので、インストールしましょう。
Salesforce Classicへの切り替え
これも必須ではないですが、このモジュールはSalesforce Classic用に設計されているため、切り替えた方がベターでしょう。
Step1 ベストプラクティスを使用するようにコードベースを更新する
課題翻訳
PackageTestsという名前のApexクラスを削除します。
新しいラベル、定数、新しいカスタムメタデータ型、および新しいカスタムメタデータレコードを作成します。
このステップでのタスク
ここは問題文にしたがって各種設定作業をすれば、特に問題ないと思います。
商品ファミリの選択リスト値変更
課題文にはありませんがEntree, Side, Dessert, Beverageの4値に変更しておきましょう
カスタムラベルの作成
設定内容はビジネス要件に記載済みなのでその通りに作成すればOKです。
定数クラスConstantsの作成
定数の内容はビジネス要件に記載済みなのでその通りに作成しましょう。
STANDARD_PRICEBOOK_IDには標準価格表のSalesforceIDを入れます。
ただし、ここではテストメソッド以外でも使用するため、あえて定数クラスとして切っているみたいです。
テスト以外でTest.getStandardPricebookId()メソッドを使用するとエラーになります。
定数クラスConstantsの作成
- 新しいカスタムメタデータ型、および新しいカスタムメタデータレコードを作成
→設定内容はビジネス要件に記載済みなのでその通りに作成
Step2 注文トリガーを更新する
課題翻訳
在庫レベルを計算するビジネスロジックを修正し、関連するコードがスリムで効率的であることを確認します。
ベストプラクティスを使用し、関連性のある必要なトリガーイベントに基づいてのみ実行するようにOrderTriggerを変更します。
OrderHelperのコードを更新します。
このステップでのタスク
- orderTriggerトリガの修正
→起動トリガを修正(必要最低限のトリガイベントで動作するようにする)し、OrderHelperクラスAfterUpdateメソッドを呼び出す - OrderHelperクラスの修正
→ポイントは2つ。
AfterUpdateメソッド内のステータスのハードコードされている部分を定数クラスで定義したものに置き換える。
RollUpOrderItemsメソッドの実装。実装内容はコメントが記載されているのでそれに従う。
Step3 新製品のVisualforceページを更新する
課題翻訳
ビジネス要件を満たすように、Product2New VisualforceページとProduct2Extensionクラスを更新します。
このステップでのタスク
Product2Extensionクラスの修正
- 拡張クラスのため、コンストラクタを修正
- クラス内のリストをProduct2からProductWrapperクラスへ置き換え
- getFamilyOptionsメソッドの作成。内容はビジネス要件の通り
- 数字や文字列でハードコードされているところは定数クラス使用
- Saveメソッドでは、リストをProductWrapperクラスへ置き換えたので、分解処理を入れる
Product2Newページの修正
- apex:chartタグを使用して円グラフの作成
- リストをProductWrapperクラスに変更したため、プロパティを使用して分解する
- apex:columnのヘッダは$ObjectTypeを使用してラベル名を参照
- 新規、編集で割り当てができるように、standardControllerを使用する
ChartHelperクラスの修正
GetInventoryメソッドを実装。ChartDataクラスを内部に持ち、ファミリ単位での集計処理を行う。
商品の新規、編集でProduct2Newページが割り当てられるようにする
設定メニューのProduct→Buttons, Links, and Actionsから、新規、編集、追加をProduct2Newページでオーバーライドします。
Step4 テストデータファクトリを作成する
課題翻訳
TestDataFactory Apexクラスを完成させます。このクラスのメソッドは、単体テストのサンプルデータを生成します。 メソッドはインスタンスメソッドではいけません。
このステップでのタスク
TestDataFactoryクラスの修正
ひたすたテストデータの作成です。内容はコメントに記載があるのでそれに従えばOKです。
コメント