Tutorial APEX: Kelas Pemrograman Apex & Contoh Coding

Apa itu Apex di Salesforce?

puncak adalah bahasa pemrograman berorientasi objek dan sangat diketik yang dikembangkan oleh Salesforce untuk membangun Perangkat Lunak sebagai Layanan (SaaS) dan Manajemen Hubungan Pelanggan (CRM). Apex membantu pengembang membuat aplikasi SaaS pihak ketiga dan menambahkan logika bisnis ke peristiwa sistem dengan menyediakan dukungan database back-end dan antarmuka klien-server.

Apex membantu pengembang menambahkan logika bisnis ke peristiwa sistem seperti klik tombol, pembaruan data terkait, dan halaman Visualforce. Apex memiliki sintaks yang mirip dengan Java. Daftar ke Tenaga Penjualan untuk mempelajari cara kerja CRM

Fitur Bahasa Pemrograman Apex

Berikut adalah fitur penting Salesforce Apex:

  • Apex adalah bahasa yang tidak peka huruf besar-kecil.
  • Anda dapat melakukan operasi DML seperti INSERT, UPDATE, UPSERT, DELETE pada catatan sObject menggunakan apex.
  • Anda dapat menanyakan catatan sObject menggunakan SOQL (bahasa kueri objek salesforce) dan SOSL (bahasa pencarian objek salesforce) di apex.
  • Memungkinkan Anda membuat tes unit dan jalankan mereka untuk memverifikasi cakupan kode dan efisiensi kode di apex.
  • Apex dijalankan di lingkungan multi-penyewa, dan Salesforce telah menetapkan beberapa batasan gubernur yang mencegah pengguna mengendalikan sumber daya bersama. Kode apa pun yang melewati batas gubernur tenaga penjualan gagal, kesalahan muncul.
  • Objek Salesforce dapat digunakan sebagai tipe data di apex. Misalnya -
    Account acc = new Account();

    ,di sini Akun adalah objek tenaga penjualan standar.

  • Apex secara otomatis ditingkatkan pada setiap rilis Salesforce.

Kapan Pengembang Harus Memilih Apex

Kode Apex hanya boleh ditulis jika skenario bisnis terlalu rumit dan tidak dapat diimplementasikan menggunakan fungsionalitas yang telah dibuat sebelumnya yang disediakan oleh Salesforce.

Berikut ini adalah beberapa skenario di mana kita perlu menulis kode apex:

  • Untuk membuat layanan web yang mengintegrasikan Salesforce dengan aplikasi lain.
  • Untuk menerapkan validasi khusus pada objek.
  • Untuk menjalankan logika apex khusus ketika operasi DML dilakukan.
  • Untuk mengimplementasikan fungsionalitas yang tidak dapat diimplementasikan menggunakan alur alur kerja yang ada dan fungsionalitas pembuat proses.
  • Untuk mengatur layanan email, Anda perlu menyertakan pemrosesan konten, tajuk, dan lampiran email menggunakan kode apex.

Struktur Kerja Apex

Sekarang dalam tutorial Apex ini, kita akan belajar tentang struktur kerja Apex:

Berikut ini adalah alur tindakan untuk kode apex:

  • Tindakan Pengembang: Semua kode apex yang ditulis oleh pengembang dikompilasi menjadi serangkaian instruksi yang dapat dipahami oleh penerjemah runtime apex ketika pengembang menyimpan kode ke platform dan instruksi ini kemudian disimpan sebagai metadata ke platform.
  • Tindakan Pengguna Akhir: Saat peristiwa pengguna mengeksekusi kode apex, server platform mendapatkan instruksi yang dikompilasi dari metadata dan menjalankannya melalui juru bahasa apex sebelum mengembalikan hasilnya.
Struktur Kerja Apex
Struktur Kerja Apex

Sintaks Puncak

Deklarasi Variabel

Karena apex adalah bahasa yang diketik dengan kuat, maka wajib untuk mendeklarasikan variabel dengan tipe data di apex.

Sebagai contoh:

contact con = new contact(); 

di sini variabel con dideklarasikan dengan contact sebagai tipe data.

Kueri SOQL

SOQL adalah singkatan dari bahasa kueri objek tenaga penjualan. SOQL digunakan untuk mengambil catatan sObject dari database Salesforce. Misalnya-

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

