Skip to main content

Book Ratings (書評) コンポーネントに著者データを追加する

メモ

メモ

日本語で受講されている方へ
Challenge は日本語の Trailhead Playground で開始し、かっこ内の翻訳を参照しながら進めていってください。Challenge での評価は英語データを対象に行われるため、英語の値のみをコピーして貼り付けるようにしてください。日本語の組織で Challenge が不合格だった場合は、(1) この手順に従って [Locale (地域)] を [United States (米国)] に切り替え、(2) [Language (言語)] を [English (英語)] に切り替えてから、(3) [Check Challenge (Challenge を確認)] ボタンをクリックしてみることをお勧めします。

翻訳版 Trailhead を活用する方法の詳細は、自分の言語の Trailhead バッジを参照してください。

Trail Together の動画

エキスパートの説明を見ながらこのステップを進めて行きたい場合は、Trail Together シリーズの一部である、こちらの動画をご覧ください。

(巻き戻して最初から見直したい場合、このクリップは 12:48 分から開始されます。)

はじめに

このステップでは、近くのオブジェクトからデータを取得し、Books4Everyone の Recommendation (おすすめ) コンポーネントを更新するための多層的なクエリを記述します。Books4Everyone は、Recommendation (おすすめ) コンポーネントに著者の名前を追加することで強化したいと考えています。

SOQL の記述

今回はクライアントから SQL クエリは提供されていません。要求は、著者の名前を取得して Books4EveryoneRecommendations コンポーネントに表示することです。現在は次のクエリを使用しています。

SELECT Name, Review__c, Rating__c, Book__r.Name
  FROM Recommendation__c
  WHERE Book__c != null

著者の名前も取得したいわけですので、Recommendation (おすすめ) のデータがすでにクエリの対象となっているオブジェクトとどのように関連しているかをデータモデルで確認します。Recommendation (おすすめ) は、Book (書籍) に関連し、Book (書籍) は Author (著者) に関連しています。SOQL では 7 レベルまでの参照が可能ですので、今回のケースでは十分です。 

  1. 開発者コンソールで Apex クラスの Books4EveryoneHomeController を開きます。
  2. getBookRecommendations メソッドの SOQL コードにリターン行を追加します。
        return [SELECT Name, Review__c, Rating__c, Book__r.Name, Book__r.Author__r.Name
          FROM Recommendation__c
          WHERE Book__c != null];
  3. Books4EveryoneRecommendations Lightning コンポーネントを開きます。
  4. コンソールの右側で Component (コンポーネント) ファイルを選択してあることを確認します。
  5. コンポーネントファイルで <table から </table> までのセクションを探し、次のコードで置き換えます。
          <table class="slds-table slds-table_bordered slds-table_cell-buffer">
            <thead>
              <tr class="slds-text-title_caps">
                <th scope="col">Book Title</th>
                <th scope="col">Author</th>
                <th scope="col">Rating</th>
                <th scope="col">Review</th>
              </tr>
            </thead>
            <tbody>
              <aura:iteration items="{!v.Recommendations}" var="recommendations">
                <tr scope="row"> 
                  <td>{!recommendations.Book__r.Name}</td>
                  <td>{!recommendations.Book__r.Author__r.Name}</td> 
                  <td>{!recommendations.Rating__c}</td> 
                  <td> {!recommendations.Review__c}</td>
                </tr>
              </aura:iteration>
            </tbody>
          </table>
  6. ファイルを保存します。

お疲れさまでした。多層的なクエリを記述し、結果がホームページに表示されます。 

この画像には、[Home (ホーム)] タブと、SOQL クエリで取得したデータが表示された 3 つの Lightning コンポーネントが示されている

Books4Everyone はあなたの仕事にとても満足し、お礼として (もちろん本の形の) ケーキを焼いて贈ってくれました。

まとめ

このプロジェクトではいくつかのことを学びました。あなたはシンプルな SOQL クエリからより複雑なクエリへと進み、SQL から SOQL にクエリを変換しました。SOQL ではさらに多くのことができますが、初めての仕事としては上出来です。次にお勧めするステップは、Salesforce への .NET スキルの適用バッジの獲得です。

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む