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.
Arbetsstruktur av Apex
Arbetsstruktur av Apex

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 utvecklingsmiljรถ

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.

Apex trigger

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.

Apex trigger

Apex trigger

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.

Sammanfatta detta inlรคgg med: