Du är här:
Distribuera din Experience Cloud-webbplats med Metadata API
Använd Metadata API för att flytta din Experience Cloud-webbplats från en Salesforce-organisation till en annan. Konfigurera och testa din webbplats i din testmiljö och hämta sedan webbplatsens data och distribuera dem till din produktionsorganisation.
Versioner som krävs
| Tillgängliga i: Salesforce Classic och Lightning Experience |
| Tillgängliga i: Utgåvorna Enterprise, Performance, Unlimited och Developer |
| Gäller för: LWR, Aura och Visualforce-webbplatser |
Beroende på webbplatsens ramverk kombineras följande metadatatyper för att definiera webbplatsen. För att migrera en webbplats, använd Metadata API-anropet retrieve för att hämta XML-filrepresentationer av din organisations komponenter.
- Nätverk
- Representerar en Experience Cloud-webbplats. Innehåller administrationsinställningar, som till exempel konfigurationer för åsidosättningar, e-post och medlemskap.
- Egen webbplats
- Innehåller informationen om inställningar för domän och sidor, inklusive indexPage, siteAdmin och URL-definitioner.
- DigitalExperienceBundle och DigitalExperienceConfig eller ExperienceBundle eller SiteDotCom
- Vilken metadatatyp du behöver varierar beroende på webbplatstypen. Representerar de olika inställningar och komponenter, som sidor, varumärkesuppsättningar och teman, som utgör en webbplats.
- För utökade LWR-webbplatser, som introducerades i utgåvan Winter ’23 (API version 56.0), kombineras DigitalExperienceBundle och DigitalExperienceConfig för att ge textbaserade representationer av dina webbplatselement och inställningar. Du kan hämta redigerbara webbplatsmetadata och snabbt skapa, uppdatera, publicera och distribuera webbplatser programmatiskt. Du kan även delvis distribuera utökade LWR-webbplatser.
- För icke-utökade LWR-webbplatser tillhandahåller ExperienceBundle textbaserade representationer av webbplatsens inställningar, sidor och komponenter. Du kan hämta redigerbara webbplatsmetadata och snabbt skapa, uppdatera, publicera och distribuera webbplatser programmatiskt.
- För Aura-webbplatser kan du välja att använda antingen ExperienceBundle eller SiteDotCom, men vi rekommenderar att använda ExperienceBundle. Innan utgåvan Summer '19 (API version 45.0 och tidigare), kombineras metadatatyperna Network, CustomSite och SiteDotCom för att definiera en Aura-webbplats. Att hämta typen SiteDotCom producerar dock en binär .site-fil som inte är mänskligt läsbar. Se ExperienceBundle för Upplevelsebyggarwebbplatser.
- För Visualforce representerar SiteDotCom webbplatsen.
Mer information om dessa metadatatyper och instruktioner om att migrera data finns i Metadata API Developer Guide och Salesforce CLI Command Reference.
Överblick över de metadatatyper som behövs
Vilka metadatatyper du använder för att distribuera en webbplats varierar beroende på webbplatstypen.
| Obligatorisk metadatatyp | Utökad LWR-webbplats | LWR-webbplats | Aura-webbplats | Visualforce-webbplats |
|---|---|---|---|---|
| Nätverk |
|
|
|
|
| Egen webbplats |
|
|
|
|
| DigitalExperience-paket |
|
|||
| DigitalExperienceConfig |
|
|||
| Upplevelsepaket |
|
ExperienceBundle (rekommenderas) eller SiteDotCom |
||
| SiteDotCom |
|
Tips och saker att tänka på
- Innan du migrerar data till en annan organisation. aktivera digitala upplevelser i målorganisationen och ange samma domännamn som du använde i din sandboxorganisation för att undvika att fel uppstår.
- För varje Experience Cloud-webbplats har nätverkskomponenten ett unikt namn och URL-sökvägprefix. När du hämtar nätverkskomponenten baseras den XML-fil som skapas på namnet på nätverket. Vid migrering tittar API på filnamnet och uppdaterar webbplatsen om det finns. Om det inte finns skapar API en webbplats. Om någon ändrar webbplatsens namn i sandboxen och sedan försöker migrera ser de ett fel. API försöker skapa en webbplats med det befintliga sökvägens prefix.
- Kontrollera CustomSite i XML-filen för att säkerställa att alla beroenden överförs. Om några saknas, ange dem uttryckligen i XML-filen.
- Utöver de obligatoriska komponenter som beskrivs tidigare, inkludera alla andra komponenter som krävs av din webbplats. Komponenter kan inkludera objekt som egna objekt, egna fält, egna Lightning-komponenter och Apex-klasser.
- För att distribuera komponenterna Nätverk och Profil med hjälp av olåsta paket, skapa ett separat olåst paket för varje komponent och distribuera dem individuellt.
- Vid distribuering av en Aura-webbplats med ExperienceBundle, se till att typen SiteDotCom inte inkluderas i manifestfilen.
- Om du byter namn på en webbplats i Administration | Inställningar, se till att käll- och målwebbplatserna har matchande värden för attributen
picassoSiteochsitei komponenten Nätverk. - Om det finns några ändringar av gästanvändarprofilen, inkludera profilen som en del av webbplatsmigreringen.
- När du migrerar användarprofiler läggs användare till i webbplatsen i produktionsorganisationen. E-postmeddelanden skickas sedan till medlemmar på samma sätt som för en ny webbplats.
- Under distribuering, se till att utvecklarnamnet NavigationMenu i målorganisationen är samma som utvecklarnamnet i källorganisationen.
- Om containerType är CommunityTemplateDefinition går det inte att uppdatera en befintlig NavigationMenu via Metadata API.
- För att distribuera en Aura-webbplats med en egen mall, hämta och distribuera först CommunityTemplateDefinition och de relevanta metadatatyperna, som CommunityThemeDefinition. Hämta och distribuera sedan ExperienceBundle eller SiteDotCom och de relevanta metadatatyperna.
- Att distribuera navigeringsmenyn med ytterligare menyartiklar tar bort alla översättningar som tillämpas på befintliga menyartiklar i målmiljön.
- För att inkludera navigeringsmenyer när du flyttar din webbplats, använd metadatatypen NavigationMenu.
- Det går inte att distribuera till en målorganisationen som använder en tidigare utgåva. Till exempel, om din källorganisation är i utgåvan Summer ’19 (API version 46.0) går det inte att distribuera till en målorganisation i utgåvan Spring ’19 (API version 45.0).
- NavigationLinkSet drogs tillbaka i Winter ’20 (API-version 47.0) och ersattes av NavigationMenu.
- Om din webbplats innehåller sidor från Site.com Studio, använd metadatatypen SiteDotCom eftersom distribuering av webbplatsen med ExperienceBundle permanent tar bort Site.com Studio-sidorna.
- ExperienceBundle har inte stöd för att hämta och distribuera över olika API-versioner. Om du försöker uppgradera ExperienceBundle-metadata från en tidigare API-version till en senare—till exempel från API-version 48.0 till 49.0—följ följande steg:
- Sätt API-versionen i paket.xml-manifestfilen till 48.0 och distribuera paketet.
- Ställ sedan in API-versionen i package.xml till 49.0.
- För att få de senaste ExperienceBundle-uppdateringarna, hämta paketet.
- Vid distribuering av en webbplats får du ibland ett varningsmeddelande om ogiltiga ID-värden. Exempel: Egenskapen topicId för komponenten 9b8a4e98-e724-4292-bd3c-0813adf9ddc2 refererar till ett objekt med ID-värdet 0TO4R000000EGPEWA4. Ibland kan ID-värden bli ogiltiga när de distribueras till en destinationsorganisation—till exempel om det refererade ID:t inte finns i destinationsorganisationen. Om du stöter på komponentproblem i din destinationsorganisation, kontrollera att ID-värdena är korrekta.
I dessa situationer kan du distribuera webbplatsen trots varningen. Vi rekommenderar dock att verifiera i målorganisationen att det objekt-ID som refereras i komponenten fortfarande är giltigt. Om ID:t är felaktigt, uppdatera ID:t manuellt för att lösa eventuella komponentproblem i målorganisationen. Alternativt, om det är en egen komponent som du har skapat, överväg att ersätta objekt-ID:t med objektets API-namn istället för att undvika problemet i framtiden.
Exempelmall
Följande exempel innehåller alla fält som kan migreras genom Metadata 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>
Exempel på package.xml
En manifestfil definierar de komponenter du försöker hämta. Följande exempel visar en package.xml för att hämta alla komponenter i en Upplevelsebyggarwebbplats.
<?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>
- Felsök distribueringsfel för metadata på Experience Cloud-webbplatser
Lös problem som kan uppstå vid distribuering av LWR- och Aura-webbplatser med ExperienceBundle eller utökade LWR-webbplatser med DigitalExperienceBundle.

