APEXi õpetus: Apexi programmeerimisklassi ja kodeerimise näited

Mis on Apex Salesforce'is?

Tipp on objektorienteeritud ja tugevasti trükitud programmeerimiskeel, mille Salesforce on välja töötanud tarkvara kui teenuse (SaaS) ja kliendisuhete halduse (CRM) loomiseks. Apex aitab arendajatel luua kolmanda osapoole SaaS-i rakendusi ja lisada süsteemisündmustele äriloogikat, pakkudes andmebaasi taustatuge ja kliendi-serveri liideseid.

Apex aitab arendajatel lisada äriloogikat süsteemi sündmustele, nagu nuppude klõpsud, seotud kirjete värskendused ja Visualforce'i lehed. Apexil on sarnane süntaks Java. Registreeruge Salesforce'i kasutajaks õppida, kuidas CRM töötab

Apexi programmeerimiskeele omadused

Siin on Salesforce Apexi olulised funktsioonid:

  • Apex on tõstutundlik keel.
  • Apeksi abil saate sObjecti kirjetel teha DML-i toiminguid, nagu INSERT, UPDATE, UPSERT, DELETE.
  • Saate teha päringuid sObjecti kirjete kohta, kasutades tipus SOQL-i (salesforce'i objektide päringukeel) ja SOSL-i (salesforce'i objektiotsingu keel).
  • Võimaldab luua a ühiku test ja käivitage need kontrollimiseks koodi katvus ja koodi efektiivsus tipus.
  • Apex teostab mitme rentniku keskkonnas ja Sales Force on määratlenud mõned valitsejate piirangud, mis takistavad kasutajal jagatud ressursse juhtida. Iga kood, mis ületab müügijõudude valitseja limiidi, ebaõnnestub, kuvatakse tõrketeade.
  • Salesforce'i objekti saab kasutada andmetüübina tipus. Näiteks –
    Account acc = new Account();

    ,siin on konto tavaline müügipersonali objekt.

  • Apex uuendab automaatselt iga Salesforce'i väljalaskega.

Millal peaks arendaja valima Apexi

Apex-koodi tuleks kirjutada ainult siis, kui äristsenaarium on liiga keeruline ja seda ei saa rakendada Salesforce'i eelseadistatud funktsioonide abil.

Järgmised on mõned stsenaariumid, kus peame tippkoodi kirjutama:

  • Veebiteenuste loomiseks, mis integreerivad Salesforce'i teiste rakendustega.
  • Kohandatud valideerimise rakendamiseks objektidel.
  • Kohandatud tipuloogika käivitamiseks DML-i toimingu sooritamisel.
  • Rakendada funktsioone, mida ei saa rakendada olemasolevate töövoogude ja protsessikoostajate funktsioonide abil.
  • Üles seadma e-posti teenused, peate hõlmama meilide sisu, päiste ja manuste töötlemist tipukoodi abil.

Apexi tööstruktuur

Nüüd selles Apexi õpetuses õpime tundma Apexi tööstruktuuri:

Järgmine on tipukoodi toimingute voog:

  • Arendaja toiming: kogu arendaja kirjutatud tippkood koondatakse juhiste kogumiks, mida tippkäitusaja tõlk mõistab, kui arendaja salvestab koodi platvormile ja seejärel salvestatakse need juhised platvormile metaandmetena.
  • Lõppkasutaja toiming: kui kasutaja sündmus käivitab tipukoodi, hangib platvormi server metaandmetest koostatud juhised ja käivitab need enne tulemuse tagastamist läbi tipu tõlgi.
Apexi tööstruktuur
Apexi tööstruktuur

Apexi süntaks

Muutuv deklaratsioon

Kuna tipp on tugevasti trükitud keel, on kohustuslik deklareerida muutuja, mille andmetüüp on tipus.

Näiteks:

contact con = new contact(); 

siin deklareeritakse muutuja con kontaktiga andmetüübina.

SOQL päring

SOQL tähistab müügijõu objektide päringukeelt. SOQL-i kasutatakse sObjecti kirjete toomiseks Salesforce'i andmebaasist. Näiteks-

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

Ülaltoodud päring toob kontokirje müügijõudude andmebaasist.

