APEX bemutató: Apex programozási osztály és kódolási példák

Mi az Apex a Salesforce-ban?

Csúcs egy objektum-orientált és erősen tipizált programozási nyelv, amelyet a Salesforce fejlesztett ki a Software as a Service (SaaS) és a Customer Relationship Management (CRM) kiépítésére. Az Apex segít a fejlesztőknek harmadik féltől származó SaaS-alkalmazások létrehozásában, és üzleti logikával adják hozzá a rendszereseményeket háttéradatbázis-támogatás és kliens-szerver felületek biztosításával.

Az Apex segít a fejlesztőknek abban, hogy üzleti logikát adjanak a rendszereseményekhez, például a gombkattintásokhoz, a kapcsolódó rekordfrissítésekhez és a Visualforce-oldalakhoz. Az Apex szintaxisa hasonló a Java. Regisztráljon a Salesforce-ra hogy megismerje a CRM működését

Az Apex programozási nyelv jellemzői

Íme a Salesforce Apex fontos funkciói:

  • Az Apex nyelv nem érzékeny a kis- és nagybetűkre.
  • Az sObject rekordokon a csúcs használatával végrehajthat DML-műveleteket, például INSERT, UPDATE, UPSERT, DELETE.
  • Az sObject rekordokat lekérdezheti a SOQL (salesforce objektum lekérdezési nyelv) és a SOSL (salesforce objektum keresési nyelv) használatával csúcsban.
  • Lehetővé teszi a egységteszt és hajtsa végre őket, hogy ellenőrizze a kód lefedettség és a kód hatékonysága csúcsban.
  • Az Apex több bérlős környezetben fut, és Salesforce meghatározott néhány vezérlőkorlátot, amelyek megakadályozzák, hogy a felhasználó felügyelje a megosztott erőforrásokat. Bármely kód, amely átlépi az értékesítési vezérlő korlátját, meghiúsul, hibaüzenet jelenik meg.
  • A Salesforce objektum adattípusként használható a csúcsban. Például -
    Account acc = new Account();

    ,itt a fiók egy szabványos értékesítési objektum.

  • Az Apex automatikusan frissít minden Salesforce-kiadásnál.

Mikor válassza a fejlesztő az Apexet?

Az Apex kódot csak akkor szabad megírni, ha egy üzleti forgatókönyv túl bonyolult, és nem valósítható meg a Salesforce által biztosított előre beépített funkciókkal.

Íme néhány forgatókönyv, amikor csúcskódot kell írnunk:

  • Olyan webszolgáltatások létrehozása, amelyek integrálják a Salesforce-t más alkalmazásokkal.
  • Egyéni érvényesítés megvalósítása objektumokon.
  • Egyéni csúcslogika végrehajtása DML-művelet végrehajtásakor.
  • Olyan funkciók megvalósításához, amelyeket nem lehet megvalósítani a meglévő munkafolyamatok és folyamatépítők funkcióival.
  • Hogy hozzanak létre e-mail szolgáltatások, tartalmaznia kell az e-mailek tartalmának, fejléceinek és mellékleteinek feldolgozását csúcskóddal.

Az Apex működési szerkezete

Ebben az Apex oktatóanyagban megismerjük az Apex működési struktúráját:

A következő műveletek menete látható egy csúcskódhoz:

  • Fejlesztői művelet: A fejlesztő által írt összes csúcskódot egy utasításkészletbe állítják össze, amelyet az apex futásidejű értelmező megérthet, amikor a fejlesztő elmenti a kódot a platformra, majd ezeket az utasításokat metaadatként menti a platformra.
  • Végfelhasználói művelet: Amikor a felhasználói esemény csúcskódot hajt végre, a platformszerver lekéri a metaadatokból összeállított utasításokat, és az eredmény visszaadása előtt lefuttatja azokat a csúcs értelmezőn.
Az Apex működési szerkezete
Az Apex működési szerkezete

Apex szintaxis

Változó nyilatkozat

Mivel az apex erősen tipizált nyelv, kötelező deklarálni egy változót, amelynek adattípusa csúcsban van.

Például:

contact con = new contact(); 

itt a con változót a contact adattípussal deklarálják.

