この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Lightning Experience のレコードホームページのコンポーネントの設定

Lightning ページおよび Lightning アプリケーションビルダーで動作するようにコンポーネントを設定したら、次のガイドラインを使用して、Lightning Experience のレコードページで動作するようにコンポーネントを設定します。

レコードページがアプリケーションページと明確に異なる点は、レコードのコンテキストがあるということです。現在のレコードに基づいてコンポーネントにコンテンツを表示するには、インターフェースと属性の組み合わせを使用します。

  • コンポーネントをレコードページと他の種別のページの両方で使用できる場合、flexipage:availableForAllPageTypes を実装します。
  • コンポーネントがレコードページ専用に設計されている場合は、flexipage:availableForAllPageTypes の代わりに flexipage:availableForRecordHome インターフェースを実装します。
  • コンポーネントにレコード ID が必要な場合は、force:hasRecordId インターフェースも実装します。
  • コンポーネントにオブジェクトの API 名が必要な場合は、force:hasSObjectName インターフェースも実装します。

管理コンポーネントが flexipage または forceCommunity インターフェースを実装している場合、コンポーネントとその属性が access="global" に設定されていないとアップロードがブロックされます。アクセスチェックについての詳細は、「アクセスの制御」を参照してください。

メモ

force:hasRecordId

レコードページのコンポーネント、カスタムオブジェクトのアクションなど、特定のレコードに関連付けられたコンテキストで呼び出されるコンポーネントで役立ちます。現在表示されているレコードの ID をコンポーネントで取得する場合は、このインターフェースを追加します。

force:hasRecordId インターフェースは、このインターフェースを実装するコンポーネントに対して 2 つのことを行います。
  • recordId という名前の属性をコンポーネントに追加します。この属性は文字列型であり、その値は 18 文字の Salesforce レコード ID (001xx000003DGSWAA4 など) です。これを自分で追加した場合、属性の定義は次のようになります。

    force:hasRecordId を実装する場合、recordId 属性をコンポーネントに自分で追加する必要はありません。追加する場合は、属性のアクセスレベルまたは型を変更しないでください。変更すると、コンポーネントでランタイムエラーが発生します。

    メモ

  • Lightning Experience または Salesforce1 のレコードコンテキストでコンポーネントを呼び出す場合、recordId を、表示するレコードの ID に設定します。
この動作は、プログラミング言語のインターフェースで予想される動作とは異なります。これは、force:hasRecordIdマーカーインターフェースであるためです。マーカーインターフェースは、インターフェースの動作をコンポーネントに追加するよう伝える、コンポーネントのコンテナへの信号です。

recordId 属性を Lightning アプリケーションビルダーに公開しないでください。つまり、この属性をコンポーネントのデザインリソースに配置しないでください。システム管理者がレコード ID を提供するのは望ましくありません。

レコードページにコンポーネントを配置する場合、またはレコードページからコンポーネントをアクションとして呼び出す場合のみ、レコード ID が設定されます。その他の場合 (このコンポーネントをプログラムで別のコンポーネント内に作成する場合など)、レコード ID は設定されないため、コンポーネントでレコード ID を使用しないでください。

force:hasSObjectName

レコードページコンポーネントに役立ちます。現在表示されているレコードのオブジェクトの API 名をコンポーネントで認識する必要がある場合は、このインターフェースを実装します。

このインターフェースは、sObjectName という名前の属性をコンポーネントに追加します。この属性は文字列型であり、その値は AccountmyNamespace__myObject__c のようなオブジェクトの API 名です。次に例を示します。

sObjectName 属性は、レコードページにコンポーネントを配置した場合にのみ入力されます。その他の場合 (このコンポーネントをプログラムで別のコンポーネント内に作成する場合など)、sObjectName は入力されないため、コンポーネントでこれを使用しないでください。