Kueri di atas mengambil catatan akun dari database tenaga penjualan.

Pernyataan Lingkaran

Pernyataan loop digunakan untuk mengulangi catatan dalam daftar. Jumlah iterasi sama dengan jumlah record dalam daftar. Misalnya:

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

Dalam cuplikan kode di atas, listOfAccounts adalah variabel tipe data daftar.

Pernyataan Kontrol Aliran

Pernyataan kontrol aliran bermanfaat ketika Anda ingin mengeksekusi beberapa baris kode berdasarkan beberapa kondisi.

Sebagai contoh:

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
}

Cuplikan kode di atas menanyakan catatan akun dari database dan memeriksa ukuran daftar.

pernyataan DML

DML adalah singkatan dari bahasa manipulasi data. Pernyataan DML digunakan untuk memanipulasi data dalam database Salesforce. Misalnya -

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

Lingkungan Pengembangan Puncak

Sekarang dalam tutorial pemrograman Apex ini, kita akan belajar tentang Apex Development Environment:

Kode Apex dapat dikembangkan dalam edisi sandbox dan pengembang Salesforce.

Merupakan praktik terbaik untuk mengembangkan kode di lingkungan sandbox dan kemudian menerapkannya ke lingkungan produksi.

Lingkungan Pengembangan Puncak

Alat pengembangan kode Apex: Berikut adalah tiga alat yang tersedia untuk mengembangkan kode Apex di semua edisi Salesforce.

  • Konsol Pengembang Force.com
  • IDE Force.com
  • Editor Kode di Antarmuka Pengguna SalesforceAnda

Tipe Data di Apex

Berikut ini adalah tipe data yang didukung oleh apex:

Primitif

Bilangan bulat Double, Long, Date, Date Time, String, ID, dan Boolean dianggap sebagai tipe data primitif. Semua tipe data primitif diteruskan berdasarkan nilai, bukan referensi.

koleksi

Tiga jenis koleksi tersedia di Apex

  • Daftar: Ini adalah kumpulan objek primitif, sObjects, koleksi, atau Apex yang diurutkan berdasarkan indeks.
  • Set: Kumpulan primitif unik yang tidak berurutan.
  • Peta: Ini adalah kumpulan kunci unik dan primitif yang dipetakan ke nilai tunggal yang dapat berupa objek primitif, sObjects, collections, atau Apex.

sObjek

Ini adalah tipe data khusus di Salesforce. Ini mirip dengan tabel di SQL dan berisi bidang yang mirip dengan kolom di SQL.

Enum

Enum adalah tipe data abstrak yang menyimpan satu nilai dari sekumpulan pengidentifikasi tertentu yang terbatas

Kelas

benda

Ini merujuk pada tipe data apa pun yang didukung di Apex.

Antarmuka

Penentu Akses Apex

Berikut ini adalah penentu akses yang didukung oleh apex:

Publik

Penentu akses ini memberikan akses ke kelas, metode, variabel untuk digunakan oleh puncak dalam namespace.

Swasta

Penentu akses ini memberikan akses ke kelas, metode, variabel untuk digunakan secara lokal atau dalam bagian kode yang ditentukan. Semua teknik, variabel yang tidak memiliki penentu akses apa pun memiliki penentu akses default pribadi.

Terlindung

Penentu akses ini memberikan akses ke metode, variabel untuk digunakan oleh kelas dalam mana pun dalam mendefinisikan kelas Apex.

Aksi

Penentu akses ini memberikan akses ke kelas, metode, variabel untuk digunakan oleh puncak di dalam namespace maupun di luar namespace. Merupakan praktik terbaik untuk tidak menggunakan kata kunci global sampai diperlukan.

Kata kunci di Apex

Dengan berbagi

Jika suatu kelas didefinisikan dengan kata kunci ini, maka semua aturan berbagi yang berlaku untuk pengguna saat ini akan diterapkan dan jika kata kunci ini tidak ada, maka kode akan dieksekusi dalam konteks sistem.

Untuk Contoh:

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

Tanpa berbagi

Jika suatu kelas didefinisikan dengan kata kunci ini, maka semua aturan berbagi yang berlaku untuk pengguna saat ini tidak akan diterapkan.

Untuk Contoh:

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

Statis

Sebuah variabel, Metode didefinisikan dengan kata kunci statis yang diinisialisasi satu kali dan dikaitkan dengan kelas. Variabel statis, metode dapat dipanggil dengan nama kelas secara langsung tanpa membuat instance kelas.

Terakhir

Sebuah konstanta, Metode didefinisikan dengan kata kunci terakhir tidak dapat diganti. Misalnya:

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

Jika Anda mencoba mengganti nilai variabel INT_CONST ini, maka Anda akan mendapatkan pengecualian – System.FinalException: Variabel akhir telah diinisialisasi.

Pengembalian

Kata kunci ini mengembalikan nilai dari suatu metode. Misalnya:

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

Null

Ini mendefinisikan konstanta nol dan dapat ditugaskan ke variabel. Misalnya

 Boolean b = null;

maya

Jika suatu kelas didefinisikan dengan kata kunci virtual, kelas tersebut dapat diperluas dan diganti.

Abstrak

Jika suatu kelas didefinisikan dengan kata kunci abstrak, kelas tersebut harus berisi setidaknya satu metode dengan kata kunci abstrak, dan metode tersebut hanya boleh memiliki tanda tangan.

Misalnya

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

Tali Puncak

String adalah sekumpulan karakter tanpa batas karakter. Misalnya:

String name = 'Test';

Ada beberapa metode bawaan yang disediakan oleh kelas String di Salesforce. Berikut ini adalah beberapa fungsi yang sering dan paling banyak digunakan:

menyingkat (maxWidth)

Metode ini memotong string ke panjang yang ditentukan dan mengembalikannya jika panjang string yang diberikan lebih panjang dari panjang yang ditentukan; jika tidak, ia mengembalikan string asli. Jika nilai untuk variabel maxWidth kurang dari 4, metode ini mengembalikan pengecualian runtime – System.StringException: Lebar singkatan minimum adalah 4

Sebagai contoh:

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

kapitalisasi ()

Metode ini mengubah huruf pertama dari sebuah string menjadi huruf judul dan mengembalikannya.

Sebagai contoh:

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

berisi (substring)

Metode ini mengembalikan nilai true jika String yang memanggil metode tersebut berisi substring yang ditentukan.

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

sama dengan(stringOrId)

Metode ini mengembalikan nilai true jika parameter yang diteruskan bukan nol dan menunjukkan urutan karakter biner yang sama dengan string yang memanggil metode tersebut.

Saat membandingkan nilai Id, panjang ID mungkin tidak sama. Misalnya: jika string yang mewakili 15 karakter id dibandingkan dengan objek yang mewakili 18 karakter ID, metode ini mengembalikan nilai true. Misalnya:

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

Dalam contoh di atas, metode yang sama membandingkan 15 karakter Id objek dengan 18 karakter Id objek dan jika kedua id ini mewakili urutan biner yang sama maka akan menghasilkan nilai true.

Gunakan metode ini untuk membuat perbandingan peka huruf besar-kecil.

escapeSingleQuotes(stringToEscape)

Metode ini menambahkan karakter escape (\) sebelum kutipan tunggal dalam string dan mengembalikannya. Metode ini mencegah injeksi SOQL saat membuat kueri SOQL dinamis. Metode ini memastikan bahwa semua tanda kutip tunggal dianggap sebagai string penutup, bukan perintah database.

Sebagai contoh:

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

hapus (substring)

Metode ini menghapus semua kemunculan substring yang disebutkan dari String yang memanggil metode tersebut dan mengembalikan string yang dihasilkan.

Misalnya

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

substring(mulaiIndeks)

Metode ini mengembalikan substring dimulai dari karakter di startIndex meluas ke string terakhir.

Untuk Contoh:

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

balik()

Metode ini membalikkan semua karakter string dan mengembalikannya. Misalnya:

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

trim(): Metode ini menghapus semua spasi putih di awal string dan mengembalikannya.

nilaiDari(untuk Mengonversi)

Metode ini mengembalikan representasi string dari objek yang diteruskan.

Batas Gubernur Puncak

Batasan pengatur Apex adalah batasan yang diberlakukan oleh mesin runtime Apex untuk memastikan bahwa kode dan proses runway Apex apa pun tidak mengendalikan sumber daya bersama dan tidak melanggar pemrosesan untuk pengguna lain di lingkungan multitenant. Batasan ini diverifikasi terhadap setiap transaksi Apex. Berikut ini adalah batasan pengatur yang ditetapkan oleh Salesforce pada setiap transaksi Apex:

Uraian Teknis batas
Kueri SOQL yang dapat dilakukan dalam transaksi sinkron 100
Kueri SOQL yang dapat dilakukan dalam transaksi Asinkron 200
Catatan yang dapat diambil dengan kueri SOQL 50000
Catatan yang dapat diambil oleh Database.getQueryLocator 10000
Kueri SOSL yang dapat dilakukan dalam transaksi apex 20
Catatan yang bisa diambil dengan kueri SOSL 2000
Pernyataan DML yang dapat dilakukan dalam transaksi apex 150
Catatan yang dapat diproses sebagai hasil dari pernyataan DML, Approval.process, atau database.emptyRecycleBin 10000
Info yang dapat dilakukan dalam transaksi apex. 100
Batas waktu tunggu kumulatif pada semua pemanggilan yang dilakukan dalam transaksi apex 120 detik
Batasi pekerjaan apex yang dapat ditambahkan ke antrian dengan System.enqueueJob 50
Batas waktu eksekusi untuk setiap transaksi Apex 10 menit
Batasan karakter yang dapat digunakan di kelas apex dan pemicu 1 juta
Batas waktu CPU untuk transaksi sinkron milidetik 10,000
Batas waktu CPU untuk transaksi asinkron milidetik 60,000

Apex Pengambil dan Penyetel

Properti Apex mirip dengan variabel apex. Pengambil dan penyetel diperlukan untuk properti apex. Pengambil dan penyetel dapat digunakan untuk mengeksekusi kode sebelum nilai properti diakses atau diubah. Kode di get accessor dijalankan ketika nilai properti dibaca. Kode dalam pengakses set berjalan ketika nilai properti diubah. Properti apa pun yang memiliki pengakses get dianggap hanya baca, properti apa pun yang memiliki pengakses tetap dianggap hanya menulis, properti apa pun yang memiliki pengakses get dan set dianggap sebagai baca-tulis. Sintaks properti apex:

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

Di sini, access_modifier adalah pengubah akses properti. return_type adalah tipe data properti. property_name adalah nama properti.

Di bawah ini adalah contoh properti apex yang memiliki aksesor get dan set.

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

Di sini, nama properti adalah nama, dan merupakan properti publik, dan mengembalikan tipe data string.

Tidak wajib untuk memiliki beberapa kode di blok get dan set. Blok ini dapat dikosongkan untuk menentukan properti otomatis. Misalnya:

public double MyReadWriteProp{ get; set; } 

Dapatkan dan setel pengakses juga dapat ditentukan dengan pengubah aksesnya. Jika pengakses didefinisikan dengan pengubah, maka pengakses akan menggantikan pengubah akses untuk properti tersebut. Misalnya:

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

Kelas Puncak

Kelas apex adalah cetak biru atau templat tempat objek dibuat. Objek adalah turunan dari suatu kelas.

Ada tiga cara membuat kelas apex di Salesforce:

Konsol Pengembang

IDE Force.com

Halaman detail kelas Apex.

Di apex, Anda bisa mendefinisikan kelas luar yang disebut juga kelas tingkat atas, dan Anda juga bisa mendefinisikan kelas di dalam kelas luar yang disebut kelas dalam.

Wajib menggunakan pengubah akses seperti global atau public dalam deklarasi kelas luar.

Tidak perlu menggunakan pengubah akses dalam deklarasi kelas dalam.

Kelas apex didefinisikan menggunakan kata kunci class diikuti dengan nama kelas.

Kata kunci extends digunakan untuk memperluas kelas yang ada dengan kelas apex, dan kata kunci implementasi digunakan untuk mengimplementasikan antarmuka dengan kelas apex.

Salesforce Apex tidak mendukung banyak warisan, kelas apex hanya dapat memperluas satu kelas apex yang ada tetapi dapat mengimplementasikan banyak antarmuka.