SOQL lekérdezés

A SOQL a salesforce objektum lekérdezési nyelve. A SOQL az sObject rekordok lekérésére szolgál a Salesforce adatbázisból. Például-

Account acc = [select id, name from Account Limit 1]; 

A fenti lekérdezés lekéri a fiókrekordot az értékesítési adatbázisból.

Loop nyilatkozat

A hurokutasítás a lista rekordjai közötti iterációra szolgál. Az iterációk száma megegyezik a listában szereplő rekordok számával. Például:

list<Account>listOfAccounts = [select id, name from account limit 100];
// iteration over the list of accounts
for(Account acc : listOfAccounts){
	//your logic
}

A fenti kódrészletben a listOfAccounts egy lista adattípusú változó.

Áramlásszabályozási nyilatkozat

A Flow Control utasítás akkor hasznos, ha bizonyos feltételek alapján szeretné végrehajtani a kód néhány sorát.

Például:

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
}

A fenti kódrészlet lekérdezi a fiókrekordokat az adatbázisból, és ellenőrzi a lista méretét.

DML nyilatkozat

A DML az adatkezelési nyelv rövidítése. A DML utasítások a Salesforce adatbázisban lévő adatok manipulálására szolgálnak. Például -

Account acc = new Account(Name = ‘ Test Account’);
Insert acc; //DML statement to create account record.

Apex fejlesztési környezet

Ebben az Apex programozási oktatóanyagban az Apex fejlesztői környezetről fogunk tanulni:

Az Apex kód a Salesforce sandboxban és fejlesztői kiadásában is fejleszthető.

A legjobb gyakorlat a kódot a sandbox környezetben fejleszteni, majd üzembe helyezni az éles környezetben.

Apex fejlesztési környezet

Apex kódfejlesztő eszközök: A következő három eszköz áll rendelkezésre a csúcskód fejlesztéséhez a Salesforce összes kiadásában.

  • Force.com fejlesztői konzol
  • Force.com IDE
  • Kódszerkesztő a Salesforce felhasználói felületénYou

Adattípus az Apexben

A csúcs által támogatott adattípusok a következők:

Primitív

Egész szám, Double, Long, Date, Date Time, String, ID és Boolean primitív adattípusnak minősül. Minden primitív adattípust érték, nem pedig hivatkozás adja át.

Gyűjtemények

Az Apexben háromféle kollekció érhető el

  • Lista: primitívek, sObjects, gyűjtemények vagy Apex objektumok indexeken alapuló rendezett gyűjteménye.
  • Készlet: egyedi primitívek rendezetlen gyűjteménye.
  • Térkép: Egyedi, primitív kulcsok gyűjteménye, amelyek egyedi értékekre vannak leképezve, amelyek lehetnek primitívek, sObjects, gyűjtemények vagy Apex objektumok.

sObject

Ez egy speciális adattípus a Salesforce-ban. Hasonló a táblázathoz SQL és olyan mezőket tartalmaz, amelyek hasonlóak az SQL oszlopaihoz.

Enums

Az enum egy absztrakt adattípus, amely meghatározott azonosítók véges halmazának egy értékét tárolja

Osztályok

tárgyak

Bármilyen adattípusra utal, amelyet az Apex támogat.

Interfészek

Apex Access Specifier

Az alábbiakban láthatók az apex által támogatott hozzáférés-specifikátorok:

nyilvános

Ez a hozzáférési megadó hozzáférést biztosít egy osztályhoz, metódushoz, változóhoz, amelyet a névtér csúcsa használhat.

Magán

Ez a hozzáférés-specifikátor hozzáférést biztosít egy osztályhoz, metódushoz, változóhoz, amelyet helyileg vagy a kódszakaszon belül használnak, ez van definiálva. Minden olyan technika, változó, amelyhez nincs definiálva hozzáférés-specifikáció, az alapértelmezett privát hozzáférés-specifikációval rendelkezik.

Védett

Ez a hozzáférési megadó hozzáférést biztosít egy metódushoz, változóhoz, amelyet az Apex osztályt meghatározó belső osztályok használhatnak.

Globál

