U bent hier:
Speciale werking in implementaties
Gebruik de informatie hier bij het bepalen van wat moet worden opgenomen in uw implementatie en hoe de wijzigingen worden weergegeven in de bestemming.
De werkingen die worden vermeld in de sectie API voor metagegevens zijn van toepassing als u Salesforce-extensies voor Visual Studio Code gebruikt.
- Componenten wijzigingsset
Denk na over de manier waarop goedkeuringsprocessen, Apex code, aangepaste velden en objecten, stromen en andere aangepaste componenten van invloed zijn op uw implementatie. - API voor metagegevens
De hier vermelde werkingen zijn van toepassing als u Salesforce-extensies voor Visual Studio Code gebruikt.
Zie ook:
Componenten wijzigingsset
Denk na over de manier waarop goedkeuringsprocessen, Apex code, aangepaste velden en objecten, stromen en andere aangepaste componenten van invloed zijn op uw implementatie.
Goedkeuringsprocessen
- Als velden op de goedkeuringspagina aangepaste velden voor standaardobjecten bevatten, voegt u die aangepaste velden handmatig toe aan uitgaande wijzigingssets. De optie Afhankelijkheden weergeven/toevoegen voor het selecteren van componenten van de wijzigingsset bevat deze velden niet.
- Als het goedkeuringsproces verwijst naar postsjablonen die aangepaste velden bevatten, slaat u deze postsjablonen eerst opnieuw op in de oorspronkelijke organisatie voordat u ze kunt toevoegen aan de wijzigingsset. Geef vanuit Set-up Postsjablonen op in het vak Snel zoeken en selecteer vervolgens Postsjablonen. Klik voor elke postsjabloon op Bewerken en vervolgens op Opslaan.
- Wijzigingssets bevatten niet de volgorde van actieve goedkeuringsprocessen uit de bron. Mogelijk moet u de volgorde van de goedkeuringsprocessen in de bestemming wijzigen na implementatie.
- Als u de waarde van Unieke naam wijzigt van een goedkeuringsproces dat eerder in een wijzigingsset was opgenomen en in een andere organisatie was geïmplementeerd, en u het goedkeuringsproces via een wijzigingsset opnieuw verzendt, wordt een nieuw goedkeuringsproces gemaakt bij het implementeren in de andere organisatie. Het eerder geïmplementeerde goedkeuringsproces wordt niet gewijzigd.
Apex-klassen en Apex-triggers
Standaard kunnen wijzigingen aan Apex-code met daarin Apex-taken die in behandeling of bezig zijn, niet worden geïmplementeerd. Voor het implementeren van deze wijzigingen voert u een van de volgende handelingen uit.
- Annuleer Apex-taken voordat wijzigingen aan Apex -code worden geïmplementeerd. Plan de taken opnieuw in na de implementatie.
- Schakel implementaties met Apex-taken in in de Salesforce-gebruikersinterface op de pagina Implementatie-instellingen.
Als een record wordt gemaakt in een Apex test, wordt de testrecord niet gemarkeerd als weergegeven. Daarom mislukken Apex tests met query's die filteren op LastViewedDate tijdens implementatie en kunnen codedekkingsfouten veroorzaken. Als u een record wilt markeren als weergegeven in een Apex test, gebruikt u eerst de clausule FOR VIEW en filtert u vervolgens op LastViewedDate.
Dit voorbeeld Apex test gebruikt de FOR VIEW clausule voordat filteren op LastViewedDate.
@isTest
public class AccountViewTest {
@testSetup
static void myTestSetup() {
Account a = new Account();
a.Name = 'Test Account';
insert a;
}
@isTest
static void testMethod1() {
List<Account> aForView = [Select Id, Name from Account LIMIT 1 FOR VIEW];
List<Account> a = [Select Id, Name from Account where LastViewedDate = TODAY LIMIT 1];
System.assertEquals(1, a.size());
}
}
Aangepaste velden
- Als u het gegevenstype van een aangepast veld wilt wijzigen, kunt u wijzigingssets gebruiken. Het implementeren loopt soms echter vertraging op omdat veel records moeten worden bijgewerkt. Overweeg in plaats daarvan de bestemming te wijzigen via de gebruikersinterface.
Aangepaste objecten
- Mogelijk ontstaat er een foutsituatie als u een wijzigingsset implementeert met een aangepast object dat een bovenliggende/onderliggende relatie heeft zonder het hoofd-/detailveld in dezelfde wijzigingsset. Voor het oplossen hiervan neemt u het aangepaste hoofd-/detailveld op in de wijzigingsset, zelfs als u de algemene standaardinstelling niet hebt gewijzigd.
- Het gelijktijdig invoegen van een aangepast object, het bijwerken van het veld sharingModel voor een object en het toevoegen van een nieuwe regel voor op eigenaar gebaseerd delen wordt niet ondersteund. In plaats daarvan zijn drie afzonderlijke implementaties vereist. Implementeer eerst het aangepaste object, vervolgens het bijgewerkte sharingModel voor het object en daarna de nieuwe op eigenaar gebaseerde regel voor delen. U kunt het veld sharingModel bijwerken en een op criteria gebaseerde of voor gastgebruikers bestemde regel voor delen toevoegen in één implementatie.
Stromen
- Als u van plan bent om een stroom te implementeren met behulp van wijzigingssets, moet u rekening houden met beperkingen in de ondersteuning van migraties. Zorg ervoor dat uw stromen alleen verwijzen naar velden en componenten die beschikbaar zijn in wijzigingssets.
- U kunt slechts één versie van een stroom opnemen in een wijzigingsset.
- Als de stroom geen actieve versie heeft wanneer u de uitgaande wijzigingsset uploadt, wordt de laatste inactieve versie gebruikt.
- Wanner u de afhankelijke componenten voor de wijzigingsset weergeeft, vermeldt de lijst Componentafhankelijkheden de afhankelijkheden voor <i>alle</i> versies van de stroom. Voeg alle onderling afhankelijke componenten voor de relevante stroomversie aan de uitgaande wijzigingsset.
- Een actieve stroom in een wijzigingsset wordt als niet-actief naar zijn bestemming geïmplementeerd. Activeer de stroom handmatig na implementatie.
- Het implementeren of opnieuw implementeren van een stroom met wijzigingssets maakt een versie van de stroom in de bestemming aan.
- In productieorganisaties kunt u de instelling inschakelen voor het implementeren van een nieuwe actieve versie van een proces of stroom via wijzigingssets of API voor metagegevens. De instelling wordt niet weergegeven in niet-productieorganisaties (zoals scratch-, sandbox- en ontwikkelaarsorganisaties), omdat u altijd een nieuwe actieve versie kunt implementeren.
Machtigingen
Zie Machtigingensets en profielinstellingen in wijzigingssets
Paginalay-out
Een implementatie met daarin wel een profiel en recordtype, maar geen toegewezen paginalay-out voor dat recordtype, verwijdert de bestaande lay-outtoewijzing uit het profiel voor dat recordtype. Neem altijd alle paginalay-outs voor alle vereiste recordtypen in de wijzigingsset op.
Keuzelijstwaarden
Waarden voor een keuzelijstveld in een bestemming die niet zijn opgenomen in de wijzigingsset, worden ingesteld op inactief.
Als de keuzelijst van het doel bijvoorbeeld een actieve waarde 1 bevat en de keuzelijst van de wijzigingsset geen 1 als waarde bevat, verandert 1 van actief in inactief in het doel.
Delen
Het is niet mogelijk om gelijktijdig het veld sharingModel voor een object bij te werken en een nieuwe op eigenaar gebaseerde regel voor delen toe te voegen. U kunt een op eigenaar gebaseerde regel voor delen toevoegen wanneer de standaardinstelling voor de organisatie openbaar is, en daaropvolgend het sharingModel bijwerken, wat zou resulteren in één nieuwe berekening voor delen. U kunt een op criteria gebaseerde of voor gastgebruikers bestemde regel voor delen en wijzigingen in het veld sharingModel samen implementeren met behulp van de Componenten wijzigingsset.
API voor metagegevens
De hier vermelde werkingen zijn van toepassing als u Salesforce-extensies voor Visual Studio Code gebruikt.
Apex-klassen en Apex-triggers
Standaard kunnen wijzigingen aan Apex-code met daarin Apex-taken die in behandeling of bezig zijn, niet worden geïmplementeerd. Voor het implementeren van deze wijzigingen voert u een van de volgende handelingen uit.
- Annuleer Apex-taken voordat wijzigingen aan Apex -code worden geïmplementeerd. Plan de taken opnieuw in na de implementatie.
- Schakel implementaties met Apex-taken in in de Salesforce-gebruikersinterface op de pagina Implementatie-instellingen.
Als een record wordt gemaakt in een Apex test, wordt de testrecord niet gemarkeerd als weergegeven. Daarom mislukken Apex tests met query's die filteren op LastViewedDate tijdens implementatie en kunnen codedekkingsfouten veroorzaken. Als u een record wilt markeren als weergegeven in een Apex test, gebruikt u eerst de clausule FOR VIEW en filtert u vervolgens op LastViewedDate.
Dit voorbeeld Apex test gebruikt de FOR VIEW clausule voordat filteren op LastViewedDate.
@isTest
public class AccountViewTest {
@testSetup
static void myTestSetup() {
Account a = new Account();
a.Name = 'Test Account';
insert a;
}
@isTest
static void testMethod1() {
List<Account> aForView = [Select Id, Name from Account LIMIT 1 FOR VIEW];
List<Account> a = [Select Id, Name from Account where LastViewedDate = TODAY LIMIT 1];
System.assertEquals(1, a.size());
}
}
Goedkeuringsprocessen
- Voor het gebruik van goedkeuringsprocessen voor Salesforce Knowledge-artikelen in combinatie met de API voor metagegevens moet het artikeltype zijn geïmplementeerd. Voor artikelversie (_kav) in goedkeuringsprocessen zijn de ondersteunde actietypen: Knowledge-actie, E-mailwaarschuwing, Veldupdate en Uitgaand bericht.
- Als het goedkeuringsproces verwijst naar postsjablonen die aangepaste velden bevatten, slaat u deze postsjablonen eerst opnieuw op in de oorspronkelijke organisatie voordat u ze kunt toevoegen aan de wijzigingsset. Geef vanuit Set-up Postsjablonen op in het vak Snel zoeken en selecteer vervolgens Postsjablonen. Klik voor elke postsjabloon op Bewerken en vervolgens op Opslaan.
- De metagegevens bevatten niet de volgorde van actieve goedkeuringsprocessen. Mogelijk moet u de volgorde van de goedkeuringsprocessen in de bestemming wijzigen na implementatie.
- Als u de waarde van Unieke naam wijzigt van een goedkeuringsproces dat eerder in een wijzigingsset was opgenomen en in een andere organisatie was geïmplementeerd, en u het goedkeuringsproces via een wijzigingsset opnieuw verzendt, wordt een nieuw goedkeuringsproces gemaakt bij het implementeren in de andere organisatie. Het eerder geïmplementeerde goedkeuringsproces wordt niet gewijzigd.
Authenticatieleveranciers
Met ingang van november 2022 wordt het consumentengeheim gewijzigd in een plaatshouderwaarde als een wijzigingsset een authenticatieleverancier bevat waarvoor een consumentengeheim is gedefinieerd. U moet het consumentengeheim handmatig invoegen tijdens de implementatie van een wijzigingsset.
Aangepaste velden
Vanaf API-versie 30.0 zijn bij de implementatie van een nieuw aangepast veld de standaardwaarden voor de bewerkbare en leesbare velden in profielveldmachtigingen false (onwaar). Voor het overschrijven van de standaardwaarden neemt u veldmachtigingen voor het nieuw veld op in uw profielen.
Aangepaste objecten
Het gelijktijdig invoegen van een aangepast object, het bijwerken van het veld sharingModel voor een object en het toevoegen van een nieuwe regel voor op eigenaar gebaseerd delen wordt niet ondersteund. In plaats daarvan zijn drie afzonderlijke implementaties vereist. Implementeer eerst het aangepaste object, vervolgens het bijgewerkte sharingModel voor het object en daarna de nieuwe op eigenaar gebaseerde regel voor delen. U kunt het veld sharingModel bijwerken en een op criteria gebaseerde of voor gastgebruikers bestemde regel voor delen toevoegen in één implementatie.
Verbonden app
- U kunt de waarde voor consumerKey niet instellen in de API voor metagegevens. Deze wordt opgenomen in een terughaalbewerking voor informatiedoeleinden. Als u probeert om de verbonden app te verplaatsen naar een andere organisatie, moet u consumerKey verwijderen uit het .zip-bestand vóór de implementatie naar een organisatie. In de bestemming wordt dan een nieuwe sleutel gegenereerd.
- Mobiele instellingen van verbonden apps worden niet ondersteund in wijzigingssets en moeten handmatig worden gemigreerd.
Groepen
Leden van de openbare groep worden niet gemigreerd als u het groepstype implementeert.
Hoofd-/detailrelaties
Voor een implementatie van de API voor metagegevens waarin hoofd-/detailrelaties voorkomen, worden in deze gevallen alle detailrecords in de Prullenbak verwijderd.
- Als u een implementatie verzorgt met een nieuw hoofd-/detailveld, verwijder dan alle detailrecords niet-permanent (naar de prullenbak sturen) voordat u het hoofd-/detailveld implementeert. Doet u dit niet, dan mislukt het implementeren. Tijdens de implementatie worden detailrecords permanent verwijderd uit de prullenbak en kunnen ze niet meer worden hersteld.
- Als u een implementatie verzorgt die een opzoekveldrelatie converteert naar een hoofd-/detailveldrelatie, dan moeten de detailrecords verwijzen naar een hoofdrecord of moeten de detailrecords niet-permanent verwijderd worden (naar de prullenbak sturen) wil het implementeren slagen. Bij een geslaagde implementatie worden alle detailrecords echter permanent uit de Prullenbak verwijderd.
Paginalay-out
Een implementatie met daarin paginalay-outtoewijzingen vervangt alle bestaande paginalay-outtoewijzingen in de doelorganisatie door de toewijzingen die zijn opgegeven in het .zip-bestand. Bestaande paginalay-outs in de organisatie verdwijnen als deze niet zijn opgenomen in het .zip-bestand. Neem altijd alle paginalay-outs voor alle vereiste recordtypen in het .zip-bestand op.
Keuzelijstwaarden
Waarden voor een keuzelijstveld in een doelorganisatie die niet zijn opgenomen in de metagegevens, worden ingesteld op inactief.
Als de doelorganisatie bijvoorbeeld een keuzelijst heeft die een actieve waarde van 1 bevat en de metagegevens geen keuzelijstwaarde van 1 bevatten, verandert 1 van actief in inactief in de doelorganisatie.
Profielen
Als een pakket een profiel omvat met een naam die niet voorkomt in de bestemming, wordt er een nieuw profiel met die naam gemaakt. Als het geïmplementeerde profiel geen machtigingen of instellingen opgeeft, bevat het resulterende profiel alle machtigingen en instellingen uit het Standaardprofiel.
Aangepaste velden op het object ContentVersion zijn beschikbaar voor alle profielgebruikers. Wanneer u metagegevens van een profiel exporteert, worden alle aangepaste velden zichtbaar.
Delen
- Met behulp van API-versie 29.0 kunt u sharingModel van een object niet wijzigen via de API voor metagegevens. Wijzig de bestemming handmatig via de gebruikersinterface.
- Vanaf de API-versie 30.0 kunt u sharingModel van een object voor interne gebruikers wel wijzigen via de API voor metagegevens en de gebruikersinterface.
- Het bijwerken van het veld sharingModel voor een object en het gelijktijdig toevoegen van een nieuwe op eigenaar gebaseerde regel voor delen wordt niet ondersteund in de API voor metagegevens. U kunt een op eigenaar gebaseerde regel voor delen toevoegen wanneer de algemene standaardinstelling openbaar is, en daaropvolgend het sharingModel bijwerken, wat zou resulteren in één nieuwe berekening voor delen. U kunt een op criteria gebaseerde of voor gastgebruikers bestemde regel voor delen en wijzigingen in het veld sharingModel samen implementeren met behulp van de API voor metagegevens.
Werkstroom
Testmodus voor stroomtriggers wordt ondersteund in de API voor metagegevens. Als u een stroomtrigger de nieuwste stroomversie wilt laten uitvoeren wanneer een beheerder de werkstroomregel laat activeren, schakelt u de testmodus in via de gebruikersinterface na de implementatie.