Kelas apex dapat berisi konstruktor yang ditentukan pengguna, dan jika konstruktor yang ditentukan pengguna tidak tersedia, konstruktor default akan digunakan. Kode dalam konstruktor dijalankan ketika sebuah instance kelas dibuat.

Sintaks contoh Kelas Apex:

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

Kata kunci new digunakan untuk membuat instance kelas apex. Di bawah ini adalah sintaks untuk membuat instance kelas apex.

myApexClass obj = new myApexClass();

Pemicu Puncak

Pemicu Apex memungkinkan Anda menjalankan apex khusus sebelum dan sesudah operasi DML dilakukan.

Dukungan Apex mengikuti dua jenis pemicu:

Sebelum pemicu: Pemicu ini digunakan untuk memvalidasi dan memperbarui nilai bidang sebelum rekaman disimpan ke database.

Setelah pemicu: Pemicu ini digunakan untuk mengakses bidang (ID rekaman, bidang TanggalModifikasi Terakhir) yang ditetapkan oleh sistem setelah catatan dimasukkan ke database. Nilai bidang ini dapat digunakan untuk mengubah catatan lain. Catatan yang diaktifkan setelah pemicu bersifat hanya-baca.

Ini adalah praktik terbaik untuk menulis pemicu yang besar. Pemicu yang besar dapat memproses satu rekaman serta beberapa rekaman sekaligus.

Sintaks pemicu apex:

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

Di sini, TriggerName adalah nama pemicu, ObjectName adalah nama objek tempat pemicu ditulis, trigger_events adalah daftar peristiwa yang dipisahkan koma.

Berikut ini adalah kejadian-kejadian yang didukung oleh pemicu apex: sebelum penyisipan, sebelum pembaruan, sebelum penghapusan, setelah penyisipan, setelah pembaruan, setelah penghapusan, setelah pembatalan penghapusan.

Kata kunci statis tidak dapat digunakan dalam pemicu Apex. Semua kata kunci yang berlaku untuk kelas dalam dapat digunakan dalam pemicu Apex.

Ada variabel implisit yang ditentukan oleh setiap pemicu yang mengembalikan konteks run-time. Variabel-variabel ini didefinisikan dalam sistem. Kelas pemicu. Variabel-variabel ini disebut variabel konteks. Tangkapan layar di bawah menunjukkan variabel konteks yang didukung oleh pemicu apex.

Pemicu Puncak

Pemicu Puncak

Berikut ini adalah pertimbangan variabel konteks dalam pemicu apex:

  • Jangan gunakan trigger.new dan trigger.old dalam operasi DML.
  • Trigger.new tidak dapat dihapus.
  • Trigger.new bersifat hanya baca.
  • Trigger.new dapat digunakan untuk mengubah nilai field pada objek yang sama sebelum trigger saja.

Tangkapan layar di bawah mencantumkan pertimbangan tentang tindakan spesifik dalam peristiwa pemicu yang berbeda.

Pemicu Puncak

Pemicu Puncak

Kelas Batch di Apex

Kelas batch di Salesforce digunakan untuk memproses sejumlah besar catatan yang akan melampaui batas apex governor jika diproses secara normal. Kelas batch mengeksekusi kode secara asinkron.

Berikut ini adalah keuntungan dari kelas batch:

  • Kelas batch memproses data dalam potongan-potongan dan jika sebuah potongan gagal diproses dengan sukses, semua potongan yang berhasil diproses tidak dapat diputar kembali.
  • Setiap potongan data dalam kelas batch diproses dengan serangkaian batas gubernur baru yang memastikan bahwa kode dijalankan dalam batas eksekusi gubernur.
  • Basis data. Antarmuka batchable harus diimplementasikan oleh kelas apex untuk digunakan sebagai kelas batch. Ini menyediakan tiga metode yang harus diimplementasikan oleh kelas batch.

Berikut ini adalah tiga metode yang disediakan oleh Database. Antarmuka batchable:

1.mulai()

Metode ini menghasilkan cakupan rekaman atau objek yang akan diproses oleh metode antarmuka execute. Selama eksekusi batch, metode ini dipanggil sekali saja. Metode ini mengembalikan objek Database.QueryLocator atau Iterable. Jumlah rekaman yang diambil oleh kueri SQL menggunakan objek Database.QueryLocator adalah 50 juta rekaman, tetapi menggunakan iterable, jumlah total rekaman yang dapat diambil oleh kueri SQL hanya 50000. Iterable digunakan untuk menghasilkan cakupan kompleks untuk kelas batch.

Sintaks metode awal:

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

2.eksekusi()

Metode ini digunakan untuk memproses setiap potongan data. Untuk setiap potongan rekaman, metode eksekusi dipanggil. Ukuran batch default untuk eksekusi adalah 200 catatan. Metode eksekusi membutuhkan dua argumen:

Referensi ke objek Database.BatchableContext,

Daftar sObjects, seperti List , atau daftar tipe berparameter. Sintaks metode eksekusi:

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

3.selesai()

Metode finish dipanggil sekali selama eksekusi kelas batch. Operasi pasca-pemrosesan dapat dilakukan dalam metode finish. Misalnya: mengirim email konfirmasi. Metode ini dipanggil saat semua batch diproses. Sintaks metode Finish:

global void finish(Database.BatchableContext BC){}

Objek Database.BatchableContext

Setiap metode Database. Antarmuka batchable memiliki referensi ke objek Database.BatchableContext.

Objek ini digunakan untuk melacak kemajuan pekerjaan batch.

Berikut ini adalah metode instan yang disediakan oleh BatchableContext:

  • getChildJobId(): Metode ini mengembalikan ID pekerjaan batch yang sedang diproses.
  • getJobId(): Metode ini mengembalikan ID pekerjaan batch.

Di bawah ini adalah sintaks kelas batch:

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
}
}

Metode Database.executeBatch

Metode Database.executeBatch digunakan untuk mengeksekusi kelas batch.

Metode ini membutuhkan dua parameter: Instance dari kelas batch yang akan diproses, Parameter opsi untuk menentukan ukuran batch jika tidak ditentukan maka dibutuhkan ukuran default 200.

Sintaks Database.executeBatch :

Database.executeBatch(myBatchObject,scope)

Mengeksekusi nama kelas batch MyBatchClass :

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

Basis data.stateful

Kelas batch tidak memiliki kewarganegaraan secara default. Setiap kali metode eksekusi dipanggil, salinan baru suatu objek diterima, semua variabel kelas diinisialisasi.

Database.stateful diimplementasikan untuk membuat kelas batch menjadi stateful.

Jika kelas batch Anda mengimplementasikan Basis Data , antarmuka stateful, semua variabel instan mempertahankan nilainya, tetapi variabel statis disetel ulang di antara transaksi.

Ringkasan

  • Apex adalah tipe yang kuat, berorientasi objek bahasa pemrograman yang dikompilasi dan dijalankan pada platform force.com
  • Bahasa pemrograman Apex adalah bahasa yang tidak membedakan huruf besar dan kecil
  • Dua jenis alur tindakan di Apex adalah 1) Tindakan pengembang 2) Tindakan pengguna akhir
  • Apex membantu Anda membuat layanan web yang mengintegrasikan Salesforce dengan aplikasi lain.
  • Tipe data yang didukung oleh apex adalah: 1).Primitive 2) Koleksi 3) sObject, Enums, 4) Kelas, 5) Objek dan Antarmuka
  • Publik, Swasta, Dilindungi, dan Global adalah dukungan yang ditentukan oleh Apex
  • Kata kunci yang digunakan di Apex adalah : 1) Dengan Berbagi, 2) Tanpa berbagi, 3) Statis, 4) Final 5) Return, 6) Null, 7) Virtual, 8) Abstrak
  • String adalah sekumpulan karakter tanpa batas karakter
  • Batas gubernur apex adalah batas yang diberlakukan oleh mesin runtime apex untuk memastikan bahwa setiap kode dan proses apex runway
  • Pengambil dan penyetel dapat digunakan untuk mengeksekusi kode sebelum nilai properti diakses atau diubah
  • Ada tiga cara membuat kelas apex di Salesforce: 1) Konsol Pengembang 2) IDE Force.com dan, 3) halaman detail kelas Apex.
  • Pemicu Apex memungkinkan Anda menjalankan apex khusus sebelum dan sesudah operasi DML dilakukan.
  • Kelas batch di tenaga penjualan digunakan untuk memproses sejumlah besar catatan yang akan melebihi batas gubernur puncak jika diproses secara normal.