Ez a hozzáférés-meghatározó hozzáférést biztosít egy osztályhoz, metódushoz, változóhoz, amelyet a névtéren belüli és a névtéren kívüli csúcsok használhatnak. A legjobb gyakorlat, ha nem használ globális kulcsszót, amíg szükséges.

Kulcsszavak az Apexben

Megosztással

Ha egy osztály ezzel a kulcsszóval van definiálva, akkor az összes megosztási szabály az aktuális felhasználóra vonatkozik, és ha ez a kulcsszó hiányzik, akkor a kód rendszerkontextusban fut le.

Például:

public with sharing class MyApexClass{
// sharing rules enforced when code in this class execute
}

Megosztás nélkül

Ha egy osztály ezzel a kulcsszóval van definiálva, akkor az aktuális felhasználóra vonatkozó megosztási szabályok nem érvényesülnek.

Például:

public without sharing class MyApexClass{
// sharing rules is not enforced when code in this class execute
}

Statikus

A Method változót úgy határozzuk meg, hogy a static kulcsszót egyszer inicializáljuk, és az osztályhoz társítjuk. A statikus változók, metódusok közvetlenül hívhatók osztálynévvel anélkül, hogy egy osztály példányát létrehoznák.

vég

Egy állandó, a Method a végső kulcsszóval van definiálva, nem bírálható felül. Például:

public class myCls {
static final Integer INT_CONST = 10;
}

Ha megpróbálja felülbírálni ennek az INT_CONST változónak az értékét, akkor kivételt fog kapni – System.FinalException: A végső változót már inicializálták.

Visszatérés

Ez a kulcsszó egy metódusból származó értéket ad vissza. Például:

public String getName() {
return  'Test' ;
}

Null

Meghatároz egy null állandót, és hozzárendelhető egy változóhoz. Például

 Boolean b = null;

Tényleges

Ha egy osztály virtuális kulcsszóval van definiálva, akkor az kiterjeszthető és felülírható.

Absztrakt

Ha egy osztály abstract kulcsszóval van definiálva, akkor legalább egy metódust kell tartalmaznia abstract kulcsszóval, és ennek a metódusnak csak aláírása lehet.

Például

public abstract class MyAbstrtactClass {
abstract Integer myAbstractMethod1();
}

Apex String

A karakterlánc olyan karakterkészlet, amely nem rendelkezik karakterkorlátokkal. Például:

String name = 'Test';

Számos beépített metódust kínál a String osztály a salesforce-ban. Íme néhány gyakran és leggyakrabban használt funkció:

rövidít (max. szélesség)

Ez a metódus a megadott hosszúságúra csonkolja a karakterláncot, és visszaadja, ha az adott karakterlánc hossza hosszabb, mint a megadott hosszúság; ellenkező esetben az eredeti karakterláncot adja vissza. Ha a maxWidth változó értéke kisebb, mint 4, ez a metódus futásidejű kivételt ad vissza – System.StringException: A rövidítés minimális szélessége 4

Például:

String s = 'Hello World';
String s2 = s.abbreviate(8);
System.debug('s2'+s2); //Hello...

nagybetűs ()

Ez a módszer a karakterlánc első betűjét nagybetűvé alakítja, és visszaadja.

Például:

String s = 'hello;
String s2 = s.capitalize();
System.assertEquals('Hello', s2);

tartalmaz (alkarakterlánc)

Ez a metódus igazat ad vissza, ha a metódust hívó karakterlánc tartalmazza a megadott részkarakterláncot.

String name1 = 'test1';
String name2 = 'test2';
Boolean flag = name.contains(name2);
System.debug('flag::',+flag); //true

egyenlő(stringOrId)

Ez a metódus igazat ad vissza, ha az átadott paraméter nem null, és ugyanazt a bináris karaktersorozatot jelzi, mint a metódust hívó karakterlánc.

Az Id értékek összehasonlításakor előfordulhat, hogy az azonosítók hossza nem egyenlő. Például: ha egy 15 karakteres azonosítót képviselő karakterláncot egy 18 karakteres ID-t képviselő objektummal hasonlítanak össze, ez a metódus igazat ad vissza. Például:

Id idValue15 = '001D000000Ju1zH';
Id idValue18 = '001D000000Ju1zHIAR';
Boolean result4 = stringValue15.equals(IdValue18);
System.debug('result4', +result4); //true

A fenti példában az egyenlő módszer 15 karakteres objektumazonosítót hasonlít össze 18 karakteres objektumazonosítóval, és ha mindkét azonosító ugyanazt a bináris sorozatot képviseli, akkor igaz értéket ad vissza.

Használja ezt a módszert a kis- és nagybetűk megkülönböztetésére.

escapeSingleQuotes(stringToEscape)

Ez a metódus egy escape karaktert (\) ad hozzá a karakterlánc egyetlen idézőjeléhez, és visszaadja azt. Ez a módszer megakadályozza a SOQL befecskendezését dinamikus SOQL-lekérdezés létrehozásakor. Ez a módszer biztosítja, hogy az összes idézőjel befoglaló karakterláncnak minősüljön adatbázis-parancsok helyett.

Például:

String s = 'Hello Tom';
system.debug(s); // Outputs 'Hello Tom'
String escapedStr = String.escapeSingleQuotes(s);
// Outputs \'Hello Tom\'

eltávolítás (alkarakterlánc)

Ez a metódus eltávolítja az említett részkarakterlánc összes előfordulását a metódust meghívó karakterláncból, és visszaadja a kapott karakterláncot.

Például

String s1 = 'Salesforce and force.com';
String s2 = s1.remove('force');
System.debug( 's2'+ s2);// 'Sales and .com'

részkarakterlánc (kezdőindex)

Ez a metódus egy részkarakterláncot ad vissza, amely a startkor karaktertől kezdődikIndex kiterjeszti a karakterlánc utolsóig.

Például:

String s1 = 'hamburger';
String s2 = s1.substring(3);
System.debug('s2'+s2); //burger

fordított ()

Ez a módszer megfordítja a karakterlánc összes karakterét, és visszaadja azt. Például:

String s = 'Hello';
String s2 = s.reverse();
System.debug('s2::::'+s2);// olleH  // Hello

trim(): Ez a módszer eltávolítja az összes vezető szóközt a karakterláncból, és visszaadja azt.

valueOf(konvertálni)

Ez a metódus az átadott objektum karakterlánc reprezentációját adja vissza.

Apex kormányzói korlátok

Az Apex-irányító korlátai az apex futásidejű motor által érvényre juttatott korlátok annak biztosítására, hogy a futópálya csúcskódja és folyamatai ne irányítsák a megosztott erőforrásokat, és ne sértsék meg a feldolgozást a többbérlős környezetben lévő többi felhasználó számára. Ezeket a limiteket minden csúcstranzakció ellenőrzi. Az alábbiakban találhatók a salesforce által az egyes csúcstranzakciókhoz meghatározott kormányhatárok:

Leírás Limit
Szinkron tranzakcióban végrehajtható SOQL lekérdezések 100
Aszinkron tranzakcióban végrehajtható SOQL-lekérdezések 200
SOQL lekérdezéssel visszakereshető rekordok 50000
A Database.getQueryLocator által lehívható rekordok 10000
SOSL-lekérdezések, amelyeket csúcstranzakcióban lehet végrehajtani 20
SOSL lekérdezéssel lehívható rekordok 2000
DML utasítások, amelyeket egy csúcstranzakcióban lehet végrehajtani 150
DML utasítás, Approval.process vagy database.emptyRecycleBin eredményeként feldolgozható rekordok 10000
Csúcstranzakcióban végrehajtható kiemelések. 100
Összesített időtúllépési korlát a csúcstranzakcióban végrehajtott összes kiemelésre 120 másodperc
Korlátozza a System.enqueueJob-val a sorhoz hozzáadható csúcsfeladatokat 50
Az egyes Apex-tranzakciók végrehajtási határideje 10 perc
A csúcsosztályban és a triggerben használható karakterek korlátozása 1 millió
CPU időkorlát a szinkron tranzakcióhoz 10,000 milliszekundum
CPU időkorlát az aszinkron tranzakcióhoz 60,000 milliszekundum

Apex Getter és Setter

