Loading
Experience Cloud
Apex gebruiken om records in batches te maken voor sites met groot volume

Apex gebruiken om records in batches te maken voor sites met groot volume

Gebruikers van Experience Cloud-sites kunnen meer cases, leads en aangepaste objecten per seconde maken wanneer deze worden verzameld in batches en asynchroon worden verwerkt, in plaats van stuk voor stuk. Met verwerking in batches verbetert u de prestaties en zorgt u dat uw site ook bij drukte goed blijft functioneren. U kunt records in batches maken met behulp van de speciaal voor dit doel toegevoegde Apex-methode.

Vereiste editions

Beschikbaar in: Salesforce Classic en Lightning Experience
Beschikbaar in: Enterprise, Developer, Performance en Unlimited Edition
Benodigde gebruikersmachtigingen
Als u het maken van records en cases in batches wilt configureren: Microbatches gebruiken om records te maken
Als u het veld Gemaakt door van een gemaakte record wilt instellen op de oorspronkelijke gebruiker: Controlevelden instellen bij maken van record
Als u een Experience Cloud-site wilt publiceren:
  • Een lid van de site zijn EN Omgevingen maken en instellen
  • OF
  • Een lid van de site zijn EN een Experience-beheerder of -uitgever in die site zijn
Apex-klassen bewerken:
  • Apex-auteur
  • EN
  • Toepassing aanpassen

Het volgende is van toepassing op geauthenticeerde gebruikers die records in batches maken met behulp van microbatches:

  • De profielmachtiging Microbatches gebruiken om records te maken is vereist.
  • Ze zijn eigenaar van alle records die ze maken via microbatches.
  • Beveiliging op veldniveau en toegang tot recordtypen worden omzeild bij het maken van de records. Ze worden toegepast nadat de record is gemaakt.
  • Records die zijn gemaakt via microbatches, gebruiken het standaardrecordtype voor de organisatie wanneer ze worden gemaakt via microbatches.
  • Bij het maken van een onderliggende record is alleen leestoegang voor de bovenliggende record vereist.

De methode Apex Network.createRecordAsync heeft drie parameters:

  • De eerste parameter processType moet worden ingesteld op 'GENERIC'.
  • De tweede parameter sObject mag niet leeg of null zijn. Deze moet een geldige waarde bevatten die een ondersteund object voorstelt. Validaties aan clientzijde worden uitgevoerd via de eindgebruikerservaring vóór de indiening van de record voor maken met behulp van microbatches.
  • De derde parameter is een array van bestandsbijlagekoppelingen. De bestandsbijlagen moeten vooraf zijn gemaakt. Deze parameter is optioneel en alleen beschikbaar voor geauthenticeerde gebruikers.

Salesforce gebruikt de gebruiker Geautomatiseerd proces om namens de oorspronkelijke gebruikers records in batches te maken. Sitebeheerders met de machtiging Controlevelden instellen bij maken van record kunnen het veld Gemaakt door van de gemaakte record instellen op de oorspronkelijke gebruiker. Anders wordt het veld Gemaakt door ingesteld op de gebruiker Geautomatiseerd proces.

Wanneer gastgebruikers records maken via microbatches, wordt het veld Gemaakt door ingesteld op Gastgebruiker. Gastgebruikers worden echter geen eigenaar van de gemaakte records.

  1. Geef vanuit Set-up Apex-klassen op in het vak Snel zoeken en selecteer vervolgens Apex-klassen.
  2. Gebruik deze functie voor de Apex-controller die het in batches maken van records beheert van het object dat u wilt maken.
    Als u cases in batches wilt maken:
    Case mycase = new Case( Subject = 'sample case', Description = 'case description');
Voorbeeld
Voorbeeld

        String uuid = Network.createRecordAsync('GENERIC', mycase, [enter ContentDocumentIDs separated by commas])
      
Opmerking
Opmerking De retourwaarde uuid vertegenwoordigt de tijdelijke ID van de record die is ingediend voor batchverwerking. Als het maken van records mislukt, kan uuid worden gebruikt voor het identificeren van fouten die zijn gekoppeld aan de indiening.

Om te controleren of microbatching werkt zoals verwacht via Apex, test u de methode createRecordAsync in de Apex-klasse door de definitie van de testklasse toe te voegen. Bijvoorbeeld:

Dit is de Apex-klasse

public class  MicrobatchCreateRecord  {
      public string microbatchCreateCase(String subject) {
          Case c = new Case();
          c.subject = subject;
          String uuid = Network.createRecordAsync('GENERIC', c);
          return uuid;
      }
}

Dit is de Apex-testklasse:

@IsTest
public class MicrobatchCreateRecord_Test {
    @IsTest
    public static void testMicrobatchCreateCase() {
         string newCaseSubject = 'ApexTestCase1';
          MicrobatchCreateRecord controller = new MicrobatchCreateRecord();
   
          Test.startTest();
   
          string uuid = controller.microbatchCreateCase(newCaseSubject);
          Assert.isNotNull(uuid);
   
          Test.getEventBus().deliver();
          Test.stopTest();
   
          // Assert that the Case was created and has the expected subject
          List<Case> testCases = [Select Id, Subject from Case];
          Assert.areEqual(1, testCases.size());
          Assert.areEqual(newCaseSubject, testCases[0].subject);
    }
}
 
Wordt geladen
Salesforce Help | Article