Loading
Experience Cloud
Uw Experience Cloud-site implementeren met de API voor metagegevens

Uw Experience Cloud-site implementeren met de API voor metagegevens

Gebruik de API voor metagegevens om uw Experience Cloud-site van de ene Salesforce-organisatie naar de andere te verplaatsen. Stel uw site in en test deze in uw testomgeving. Haal vervolgens de gegevens van de site op om de site te implementeren naar uw productieorganisatie.

Vereiste editions

Beschikbaar in: Salesforce Classic en Lightning Experience
Beschikbaar in: Enterprise, Performance, Unlimited en Developer Edition
Van toepassing op: LWR-, Aura- en Visualforce-sites

Afhankelijk van het siteframework kunnen de volgende typen metagegevens worden gecombineerd om de site te definiëren. Gebruik voor het geslaagd migreren van een site de aanroep retrieve van de API voor metagegevens voor het ophalen van XML-bestandsrepresentaties vanuit componenten van uw organisatie.

Netwerk
Vertegenwoordigt een Experience Cloud-site. Bevat beheerinstellingen, zoals paginaoverschrijvings-, e-mail- en lidmaatschapsconfiguraties.
CustomSite
Bevat de domein- en pagina-instellingsgegevens, inclusief indexPage, siteAdmin en URL-definities.
DigitalExperienceBundle en DigitalExperienceConfig of ExperienceBundle of SiteDotCom
Het type metagegevens dat u nodig hebt, varieert afhankelijk van het sitetype. Vertegenwoordigt de verschillende instellingen en componenten, zoals pagina's, brandingsets en thema's, waaruit een site is opgebouwd.
  • Voor uitgebreide LWR-sites, geïntroduceerd in Winter '23 (API-versie 56.0), DigitalExperienceBundle en DigitalExperienceConfig in combinatie om op tekst gebaseerde weergaven van uw site-elementen en -instellingen te bieden. U kunt bewerkbare sitemetagegevens ophalen en snel sites programmatisch maken, bijwerken, publiceren en implementeren. U kunt uitgebreide LWR-sites ook gedeeltelijk implementeren.
  • Voor niet-uitgebreide LWR-sites biedt ExperienceBundle op tekst gebaseerde weergaven van de instellingen, pagina's en componenten van de site. U kunt bewerkbare sitemetagegevens ophalen en snel sites programmatisch maken, bijwerken, publiceren en implementeren.
  • Voor Aura-sites kunt u ervoor kiezen ExperienceBundle of SiteDotCom te gebruiken, maar het wordt aangeraden ExperienceBundle te gebruiken. Vóór Summer '19 (API-versie 45.0 en lager) werden de metagegevenstypen Network, CustomSite en SiteDotCom gecombineerd om een Aura-site te definiëren. Het ophalen van het type SiteDotCom resulteert echter in een binair .site-bestand dat niet door mensen kan worden gelezen. Zie ook ExperienceBundle voor Omgevingssamensteller-sites.
  • Voor Visualforce sites, vertegenwoordigt SiteDotCom de site.

Zie de Metadata API Developer Guide en de Salesforce CLI Command Reference voor aanvullende informatie over deze typen metagegevens en instructies voor het migreren van gegevens.

Vereiste typen metagegevens in een oogopslag

Welke typen metagegevens u gebruikt om een site te implementeren, is afhankelijk van het type site.

Vereist type metagegevens Uitgebreide LWR-site LWR-site Aura-site Visualforce-site
Netwerk Verplicht Verplicht Verplicht Verplicht
CustomSite Verplicht Verplicht Verplicht Verplicht
DigitalExperienceBundle Verplicht      
DigitalExperienceConfig Verplicht      
ExperienceBundle   Verplicht

ExperienceBundle (aanbevolen)

of

SiteDotCom

 
SiteDotCom     Verplicht

Tips en overwegingen

  • Schakel voordat u gegevens naar een andere organisatie migreert Digitale omgevingen in de bestemmingsorganisatie in en geef dezelfde domeinnaam op, die u hebt gebruikt in uw sandboxorganisatie om te vermijden dat u een foutmelding krijgt.
  • Voor elke Experience Cloud-site heeft de netwerkcomponent een unieke naam en prefix voor het URL-pad. Wanneer u de netwerkcomponent ophaalt, is de naam van het gegenereerde XML-bestand gebaseerd op de naam van het netwerk. Bij het migreren kijkt de API naar de bestandsnaam en als deze bestaat, wordt de site bijgewerkt. Als de bestandsnaam nog niet bestaat, maakt de API een site. Als iemand de sitenaam wijzigt in de sandbox en vervolgens probeert om te migreren, treedt er een fout op. De API probeert een site te maken met het bestaande padprefix.
  • Controleer het XML-bestand voor CustomSite om er zeker van te zijn dat alle afhankelijkheden zijn overgebracht. Als er een of meer ontbreken, vermeldt u ze expliciet in het XML-bestand.
  • Neem naast de hierboven beschreven verplichte componenten alle andere componenten op die vereist zijn voor uw site. Componenten kunnen items bevatten zoals aangepaste objecten, aangepaste velden, aangepaste Lightning-componenten en Apex-klassen.
  • Als u de componenten Netwerk en Profiel wilt implementeren met behulp van ontgrendelde pakketten, maakt u een afzonderlijk ontgrendeld pakket voor elke component en implementeert u ze afzonderlijk.
  • Wanneer u een Aura-site implementeert met ExperienceBundle, zorg er dan voor dat het type SiteDotCom niet is opgenomen in het manifestbestand.
  • Als u de naam van een site wijzigt in Beheer | Instellingen, zorgt u ervoor dat de bron- en doelsites overeenkomende waarden hebben voor de kenmerken picassoSite en site in de component Netwerk.
  • Als er wijzigingen zijn in het gastgebruikersprofiel, neemt u het profiel op als onderdeel van de sitemigratie.
  • Wanneer u gebruikersprofielen migreert, worden gebruikers toegevoegd aan de site in de productieorganisatie. E-mailberichten worden dan op dezelfde manier als bij een nieuwe site verzonden naar leden.
  • Zorg tijdens de implementatie dat de naam van de ontwikkelaar in NavigationMenu in de doelorganisatie overeenkomt met de naam van de ontwikkelaar in de bronorganisatie.
  • Als het containerType is ingesteld op CommunityTemplateDefinition, is het niet mogelijk om een bestaand NavigationMenu bij te werken via de API voor metagegevens.
  • Als u een Aura-site wilt implementeren met een aangepaste sjabloon, haalt u eerst de CommunityTemplateDefinition en de relevante typen metagegevens op, zoals CommunityThemeDefinition. Haal vervolgens ExperienceBundle of SiteDotCom en de relevante typen metagegevens op en implementeer deze.
  • Als u het navigatiemenu implementeert met extra menu-items, worden eventuele vertalingen verwijderd die u hebt toegepast op bestaande menu-items in de doelomgeving.
  • Als u navigatiemenu's wilt opnemen wanneer u uw site verplaatst, gebruikt u het metagegevenstype NavigationMenu.
  • Het is niet mogelijk om een community te implementeren naar een organisatie die een eerdere releaseversie gebruikt. Als uw bronorganisatie bijvoorbeeld Summer '19 (API-versie 46.0) gebruikt, kunt u de community niet implementeren in een doelorganisatie die Spring '19 (API-versie 45.0) gebruikt.
  • NavigationLinkSet is van de lijst afgevoerd in de Winter '20-versie (API-versie 47.0) en vervangen door NavigationMenu.
  • Als uw site pagina's uit Site.com Studio bevat, gebruikt u het metagegevenstype SiteDotCom, omdat de implementatie van de site met behulp van ExperienceBundle de Site.com Studio-pagina's permanent verwijdert.
  • ExperienceBundle biedt geen ondersteuning voor ophalen en implementeren tussen verschillende API-versies. Als u metagegevens van ExperienceBundle wilt upgraden van een eerdere API-versie naar een nieuwere versie, bijvoorbeeld van versie 48.0 naar 49.0, gaat u als volgt te werk:
    1. Stel de API-versie in het manifestbestand package.xml in op 48.0 en implementeer het pakket.
    2. Stel vervolgens de API-versie in package.xml in op 49.0.
    3. Haal het pakket op voor de meest recente ExperienceBundle-updates.
  • Wanneer u een site implementeert, ontvangt u soms een waarschuwingsbericht over ongeldige ID-waarden. Bijvoorbeeld: De eigenschap topicId van component 9b8a4e98-e724-4292-bd3c-0813adf9ddc2 verwijst naar een object met de ID-waarde 0TO4R000000EGPEWA4. Af en toe kunnen ID-waarden, indien geïmplementeerd naar een bestemmingsorganisatie, ongeldig worden—bijvoorbeeld als de ID waarnaar wordt verwezen niet voorkomt in de bestemmingsorganisatie. Als u componentproblemen ondervindt in uw bestemmingsorganisatie, controleert u of de ID-waarden correct zijn.

    In deze situaties kunt u de site met succes implementeren, ondanks de waarschuwing. We raden echter aan om in de doelorganisatie te controleren of de object-ID waarnaar in de component wordt verwezen, nog steeds geldig is. Als de ID onjuist is, werkt u de ID handmatig bij om eventuele componentproblemen in de doelorganisatie op te lossen. Als het een aangepaste component is die u hebt gemaakt, kunt u overwegen om in plaats daarvan de object-ID te vervangen door de API-naam van het object om het probleem in de toekomst te voorkomen.

Voorbeeldsjabloon

Het volgende voorbeeld bevat alle velden die u kunt migreren via de API voor metagegevens.

<?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>

Voorbeeld van package.xml

Een manifestobestand bepaalt de componenten die u probeert op te halen. Het volgende voorbeeld toont een package.xml voor het ophalen van alle componenten van een Omgevingssamensteller-site.

<?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>
 
Wordt geladen
Salesforce Help | Article