Apex tulajdonság hasonló a csúcsváltozóhoz. A getter és a setter szükséges egy csúcstulajdonsághoz. A Getter és a setter használható kód végrehajtására, mielőtt a tulajdonság értékét elérjük vagy módosítjuk. A get accessor kódja egy tulajdonságérték beolvasásakor fut le. A beállított elérőben lévő kód akkor fut le, amikor egy tulajdonság értéke megváltozik. Minden olyan tulajdonság, amelynek get accessorja van, csak olvashatónak minősül, minden olyan tulajdonság, amelyik beállított hozzáférést, csak írhatónak minősül minden olyan tulajdonság, amely rendelkezik get és set accessorral is. Egy csúcstulajdonság szintaxisa:

public class myApexClass {
// Property declaration
	access_modifierreturn_typeproperty_name {
	get {
			//code  
		}
		set{
			//code
		}
	}

Itt az access_modifier a tulajdonság hozzáférés módosítója. return_type a tulajdonság adattípusa. property_name a tulajdonság neve.

Az alábbiakban egy példa látható egy csúcstulajdonságra, amely get és set accessort is tartalmaz.

public class myApex{
	public String name{
		get{ return name;}
		set{ name = 'Test';}
	}
}

Itt a tulajdonság neve name, és ez nyilvános tulajdonság, és egy dataType karakterláncot ad vissza.

A get and set blokkban nem kötelező valamilyen kód megadása. Ezek a blokkok üresen hagyhatók egy automatikus tulajdonság meghatározásához. Például:

public double MyReadWriteProp{ get; set; } 

A Get and set accessor a hozzáférésmódosítójukkal is meghatározható. Ha egy hozzáférő módosítóval van definiálva, akkor az felülírja a tulajdonság hozzáférés-módosítóját. Például:

public String name{private get; set;}// name is private for read and public to write.

Apex osztály

A csúcsosztály egy tervrajz vagy sablon, amelyből objektumok jönnek létre. Az objektum egy osztály példánya.

Háromféleképpen lehet csúcsosztályokat létrehozni a Salesforce-ban:

Fejlesztői konzol

Force.com IDE

Apex osztály részletes oldala.

A csúcsban definiálhatunk egy külső osztályt, amelyet felső szintű osztálynak is neveznek, és definiálhatunk osztályokat egy belső osztálynak nevezett külső osztályon belül is.

A külső osztály deklarációjában kötelező a hozzáférésmódosító, például a globális vagy a nyilvános használata.

A belső osztályok deklarációjában nem szükséges hozzáférésmódosítót használni.

A csúcsosztályt a class kulcsszó segítségével határozzuk meg, majd az osztálynévvel.

Az Extends kulcsszó egy meglévő osztály csúcsosztállyal való kiterjesztésére szolgál, az implements kulcsszó pedig egy interfész csúcsosztály általi megvalósítására.

A Salesforce Apex nem támogatja a többszörös öröklődést, egy csúcsosztály csak egy meglévő csúcsosztályt bővíthet, de több interfészt is megvalósíthat.

Egy csúcsosztály tartalmazhat felhasználó által definiált konstruktort, és ha nem érhető el felhasználó által definiált konstruktor, akkor az alapértelmezett konstruktor kerül felhasználásra. A konstruktor kódja akkor fut le, amikor egy osztály példánya létrejön.

Példa az Apex osztály szintaxisára:

public class myApexClass{
// variable declaration
//constructor
	public myApexClass{
	}
//methods declaration
}

Az új kulcsszó egy csúcsosztály példányának létrehozására szolgál. Az alábbiakban egy csúcsosztály példányának létrehozásának szintaxisa látható.

myApexClass obj = new myApexClass();

Apex Trigger

Az Apex triggerek lehetővé teszik az egyéni csúcs végrehajtását a DML művelet végrehajtása előtt és után.

Az Apex a következő két típusú triggert támogatja:

Triggerek előtt: Ezek a triggerek a mező értékének érvényesítésére és frissítésére szolgálnak a rekord adatbázisba mentése előtt.

Triggerek után: Ezekkel a triggerekkel lehet elérni azokat a mezőket (rekordazonosító, LastModifiedDate mező), amelyet a rendszer az adatbázisba kötött rekord után állított be. Ezek a mezők értékei felhasználhatók más rekordok módosítására. A triggerek után aktiválódó rekordok csak olvashatók.

A bevált gyakorlat terjedelmes triggerek írása. Egy terjedelmes eseményindító egyetlen rekordot, valamint egyszerre több rekordot is feldolgozhat.

A csúcs trigger szintaxisa:

trigger TriggerName on ObjectName (trigger_events) {
	//Code_block
 }

Itt a TriggerName a trigger neve, az ObjectName az objektum neve, amelyre a triggert írni kell, a trigger_events pedig az események vesszővel elválasztott listája.

A csúcsindítók által támogatott események a következők: beszúrás előtt, frissítés előtt, törlés előtt, beszúrás után, frissítés után, törlés után, törlés visszavonása után.

Statikus kulcsszavak nem használhatók Apex-indítóban. A belső osztályokra vonatkozó összes kulcsszó használható Apex triggerben.

Vannak implicit változók, amelyeket minden trigger határoz meg, amely visszaadja a futási környezetet. Ezeket a változókat a rendszer határozza meg. Trigger osztály. Ezeket a változókat környezeti változóknak nevezzük. Az alábbi képernyőképen látható az apex trigger által támogatott környezeti változó.

Apex Trigger

Apex Trigger

A következő a kontextusváltozó figyelembevétele a csúcsindítóban:

