APEX Handledning: Apex programmeringsklass och kodningsexempel
Vad รคr Apex i Salesforce?
Apex รคr ett objektorienterat och starkt typat programmeringssprรฅk utvecklat av Salesforce fรถr att bygga Software as a Service (SaaS) och Customer Relationship Management (CRM). Apex hjรคlper utvecklare att skapa SaaS-applikationer frรฅn tredje part och lรคgga till affรคrslogik till systemhรคndelser genom att tillhandahรฅlla back-end-databasstรถd och klient-servergrรคnssnitt.
Apex hjรคlper utvecklare att lรคgga till affรคrslogik till systemhรคndelser som knappklick, relaterade postuppdateringar och Visualforce-sidor. Apex har en liknande syntax som Java. Registrera dig fรถr Salesforce fรถr att lรคra dig hur CRM fungerar
Funktioner i Apex programmeringssprรฅk
Hรคr รคr de viktiga funktionerna i Salesforce Apex:
- Apex รคr ett skiftlรคgesokรคnsligt sprรฅk.
- Du kan utfรถra DML-operationer som INSERT, UPDATE, UPSERT, DELETE pรฅ sObject-poster med apex.
- Du kan frรฅga efter sObject-poster med SOQL(salesforce object query language) och SOSL(salesforce object search language) i apex.
- Lรฅter dig skapa en enhetstest och kรถr dem fรถr att verifiera kod tรคckning och effektiviteten av koden i apex.
- Apex kรถrs i en miljรถ med flera hyresgรคster, och Salesforce har definierat nรฅgra regulatorgrรคnser som hindrar en anvรคndare frรฅn att kontrollera de delade resurserna. Alla koder som passerar salesforces guvernรถrsgrรคns misslyckas, ett fel dyker upp.
- Salesforce-objekt kan anvรคndas som en datatyp i apex. Till exempel -
Account acc = new Account();
, hรคr รคr Account ett standardobjekt i salesforce.
- Apex uppgraderas automatiskt med varje Salesforce-version.
Nรคr ska utvecklaren vรคlja Apex
Apex-kod bรถr endast skrivas om ett affรคrsscenario รคr fรถr komplext och inte kan implementeras med den fรถrbyggda funktionaliteten som tillhandahรฅlls av Salesforce.
Fรถljande รคr nรฅgra scenarier dรคr vi behรถver skriva apex-kod:
- Att skapa webbtjรคnster som integrerar Salesforce med andra applikationer.
- Att implementera anpassad validering pรฅ sobjects.
- Fรถr att utfรถra anpassad apex-logik nรคr en DML-operation utfรถrs.
- Att implementera funktionalitet som inte kan implementeras med hjรคlp av befintliga arbetsflรถden och processbyggares funktionalitet.
- Att stรคlla in e-posttjรคnstermรฅste du inkludera bearbetning av innehรฅll, rubriker och bilagor i e-postmeddelanden med hjรคlp av apex-kod.
Arbetsstruktur av Apex
Nu i denna Apex-handledning kommer vi att lรคra oss om arbetsstrukturen fรถr Apex:
Fรถljande รคr flรถdet av รฅtgรคrder fรถr en apex-kod:
- Utvecklarรฅtgรคrd: All apex-kod som skrivits av en utvecklare kompileras till en uppsรคttning instruktioner som kan fรถrstรฅs av apex runtime-tolk nรคr utvecklaren sparar koden pรฅ plattformen och dessa instruktioner sedan sparas som metadata till plattformen.
- Slutanvรคndarรฅtgรคrd: Nรคr anvรคndarhรคndelsen kรถr en apex-kod fรฅr plattformsservern de kompilerade instruktionerna frรฅn metadata och kรถr dem genom apex-tolken innan resultatet returneras.

