進行状況の追跡を始めよう
Trailhead のホーム
Trailhead のホーム

Summer '19 の Platform デベロッパー向けの新機能の学習

学習の目的

この単元を完了すると、次のことができるようになります。

  • Apex で定義されたデータ型を使用してコードなしでフローの複雑なインターネットデータを操作する。
  • 継続を使用して長時間コールアウトを実行する。
  • 異なるデバイスのフォーム要素に合わせてコンポーネントを設定する。
  • Visualforce ページで Lightning Web コンポーネントを使用する。
  • プラットフォームキャッシュを使用してスクラッチ組織を拡張する。

認定 Salesforce 資格の概要

Salesforce Platform デベロッパー資格を保有している場合、その認定資格を更新するためには期日までにこのモジュールを修了する必要があります。資格を更新するためにもう 1 つ重要なことは、必ず Trailhead アカウントと Webassessor アカウントをリンクしておくことです。

このモジュールの受講中に他の資格保持者と協力することに関心がありますか? Trailblazer コミュニティの「Certification Maintenance PDI」グループを参照してください。

認定を受けることに関心がある場合は、Salesforce Platform デベロッパーの資格を参照してください。

Salesforce では多数の機能を強化しています。今回のリリースの機能強化のうち、より重要なものを確認していきましょう。

メモ

メモ

だれもがこのバッジを取得できますが、このモジュールは 認定 Platform デベロッパーの資格を持つ開発者向けに設計されています。以降の指示は、このレベルの知識と経験があることが前提となっています。 

Apex で定義されたデータ型を使用してコードなしでフローの複雑なインターネットデータを操作

フローには、Web サービスへのコールから通常返される複雑なデータオブジェクトを操作する機能が含まれるようになりました。フロー内に Apex で定義された変数を作成し、Web コールから返された JSON を直接処理します。

以前は、Web データの操作には Apex アクションと外部サービス登録が使用されていましたが、そのデータは文字列や数値などのプリミティブデータ型の形式である必要がありました。Mulesoft などのインテグレーションソリューションを介して取得された Web からのエンタープライズデータは、完全にまたは主にプリミティブデータ型で構成されることはほとんどありません。

フロー内の新しい Apex で定義されたリソースにより、Web コールから返された複雑な JSON を処理するためにフローで Apex コードを使用する必要がなくなりました。開発者は、@AuraEnabled を使用して Web からフローへの自動変換のパターンとして機能するように Apex クラスを定義します。開発者がフローに公開する各項目に @AuraEnabled アノテーションが必要です。その後、追加コードなしで宣言型アプローチを使用して、結果のオブジェクトを完全に操作できます。

このソリューションは、Mulesoft および REST コールを介してアクセスされるリッチな外部 Web オブジェクトにフローを接続する場合に特に役立ちます。データ型がサポートされていない場合、フローはその値を Aura コンポーネントに渡すことができ、Apex を使用してそれを操作できます。 

メモ

メモ

Apex は、Aura または Lightning Web コンポーネントを使用せずに @InvocableMethod アノテーションを使用してフローから直接呼び出すこともできます。

Summer '19 以降、フローが Apex を呼び出す場合、実行ユーザのプロファイルまたは権限セットに、対応する Apex クラスセキュリティが設定されている必要があります。

この変更は、Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition の Lightning Experience および Salesforce Classic に適用されます。

関連情報:

継続を使用した長時間コールアウトの実行

Apex で Continuation クラスを使用して、Aura コンポーネントまたは Lightning Web コンポーネントから外部 Web サービスへの長時間要求を行います。コールバックメソッドで応答を処理します。継続を使用して実行される非同期コールアウトは、実行時間が 5 秒を超える要求を同時に実行できる数である Apex 制限の 10 件にはカウントされません。そのため、より多くの長時間コールアウトを実行でき、コンポーネントを複雑なバックエンド API と統合できます。

継続は複数の長時間アクションを引き起こす可能性があるため、使用する場合は次の制限に注意してください。

継続あたり最大 3 個のコールアウト

1 つの Continuation オブジェクトに最大 3 個のコールアウトを含めることができます。

継続アクションの順次処理

フレームワークは継続を含むアクションをクライアントから順次処理します。次の継続アクションコールが実行される前に、前の継続アクションコールが完了している必要があります。クライアントで処理中の継続は常に 1 つのみになります。

DML 操作の制限

Continuation オブジェクトを返す Apex メソッドは、Data Manipulation Language (DML) の操作を実行できません。DML ステートメントは、Salesforce のデータを挿入、更新、マージ、削除、および復元します。継続メソッド内で DML 操作が実行された場合、継続実行は続行されず、トランザクションがロールバックされ、エラーが返されます。

継続用の Apex コールバックメソッドで DML 操作を実行できます。

この変更は、Lightning Experience、Salesforce Classic、およびすべてのバージョンの Salesforce アプリケーションの Aura コンポーネントと Lightning Web コンポーネントに適用されます。

関連情報:

異なるデバイスに合わせたコンポーネントの設定

Lightning コンポーネントを Lightning ページで使用する場合は、コンポーネントがサポートするフォーム要素 (デスクトップ、電話、またはその両方) を宣言できます。たとえば、デスクトップと電話の両方をサポートするアプリケーションページでは、そのページを特定のデバイスで閲覧した場合にのみ表示されるようにコンポーネントを設定できるようになりました。コンポーネントのフォーム要素サポートを電話に限定すると、そのページをデスクトップで閲覧した場合には、そのコンポーネントはアプリケーションページに表示されず、電話で閲覧した場合にのみ表示されます。

この変更は、Lightning Experience とすべてのバージョンの Salesforce モバイルアプリケーションの Aura コンポーネントと Lightning Web コンポーネントに適用されます。

Aura コンポーネント

Aura コンポーネントがサポートするデバイスのフォーム要素を指定するには、コンポーネントのデザインファイルで design:suppportedFormFactors タグセットを使用します。design:suppportedFormFactor サブタグは type 属性をサポートします。有効な type 値は、Large (デスクトップ) と Small (電話) です。

この「Hello World」コンポーネントのデザインファイルは、デスクトップと電話の両方のフォーム要素をサポートします。

<design:component label="Hello World">
  <design:attribute name="subject" label="Subject" description="Name of
the person you want to greet" />
  <design:attribute name="greeting" label="Greeting" />
  <design:supportedFormFactors>
    <design:supportedFormFactor type="Large"/>
    <design:supportedFormFactor type="Small"/>
  </design:supportedFormFactors>
</design:component>

Lightning Web コンポーネント

Lightning Web コンポーネントの設定ファイルの <targetConfigs> セクションで、supportedFormFactors タグセットを使用して、コンポーネントがサポートするフォーム要素を宣言します。

たとえば、次のコンポーネントは、2 つのページ種別でサポートされます。各ページ種別について別々の <targetConfigs> エントリがあり、それぞれのページタイプではコンポーネントの動作が異なることを意味します。

<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
  <apiVersion>42.0</apiVersion>
  <isExposed>false</isExposed>
  <masterLabel>Best Component Ever</masterLabel>
  <description>This is a demo component.</description>
  <targets>
    <target>lightning__RecordPage</target>
    <target>lightning__AppPage</target>
  </targets>
  <targetConfigs>
    <targetConfig targets="lightning__RecordPage">
      <property name="prop1" type="String" />
      <supportedFormFactors>
        <supportedFormFactor type="Large" />
     </supportedFormFactors>
  </targetConfig>
  <targetConfig targets="lightning__AppPage">
    <property name="prop2" type="Boolean" />
    <supportedFormFactors>
      <supportedFormFactor type="Small" />
      <supportedFormFactor type="Large" />
    </supportedFormFactors>
  </targetConfigs>
</LightningComponentBundle>

2 つのページ種別では異なるフォーム要素が設定されています。アプリケーションページ (lightning__AppPage) では、コンポーネントは電話 (Small) とデスクトップ (Large) でサポートされます。レコードページ (lightning__RecordPage) では、コンポーネントはデスクトップのみでサポートされます。

Visualforce ページでの Lightning Web コンポーネントの使用

Lightning Web コンポーネントを Visualforce ページに追加して、両方の技術を使用して作成した機能を組み合わせることができます。Lightning Web コンポーネントを使用して新機能を実装し、それを既存の Visualforce ページで使用できます。

Visualforce ページへの Lightning Web コンポーネントの追加は 3 ステップで行います。

  1. <apex:includeLightning/> コンポーネントを使用して、Visualforce 用 Lightning Web コンポーネントの JavaScript ライブラリを Visualforce ページに追加します。
  2. コンポーネントの連動関係を宣言するスタンドアロン Aura アプリケーションを作成して参照します。
  3. $Lightning.createComponent() を使用して、ページにコンポーネントを作成する JavaScript 関数を記述します。

<namespace:camelCaseComponentName> 命名規則を使用して、Visualforce ページの Lightning Web コンポーネントを参照します。Lightning Web コンポーネントを作成するには、Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition を使用します。

関連情報:

スクラッチ組織でのプラットフォームキャッシュの使用

スクラッチ組織でプラットフォームキャッシュを使用できるようにしてパフォーマンス向上を図ります。組織全体または個々のセッションで使用可能なキャッシュデータを利用して、Visualforce ページを高速化できます。負荷の高い SOQL および SOSL クエリを繰り返し実行して同じコールアウトを複数回実行する必要はなくなります。そのすべてと sObject のリストをプラットフォームキャッシュに読み込み、いつでも必要なときにより速く取得できます。パッケージ化にも使用できます。

PLATFORMCACHE をスクラッチ組織の JSON 設定ファイルの feature セクションに追加し、CLI でスクラッチ組織を作成します。スクラッチ組織には 3 MB のプラットフォームキャッシュが付属します。複数のパーティションのサポートを提供するため、最小必須パーティションサイズは 1 MB に減りました。パーティションの作成、サイズ変更、削除には、メタデータ API を使用して PlatformCachePartition メタデータ型をリリースします。

メモ

メモ

スクラッチ組織を手動で削除するか、スクラッチ組織が期限切れの場合、すべてのキャッシュデータは削除され、リソースはクリアされます。この操作は元に戻せません。

関連情報:

リソース