APEX-tutorial: Apex-programmeringsklasse og -kodningseksempler
Hvad er Apex i Salesforce?
Apex er et objektorienteret og stรฆrkt typet programmeringssprog udviklet af Salesforce til at bygge Software as a Service (SaaS) og Customer Relationship Management (CRM). Apex hjรฆlper udviklere med at skabe tredjeparts SaaS-applikationer og tilfรธje forretningslogik til systemhรฆndelser ved at levere back-end-databaseunderstรธttelse og klient-server-grรฆnseflader.
Apex hjรฆlper udviklere med at fรธje forretningslogik til systembegivenhederne sรฅsom knapklik, relaterede registreringsopdateringer og Visualforce-sider. Apex har en lignende syntaks til Java. Tilmeld dig Salesforce for at lรฆre, hvordan CRM fungerer
Funktioner i Apex-programmeringssproget
Her er de vigtige funktioner i Salesforce Apex:
- Apex er et sprog ufรธlsomt for store og smรฅ bogstaver.
- Du kan udfรธre DML-operationer som INSERT, UPDATE, UPSERT, DELETE pรฅ sObject-poster ved hjรฆlp af apex.
- Du kan forespรธrge sObject-poster ved hjรฆlp af SOQL(salesforce-objektforespรธrgselssprog) og SOSL(salesforce-objektsรธgningssprog) i apex.
- Giver dig mulighed for at oprette en enhedstest og udfรธr dem for at verificere kodedรฆkning og effektiviteten af โโkoden i apex.
- Apex udfรธres i et miljรธ med flere lejere, og Salesforce har defineret nogle regulatorgrรฆnser, der forhindrer en bruger i at kontrollere de delte ressourcer. Enhver kode, der krydser salgsstyrkens guvernรธrgrรฆnse, mislykkes, en fejl dukker op.
- Salesforce-objekt kan bruges som en datatype i apex. For eksempel -
Account acc = new Account();
,her Account er et standard salesforce-objekt.
- Apex opgraderer automatisk med hver Salesforce-udgivelse.
Hvornรฅr skal udvikleren vรฆlge Apex
Apex-kode bรธr kun skrives, hvis et forretningsscenarie er for komplekst og ikke kan implementeres ved hjรฆlp af den forudbyggede funktionalitet leveret af Salesforce.
Fรธlgende er de fรฅ scenarier, hvor vi skal skrive apex-kode:
- At skabe webtjenester, der integrerer Salesforce med andre applikationer.
- At implementere tilpasset validering pรฅ sobjects.
- For at udfรธre brugerdefineret apex-logik, nรฅr en DML-handling udfรธres.
- At implementere funktionalitet, der ikke kan implementeres ved hjรฆlp af eksisterende arbejdsgange flows og procesbyggerfunktionalitet.
- At oprette e -mail -tjenester, skal du inkludere behandling af indhold, overskrifter og vedhรฆftede filer i e-mail ved hjรฆlp af apex-kode.
Arbejdsstruktur af Apex
Nu i denne Apex-tutorial lรฆrer vi om Apex's arbejdsstruktur:
Fรธlgende er flowet af handlinger for en apex-kode:
- Udviklerhandling: Al apex-koden skrevet af en udvikler kompileres i et sรฆt instruktioner, der kan forstรฅs af apex runtime-fortolkeren, nรฅr udvikleren gemmer koden pรฅ platformen, og disse instruktioner derefter gemmer som metadata pรฅ platformen.
- Slutbrugerhandling: Nรฅr brugerhรฆndelsen udfรธrer en apex-kode, fรฅr platformsserveren de kompilerede instruktioner fra metadata og kรธrer dem gennem apex-fortolkeren, fรธr resultatet returneres.

