メタデータ API を使用した Experience Cloud サイトのリリース
メタデータ API を使用して、Salesforce 組織間で Experience Cloud サイトを移行します。テスト環境でサイトの設定とテストを行ってから、サイトのデータを取得して本番組織にリリースします。
必要なエディション
| 使用可能なインターフェース: Salesforce Classic および Lightning Experience |
| 使用可能なエディション: Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition |
| 適用されるサイト: LWR、Aura、および Visualforce サイト |
サイトのフレームワークに応じて、次のメタデータ型を組み合わせてサイトを定義します。サイトを移行するには、メタデータ API の retrieve コールを使用して、組織のコンポーネントの XML ファイル表現を取得します。
- Network
- Experience Cloud サイトを表します。ページの上書き、メール、メンバーシップの設定などの管理設定が含まれています。
- CustomSite
- indexPage、siteAdmin、URL 定義など、ドメインとページの設定情報が含まれています。
- DigitalExperienceBundle と DigitalExperienceConfig または ExperienceBundle あるいは SiteDotCom
- 必要なメタデータ型は、サイトの種別によって異なります。メタデータ型は、サイトを構成するさまざまな設定や、ページ、ブランドセット、テーマなどのコンポーネントを表します。
- Winter '23 (API バージョン 56.0) で導入された機能強化された LWR サイトでは、DigitalExperienceBundle と DigitalExperienceConfig を組み合わせて、サイトの要素や設定がテキストベースの表現で提供されます。編集可能なサイトメタデータを取得し、プログラムですばやくサイトを作成、更新、公開、リリースできます。また、機能強化された LWR サイトを部分的にリリースすることも可能です。
- 機能強化されていない LWR サイトの場合、ExperienceBundle は、サイトの設定、ページ、およびコンポーネントのテキストベースの表現を提供します。編集可能なサイトメタデータを取得し、プログラムですばやくサイトを作成、更新、公開、リリースできます。
- Aura サイトの場合、ExperienceBundle と SiteDotCom のいずれかを選択して使用できますが、ExperienceBundle を使用することをお勧めします。Summer ’19 以前 (API バージョン 45.0 以前) は、Network、CustomSite、SiteDotCom メタデータ型を組み合わせて Aura サイトを定義していました。ただし、SiteDotCom 型を取得すると、人間が判読できないバイナリの .site ファイルが生成されました。「ExperienceBundle for Experience Builder Sites (エクスペリエンスビルダーサイトの ExperienceBundle)」を参照してください。
- Visualforce サイトの場合、SiteDotCom でサイトを表します。
これらのメタデータ型についての詳細とデータ移行の手順は、『メタデータ API 開発者ガイド』と『Salesforce CLI コマンドリファレンス』を参照してください。
必要なメタデータ型の一覧
サイトのリリースに使用するメタデータ型は、サイトの種別によって異なります。
| 必要なメタデータ型 | 機能強化された LWR サイト | LWR サイト | Aura サイト | Visualforce サイト |
|---|---|---|---|---|
| Network |
|
|
|
|
| CustomSite |
|
|
|
|
| DigitalExperienceBundle |
|
|||
| DigitalExperienceConfig |
|
|||
| ExperienceBundle |
|
ExperienceBundle (推奨) または SiteDotCom |
||
| SiteDotCom |
|
ヒントと考慮事項
- データを別の組織に移行する前に、エラーの発生を避けるため、移行先の組織でデジタルエクスペリエンスを有効化し、Sandbox 組織で使用したものと同じドメイン名を入力します。
- 各 Experience Cloud サイトのネットワークコンポーネントには、一意の名前と URL パスプレフィックスがあります。ネットワークコンポーネントを取得すると生成される XML ファイル名は、ネットワークの名前に基づきます。移行時に API でファイル名が参照され、ファイル名が存在している場合はサイトが更新されます。存在していない場合、API でサイトが作成されます。誰かが Sandbox でサイト名を変更して移行しようとすると、エラーが表示されます。API は、既存のパスプレフィックスでサイトの作成を試みます。
- すべての連動関係が取り込まれていることを CustomSite の XML ファイルで確認します。いずれかがない場合、XML ファイルで明示的に指定します。
- 前述の必須コンポーネントに加えて、使用するサイトに必要な他のコンポーネントもすべて組み込みます。コンポーネントには、カスタムオブジェクト、カスタム項目、カスタム Lightning コンポーネント、Apex クラスなどの項目を含めることができます。
- ロック解除済みパッケージを使用して Network コンポーネントと Profile コンポーネントをリリースするには、コンポーネントごとに個別のロック解除済みパッケージを作成して個別にリリースします。
- ExperienceBundle を使用して Aura サイトをリリースする場合、SiteDotCom 型がマニフェストファイルに含まれていないことを確認します。
- [管理] | [設定] でサイトの名前を変更する場合は、リリース元サイトとリリース先サイトで、Network コンポーネントの
picassoSite属性とsite属性の値が一致することを確認します。 - ゲストユーザープロファイルに変更があった場合は、サイト移行の一部としてプロファイルを含めます。
- ユーザープロファイルを移行すると、ユーザーが本番組織のサイトに追加されます。その後、新しいサイトの場合と同じようにメールがメンバーに送信されます。
- リリース中、リリース先組織の NavigationMenu API 参照名がリリース元組織の API 参照名と同じであることを確認します。
- containerType が CommunityTemplateDefinition の場合、メタデータ API を介して既存の NavigationMenu を更新することはできません。
- カスタムテンプレートによって Aura サイトをリリースするには、まずに CommunityTemplateDefinition と関連するメタデータタイプ (CommunityThemeDefinition など) を取得してリリースします。次に、ExperienceBundle または SiteDotCom と関連するメタデータ型を取得してリリースします。
- メニュー項目を追加したナビメニューをリリースすると、リリース先環境の既存のメニュー項目に適用されているすべての翻訳が削除されます。
- サイトを移動する際にナビゲーションメニューを含めるには、NavigationMenu メタデータ型を使用します。
- 以前のリリースバージョンを使用しているリリース先組織にリリースすることはできません。たとえば、リリース元組織が Summer '19 (API バージョン 46.0) の場合、Spring '19 (API バージョン 45.0) のリリース先組織にはリリースできません。
- NavigationLinkSet は、Winter '20 (API バージョン 47.0) で廃止され、NavigationMenu に置き換えられました。
- サイトに Site.com Studio のページが含まれている場合、ExperienceBundle を使用してサイトをリリースすると Site.com Studio ページが完全に削除されるため、SiteDotCom メタデータ型を使用します。
- ExperienceBundle では、異なる API バージョンでの取得およびリリースはサポートされません。ExperienceBundle メタデータを古い API バージョンから新しいバージョン (API バージョン 48.0 から 49.0 など) にアップグレードする場合は、次の手順を実行します。
- package.xml マニフェストファイルの API バージョンを 48.0 に設定して、パッケージをリリースします。
- 次に、package.xml の API バージョンを 49.0 に設定します。
- 最新の ExperienceBundle の更新を取得するには、パッケージを取得します。
- サイトのリリース時には、無効な ID 値に関する警告メッセージが表示されることがあります。例: 「コンポーネント 9b8a4e98-e724-4292-bd3c-0813adf9ddc2 の topicId プロパティは ID 値が 0TO4R000000EGPEWA4 のオブジェクトを参照しています。 場合によっては、対象組織にリリースされたときに、ID 値が無効になることがあります。たとえば、参照される ID が対象組織に存在しない場合があります。対象組織でコンポーネントの問題が発生した場合は、ID 値が正しいことを確認してください」。
この状況では、警告が表示されてもサイトを正常にリリースできます。ただし、コンポーネントが参照しているオブジェクト ID がまだ有効であることを、対象組織で確認することをおすすめします。ID が正しくない場合は、手動で ID を更新し、対象組織内でのコンポーネントの問題を解決してください。また、自分で成したカスタムコンポーネントの場合は、オブジェクト ID をオブジェクトの API 名に置き換えて、今後この問題が発生しないようにすることを検討してください。
サンプルテンプレート
次のサンプルには、メタデータ API で移行できるすべての項目が含まれています。
<?xml version="1.0" encoding="UTF-8"?>
<Network xmlns="http://soap.sforce.com/2006/04/metadata">
<allowInternalUserLogin>true</allowInternalUserLogin>
<allowMembersToFlag>true</allowMembersToFlag>
<allowedExtensions>txt,png,jpg,jpeg,pdf,doc,csv</allowedExtensions>
<caseCommentEmailTemplate>unfiled$public/ContactFollowUpSAMPLE</caseCommentEmailTemplate>
<changePasswordTemplate>unfiled$public/CommunityChangePasswordEmailTemplate</changePasswordTemplate>
</communityRoles>
<disableReputationRecordConversations>true</disableReputationRecordConversations>
<emailSenderAddress>admin@myorg.com</emailSenderAddress>
<emailSenderName>MyCommunity</emailSenderName>
<enableCustomVFErrorPageOverrides>true</enableCustomVFErrorPageOverrides>
<enableDirectMessages>true</enableDirectMessages>
<enableGuestChatter>true</enableGuestChatter>
<enableGuestFileAccess>false</enableGuestFileAccess>
<enableInvitation>false</enableInvitation>
<enableKnowledgeable>true</enableKnowledgeable>
<enableNicknameDisplay>true</enableNicknameDisplay>
<enablePrivateMessages>false</enablePrivateMessages>
<enableReputation>true</enableReputation>
<enableShowAllNetworkSettings>true</enableShowAllNetworkSettings>
<enableSiteAsContainer>true</enableSiteAsContainer>
<enableTalkingAboutStats>true</enableTalkingAboutStats>
<enableTopicAssignmentRules>true</enableTopicAssignmentRules>
<enableTopicSuggestions>true</enableTopicSuggestions>
<enableUpDownVote>true</enableUpDownVote>
<forgotPasswordTemplate>unfiled$public/CommunityForgotPasswordEmailTemplate</forgotPasswordTemplate>
<gatherCustomerSentimentData>false</gatherCustomerSentimentData>
<lockoutTemplate>unfiled$public/CommunityLockoutEmailTemplate</lockoutTemplate>
<maxFileSizeKb>51200</maxFileSizeKb>
<networkMemberGroups>
<permissionSet>MyCommunity_Permissions</permissionSet>
<profile>Admin</profile>
</networkMemberGroups>
<networkPageOverrides>
<changePasswordPageOverrideSetting>VisualForce</changePasswordPageOverrideSetting>
<forgotPasswordPageOverrideSetting>Designer</forgotPasswordPageOverrideSetting>
<homePageOverrideSetting>Designer</homePageOverrideSetting>
<loginPageOverrideSetting>Designer</loginPageOverrideSetting>
<selfRegProfilePageOverrideSetting>Designer</selfRegProfilePageOverrideSetting>
</networkPageOverrides>
<picassoSite>MyCommunity1</picassoSite>
<selfRegistration>true</selfRegistration>
<sendWelcomeEmail>true</sendWelcomeEmail>
<site>MyCommunity</site>
<status>Live</status>
<tabs>
<defaultTab>home</defaultTab>
<standardTab>Chatter</standardTab>
</tabs>
<urlPathPrefix>mycommunity</urlPathPrefix>
<welcomeTemplate>unfiled$public/CommunityWelcomeEmailTemplate</welcomeTemplate>
</Network>
サンプル package.xml マニフェストファイル
マニフェストファイルでは、取得するコンポーネントを定義します。次のサンプルに、エクスペリエンスビルダーサイトのすべてのコンポーネントを取得するための package.xml マニフェストファイルを示します。
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<name>Network</name>
</types>
<types>
<members>*</members>
<name>CustomSite</name>
</types>
<types>
<members>*</members>
<name>ExperienceBundle</name>
</types>
<types>
<members>*</members>
<name>CustomTab</name>
</types>
<types>
<members>*</members>
<name>CustomObject</name>
</types>
<types>
<members>*</members>
<name>ApexClass</name>
</types>
<types>
<members>*</members>
<name>ApexPage</name>
</types>
<types>
<members>*</members>
<name>ApexComponent</name>
</types>
<types>
<members>*</members>
<name>Portal</name>
</types>
<types>
<members>*</members>
<name>Profile</name>
</types>
<types>
<members>*</members>
<name>Document</name>
</types>
<version>46.0</version>
</Package>
- Experience Cloud サイトでのメタデータリリースエラーのトラブルシューティング
ExperienceBundle を使用して LWR サイトと Aura サイトをリリースする場合や、DigitalExperienceBundle を使用して拡張 LWR サイトをリリースする場合に発生する可能性がある問題を解決します。