Loop avaldus

Loop-lauset kasutatakse loendis kirjete kordamiseks. Iteratsioonide arv võrdub loendis olevate kirjete arvuga. Näiteks:

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

Ülaltoodud koodilõigu puhul on listOfAccounts loendi andmetüübi muutuja.

Voolu juhtimise avaldus

Voo juhtimise avaldus on kasulik, kui soovite teatud tingimustel käivitada mõnda koodi rida.

Näiteks:

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
}

Ülaltoodud koodilõik küsib andmebaasist kontokirjeid ja kontrollib loendi suurust.

DML avaldus

DML tähistab andmete manipuleerimise keelt. DML-lauseid kasutatakse Salesforce'i andmebaasis olevate andmete töötlemiseks. Näiteks –

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

Apexi arenduskeskkond

Nüüd selles Apexi programmeerimisõpetuses õpime tundma Apexi arenduskeskkonda:

Apex-koodi saab arendada nii Salesforce'i liivakastis kui ka arendajaväljaandes.

Parim tava on töötada välja kood liivakastikeskkonnas ja seejärel juurutada see tootmiskeskkonda.

Apexi arenduskeskkond

Apex-koodi arendustööriistad: järgmised on kolm tööriista, mis on saadaval tippkoodi arendamiseks Salesforce'i kõigis väljaannetes.

  • Force.com arendajakonsool
  • Force.com IDE
  • Koodiredaktor Salesforce'i kasutajaliidesesYou

Andmetüüp Apexis

Järgmised andmetüübid, mida tipp toetab:

Primitiivne

Täisarv Double, Long, Date, Date Time, String, ID ja Boolean loetakse primitiivseteks andmetüüpideks. Kõik primitiivsed andmetüübid edastatakse väärtuse, mitte viite alusel.

Kollektsioonid

Apexis on saadaval kolme tüüpi kollektsioone

  • Loend: see on järjestatud primitiivide, sObjectide, kogude või Apex-objektide kogum, mis põhineb indeksitel.
  • Komplekt: Unikaalsete primitiivide järjestamata kogu.
  • Kaart: see on ainulaadsete primitiivsete võtmete kogum, mis kaardistatakse üksikute väärtustega, mis võivad olla primitiivid, sObjects, kogud või Apex-objektid.

sObjekt

See on Salesforce'i spetsiaalne andmetüüp. See sarnaneb tabeliga SQL ja sisaldab välju, mis on sarnased SQL-i veergudele.

Enums

Enum on abstraktne andmetüüp, mis salvestab ühe väärtuse määratud identifikaatorite lõplikust komplektist

klassid

Objektid

See viitab mis tahes andmetüübile, mida Apex toetab.

Liidesed

Apexi juurdepääsu täpsustaja

Järgmised on apexi toetatud juurdepääsu spetsifikaatorid:

avalik

See juurdepääsuspetsifikaator annab juurdepääsu klassile, meetodile ja muutujale, mida nimeruumi tipp kasutab.

Era-

See juurdepääsuspetsifikaat annab juurdepääsu klassile, meetodile, muutujale, mida kasutatakse kohapeal või koodiosas, see on määratletud. Kõigil tehnikatel, muutujatel, millel pole defineeritud juurdepääsu spetsifikaatorit, on vaikejuurdepääsu spetsifikaat privaatne.

Kaitstud

See juurdepääsuspetsifikaat annab juurdepääsu meetodile, muutujale, mida kasutavad kõik Apex-klassi sisemised klassid.

Globaalne

See juurdepääsuspetsifikaat annab juurdepääsu klassile, meetodile ja muutujale, mida kasutatakse nimeruumi tipus nii nimeruumis kui ka väljaspool nimeruumi. Hea tava on mitte kasutada globaalset märksõna enne, kui see on vajalik.

Märksõnad Apexis

Jagamisega

Kui klass on defineeritud selle märksõnaga, siis kõik jagamisreeglid kehtivad praegusele kasutajale ja kui see märksõna puudub, käivitatakse kood süsteemi kontekstis.

Näiteks:

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

Ilma jagamiseta

Kui klass on määratletud selle märksõnaga, siis kõiki praegusele kasutajale kehtivaid jagamisreegleid ei jõustata.

