he he, ceritanya mau nulis artikel ini biar nanti tidak lupa kalau ada implementasi / coding khususnya apex code di salesforce.com. Berawal dari pekerjaan kantor maintenece produknya salesforce dari pelanggan, ceritanya fixing bug dari codingan orang lain neh,,, berasa pengen mual neh haha, entah dikejar deadline atau bonus, ehhhhhh# jadi kualitas code yang dihasilkan kurang bagus. Saya berpendapat seperti ini karena memang banyak error ditemukan oleh user di server productionnya.
Diartikel ini saya akan membahas salah satu bug fix, error yang disebabkan oleh governor limit khususnya apex salesforce, error ini akan ditemukan jika proses eksekusi data akan melibatkan banyak data, sebagai contoh ya, user mengupdate record opportunity yang mempunyai child opportunity line item, error tidak akan ditemui jika child (opportunity line item) hanya mempunyai jumlah yang sedikit, jika banyak akan mengakibatkan error karena limit dari salesforce itu sendiri.
Beberapa contoh code untuk menghindari governor limit:
Bulkifying DML calls
singkatnya adalah untuk mengupdate data secara bersama yang dikumpulkan di sebuah tampungan list, contohnya dari pada kita mengupdate tiap record satu persatu di dalam loop, lebih efisien jika kita mengumpulkan data yang akan diupdate di dalam list kemudian mengupdate secara bersama data di list tersebut (bulkifying).
// Contoh yg kurang efisien, akan menyebabkan limit jika list lebih dari 150
for(opportunityLineItem li : liList) {
if (li.Units > 10) {
li.Description = 'Banyak rek!!';
}
update li;
}
//Contoh bulkify code
List<OpportunityLineItem> updatedList = new List<OpportunityLineItem>();
for(OpportunityLineItem li : liList) {
if (li.Units > 10) {
li.Description = 'Banyak rekk!!';
updatedList.add(li);
}
}
update updatedList;
Efisiensi soql query
Soql for loop