Loading
Experience Cloud
Implementer din Experience Cloud-lokalitet med Metadata API

Implementer din Experience Cloud-lokalitet med Metadata API

Brug Metadata API til at flytte din Experience Cloud-lokalitet fra en Salesforce-organisation til en anden. Opsæt og test din lokalitet i dit testmiljø, og hent derefter lokalitets data, og implementer dem i din produktionsorganisation.

EditionsHeading

Tilgængelig i: Salesforce Classic og Lightning Experience
Tilgængelig i: Enterprise, Performance, Unlimited og Developer Edition
Gælder for: LWR-, Aura- og Visualforce-lokaliteter

Afhængig af lokalitetsstrukturen kombineres følgende metadatatyper for at definere lokaliteten. Hvis du vil migrere en lokalitet, skal du bruge Metadata API-retrieve-kaldet til at hente XML-filrepræsentationer af din organisations komponenter.

Network
Repræsenterer en Experience Cloud-lokalitet. Indeholder administrationsindstillinger, som f.eks. konfiguration af tilsidesættelse af side, mail og medlemskab.
CustomSite
Indeholder oplysninger om domæne- og sideindstillinger, herunder indexPage, siteAdmin og URL-definitioner.
DigitalExperienceBundle og DigitalExperienceConfig eller ExperienceBundle eller SiteDotCom
Den metadatatype, du har brug for, varierer afhængigt af lokalitetstypen. Repræsenterer de forskellige indstillinger og komponenter, f.eks. sider, brandingsæt og temaer, der udgør en lokalitet.
  • For forbedrede LWR-lokaliteter, introduceret i Winter '23 (API version 56.0), kombineres DigitalExperienceBundle og DigitalExperienceConfig til at levere tekstbaserede repræsentationer af dine lokalitetselementer og indstillinger. Du kan hente redigerbare lokalitetsmetadata og hurtigt oprette, opdatere, udgive og implementere lokaliteter programmeringsmæssigt. Du kan også implementere forbedrede LWR-lokaliteter delvist.
  • For ikke-forbedrede LWR-lokaliteter leverer ExperienceBundle tekstbaserede repræsentationer af lokalitetens indstillinger, sider og komponenter. Du kan hente redigerbare lokalitetsmetadata og hurtigt oprette, opdatere, udgive og implementere lokaliteter programmeringsmæssigt.
  • For Aura-lokaliteter kan du vælge at bruge enten ExperienceBundle eller SiteDotCom, men vi anbefaler brug af ExperienceBundle. Før Summer '19-versionen (API version 45.0 og tidligere) blev Network-, CustomSite- og SiteDotCom-metadatatyper kombineret for at definere en Aura-lokalitet. Hentning af typen SiteDotCom producerer dog en binær .site-fil, der ikke er brugervenlig. Se ExperienceBundle for Oplevelseskonstruktør-lokaliteter.
  • For Visualforce repræsenterer SiteDotCom lokaliteten.

Hvis du ønsker yderligere oplysninger om disse metadatatyper og instruktioner i migrering af data, kan du se Metadata API Developer Guide og Salesforce CLI Command Reference.

Et overblik over påkrævede metadatatyper

De metadatatyper, som du bruger til at implementere en lokalitet, varierer afhængigt af lokalitetstypen.

Påkrævet metadatatype Forbedrede LWR-lokaliteter LWR-lokalitet Aura-lokalitet Visualforce-lokalitet
Network Obligatorisk Obligatorisk Obligatorisk Obligatorisk
CustomSite Obligatorisk Obligatorisk Obligatorisk Obligatorisk
DigitalExperienceBundle Obligatorisk      
DigitalExperienceConfig Obligatorisk      
ExperienceBundle   Obligatorisk

ExperienceBundle (anbefales)

eller

SiteDotCom

 
SiteDotCom     Obligatorisk