Apex syntaks
Variabel erklรฆring
Da apex er et stรฆrkt skrevet sprog, er det obligatorisk at deklarere en variabel med datatype i apex.
For eksempel:
contact con = new contact();
her er variablen con erklรฆret med kontakt som en datatype.
SOQL-forespรธrgsel
SOQL stรฅr for salesforce object query language. SOQL bruges til at hente sObject-poster fra Salesforce-databasen. For eksempel-
Account acc = [select id, name from Account Limit 1];
Ovenstรฅende forespรธrgsel henter kontopost fra salesforce-databasen.
Lรธkkeerklรฆring
Loop statement bruges til at iterere over posterne pรฅ en liste. Antallet af iterationer er lig med antallet af poster pรฅ listen. For eksempel:
list<Account>listOfAccounts = [select id, name from account limit 100];
// iteration over the list of accounts
for(Account acc : listOfAccounts){
//your logic
}
I ovenstรฅende kodestykke er listOfAccounts en variabel af listedatatypen.
Flowkontrolerklรฆring
Flowkontrolsรฆtning er fordelagtig, nรฅr du รธnsker at udfรธre nogle linjer i koden baseret pรฅ nogle betingelser.
For eksempel:
list<Account>listOfAccounts = [select id, name from account limit 100];
// execute the logic if the size of the account list is greater than zero
if(listOfAccounts.size() >0){
//your logic
}
Ovenstรฅende kodestykke forespรธrger kontoposter fra databasen og kontrollerer listestรธrrelsen.
DML erklรฆring
DML stรฅr for datamanipulationssprog. DML-sรฆtninger bruges til at manipulere data i Salesforce-databasen. For eksempel -
Account acc = new Account(Name = โ Test Accountโ); Insert acc; //DML statement to create account record.
Apex udviklingsmiljรธ
Nu i denne Apex-programmeringsvejledning lรฆrer vi om Apex-udviklingsmiljรธet:
Apex-kode kan udvikles enten i sandbox og udviklerudgave af Salesforce.
Det er en bedste praksis at udvikle koden i sandkassemiljรธet og derefter implementere den til produktionsmiljรธet.
Apex-kodeudviklingsvรฆrktรธjer: Fรธlgende er de tre tilgรฆngelige vรฆrktรธjer til at udvikle apex-kode i alle udgaver af Salesforce.
- Force.com Developer Console
- Force.com IDE
- Kodeeditor i Salesforce-brugergrรฆnsefladenYou
Datatype i Apex
Fรธlgende er de datatyper, der understรธttes af apex:
Primitive
Heltal, Double, Long, Date, Date Time, String, ID og Boolean betragtes som primitive datatyper. Alle primitive datatyper videregives efter vรฆrdi, ikke ved reference.
Kollektioner
Tre typer samlinger er tilgรฆngelige i Apex
- Liste: Det er en ordnet samling af primitiver, sObjects, samlinger eller Apex-objekter baseret pรฅ indekser.
- Sรฆt: En uordnet samling af unikke primitiver.
- Kort: Det er en samling af unikke, primitive nรธgler, der knytter sig til enkelte vรฆrdier, som kan vรฆre primitiver, sObjects, samlinger eller Apex-objekter.
sObjekt
Dette er en speciel datatype i Salesforce. Det ligner et bord i SQL og indeholder felter, der ligner kolonner i SQL.
Enums
Enum er en abstrakt datatype, der gemmer รฉn vรฆrdi af et endeligt sรฆt af specificerede identifikatorer
Klasser
Objekter
Det refererer til enhver datatype, der understรธttes i Apex.
Interfaces
Apex Access Specifier
Fรธlgende er adgangsspecifikationen, der understรธttes af apex:
offentlige
Denne adgangsspecifikation giver adgang til en klasse, metode, variabel, der skal bruges af en apex i et navneomrรฅde.
Privat
Denne adgangsspecifikation giver adgang til en klasse, metode, variabel, der skal bruges lokalt eller inden for kodeafsnittet, det er defineret. Al teknikken, variabler, der ikke har nogen adgangsspecifikation defineret, har standardadgangsspecifikationen privat.
Beskyttet
Denne adgangsspecifikation giver adgang til en metode, variabel, der skal bruges af alle indre klasser inden for definerende Apex-klasse.
Global
Denne adgangsspecifikation giver adgang til en klasse, metode, variabel, der skal bruges af en apex inden for et navneomrรฅde sรฅvel som uden for navneomrรฅdet. Det er en god praksis ikke at bruge globale sรธgeord, fรธr det er nรธdvendigt.
Nรธgleord i Apex
Med deling
Hvis en klasse er defineret med dette nรธgleord, sรฅ hรฅndhรฆves alle delingsreglerne for den aktuelle bruger, og hvis dette nรธgleord er fravรฆrende, udfรธres koden under systemkontekst.
For eksempel:
public with sharing class MyApexClass{
// sharing rules enforced when code in this class execute
}
Uden at dele
Hvis en klasse er defineret med dette nรธgleord, sรฅ hรฅndhรฆves alle delingsreglerne for den aktuelle bruger ikke.
For eksempel:
public without sharing class MyApexClass{
// sharing rules is not enforced when code in this class execute
}
statisk
En variabel, Metode er defineret med det statiske nรธgleord initialiseres รฉn gang og associeres med klassen. Statiske variabler, metoder kan kaldes ved klassenavn direkte uden at oprette forekomsten af โโen klasse.
Endelig
En konstant, Metode er defineret med det endelige sรธgeord kan ikke tilsidesรฆttes. For eksempel:
public class myCls {
static final Integer INT_CONST = 10;
}
Hvis du forsรธger at tilsidesรฆtte vรฆrdien for denne INT_CONST variabel, vil du fรฅ en undtagelse โ System.FinalException: Den endelige variabel er allerede blevet initialiseret.
Returnering
Dette sรธgeord returnerer en vรฆrdi fra en metode. For eksempel:
public String getName() {
return 'Test' ;
}
Null
Den definerer en nulkonstant og kan tildeles en variabel. For eksempel
Boolean b = null;
Virtual
Hvis en klasse er defineret med et virtuelt nรธgleord, kan det udvides og tilsidesรฆttes.
Abstrakt
Hvis en klasse er defineret med abstrakt nรธgleord, skal den indeholde mindst รฉn metode med nรธgleord abstrakt, og den metode bรธr kun have en signatur.
For eksempel
public abstract class MyAbstrtactClass {
abstract Integer myAbstractMethod1();
}
Apex streng
En streng er et sรฆt tegn uden tegnbegrรฆnsninger. For eksempel:
String name = 'Test';
Der er flere indbyggede metoder leveret af String-klassen i salesforce. Fรธlgende er de fรฅ ofte og mest brugte funktioner:
forkorte (maxWidth)
Denne metode afkorter en streng til den specificerede lรฆngde og returnerer den, hvis lรฆngden af โโden givne streng er lรฆngere end den specificerede lรฆngde; ellers returnerer den den originale streng. Hvis vรฆrdien for maxWidth variabel er mindre end 4, returnerer denne metode en runtime undtagelse โ System.StringException: Minimum forkortelse width er 4
For eksempel:
String s = 'Hello World';
String s2 = s.abbreviate(8);
System.debug('s2'+s2); //Hello...
kapitaliser ()
Denne metode konverterer det fรธrste bogstav i en streng til store og smรฅ bogstaver og returnerer det.
For eksempel:
String s = 'hello;
String s2 = s.capitalize();
System.assertEquals('Hello', s2);
indeholder (understreng)
Denne metode returnerer sand, hvis den streng, der kalder metoden, indeholder den angivne understreng.
String name1 = 'test1';
String name2 = 'test2';
Boolean flag = name.contains(name2);
System.debug('flag::',+flag); //true
er lig (stringOrId)
Denne metode returnerer sand, hvis parameteren, der sendes, ikke er null og angiver den samme binรฆre sekvens af tegn som den streng, der kalder metoden.
Ved sammenligning af id-vรฆrdier er lรฆngden af โโid'erne muligvis ikke ens. For eksempel: Hvis en streng, der reprรฆsenterer 15 tegn id sammenlignes med et objekt, der reprรฆsenterer 18 tegn ID, returnerer denne metode sand. For eksempel:
Id idValue15 = '001D000000Ju1zH';
Id idValue18 = '001D000000Ju1zHIAR';
Boolean result4 = stringValue15.equals(IdValue18);
System.debug('result4', +result4); //true
I ovenstรฅende eksempel sammenligner metoden 15 tegn objekt Id med 18 tegn objekt Id, og hvis begge disse id reprรฆsenterer den samme binรฆre sekvens vil den returnere sand.
Brug denne metode til at foretage sammenligninger, der skelner mellem store og smรฅ bogstaver.
escapeSingle Quotes(stringToEscape)
Denne metode tilfรธjer et escape-tegn (\) fรธr et enkelt citat i en streng og returnerer det. Denne metode forhindrer SOQL-injektion, mens du opretter en dynamisk SOQL-forespรธrgsel. Denne metode sikrer, at alle enkelte anfรธrselstegn betragtes som omsluttende strenge i stedet for databasekommandoer.
For eksempel:
String s = 'Hello Tom'; system.debug(s); // Outputs 'Hello Tom' String escapedStr = String.escapeSingleQuotes(s); // Outputs \'Hello Tom\'
fjern (understreng)
Denne metode fjerner al forekomsten af โโden nรฆvnte understreng fra den streng, der kalder metoden og returnerer den resulterende streng.
For eksempel
String s1 = 'Salesforce and force.com';
String s2 = s1.remove('force');
System.debug( 's2'+ s2);// 'Sales and .com'
understreng (startindeks)
Denne metode returnerer en understreng starter fra tegnet ved startIndex strรฆkker sig til den sidste af strengen.
For eksempel:
String s1 = 'hamburger';
String s2 = s1.substring(3);
System.debug('s2'+s2); //burger
baglรฆns()
Denne metode vender alle tegnene i en streng om og returnerer den. For eksempel:
String s = 'Hello';
String s2 = s.reverse();
System.debug('s2::::'+s2);// olleH // Hello
trim(): Denne metode fjerner alle de indledende hvide mellemrum fra en streng og returnerer den.
valueOf(toConvert)
Denne metode returnerer strengreprรฆsentationen af โโbestรฅet i objekt.
Apex-guvernรธrgrรฆnser
Apex-guvernรธrgrรฆnser er de grรฆnser, der hรฅndhรฆves af apex-runtime-motoren for at sikre, at enhver runway-apex-kode og -processer ikke kontrollerer de delte ressourcer og ikke overtrรฆder behandlingen for andre brugere i multitenant-miljรธet. Disse grรฆnser verificeres mod hver apex-transaktion. Fรธlgende er guvernรธrgrรฆnserne defineret af salesforce pรฅ hver apex-transaktion:
| Beskrivelse | Begrรฆns |
|---|---|
| SOQL-forespรธrgsler, der kan udfรธres i en synkron transaktion | 100 |
| SOQL-forespรธrgsler, der kan udfรธres i en asynkron transaktion | 200 |
| Records, der kan hentes af en SOQL-forespรธrgsel | 50000 |
| Records, der kan hentes af Database.getQueryLocator | 10000 |
| SOSL-forespรธrgsler, der kan udfรธres i en apex-transaktion | 20 |
| Records, der kan hentes ved en SOSL-forespรธrgsel | 2000 |
| DML-udsagn, der kan udfรธres i en apex-transaktion | 150 |
| Records, der kan behandles som et resultat af en DML-sรฆtning, Approval.process eller database.emptyRecycleBin | 10000 |
| Forklaringer, der kan udfรธres i en apex-transaktion. | 100 |
| Kumulativ timeoutgrรฆnse for alle de callouts, der udfรธres i en apex-transaktion | 120 sekunder |
| Begrรฆnsning af apex-job, der kan tilfรธjes til kรธen med System.enqueueJob | 50 |
| Udfรธrelsestidsgrรฆnse for hver Apex-transaktion | 10 minutter |
| Begrรฆns for tegn, der kan bruges i en apex-klasse og trigger | 1 millioner |
| CPU-tidsgrรฆnse for synkron transaktion | 10,000 millisekunder |
| CPU-tidsgrรฆnse for asynkron transaktion | 60,000 millisekunder |
Apex Getter og Setter
Apex-egenskaben ligner apex-variabelen. Getter og setter er nรธdvendige for en apex-ejendom. Getter og setter kan bruges til at udfรธre kode, fรธr ejendomsvรฆrdien tilgรฅs eller รฆndres. Koden i get-accessoren udfรธres, nรฅr en egenskabsvรฆrdi lรฆses. Koden i sรฆt-accessoren kรธrer, nรฅr en egenskabsvรฆrdi รฆndres. Enhver ejendom, der har get accessor, betragtes som skrivebeskyttet, enhver ejendom, der har set accessor, anses for kun at skrive enhver ejendom, der har bรฅde get og set accessor, anses for at vรฆre read-write. Syntaks for en apex-egenskab:
public class myApexClass {
// Property declaration
access_modifierreturn_typeproperty_name {
get {
//code
}
set{
//code
}
}
Her er access_modifier egenskabens adgangsmodifikator. return_type er egenskabens dataType. ejendomsnavn er navnet pรฅ ejendommen.
Nedenfor er et eksempel pรฅ en apex-egenskab med bรฅde get- og set-accessor.
public class myApex{
public String name{
get{ return name;}
set{ name = 'Test';}
}
}
Her er ejendomsnavnet navn, og det er offentlig ejendom, og det returnerer en streng dataType.
Det er ikke obligatorisk at have en eller anden kode i get and set-blokken. Disse blokke kan stรฅ tomme for at definere en automatisk egenskab. For eksempel:
public double MyReadWriteProp{ get; set; }
Hent og indstil accessor kan ogsรฅ defineres med deres adgangsmodifikator. Hvis en accessor er defineret med en modifikator, sรฅ tilsidesรฆtter den adgangsmodifikatoren for egenskaben. For eksempel:
public String name{private get; set;}// name is private for read and public to write.
Apex klasse
En apex-klasse er en blueprint eller skabelon, hvorfra objekter oprettes. Et objekt er instansen af โโen klasse.
Der er tre mรฅder at oprette apex-klasser pรฅ i Salesforce:
Developer Console
Force.com IDE
Apex klasse detalje side.
I apex kan du definere en ydre klasse ogsรฅ kaldet top-level klasse, og du kan ogsรฅ definere klasser inden for en ydre klasse kaldet indre klasser.
Det er obligatorisk at bruge adgangsmodifikator som global eller offentlig i erklรฆringen om den ydre klasse.
Det er ikke nรธdvendigt at bruge adgangsmodifikator i erklรฆringen om indre klasser.
En apex-klasse defineres ved hjรฆlp af klassenรธgleord efterfulgt af klassenavnet.
Extends-nรธgleord bruges til at udvide en eksisterende klasse med en apex-klasse, og implements-nรธgleord bruges til at implementere en grรฆnseflade med en apex-klasse.
Salesforce Apex understรธtter ikke flere nedarvninger, en apex-klasse kan kun udvide รฉn eksisterende apex-klasse, men kan implementere flere grรฆnseflader.
En apex-klasse kan indeholde brugerdefineret konstruktรธr, og hvis en brugerdefineret konstruktรธr ikke er tilgรฆngelig, bruges en standardkonstruktรธr. Koden i en konstruktรธr udfรธres, nรฅr en forekomst af en klasse oprettes.
Syntaks for Apex Class eksempel:
public class myApexClass{
// variable declaration
//constructor
public myApexClass{
}
//methods declaration
}
Det nye nรธgleord bruges til at oprette en instans af en apex-klasse. Nedenfor er syntaksen til at oprette en forekomst af en apex-klasse.
myApexClass obj = new myApexClass();
Apex Trigger
Apex-triggere giver dig mulighed for at udfรธre tilpasset apex fรธr og efter en DML-handling udfรธres.
Apex understรธtter fรธlgende to typer triggere:
Fรธr triggere: Disse triggere bruges til at validere og opdatere feltets vรฆrdi, fรธr posten gemmes i databasen.
Efter triggere: Disse triggere bruges til at fรฅ adgang til felterne (post-ID, LastModifiedDate-felt), der er angivet af systemet efter en post, der er forpligtet til databasen. Disse felters vรฆrdi kan bruges til at รฆndre andre poster. Registreringer, der udlรธses efter udlรธsere, er skrivebeskyttet.
Det er en god praksis at skrive omfangsrige udlรธsere. En omfangsrig trigger kan behandle en enkelt post sรฅvel som flere poster ad gangen.
Syntaks for en apex-trigger:
trigger TriggerName on ObjectName (trigger_events) {
//Code_block
}
Her er TriggerName navnet pรฅ triggeren, ObjectName er navnet pรฅ det objekt, som triggeren skal skrives pรฅ, trigger_events er den kommaseparerede liste over hรฆndelser.
Fรธlgende er de hรฆndelser, der understรธttes af apex-triggerne: fรธr indsรฆttelse, fรธr opdatering, fรธr sletning, efter indsรฆttelse, efter en opdatering, efter sletning, efter fortryd sletning.
Statiske sรธgeord kan ikke bruges i en Apex-udlรธser. Alle nรธgleord, der gรฆlder for indre klasser, kan bruges i en Apex-trigger.
Der er implicitte variable defineret af hver trigger, der returnerer runtime-konteksten. Disse variable er defineret i systemet. Trigger klasse. Disse variabler kaldes kontekstvariabler. Nedenstรฅende skรฆrmbillede viser kontekstvariablen understรธttet af apex trigger.
Fรธlgende er overvejelserne om kontekstvariablen i apex-triggeren:
- Brug ikke trigger.new og trigger.old i DML-operationer.
- Trigger.new kan ikke slettes.
- Trigger.new er skrivebeskyttet.
- Trigger.new kan kun bruges til at รฆndre vรฆrdierne af felterne pรฅ det samme objekt i fรธr trigger.
Nedenstรฅende skรฆrmbilleder viser overvejelserne om specifikke handlinger i forskellige triggerhรฆndelser.
Batch-klasse i Apex
Batch-klasse i salesforce bruges til at behandle et stort antal poster, der ville overskride apex-guvernรธrens grรฆnser, hvis de behandles normalt. Batch-klassen udfรธrer koden asynkront.
Fรธlgende er fordelene ved batchklasse:
- Batch-klasse behandler dataene i bidder, og hvis en chunk ikke kan behandles med succes, ruller alle de chunks, der er behandlet med succes, ikke tilbage.
- Hver del af data i en batch-klasse behandles med et nyt sรฆt af regulatorgrรฆnser, som sikrer, at koden udfรธres inden for regulatorens udfรธrelsesgrรฆnser.
- Database. Batchbar grรฆnseflade skal implementeres af en apex-klasse for at blive brugt som en batch-klasse. Det giver tre metoder, som skal implementeres af batchklassen.
Fรธlgende er de tre metoder, der leveres af Database. Batchbar grรฆnseflade:
1.start()
Denne metode genererer omfanget af poster eller objekter, der skal behandles af interfacemetoden execute. Under udfรธrelsen af โโbatch kaldes det kun รฉn gang. Denne metode returnerer enten et Database.QueryLocator-objekt eller en Iterable. Antallet af poster hentet af SQL-forespรธrgsel ved hjรฆlp af Database.QueryLocator-objektet er 50 millioner poster, men ved brug af en iterable er det samlede antal poster, der kan hentes af SQL-forespรธrgslen, kun 50000. Iterable bruges til at generere komplekst omfang for batchklasse.
Syntaks for startmetode:
global (Database.QueryLocator | Iterable<sObject>) start(Database.BatchableContextbc) {}
2.execute()
Denne metode bruges til at behandle hver del af data. For hver chunk af poster kaldes executive-metoden. Standard batchstรธrrelse for udfรธrelse er 200 poster. Udfรธr metode tager to argumenter:
En reference til Database.BatchableContext-objektet,
En liste over sObjects, sรฅsom List , eller en liste over parametriserede typer. Syntaks for udfรธrelsesmetode:
global void execute(Database.BatchableContext BC, list<P>){}
3.finish()
Afslutningsmetoden kaldes รฉn gang under udfรธrelsen af โโbatchklassen. Efterbehandlingsoperationer kan udfรธres i finishmetoden. For eksempel: at sende bekrรฆftelsesmailen. Denne metode kaldes, nรฅr hele batchen bliver behandlet. Syntaks for Finish-metoden:
global void finish(Database.BatchableContext BC){}
Database.BatchableContext objekt
Hver metode i databasen. Batchable interface har en reference til Database.BatchableContext objekt.
Dette objekt bruges til at spore batchjobbets fremskridt.
Fรธlgende er instansmetoder leveret af BatchableContext:
- getChildJobId(): Denne metode returnerer ID'et for et batchjob, der i รธjeblikket behandles.
- getJobId(): Denne metode returnerer batchjobbets ID.
Nedenfor er syntaksen for en batchklasse:
global class MyBatchClass implements Database.Batchable<sObject> {
global (Database.QueryLocator | Iterable<sObject>) start(Database.BatchableContextbc) {
// collect the batches of records or objects to be passed to execute
}
global void execute(Database.BatchableContextbc, List<P> records){
// process each batch of records
}
global void finish(Database.BatchableContextbc){
// execute any post-processing operations
}
}
Database.executeBatch-metode
Database.executeBatch-metoden bruges til at udfรธre en batch-klasse.
Denne metode tager to parametre: Forekomst af batchklassen, der skal behandles, Options-parameteren for at angive batchstรธrrelsen, hvis den ikke er angivet, den tager standardstรธrrelsen pรฅ 200.
Syntaks for Database.executeBatch:
Database.executeBatch(myBatchObject,scope)
Udfรธrelse af et batch-klassenavn MyBatchClass:
MyBatchClassmyBatchObject = new MyBatchClass(); Id batchId = Database.executeBatch(myBatchObject,100);
Database.stateful
Batch-klassen er som standard statslรธs. Hver gang execute-metoden kaldes en ny kopi af et objekt modtages, initialiseres alle variabler i klassen.
Database.stateful er implementeret for at gรธre en batch-klasse stateful.
Hvis din batch-klasse implementerede Database , stateful interface beholder alle instansvariabler deres vรฆrdier, men de statiske variable nulstilles mellem transaktionen.
Resumรฉ
- Apex er en stรฆrkt indtastet, objektorienteret programmeringssprog der kompilerer og kรธrer pรฅ force.com-platformen
- Apex programmeringssprog er et sprog ufรธlsomt for store og smรฅ bogstaver
- To typer handlingsflow i Apex er 1) Udviklerhandling 2) Slutbrugerhandling
- Apex hjรฆlper dig med at skabe webtjenester, der integrerer Salesforce med andre applikationer.
- Datatyper understรธttet af apex er: 1). Primitiv 2) Samlinger 3) sObject, Enums, 4) Klasser, 5) Objekter og grรฆnseflader
- Offentlig, privat, beskyttet og global er specificeret support af Apex
- Nรธgleord, der bruges i Apex er: 1) Med deling, 2) Uden deling, 3) Statisk, 4) Endelig 5) Retur, 6) Nul, 7) Virtuel, 8) Abstrakt
- En streng er et sรฆt tegn uden tegnbegrรฆnsninger
- Apex-guvernรธrgrรฆnser er de grรฆnser, der hรฅndhรฆves af apex-runtime-motoren for at sikre, at enhver startbane-apex-kode og -processer
- Getter og setter kan bruges til at udfรธre kode, fรธr ejendomsvรฆrdien tilgรฅs eller รฆndres
- Der er tre mรฅder at oprette apex-klasser pรฅ i Salesforce: 1)Udviklerkonsol 2)Force.com IDE og 3) Apex-klassedetaljeside.
- Apex-triggere giver dig mulighed for at udfรธre tilpasset apex fรธr og efter en DML-handling udfรธres.
- Batch-klasse i salesforce bruges til at behandle et stort antal poster, der ville overskride apex-guvernรธrens grรฆnser, hvis de behandles normalt.