Apex syntax
Variabel deklaration
Eftersom apex รคr ett starkt skrivet sprรฅk รคr det obligatoriskt att deklarera en variabel med datatyp i apex.
Till exempel:
contact con = new contact();
hรคr deklareras variabeln con med kontakt som datatyp.
SOQL-frรฅga
SOQL stรฅr fรถr salesforce object query language. SOQL anvรคnds fรถr att hรคmta sObject-poster frรฅn Salesforce-databasen. Till exempel-
Account acc = [select id, name from Account Limit 1];
Ovanstรฅende frรฅga hรคmtar kontopost frรฅn salesforce-databasen.
Loop Statement
Loop-satsen anvรคnds fรถr att iterera รถver posterna i en lista. Antalet iterationer รคr lika med antalet poster i listan. Till exempel:
list<Account>listOfAccounts = [select id, name from account limit 100];
// iteration over the list of accounts
for(Account acc : listOfAccounts){
//your logic
}
I kodavsnittet ovan รคr listOfAccounts en variabel av listdatatypen.
Flรถdeskontrolldeklaration
Flรถdeskontrollsats รคr fรถrdelaktig nรคr du vill exekvera nรฅgra rader i koden baserat pรฅ vissa villkor.
Till exempel:
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
}
Ovanstรฅende kodavsnitt sรถker efter kontoposter frรฅn databasen och kontrollerar liststorleken.
DML uttalande
DML stรฅr fรถr data manipulation language. DML-satser anvรคnds fรถr att manipulera data i Salesforce-databasen. Till exempel -
Account acc = new Account(Name = โ Test Accountโ); Insert acc; //DML statement to create account record.
Apex utvecklingsmiljรถ
Nu i denna Apex-programmeringshandledning kommer vi att lรคra oss om Apex Development Environment:
Apex-kod kan utvecklas antingen i sandbox och utvecklarversionen av Salesforce.
Det รคr en bรคsta praxis att utveckla koden i sandlรฅdemiljรถn och sedan distribuera den till produktionsmiljรถn.
Apex-kodutvecklingsverktyg: Fรถljande รคr de tre verktyg som รคr tillgรคngliga fรถr att utveckla apex-kod i alla utgรฅvor av Salesforce.
- Force.com utvecklarkonsol
- Force.com IDE
- Code Editor i Salesforce User InterfaceYou
Datatyp i Apex
Fรถljande รคr datatyperna som stรถds av apex:
Primitiv
Heltal Double, Long, Date, Date Time, String, ID och Boolean betraktas som primitiva datatyper. Alla primitiva datatyper skickas med vรคrde, inte genom referens.
Kollektioner
Tre typer av samling finns i Apex
- Lista: Det รคr en ordnad samling av primitiver, sObjects, samlingar eller Apex-objekt baserat pรฅ index.
- Set: En oordnad samling av unika primitiver.
- Karta: Det รคr en samling av unika, primitiva nycklar som mappar till enskilda vรคrden som kan vara primitiva, sObjects, samlingar eller Apex-objekt.
sObjekt
Detta รคr en speciell datatyp i Salesforce. Det liknar ett bord i SQL och innehรฅller fรคlt som liknar kolumner i SQL.
Enums
Enum รคr en abstrakt datatyp som lagrar ett vรคrde av en รคndlig uppsรคttning av specificerade identifierare
Klasser
Objekt
Det hรคnvisar till alla datatyper som stรถds i Apex.
Grรคnssnitt
Apex Access Specifier
Fรถljande รคr รฅtkomstspecifikationen som stรถds av apex:
offentliga
Denna รฅtkomstspecifikator ger tillgรฅng till en klass, metod, variabel som ska anvรคndas av en apex inom ett namnomrรฅde.
Privat
Denna รฅtkomstspecifikator ger tillgรฅng till en klass, metod, variabel som ska anvรคndas lokalt eller inom kodsektionen, den รคr definierad. All teknik, variabler som inte har nรฅgon รฅtkomstspecifikation definierad har standardรฅtkomstspecifikationen privat.
Skyddad
Denna รฅtkomstspecifikation ger tillgรฅng till en metod, variabel som ska anvรคndas av alla inre klasser inom definierande Apex-klass.
Vรคlgรถrenhet
Denna รฅtkomstspecifikator ger tillgรฅng till en klass, metod, variabel som ska anvรคndas av en apex inom ett namnomrรฅde sรฅvรคl som utanfรถr namnomrรฅdet. Det รคr en bรคsta praxis att inte anvรคnda globala sรถkord fรถrrรคn det รคr nรถdvรคndigt.
Nyckelord i Apex
Med delning
Om en klass definieras med detta nyckelord, tillรคmpas alla delningsregler fรถr den aktuella anvรคndaren och om detta nyckelord saknas, kรถrs koden under systemkontext.
Till exempel:
public with sharing class MyApexClass{
// sharing rules enforced when code in this class execute
}
Utan att dela
Om en klass definieras med detta nyckelord, tillรคmpas inte alla delningsregler fรถr den aktuella anvรคndaren.
Till exempel:
public without sharing class MyApexClass{
// sharing rules is not enforced when code in this class execute
}
Statisk
En variabel, Method definieras med det statiska nyckelordet initieras en gรฅng och associeras med klassen. Statiska variabler, metoder kan anropas med klassnamn direkt utan att skapa instansen av en klass.
Slutlig
En konstant, Metod definieras med det sista nyckelordet som inte kan รฅsidosรคttas. Till exempel:
public class myCls {
static final Integer INT_CONST = 10;
}
Om du fรถrsรถker รฅsidosรคtta vรคrdet fรถr denna INT_CONST-variabel, fรฅr du ett undantag โ System.FinalException: Den slutliga variabeln har redan initierats.
Retur
Detta nyckelord returnerar ett vรคrde frรฅn en metod. Till exempel:
public String getName() {
return 'Test' ;
}
Null
Den definierar en nollkonstant och kan tilldelas en variabel. Till exempel
Boolean b = null;
Virtuell
Om en klass definieras med ett virtuellt nyckelord kan den utรถkas och รฅsidosรคttas.
Abstrakt
Om en klass definieras med abstrakt nyckelord mรฅste den innehรฅlla minst en metod med nyckelord abstrakt, och den metoden ska bara ha en signatur.
Till exempel
public abstract class MyAbstrtactClass {
abstract Integer myAbstractMethod1();
}
Apex strรคng
En strรคng รคr en uppsรคttning tecken utan teckenbegrรคnsningar. Till exempel:
String name = 'Test';
Det finns flera inbyggda metoder som tillhandahรฅlls av String-klass i salesforce. Fรถljande รคr de fรฅ ofta och mest anvรคnda funktionerna:
fรถrkorta (maxWidth)
Denna metod trunkerar en strรคng till den angivna lรคngden och returnerar den om lรคngden pรฅ den givna strรคngen รคr lรคngre รคn den angivna lรคngden; annars returneras den ursprungliga strรคngen. Om vรคrdet fรถr variabeln maxWidth รคr mindre รคn 4, returnerar den hรคr metoden ett runtime-undantag โ System.StringException: Minsta fรถrkortningsbredd รคr 4
Till exempel:
String s = 'Hello World';
String s2 = s.abbreviate(8);
System.debug('s2'+s2); //Hello...
kapitalisera()
Denna metod konverterar den fรถrsta bokstaven i en strรคng till skiftlรคge och returnerar den.
Till exempel:
String s = 'hello;
String s2 = s.capitalize();
System.assertEquals('Hello', s2);
innehรฅller (delstrรคng)
Denna metod returnerar true om strรคngen som anropar metoden innehรฅller den angivna delstrรคngen.
String name1 = 'test1';
String name2 = 'test2';
Boolean flag = name.contains(name2);
System.debug('flag::',+flag); //true
lika(stringOrId)
Denna metod returnerar true om parametern som skickas inte รคr null och indikerar samma binรคra teckensekvens som strรคngen som anropar metoden.
Nรคr man jรคmfรถr Id-vรคrden kanske lรคngden pรฅ ID:n inte รคr lika. Till exempel: om en strรคng som representerar 15 tecken id jรคmfรถrs med ett objekt som representerar 18 tecken ID returnerar denna metod true. Till exempel:
Id idValue15 = '001D000000Ju1zH';
Id idValue18 = '001D000000Ju1zHIAR';
Boolean result4 = stringValue15.equals(IdValue18);
System.debug('result4', +result4); //true
I exemplet ovan jรคmfรถr metoden 15 tecken objekt Id med 18 tecken objekt Id och om bรฅda dessa id representerar samma binรคra sekvens kommer det att returnera sant.
Anvรคnd den hรคr metoden fรถr att gรถra skiftlรคgeskรคnsliga jรคmfรถrelser.
escapeSingle Quotes(stringToEscape)
Den hรคr metoden lรคgger till ett escape-tecken (\) fรถre varje enskilt citattecken i en strรคng och returnerar det. Den hรคr metoden fรถrhindrar SOQL-injektion samtidigt som en dynamisk SOQL-frรฅga skapas. Denna metod sรคkerstรคller att alla enkla citattecken betraktas som omslutande strรคngar, istรคllet fรถr databaskommandon.
Till exempel:
String s = 'Hello Tom'; system.debug(s); // Outputs 'Hello Tom' String escapedStr = String.escapeSingleQuotes(s); // Outputs \'Hello Tom\'
remove(substring)
Denna metod tar bort all fรถrekomst av den nรคmnda delstrรคngen frรฅn strรคngen som anropar metoden och returnerar den resulterande strรคngen.
Till exempel
String s1 = 'Salesforce and force.com';
String s2 = s1.remove('force');
System.debug( 's2'+ s2);// 'Sales and .com'
delstrรคng (startindex)
Denna metod returnerar en delstrรคng som bรถrjar frรฅn tecknet vid startIndex strรคcker sig till den sista av strรคngen.
Till exempel:
String s1 = 'hamburger';
String s2 = s1.substring(3);
System.debug('s2'+s2); //burger
omvรคnd()
Denna metod vรคnder alla tecken i en strรคng och returnerar den. Till exempel:
String s = 'Hello';
String s2 = s.reverse();
System.debug('s2::::'+s2);// olleH // Hello
trim(): Denna metod tar bort alla inledande vita blanksteg frรฅn en strรคng och returnerar den.
valueOf(toConvert)
Denna metod returnerar strรคngrepresentationen av passerat i objekt.
Apex Governor Limits
Apex guvernรถrsgrรคnser รคr de grรคnser som upprรคtthรฅlls av apex runtime-motor fรถr att sรคkerstรคlla att all startbanas apex-kod och processer inte kontrollerar de delade resurserna och inte bryter mot bearbetningen fรถr andra anvรคndare i multitenant-miljรถn. Dessa grรคnser verifieras mot varje apex-transaktion. Fรถljande รคr guvernรถrsgrรคnserna definierade av salesforce fรถr varje apex-transaktion:
| BESKRIVNING | Begrรคnsa |
|---|---|
| SOQL-frรฅgor som kan gรถras i en synkron transaktion | 100 |
| SOQL-frรฅgor som kan gรถras i en asynkron transaktion | 200 |
| Poster som kan hรคmtas med en SOQL-frรฅga | 50000 |
| Poster som kan hรคmtas av Database.getQueryLocator | 10000 |
| SOSL-frรฅgor som kan gรถras i en apex-transaktion | 20 |
| Poster som kan hรคmtas med en SOSL-frรฅga | 2000 |
| DML-satser som kan gรถras i en apex-transaktion | 150 |
| Poster som kan bearbetas som ett resultat av en DML-sats, Approval.process eller database.emptyRecycleBin | 10000 |
| Fรถrklaringar som kan gรถras i en apex-transaktion. | 100 |
| Kumulativ timeout-grรคns fรถr alla callouts som utfรถrs i en apex-transaktion | 120 sekunder |
| Begrรคnsning av apex-jobb som kan lรคggas till i kรถn med System.enqueueJob | 50 |
| Utfรถrandetidsgrรคns fรถr varje Apex-transaktion | 10 minuter |
| Begrรคnsa antalet tecken som kan anvรคndas i en apexklass och trigger | 1 miljoner |
| CPU tidsgrรคns fรถr synkron transaktion | 10,000 millisekunder |
| CPU tidsgrรคns fรถr asynkron transaktion | 60,000 millisekunder |
Apex Getter och Setter
Apex-egenskapen liknar apex-variabeln. Getter och setter รคr nรถdvรคndiga fรถr en apex-egenskap. Getter och setter kan anvรคndas fรถr att exekvera kod innan egenskapsvรคrdet nรฅs eller รคndras. Koden i get-accessorn kรถrs nรคr ett egenskapsvรคrde lรคses. Koden i setaccessorn kรถrs nรคr ett egenskapsvรคrde รคndras. Varje egendom som har get accessor anses vara skrivskyddad, varje egenskap som har set accessor anses skriva endast vilken egenskap som har bรฅde get och set accessor anses vara lรคs-skriv. Syntax fรถr en apex-egenskap:
public class myApexClass {
// Property declaration
access_modifierreturn_typeproperty_name {
get {
//code
}
set{
//code
}
}
Hรคr รคr access_modifier รฅtkomstmodifieraren fรถr egenskapen. return_type รคr egenskapens dataType. egenskapsnamn รคr namnet pรฅ egenskapen.
Nedan รคr ett exempel pรฅ en apex-egenskap som har bรฅde get- och set-accessor.
public class myApex{
public String name{
get{ return name;}
set{ name = 'Test';}
}
}
Hรคr รคr egenskapens namn namn, och det รคr offentlig egendom, och det returnerar en strรคng dataType.
Det รคr inte obligatoriskt att ha nรฅgon kod i get and set-blocket. Dessa block kan lรคmnas tomma fรถr att definiera en automatisk egenskap. Till exempel:
public double MyReadWriteProp{ get; set; }
Get and set accessor kan ocksรฅ definieras med deras รฅtkomstmodifierare. Om en accessor รคr definierad med en modifierare รฅsidosรคtter den รฅtkomstmodifieraren fรถr egenskapen. Till exempel:
public String name{private get; set;}// name is private for read and public to write.
Apex klass
En apexklass รคr en ritning eller mall frรฅn vilken objekt skapas. Ett objekt รคr instansen av en klass.
Det finns tre sรคtt att skapa apex-klasser i Salesforce:
Utvecklarkonsol
Force.com IDE
Apex klass detaljsida.
I apex kan du definiera en yttre klass รคven kallad toppnivรฅklass, och du kan รคven definiera klasser inom en yttre klass som kallas inre klasser.
Det รคr obligatoriskt att anvรคnda รฅtkomstmodifierare som global eller public i deklarationen fรถr den yttre klassen.
Det รคr inte nรถdvรคndigt att anvรคnda รฅtkomstmodifierare i deklarationen av inre klasser.
En apex-klass definieras med hjรคlp av klass nyckelord fรถljt av klassnamnet.
Extends nyckelord anvรคnds fรถr att utรถka en befintlig klass med en apexklass, och implements nyckelord anvรคnds fรถr att implementera ett grรคnssnitt med en apexklass.
Salesforce Apex stรถder inte flera arv, en apexklass kan bara utรถka en befintlig apexklass men kan implementera flera grรคnssnitt.
En apex-klass kan innehรฅlla anvรคndardefinierad konstruktor, och om en anvรคndardefinierad konstruktor inte รคr tillgรคnglig anvรคnds en standardkonstruktor. Koden i en konstruktor kรถrs nรคr en instans av en klass skapas.
Syntax fรถr Apex Class-exemplet:
public class myApexClass{
// variable declaration
//constructor
public myApexClass{
}
//methods declaration
}
Det nya nyckelordet anvรคnds fรถr att skapa en instans av en apexklass. Nedan finns syntaxen fรถr att skapa en instans av en apexklass.
myApexClass obj = new myApexClass();
Apex trigger
Apex-utlรถsare gรถr att du kan kรถra anpassad apex fรถre och efter att en DML-operation utfรถrs.
Apex-stรถd efter tvรฅ typer av triggers:
Fรถre triggers: Dessa triggers anvรคnds fรถr att validera och uppdatera fรคltets vรคrde innan posten sparas i databasen.
Efter triggers: Dessa triggers anvรคnds fรถr att komma รฅt fรคlten (post-ID, LastModifiedDate-fรคlt) som stรคllts in av systemet efter en post som har anslutits till databasen. Dessa fรคltvรคrden kan anvรคndas fรถr att รคndra andra poster. Poster som aktiveras efter utlรถsare รคr skrivskyddade.
Det รคr en bรคsta praxis att skriva skrymmande triggers. En skrymmande utlรถsare kan bearbeta en enskild post sรฅvรคl som flera poster samtidigt.
Syntax fรถr en apex-utlรถsare:
trigger TriggerName on ObjectName (trigger_events) {
//Code_block
}
Hรคr รคr TriggerName namnet pรฅ triggern, ObjectName รคr namnet pรฅ objektet som triggern ska skrivas pรฅ, trigger_events รคr den kommaseparerade listan รถver hรคndelser.
Fรถljande รคr hรคndelserna som stรถds av apex-utlรถsare: fรถre infogning, fรถre uppdatering, fรถre radering, efter infogning, efter en uppdatering, efter borttagning, efter รฅterstรคll.
Statiska nyckelord kan inte anvรคndas i en Apex-utlรถsare. Alla nyckelord som รคr tillรคmpliga pรฅ inre klasser kan anvรคndas i en Apex-utlรถsare.
Det finns implicita variabler som definieras av varje trigger som returnerar kรถrtidskontexten. Dessa variabler definieras i systemet. Triggerklass. Dessa variabler kallas kontextvariabler. Skรคrmbilden nedan visar kontextvariabeln som stรถds av apex trigger.
Fรถljande รคr รถvervรคgandet av kontextvariabeln i apex-utlรถsaren:
- Anvรคnd inte trigger.new och trigger.old i DML-operationer.
- Trigger.new kan inte raderas.
- Trigger.new รคr skrivskyddat.
- Trigger.new kan anvรคndas fรถr att รคndra vรคrdena fรถr fรคlten pรฅ samma objekt i enbart fรถre trigger.
Nedan skรคrmdumpar listar รถvervรคganden om specifika รฅtgรคrder i olika triggerhรคndelser.
Batchklass i Apex
Batchklass i salesforce anvรคnds fรถr att bearbeta ett stort antal poster som skulle รถverskrida grรคnsvรคrdena fรถr apex-guvernรถren om de bearbetades normalt. Batch-klassen exekverar koden asynkront.
Fรถljande รคr fรถrdelarna med batchklass:
- Batchklass bearbetar data i bitar och om en bit misslyckas med att bearbeta framgรฅngsrikt rullar inte alla bitar som bearbetats med framgรฅng tillbaka.
- Varje bit data i en batchklass bearbetas med en ny uppsรคttning regulatorgrรคnser som sรคkerstรคller att koden kรถrs inom regulatorns exekveringsgrรคnser.
- Databas. Batchbart grรคnssnitt mรฅste implementeras av en apexklass fรถr att anvรคndas som en batchklass. Den tillhandahรฅller tre metoder som mรฅste implementeras av batchklassen.
Fรถljande รคr de tre metoderna som tillhandahรฅlls av Database. Batchbart grรคnssnitt:
1.start()
Denna metod genererar omfattningen av poster eller objekt som ska bearbetas av grรคnssnittsmetoden execute. Under kรถrningen av batch anropas den endast en gรฅng. Denna metod returnerar antingen ett Database.QueryLocator-objekt eller ett Iterable. Antalet poster som hรคmtas av SQL-frรฅgan med Database.QueryLocator-objektet รคr 50 miljoner poster, men med en iterabel รคr det totala antalet poster som kan hรคmtas av SQL-frรฅgan endast 50000 XNUMX. Iterable anvรคnds fรถr att generera komplext omfรฅng fรถr batchklass.
Syntax fรถr startmetoden:
global (Database.QueryLocator | Iterable<sObject>) start(Database.BatchableContextbc) {}
2.execute()
Denna metod anvรคnds fรถr bearbetning av varje databit. Fรถr varje bit av poster anropas exekveringsmetoden. Standardbatchstorleken fรถr exekvering รคr 200 poster. Kรถrmetoden tar tvรฅ argument:
En referens till Database.BatchableContext-objektet,
En lista med sObjekt, till exempel List , eller en lista รถver parametriserade typer. Syntax fรถr exekveringsmetod:
global void execute(Database.BatchableContext BC, list<P>){}
3.finish()
Slutmetoden anropas en gรฅng under kรถrningen av batchklassen. Efterbehandlingsoperationer kan utfรถras i finishmetoden. Till exempel: skicka bekrรคftelsemailet. Denna metod anropas nรคr all batch bearbetas. Syntax fรถr Finish-metoden:
global void finish(Database.BatchableContext BC){}
Database.BatchableContext-objekt
Varje metod i databasen. Batchable grรคnssnitt har en referens till Database.BatchableContext objekt.
Detta objekt anvรคnds fรถr att spรฅra batchjobbets fรถrlopp.
Fรถljande รคr instansmetoder som tillhandahรฅlls av BatchableContext:
- getChildJobId(): Denna metod returnerar ID:t fรถr ett batchjobb som fรถr nรคrvarande bearbetas.
- getJobId(): Denna metod returnerar batchjobbets ID.
Nedan รคr syntaxen fรถr en batchklass:
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-metod
Metoden Database.executeBatch anvรคnds fรถr att kรถra en batchklass.
Den hรคr metoden krรคver tvรฅ parametrar: Fรถrekomst av batchklassen som ska bearbetas, Options-parametern fรถr att ange batchstorleken om den inte anges, den tar standardstorleken 200.
Syntax fรถr Database.executeBatch :
Database.executeBatch(myBatchObject,scope)
Exekvera ett batchklassnamn MyBatchClass:
MyBatchClassmyBatchObject = new MyBatchClass(); Id batchId = Database.executeBatch(myBatchObject,100);
Databas.stateful
Batchklassen รคr tillstรฅndslรถs som standard. Varje gรฅng exekveringsmetoden kallas en ny kopia av ett objekt tas emot, initieras alla variabler i klassen.
Database.stateful implementeras fรถr att gรถra en batchklass tillstรฅndsfull.
Om din batchklass implementerade Databas , statiskt grรคnssnitt behรฅller alla instansvariabler sina vรคrden, men de statiska variablerna รฅterstรคlls mellan transaktionerna.
Sammanfattning
- Apex รคr en starkt typad, objektorienterad programmeringssprรฅk som kompilerar och kรถrs pรฅ force.com-plattformen
- Apex programmeringssprรฅk รคr ett skiftlรคgesokรคnsligt sprรฅk
- Tvรฅ typer av flรถde av รฅtgรคrder i Apex รคr 1) Utvecklarรฅtgรคrd 2) Slutanvรคndarรฅtgรคrd
- Apex hjรคlper dig att skapa webbtjรคnster som integrerar Salesforce med andra applikationer.
- Datatyper som stรถds av apex รคr: 1).Primitiva 2) Samlingar 3) sObject, Enums, 4) Klasser, 5) Objekt och grรคnssnitt
- Public, Private, Protected och Global specificeras av Apex
- Nyckelord som anvรคnds i Apex รคr: 1) Med delning, 2) Utan delning, 3) Statisk, 4) Slutlig 5) Retur, 6) Null, 7) Virtuell, 8) Abstrakt
- En strรคng รคr en uppsรคttning tecken utan teckenbegrรคnsningar
- Apex-guvernรถrsgrรคnser รคr de grรคnser som upprรคtthรฅlls av apex-runtime-motorn fรถr att sรคkerstรคlla att all start- och landningsbanas apex-kod och processer
- Getter och setter kan anvรคndas fรถr att exekvera kod innan egenskapsvรคrdet nรฅs eller รคndras
- Det finns tre sรคtt att skapa apex-klasser i Salesforce: 1)Utvecklarkonsol 2)Force.com IDE och 3) Apex-klassdetaljer.
- Apex-utlรถsare gรถr att du kan kรถra anpassad apex fรถre och efter att en DML-operation utfรถrs.
- Batchklass i salesforce anvรคnds fรถr att bearbeta ett stort antal poster som skulle รถverskrida grรคnsvรคrdena fรถr apex-guvernรถren om de bearbetades normalt.