Näiteks:

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

Staatiline

Muutuja, meetod on määratletud staatilise märksõnaga, initsialiseeritakse üks kord ja seostatakse klassiga. Staatilisi muutujaid, meetodeid saab kutsuda klassi nime järgi otse, ilma klassi eksemplari loomata.

Lõplik

Konstant, meetod on määratletud lõpliku märksõnaga, ei saa alistada. Näiteks:

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

Kui proovite selle INT_CONST muutuja väärtust alistada, saate erandi – System.FinalException: Lõplik muutuja on juba lähtestatud.

tagastamine

See märksõna tagastab meetodi väärtuse. Näiteks:

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

NULL

See määratleb nullkonstandi ja seda saab määrata muutujale. Näiteks

 Boolean b = null;

virtuaalne

Kui klass on määratletud virtuaalse märksõnaga, saab seda laiendada ja tühistada.

Abstraktne

Kui klass on määratletud abstraktse märksõnaga, peab see sisaldama vähemalt ühte meetodit märksõnaga abstraktne ja sellel meetodil peaks olema ainult allkiri.

Näiteks

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

Apex String

String on tähemärkide kogum, millel pole tähemärgipiiranguid. Näiteks:

String name = 'Test';

String-klass pakub müügijõududes mitmeid sisseehitatud meetodeid. Järgnevalt on toodud mõned sageli ja enamasti kasutatavad funktsioonid:

lühenda (maxWidth)

See meetod kärbib stringi määratud pikkuseks ja tagastab selle, kui antud stringi pikkus on määratud pikkusest pikem; vastasel juhul tagastab see algse stringi. Kui muutuja maxWidth väärtus on väiksem kui 4, tagastab see meetod käitusaja erandi – System.StringException: lühendi minimaalne laius on 4

Näiteks:

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

suurtäht ()

See meetod teisendab stringi esimese tähe pealkirja suurtähtedeks ja tagastab selle.

Näiteks:

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

sisaldab (alamstringi)

See meetod tagastab tõene, kui meetodit kutsuv string sisaldab määratud alamstringi.

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

võrdub(stringOrId)

See meetod tagastab tõene, kui edastatud parameeter ei ole null ja näitab sama binaarset märgijada kui meetodit kutsuv string.

Id väärtuste võrdlemisel ei pruugi ID-de pikkus olla võrdne. Näiteks: kui stringi, mis esindab 15 tähemärgist ID, võrreldakse objektiga, mis esindab 18 tähemärgi ID-d, tagastab meetod tõene. Näiteks:

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

Ülaltoodud näites võrdub meetod, mis võrdleb 15-märgilist objekti ID-d 18-märgilise objekti ID-ga ja kui mõlemad ID-d esindavad sama binaarjada, tagastab see tõese.

Kasutage seda meetodit tõstutundlike võrdluste tegemiseks.

escapeSingleQuotes (stringToEscape)

See meetod lisab stringi iga üksiku tsitaat ette paomärgi (\) ja tagastab selle. See meetod takistab SOQL-i süstimist dünaamilise SOQL-päringu loomise ajal. See meetod tagab, et kõiki üksikuid jutumärke käsitletakse ümbritsevate stringidena, mitte andmebaasikäskudena.

Näiteks:

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

eemalda (alamstring)

See meetod eemaldab kogu nimetatud alamstringi esinemise Stringist, mis seda meetodit kutsub, ja tagastab saadud stringi.

Näiteks

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

alamstring (algusindeks)

See meetod tagastab alamstringi, mis algab märgist algusesIndex ulatub stringi viimaseni.

Näiteks:

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

tagurpidi()

See meetod pöörab kõik stringi märgid ümber ja tagastab selle. Näiteks:

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

trim(): See meetod eemaldab stringist kõik eesmised tühikud ja tagastab selle.

valueOf(konverteeritav)

See meetod tagastab sisse antud objekti stringi esituse.

Apexi kuberneri piirangud

Apexi regulaatori piirangud on piirangud, mida rakendab apexi käitusaegne mootor, et tagada, et raja tipukood ja protsessid ei juhi jagatud ressursse ega riku mitme rentniku keskkonna teiste kasutajate töötlust. Neid limiite kontrollitakse iga tiputehingu suhtes. Järgmised on kuberneri limiidid, mille müügipersonal on iga tiputehingu jaoks määratlenud.