  • Ne használja a trigger.new és trigger.old fájlokat a DML-műveletekben.
  • A Trigger.new nem törölhető.
  • A Trigger.new csak olvasható.
  • A Trigger.new csak a trigger előtti mezők értékeinek megváltoztatására használható ugyanazon az objektumon.

Az alábbi képernyőképek felsorolják a különböző trigger események konkrét műveleteivel kapcsolatos megfontolásokat.

Apex Trigger

Apex Trigger

Batch Class az Apexben

A salesforce kötegosztályát nagyszámú olyan rekord feldolgozására használják, amelyek normál feldolgozás esetén meghaladnák a csúcsirányító korlátait. A Batch class aszinkron módon hajtja végre a kódot.

A kötegelt osztály előnyei a következők:

  • A kötegelt osztály az adatokat darabokban dolgozza fel, és ha egy darab feldolgozása sikertelen, az összes sikeresen feldolgozott darab nem gördül vissza.
  • A kötegelt osztály minden adatrészét új vezérlőkorlátokkal dolgozták fel, amelyek biztosítják, hogy a kód a kormányzó végrehajtási korlátain belül fusson le.
  • Adatbázis. A kötegelt interfészt egy csúcsosztálynak kell megvalósítania, hogy kötegelt osztályként használhassa. Három módszert biztosít, amelyeket a kötegelt osztálynak kell megvalósítania.

Az alábbiakban a Database által biztosított három módszer látható. Kötegelhető felület:

1.start()

Ez a metódus az execute interfész metódus által feldolgozandó rekordok vagy objektumok hatókörét állítja elő. A köteg végrehajtása során csak egyszer hívják meg. Ez a metódus egy Database.QueryLocator objektumot vagy egy Iterable objektumot ad vissza. Az SQL-lekérdezés által a Database.QueryLocator objektummal lekért rekordok száma 50 millió rekord, de iterálható, az SQL-lekérdezéssel lekérhető rekordok száma összesen csak 50000. Az Iterable komplex hatókör létrehozására szolgál a kötegelt osztályhoz.

Az indítási módszer szintaxisa:

global (Database.QueryLocator | Iterable<sObject>) start(Database.BatchableContextbc) {}

2.execute()

Ezt a módszert minden egyes adatcsomag feldolgozására használják. Minden rekorddarabhoz végrehajtási metódus kerül meghívásra. A végrehajtás alapértelmezett kötegmérete 200 rekord. A végrehajtási metódus két argumentumból áll:

Hivatkozás a Database.BatchableContext objektumra,

Az sObjects listája, például a Lista , vagy a paraméterezett típusok listája. A végrehajtási metódus szintaxisa:

global void execute(Database.BatchableContext BC, list<P>){}

3.befejezés()

A befejező metódus egyszer kerül meghívásra a kötegelt osztály végrehajtása során. Az utófeldolgozási műveletek a befejező módszerrel végezhetők el. Például: visszaigazoló e-mail küldése. Ezt a módszert akkor hívják meg, amikor az összes köteg feldolgozásra kerül. A Finish metódus szintaxisa:

global void finish(Database.BatchableContext BC){}

Database.BatchableContext objektum

Az adatbázis minden módszere. A kötegelt felület hivatkozást tartalmaz a Database.BatchableContext objektumra.

Ez az objektum a kötegelt feladat előrehaladásának nyomon követésére szolgál.

A BatchableContext által biztosított példánymódszerek a következők:

  • getChildJobId(): Ez a metódus egy jelenleg feldolgozott kötegelt feladat azonosítóját adja vissza.
  • getJobId(): Ez a metódus a kötegelt feladat azonosítóját adja vissza.

Az alábbiakban egy kötegosztály szintaxisa látható:

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 módszer

A Database.executeBatch metódus köteg osztály végrehajtására szolgál.

Ez a metódus két paramétert vesz igénybe: a feldolgozandó kötegosztály példánya, az Options paraméter a köteg méretének megadásához, ha nincs megadva, akkor az alapértelmezett 200-as méret.

A Database.executeBatch szintaxisa:

Database.executeBatch(myBatchObject,scope)

MyBatchClass nevű kötegelt osztály végrehajtása:

MyBatchClassmyBatchObject = new MyBatchClass(); 
Id batchId = Database.executeBatch(myBatchObject,100);

Adatbázis.stateful

A kötegosztály alapértelmezés szerint állapot nélküli. Minden alkalommal, amikor az execute metódust hívják, egy objektum új másolata érkezik, az osztály összes változója inicializálódik.

A Database.stateful úgy van megvalósítva, hogy egy kötegelt osztály állapotúvá tegye.

Ha a köteg osztály megvalósította a adatbázis , állapottartó interfész minden példányváltozó megtartja értékét, de a statikus változók alaphelyzetbe állnak a tranzakciók között.

Összegzésként

  • Az Apex egy erősen tipizált, objektumorientált programozási nyelv amely a force.com platformon fordítja le és fut
  • Az Apex programozási nyelv nem érzékeny a kis- és nagybetűkre
  • A műveletek két típusa az Apexben: 1) Fejlesztői művelet 2) Végfelhasználói művelet
  • Az Apex segít olyan webszolgáltatások létrehozásában, amelyek integrálják a Salesforce-t más alkalmazásokkal.
  • A csúcs által támogatott adattípusok a következők: 1) Primitív 2) Gyűjtemények 3) sObject, Enums, 4) Osztályok, 5) Objektumok és interfészek
  • A nyilvános, privát, védett és globális támogatást az Apex határozza meg
  • Az Apexben használt kulcsszavak a következők: 1) megosztással, 2) megosztás nélkül, 3) statikus, 4) végleges 5) visszatérés, 6) nulla, 7) virtuális, 8) absztrakt
  • A karakterlánc olyan karakterkészlet, amely nem rendelkezik karakterkorlátokkal
  • Az Apex-irányító korlátai azok a korlátok, amelyeket az apex futásidejű motor kényszerít be annak biztosítására, hogy minden futópálya csúcskódja és folyamata
  • A Getter és a setter használható kód végrehajtására, mielőtt a tulajdonság értékét elérjük vagy módosítjuk
  • Háromféleképpen hozhat létre csúcsosztályokat a Salesforce-ban: 1) Fejlesztői konzol 2) Force.com IDE és 3) Apex osztály részletes oldala.
  • Az Apex triggerek lehetővé teszik az egyéni csúcs végrehajtását a DML művelet végrehajtása előtt és után.
  • A salesforce kötegosztályát nagyszámú olyan rekord feldolgozására használják, amelyek normál feldolgozás esetén meghaladnák a csúcsirányító korlátait.

Napi Guru99 hírlevél

Kezdje a napját a legfrissebb és legfontosabb mesterséges intelligenciával kapcsolatos hírekkel, amelyeket azonnal kézbesítünk.