Tip og overvejelser

  • Før du migrerer data til en anden organisation, skal du aktivere digitale oplevelser i destinationsorganisationen og angive det samme domænenavn, som du brugte i din sandbox-organisation, for at undgå at der opstår fejl.
  • For hver Experience Cloud-lokalitet har netværkskomponenten et entydigt navn og URL-stipræfiks. Når du henter netværkskomponenten, er den genererede XML-fil baseret på navnet på netværket. Ved migrering ser API'en på filnavnet og, hvis det findes, opdaterer lokaliteten. Hvis det ikke findes, opretter API en lokalitet. Hvis nogen ændrer lokalitetsnavnet i sandboxen og derefter forsøger at migrere, ser de en fejl. API forsøger at oprette en lokalitet med det eksisterende stipræfiks.
  • Undersøg XML-filen for CustomSite for at sørge for, at alle afhængigheder flyttes med. Hvis nogen mangler, skal du eksplicit angive dem i XML-filen.
  • I tillæg til de påkrævede komponenter, der er beskrevet tidligere, skal du inkludere alle de andre komponenter, der er påkrævet af din lokalitet. Komponenter kan indeholde elementer som f.eks. tilpassede objekter, tilpassede felter, tilpassede Lightning-komponenter og Apex-klasser.
  • Hvis du vil implementere netværks- og profilkomponenter ved brug af ulåste pakker, skal du oprette en separat ulåst pakke for hver komponent og implementere dem individuelt.
  • Når du implementerer en Aura-lokalitet med ExperienceBundle, skal du sørge for, at SiteDotCom-typen ikke er inkluderet i manifestfilen.
  • Hvis du omdøber en lokalitet i Administration | Indstillinger, skal du sørge for, at kilde- og mållokaliteter har matchende værdier for picassoSite- og site-attributterne i komponenten Netværk.
  • Hvis der findes ændringer af gæstebrugerprofilen, skal du inkludere profilen som en del af lokalitetsmigreringen.
  • Når du migrerer brugerprofiler, føjes brugere til lokaliteten i produktionsorganisationen. Der sendes mails til medlemmer på samme måde som for en ny lokalitet.
  • Under implementering skal du sørge for, at NavigationMenu-udviklernavnet i målorganisationen er det samme som udviklernavnet i kildeorganisationen.
  • Hvis containerType er CommunityTemplateDefinition, kan du ikke opdatere en eksisterende NavigationMenu via Metadata API.
  • Hvis du vil implementere en Aura-lokalitet med en tilpasset skabelon, skal du først hente og implementere CommunityTemplateDefinition og de relevante metadatatyper, f.eks. CommunityThemeDefinition. Hent og implementer derefter ExperienceBundle eller SiteDotCom og de relevante metadatatyper.
  • Implementering af navigationsmenuen med yderligere menuelementer sletter eventuelle oversættelser, der er anvendt på eksisterende menuelementer i målmiljøet.
  • Hvis du vil inkludere navigationsmenuer, når du flytter din lokalitet, skal du bruge metadatatypen NavigationMenu.
  • Du kan ikke implementere til en målorganisation, der bruger en tidligere udgave. Hvis f.eks. din kildeorganisationer på Summer ’19 (API-version 46.0), kan du ikke implementere til en målorganisation på Spring ’19 (API-version 45.0).
  • NavigationLinkSet blev udfaset i Winter ’20 (API version 47.0) og erstattet med NavigationMenu.
  • Hvis din lokalitet indeholder sider fra Site.com Studio, skal du bruge metadatatypen SiteDotCom, da implementering af lokaliteten ved brug af ExperienceBundle permanent sletter Site.com Studio-siderne.
  • ExperienceBundle understøtter ikke hentning og implementering på tværs af forskellige API-versioner. Hvis du forsøger at opgradere ExperienceBundle-metadata fra en tidligere API-version til en senere – f.eks. fra API version 48.0 til 49.0 – skal du udføre følgende trin:
    1. Indstil API-versionen i package.xml-manifestfilen til 48.0, og implementer pakken.
    2. Indstil derefter API-versionen i package.xml til 49.0.
    3. Hvis du vil hente de seneste ExperienceBundle-opdateringer, skal du hente pakken.
  • Når du implementerer en lokalitet, modtager du nogle gange en advarselsmeddelelse om ugyldige id-værdier. Eksempel: Egenskaben topicId i komponent 9b8a4e98-e724-4292-bd3c-0813adf9ddc2 refererer til et objekt med id-værdien 0TO4R000000EGPEWA4. Nogle gange kan id-værdier blive ugyldige, når de implementeres i en destinationsorganisation – f.eks. hvis det id, der refereres til, ikke findes i destinationsorganisationen. Hvis du støder på komponentproblemer i din destinationsorganisation, skal du kontrollere, at id-værdierne er korrekte.

    I disse situationer kan du implementere lokaliteten korrekt på trods af advarslen. Men vi anbefaler, at du bekræfter i målorganisationen, at objekt-id'et, der refereres til i komponenten, stadig er gyldigt. Hvis id'et er ukorrekt, skal du manuelt opdatere id'et for at løse eventuelle komponentproblemer i målorganisationen. Alternativt kan du overveje at erstatte objekt-id'et med objektets API-navn i stedet for for at undgå problemet i fremtiden.

Prøveskabelon

Følgende eksempel indeholder alle de felter, du kan migrere gennem 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>

Eksempelfil på package.xml-manifest

Manifestfilen definerer de komponenter, som du forsøger at hente. Følgende eksempel viser en package.xml-manifestfil til at hente alle komponenterne på en Oplevelseskonstruktør-lokalitet.

<?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>
 
Indlæser
Salesforce Help | Article