Kirjeldus piir
SOQL-päringud, mida saab teha sünkroonse tehinguga 100
SOQL-päringud, mida saab teha asünkroonse tehinguga 200
Kirjed, mida saab hankida SOQL-päringuga 50000
Kirjed, mida saab alla laadida rakendusega Database.getQueryLocator 10000
SOSL-päringud, mida saab teha tiputehingus 20
Kirjed, mida saab hankida SOSL-päringuga 2000
DML-laused, mida saab teha tiputehingus 150
Kirjed, mida saab töödelda DML-lause, Approval.process või database.emptyRecycleBin tulemusel 10000
Tähelepanulaiendid, mida saab teha tiputehingus. 100
Kumulatiivne ajalimiit kõikidele tipptehingus tehtavatele tähelepanulaienditele 120 sekundit
Piirang tipptöödele, mida saab süsteemiga System.enqueueJob järjekorda lisada 50
Iga Apexi tehingu teostamise tähtaeg 10 minuti
Tippklassis ja päästikus kasutatavate märkide piirang 1 miljonit
CPU ajalimiit sünkroontehingu jaoks 10,000 millisekundid
CPU ajalimiit asünkroonse tehingu jaoks 60,000 millisekundid

Apex Getter ja setter

Tipu omadus on sarnane tipu muutujale. Getter ja setter on tipuomaduse jaoks vajalikud. Getterit ja seadjat saab kasutada koodi käivitamiseks enne atribuudi väärtusele juurdepääsu või selle muutmist. Get accessoris olev kood käivitatakse atribuudi väärtuse lugemisel. Määratud aksessuaaris olev kood töötab, kui atribuudi väärtust muudetakse. Kõik atribuudid, millel on pöörduja hankimine, loetakse kirjutuskaitstuks, kõik atribuudid, millel on pöörduja määramine, loetakse kirjutavaks ainult kõik atribuudid, millel on nii hankimine kui ka lisaseadme määramine, loetakse kirjutamis-kirjutatavaks. Tipu atribuudi süntaks:

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

Siin on access_modifier atribuudi juurdepääsumuutja. return_type on atribuudi andmetüüp. omaduse_nimi on atribuudi nimi.

Allpool on näide tipu atribuudist, millel on nii hankimine kui ka määramine.

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

Siin on atribuudi nimi nimi ja see on avalik atribuut ning see tagastab stringi dataType.

Mingi koodi olemasolu get and set plokis ei ole kohustuslik. Automaatse atribuudi määratlemiseks võib need plokid tühjaks jätta. Näiteks:

public double MyReadWriteProp{ get; set; } 

Get and set accessori saab määrata ka nende juurdepääsu modifikaatoriga. Kui aksessuaar on määratletud modifikaatoriga, alistab see atribuudi juurdepääsumuutja. Näiteks:

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

Apex klass

Tipuklass on plaan või mall, millest luuakse objekte. Objekt on klassi eksemplar.

Salesforce'is on tipuklasside loomiseks kolm võimalust.

Arendajakonsool

Force.com IDE

Apexi klassi üksikasjade leht.

Tipus saate määratleda välimise klassi, mida nimetatakse ka tipptaseme klassiks, ja samuti saate määratleda klasse välisklassis, mida nimetatakse sisemisteks klassideks.

Välise klassi deklaratsioonis on kohustuslik kasutada juurdepääsumuutjat, nagu globaalne või avalik.

Sisemiste klasside deklaratsioonis ei ole vaja kasutada juurdepääsu modifikaatorit.

Tipuklass määratakse klassi märksõnaga, millele järgneb klassi nimi.

Märksõna Extends kasutatakse olemasoleva klassi laiendamiseks tipuklassi võrra ja implements märksõna kasutatakse liidese realiseerimiseks tipuklassi järgi.

Salesforce Apex ei toeta mitut pärandit, tipuklass saab laiendada ainult ühte olemasolevat tipuklassi, kuid võib rakendada mitut liidest.

Tipuklass võib sisaldada kasutaja määratud konstruktorit ja kui kasutaja määratud konstruktorit pole saadaval, kasutatakse vaikekonstruktorit. Konstruktoris olev kood käivitatakse klassi eksemplari loomisel.

Apex-klassi näite süntaks:

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

Uut märksõna kasutatakse tipuklassi eksemplari loomiseks. Allpool on tippklassi eksemplari loomise süntaks.

myApexClass obj = new myApexClass();

Apex Trigger

Apex-päästikud võimaldavad teil käivitada kohandatud tipu enne ja pärast DML-toimingu sooritamist.

Apex toetab kahte tüüpi päästikuid:

Enne käivitajaid: neid käivitajaid kasutatakse välja väärtuse kinnitamiseks ja värskendamiseks enne kirje salvestamist andmebaasi.

Pärast päästikuid: neid päästikuid kasutatakse juurdepääsuks väljadele (kirje ID, väli LastModifiedDate), mille süsteem on seadnud pärast andmebaasi sisestatud kirjet. Nende väljade väärtusi saab kasutada muude kirjete muutmiseks. Kirjed, mis käivituvad pärast päästikuid, on kirjutuskaitstud.

Parim tava on kirjutada mahukaid käivitajaid. Mahukas päästik võib töödelda nii ühte kirjet kui ka mitut kirjet korraga.

Tipupäästiku süntaks:

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

Siin on TriggerName päästiku nimi, ObjectName on objekti nimi, millele triger kirjutada, trigger_events on sündmuste komadega eraldatud loend.

Järgmised sündmused, mida tipupäästikud toetavad: enne lisamist, enne värskendamist, enne kustutamist, pärast lisamist, pärast värskendamist, pärast kustutamist, pärast kustutamist.

Staatilisi märksõnu ei saa Apexi päästikus kasutada. Apexi päästikus saab kasutada kõiki siseklassidele kohaldatavaid märksõnu.

Iga käivitajaga, mis tagastab käitusaja konteksti, on määratletud kaudsed muutujad. Need muutujad on süsteemis määratletud. Päästikuklass. Neid muutujaid nimetatakse kontekstimuutujateks. Alloleval ekraanipildil on näha kontekstimuutujat, mida toetab tipupäästik.

Apex Trigger

Apex Trigger

Järgnevalt on käsitletud kontekstimuutujat tipupäästikus:

  • Ärge kasutage DML-toimingutes trigger.new ja trigger.old.
  • Trigger.new ei saa kustutada.
  • Trigger.new on kirjutuskaitstud.
  • Trigger.new saab kasutada sama objekti väljade väärtuste muutmiseks ainult enne trigerit.

Allpool kuvatõmmised loetlevad kaalutlused konkreetsete toimingute kohta erinevatel käivitussündmustel.

Apex Trigger

Apex Trigger

Partii klass Apexis

Partiiklassi müügijõududes kasutatakse suure hulga kirjete töötlemiseks, mis tavapärasel töötlemisel ületaksid tipuregulaatori piiranguid. Partiiklass täidab koodi asünkroonselt.

Partiiklassi eelised on järgmised:

  • Partiiklass töötleb andmeid tükkidena ja kui tükki ei õnnestu töödelda, siis kõiki edukalt töödeldud tükke tagasi ei kerida.
  • Iga pakettklassi andmekogum töödeldakse uute valitsejate piirangutega, mis tagavad, et kood käivitub regulaatori täitmispiirangute piires.
  • Andmebaas. Partiiklassina kasutamiseks tuleb partiiklassina kasutada tippklassi liides. See pakub kolme meetodit, mida partiiklass peab rakendama.

Järgnevalt on toodud andmebaasi kolm meetodit. Pakitav liides:

1.start()

See meetod genereerib kirjete või objektide ulatuse, mida töödeldakse liidese meetodi täitmisega. Partii täitmise ajal kutsutakse seda ainult üks kord. See meetod tagastab kas objekti Database.QueryLocator või iterable. Objekti Database.QueryLocator abil SQL-päringuga hangitud kirjete arv on 50 miljonit kirjet, kuid itereeritavat kirjet kasutades on SQL-päringuga hangitavate kirjete koguarv ainult 50000 XNUMX. Iterablet kasutatakse partiiklassi keeruka ulatuse genereerimiseks.

