ExperienceBundle
ファイルのサフィックスおよびディレクトリの場所
ExperienceBundle コンポーネントのサフィックスは .json で、取得時に experiences フォルダに保存されます。各コミュニティには、独自のフォルダがあります。これらのフォルダにはそれぞれ、サポートしているプロパティ用の別フォルダが含まれています。
ExperienceBundle には、experiences フォルダに 1 つ以上のコミュニティ定義を含めることができます。各コミュニティ定義には、brandingSets、config、routes、themes、variations、views ���リソースフォルダがあり、それぞれのフォルダに JSON ファイルで関連する追加の設定情報が保存されています。次に、リソースフォルダを表示する、コミュニティ定義の例を示します。
バージョン
ExperienceBundle コンポーネントは、API バージョン 46.0 以降で使用できます。
特別なアクセスルール
Lightning コミュニティで ExperienceBundle メタデータ型を使用するには、[設定] から、[クイック検索] ボックスに「コミュニティ設定」と入力し、[コミュニティ設定] を選択します。[ExperienceBundle メタデータ API を有効化] を選択して、変更を保存します。
項目
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| experienceResources | ExperienceResources[] | この ExperienceBundle のリソースのリスト。各リソースは、brandingSets、config、routes、themes、variations、views などのコミュニティのアイテムを表します。 |
| label | string | 必須。ExperienceBundle の名前を表します。 |
| type | SiteType (string 型の列挙) | 必須。サイトの種別を識別します。ChatterNetworkPicasso の値を使用する Lightning コミュニティのみがサポートされます。 |
ExperienceResources
バンドル内のコミュニティのリストを表します。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| experienceResource | ExperienceResource[] | この ExperienceBundle のリソースのリスト。各リソースは、brandingSets、config、routes、themes、views などのコミュニティのプロパティを表します。 |
ExperienceResource
ExperienceBundle に含まれる特定のコミュニティ情報を表します。
構造内には、種別ごとにフォルダがあります。各フォルダには、その種別とサイトに関する情報を提供する 1 つ以上のファイルが含まれています。それぞれが ExperienceBundle の特定のフォルダとファイルに対応しています。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| fileName | string | 必須。リソースファイルの名前。 |
| format | string | 必須。JSON のみが使用可能です。 |
| source | base64 | 各ファイルの JSON コンテンツ。 |
| type | string | 必須。リソースの種別。有効な値は、次のとおりです。
|
brandingSets フォルダ
このフォルダには、ブランドセットごとに brandingSets_name.json という名前の 1 つの JSON ファイルが含まれています。各ファイルは同一の構造で、同じプロパティを持ちます。
<brandingSets_name>.json
| プロパティ | 型 | 説明 |
|---|---|---|
| definitionName | string | 必須。テーマでブランドセットをグループ化するのに使用されるブランドセットの名前を表します。「テーマ:branding-テーマ」のように定義します。 たとえば、コミュニティのテーマが Stella の場合、definitionName は stella:branding-stella になります。 さらに、いくつかの標準テンプレートには一意の名前が付けられています。
|
| id | UUID | コンポーネントの GUID を表します。 |
| label | string | ブランドセットの名前を表します。 |
| type | string | コンポーネントの種類を表します。サポートされている値は、brandingSet のみです。 |
| values | map | 必須。コミュニティに適用可能なブランドの対応付けを表します。 |
config フォルダ
- sitename.json
- languages.json
- page_name.json
sitename.json ファイルプロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
| forgotPasswordRouteId | UUID | ユーザがパスワードを忘れた場合に使用するルートの ID を表します。 |
| isAvailableToGuests | boolean | 公開ユーザにサイトへのアクセス権があるか (true)、否か (false) を示します。デフォルト値は false です。 |
| isFilteredComponentsView | boolean | コンポーネントのリストが現在のページ種別に基づいて条件設定されているか (true)、否か (false) を示します。一部のコンポーネントは、ページの特定のパラメータを必要とし、そのパラメータを手動で設定しない限り機能しません。デフォルト値は false です。 |
| isProgressiveRenderingEnabled | boolean | ページコンポーネントの表示順序が優先されるか (true)、否か (false) を示します。デフォルト値は false です。 |
| loginAppPageId | UUID | ログインページの ID を表します。 |
| mainAppPageId | UUID | 必須。メインページの ID を表します。 |
| preferredDomain | string | コミュニティのページにインデックスを付けるために使用するドメインの名前を表します。検索エンジンの結果を改善します。 API バージョン 48.0 以降で利用できます。 |
| preferredDomainId | string | コミュニティのページにインデックスを付けるために使用するドメインを表します。検索エンジンの結果を改善します。 API バージョン 48.0 で削除されました。代わりに、preferredDomain を使用します。 |
| selfRegistrationRouteId | UUID | セルフ登録に使用するログインルートの ID を表します。 |
| type | string | コンポーネントの種類を表します。サポートされている値は、site のみです。 |
実装すると、sitename.json に trustedSitesForScript コンテナが 1 つ作成されます。
| プロパティ | 型 | 説明 |
|---|---|---|
| id | UUID | コンポーネントの GUID を表します。 |
| isActive | boolean | 許可リストに登録された項目が、有効 (true) であり優先する必要があるか、無効 (false) であり、許可リストに登録された取得元として処理する必要がないことを示します。デフォルトは false です。 |
| trustedSiteName | string | UI に表示する、許可リストに登録された取得元の名前。 |
| trustedSiteUrl | string | 許可リストに登録された取得元の完全修飾 URL。 |
| type | string | コンポーネントの種類を表します。サポートされている値は、trustedSitesForScripts のみです。 |
languages.json ファイルプロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
| defaultCode | string | 必須。使用する基本言語コードと国コードを表します。 |
| defaultLabel | string | 必須。言語の表示ラベルを定義します。 |
| id | UUID | コンポーネントの GUID を表します。 |
| type | string | コンポーネントの種類を表します。サポートされている値は、languageContainer のみです。 |
サポートされる言語ごとに、languages.json のコンテナとして 1 つのセクションがあります
| プロパティ | 型 | 説明 |
|---|---|---|
| countryCode | string | 選択した言語の国コード。この文字列は空のままにできます。このプロパティは、選択した言語がアラビア語 (アルジェリア) やアラビア語 (バーレーン) のように国ごとに変異形がある場合にのみ適用されます。この場合は、countryCode を使用してそれらを区別します。 例: { languageCode" : "ar", "CountryCode" : "DZ", "Label" : "Arabic (Algeria) (DZ)",}, { "Code" : "ar", "CountryCode" : "BH", "Label" : "Arabic (Bahrain) (BH)",} |
| fallbackLanguageId | UUID | 選択した言語に合った正しいコンテンツを追加するように注意してください。たとえば、コミュニティ訪問者が言語セレクタから日本語を選択したが、そのページに日本語のコンテンツがないとします。この場合、コンテンツが代替言語で表示されます。 |
| id | UUID | コンポーネントの GUID を表します。 |
| isActive | boolean | コミュニティ訪問者が、特定の言語を言語セレクタで使用できるか (true)、否か (false) を示します。デフォルト値は true です。 |
| label | string | 言語の表示ラベルを定義します。表示ラベルは、コミュニティに追加する言語セレクタコンポーネントとエクスペリエンスビルダーの言語セレクタに表示されます。 |
| languageCode | string | 選択した言語の国コードを表します。 |
| type | string | コンポーネントの種類を表します。サポートされている値は、language のみです。 |
| プロパティ | 型 | 説明 |
|---|---|---|
| cmsSettings | map | CMS Connect ヘッダーおよびフッターの設定。有効な値は次のとおりです。
|
| currentThemeId | UUID | 必須。サイトの現在のテーマの UUID を表します。この項目は、mainAppPage.json と loginAppPage.json (該当する場合) で使用可能です。 |
| headMarkup | string | 必須。コミュニティのメインページの <head> タグにカスタムマークアップを追加することを許可します。 を使用した場合と同様です。Salesforce ヘルプのマークアップの説明を参照してください。 |
| id | UUID | 必須。コンポーネントの GUID を表します。 |
| isRelaxedCSPLevel | boolean | スクリプトを実行する機能とサードパーティホストへのスクリプトアクセスを制御します。デフォルトは false です。この項目は、mainAppPage.json と loginAppPage.json (該当する場合) で使用可能です。 |
| label | string | 必須。ページの名前を表します。 |
| templateName | string | 必須。テンプレートページの一意の開発者名を表します。有効な値は、次のとおりです。
|
| type | string | 必須。コンポーネントの種類を表します。サポートされている値は、appPage のみです。 |
routes フォルダ
routes フォルダには、ページごとに <page_name>.json という名前の 1 つの JSON ファイルが含まれています。
<page_name>.json
| プロパティ | 型 | 説明 |
|---|---|---|
| activeViewId | UUID | 必須。ルートのデフォルトビューを表します。定義された利用者がないか、ユーザが利用者に一致しない場合に使用されます。 API バージョン 48.0 以降で利用できます。 |
| appPageId | UUID | 必須。ルートの単一ページアプリケーション (SPA) ページを表します。これは、main.json または login.json のいずれかを参照します。 |
| id | UUID | 必須。コンポーネントの GUID を表します。コンポーネントから継承されます。 |
| label | string | 必須。ルートの名前を表します。コンポーネントから継承されます。 |
| objectApiName | string | 必須。カスタムオブジェクト API の名前。(標準オブジェクトでは使用できません)。 |
| pageAccess | string | 必須。ルートの状況が公開か非公開かを示します。デフォルト値の UseParent に設定した場合、サイトの状況によってルートの状況が決定します。常に非公開のルートはユーザインターフェースから編集できません。有効な値は、UseParent、Public、RequiresLogin です。 |
| routeType | string | 必須。ルートの種別を識別します。値は、同じ SPA ページを共有するすべてのルートの間で一意です。viewType の値が一致する必要があります。 |
| type | string | 必須。コンポーネントの種類を表します。サポートされている値は、route のみです。 |
| urlPrefix | string | 必須。ルートのベース URL を表します。 |
themes フォルダ
themes フォルダには、テーマごとに theme_name.json という名前の 1 つの JSON ファイルが含まれています。
theme_name.json
| プロパティ | 型 | 説明 |
|---|---|---|
| activeBrandingSetId | UUID | 現在の使用中のブランドセットの ID。ブランディングセットの definitionName は、テーマの brandingSetReference と一致する必要があります。 |
| customCSS | string | Lightning コミュニティテンプレートから作成したページのカスタム CSS。 |
| developerName | string | 必須。テーマの一意の開発者名。ほとんどのテーマは自身の名前を直接派生させます。たとえば、Jepson はその developerName に jespon を使用します。 標準テンプレートには次の固有の値応答画面があります。
|
| id | UUID | 必須。コンポーネントの GUID を表します。 |
| label | string | テーマの名前を表します。 |
| layouts | map | 必須。ThemeLayoutType を UUID に対応付け、ThemeLayout の定義を含みます。Login と Inner テーマレイアウトが常に必須です。 |
| type | string | 必須。コンポーネントの種類を表します。サポートされている値は、theme のみです。 |
variations フォルダ
ブランドセット、ページバリエーション、コンポーネントの表示、およびコンポーネント属性の 4 つの異なるバリエーションの種別がサポートされます。異なるバリエーションは、componentVariant コンテナによって示されます。
たとえば、ユーザが特定の利用者条件を満たしたときに、コミュニティにホームページのページバリエーションを表示できます。これを実現するには、利用者を作成した後、環境のバリエーション定義ファイルの componentVariant コンテナの targetId を使用してその利用者を環境のバリエーションの対象にします。
experienceVariation_name.json
| プロパティ | 型 | 説明 |
|---|---|---|
| componentVariants | list | 必須。この環境のバリエーションに属するコンポーネントのバリエーションのリスト。 |
| developerName | string | 必須。環境のバリエーションの一意の開発者名。この名前は Personalization API の対象の targetValue 項目で使用され、設定後は更新できません。 |
| id | UUID | 必須。コンポーネントの GUID を表します。 |
| type | string | 必須。コンポーネントの種別を表します。サポートされている値は、experienceVariation のみです。 |
実装すると、バリエーションを記述する experienceVariation_name.json ファイルにそれぞれコンテナが 1 つ作成されます。
| プロパティ | 型 | 説明 |
|---|---|---|
| id | UUID | 必須。コンポーネントの GUID を表します。 |
| propertyOverrides | map | 必須。指定されたテーマ、ルート、またはコンポーネントの targetId へのプロパティの上書きを定義します。 たとえば、targetId がテーマを指している場合、この環境のバリエーションで異なるブランドセットを使用するように、テーマの defaultBrandingSet プロパティを上書きできます。 上書きがサポートされているプロパティは次のとおりです。
|
| targetId | UUID | 必須。プロパティを上書きする項目の UUID。テーマ、ルートまたはコンポーネントの ID である必要があります。 |
| type | string | 必須。コンポーネントの種別を表します。サポートされている値は、experienceVariation のみです。 |
ブランドセットの環境のバリエーションの例
ページバリエーションの環境のバリエーションの例
コンポーネントの表示の環境のバリエーションの例
views フォルダ
views フォルダには、いくつかの JSON ファイルがあり、それぞれがビューを定義しています。各 Lightning コミュニティは、単一ページアプリケーションで構成されています。それらは、単一の HTML ページを読み込む Web アプリケーションです。単一ページアプリケーションは、複数のビューで構成されており、それらのビューによりユーザが操作するたびにページが動的に更新されます。
view_name.json
| プロパティ | 型 | 説明 |
|---|---|---|
| appPageId | UUID | 必須。ビューの単一ページアプリケーション (SPA) のページ ID。これは、main.json または login.json のいずれかを参照します。 |
| componentName | string | 必須。レイアウトコンポーネントの FQN。コンポーネントは、forceCommunity:layout を実装する必要があり、テーマレイアウトの場合は forceCommunity:themeLayout を実装する必要があります。 |
| id | UUID | 必須。コンポーネントの GUID を表します。 |
| label | string | 必須。 に表示される名前。 |
| themeLayoutType | string | ビューのテーマレイアウト種別 (ビューに対してのみ公開)。 |
| type | string | 必須。コンポーネントの種別を表します。サポートされている値は、view のみです。 |
| viewType | string | 必須。ルートの routeType に一致します。 |
各 <view_name>.json には、コンテナとして 1 つ以上の領域が含まれています。
| プロパティ | 型 | 説明 |
|---|---|---|
| id | UUID | 必須。コンポーネントの GUID を表します。 |
| regionLabel | string | タブの領域表示ラベルを指定します。 |
| regionName | string | 必須。レイアウトコンポーネントのデザインファイルのデザイン属性と一致します。 |
| type | string | 必須。コンポーネントの種類を表します。サポートされている値は、region のみです。 |
各 <view_name>.json の region セクションには、コンテナとして 1 つ以上のコンポーネントが含まれています。
| プロパティ | 型 | 説明 |
|---|---|---|
| componentAttributes | HashMap | 必須。コンポーネントのデザイン属性値。 |
| componentName | string | 必須。コンポーネントの FQN。この項目で使用できるのは、Experience Builder のコンポーネントパネルで使用できるコンポーネントのみです。 |
| id | UUID | 必須。コンポーネントの GUID を表します。 |
| renderPriority | enums.priority | コンポーネントの順次表示の優先度の値を設定します。使用可能な値: HIGHEST、HIGH、NEUTRAL |
| renditionMap | HashMap | RenditionComponents の UUID への異なる変換キーの対応付け。 |
| type | string | 必須。コンポーネントの種類を表します。サポートされている値は、component のみです。 |
各 <view_name>.json には、コンポーネントごとに変換コンテナが 1 つ作成されます。
| プロパティ | 型 | 説明 |
|---|---|---|
| id | UUID | 必須。コンポーネントの GUID を表します。 |
| renditionValue | map | テキスト内の異なる言語など、コンポーネントの異なるバリエーションの対応付け。 |
| type | string | 必須。コンポーネントの種類を表します。サポートされている値は、renditionComponent のみです。 |
宣言的なメタデータの定義のサンプル
次に、ExperienceBundle 宣言の例を示します。個々のフォルダやバンドルされたコードのファイルの例については、brandingSets、config、routes、themes、variations、および views を参照してください。
使用方法
コンポーネントの UUID はリリース時にシステムにより自動的に生成されるため、コンポーネントを ExperienceBundle に追加する場合は id に任意の値を入力できます。
ExperienceBundle を使用して Lightning コミュニティをリリースする場合、SiteDotCom 型がマニフェストファイルに含まれていないことを確認します。
- package.xml マニフェストファイルの API バージョンを 48.0 に設定して、パッケージをリリースします。
- 次に、package.xml の API バージョンを 49.0 に設定します。
- パッケージを取得して、ExperienceBundle の最新の更新を取得します。
マニフェストファイル内のワイルドカードのサポート
このメタデータ型では、package.xml マニフェストファイル内のワイルドカード文字 * (アスタリスク) がサポートされます。マニフェストファイルの使用についての詳細は、「zip ファイルを使用したメタデータのリリースと取得」を参照してください。