Käivitusmeetodi süntaks:

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

2.execute()

Seda meetodit kasutatakse iga andmepaki töötlemiseks. Iga kirjete tüki jaoks kutsutakse välja täitmismeetod. Täitmise vaikepartii suurus on 200 kirjet. Käivitusmeetodil on kaks argumenti:

viide objektile Database.BatchableContext,

sObjektide loend, näiteks loend või parameetritega tüüpide loendit. Täitmismeetodi süntaks:

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

3.finish()

Lõppmeetodit kutsutakse üks kord partiiklassi täitmise ajal. Järeltöötlustoiminguid saab teha viimistlusmeetodil. Näiteks: kinnitusmeili saatmine. Seda meetodit kutsutakse välja, kui kogu partii töödeldakse. Lõpetamismeetodi süntaks:

global void finish(Database.BatchableContext BC){}

Database.BatchableContext objekt

Iga andmebaasi meetod. Batchable liidesel on viide Database.BatchableContext objektile.

Seda objekti kasutatakse pakktöö edenemise jälgimiseks.

BatchableContexti pakutavad eksemplarimeetodid on järgmised:

  • getChildJobId(): see meetod tagastab hetkel töödeldud pakktöö ID.
  • getJobId(): see meetod tagastab pakktöö ID.

Allpool on partiiklassi süntaks:

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 meetod

Database.executeBatch meetodit kasutatakse partiiklassi täitmiseks.

Sellel meetodil on kaks parameetrit: töödeldava partiiklassi eksemplar, parameeter Options partii suuruse määramiseks, kui seda pole määratud, on vaikesuurus 200.

Database.executeBatch süntaks:

Database.executeBatch(myBatchObject,scope)

Pakettklassi nime MyBatchClass täitmine:

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

Database.stateful

Partiiklass on vaikimisi olekuta. Iga kord, kui käivitamismeetodit kutsutakse, võetakse vastu objekti uus koopia, initsialiseeritakse kõik klassi muutujad.

Database.stateful on rakendatud partiiklassi olekupõhiseks muutmiseks.

Kui teie partiiklass rakendas andmebaas olekuga liides säilitavad kõik eksemplarimuutujad oma väärtused, kuid staatilised muutujad lähtestatakse tehingute vahel.

kokkuvõte

  • Apex on tugevasti trükitud, objektorienteeritud programmeerimiskeel mis kompileerib ja töötab force.com platvormil
  • Apexi programmeerimiskeel on tõstutundlik keel
  • Apexis on kahte tüüpi toimingute voogu: 1) arendaja tegevus 2) lõppkasutaja tegevus
  • Apex aitab teil luua veebiteenuseid, mis integreerivad Salesforce'i teiste rakendustega.
  • Tipu poolt toetatavad andmetüübid on: 1) Primitiivne 2) kogud 3) sObject, Enums, 4) klassid, 5) objektid ja liidesed
  • Apexi tugi on avalik, privaatne, kaitstud ja globaalne
  • Apexis kasutatavad märksõnad on: 1) koos jagamisega, 2) ilma jagamiseta, 3) staatiline, 4) lõplik 5) tagastamine, 6) null, 7) virtuaalne, 8) abstraktne
  • String on tähemärkide kogum, millel pole tähemärgipiiranguid
  • Apex-regulaatori limiidid on piirangud, mida rakendab tipu käitusaegne mootor tagamaks, et mis tahes raja tipukood ja -protsessid
  • Getterit ja seadjat saab kasutada koodi käivitamiseks enne atribuudi väärtusele juurdepääsu või selle muutmist
  • Salesforce'is on tipuklasside loomiseks kolm võimalust: 1) arendajakonsool 2) Force.com IDE ja 3) Apex klassi üksikasjade leht.
  • Apex-päästikud võimaldavad teil käivitada kohandatud tipu enne ja pärast DML-toimingu sooritamist.
  • Müügipersonali partiiklassi kasutatakse suure hulga kirjete töötlemiseks, mis tavapärasel töötlemisel ületaksid tippregulaatori piiranguid.

Võta see postitus kokku järgmiselt: