Saya bekerja sebagai pengembang/admin Salesforce di organisasi berukuran sedang. Seringkali atasan saya meminta saya membuat sesuatu yang "Aneh" di Salesforce. Mereka memunculkan ide-idenya dan tugas saya adalah mewujudkannya. Jenis dinamika ini sangat menyenangkan untuk mempelajari hal-hal baru tetapi tidak selalu mengarah pada praktik terbaik.

Bagaimana cara memicu pembangun proses dari menekan tombol pada suatu objek?

Contoh saya akan membahas cara membuat tombol khusus pada akun yang akan menambah bidang angka yang akan menyebabkan pembuat proses diaktifkan.

Persyaratan: Bidang nomor baru, tombol khusus, pembuat proses. Beberapa pemahaman tentang JavaScript dan SOQL.

Buat bidang nomor baru. (Saya beri nama Process Builder Trigger saya) Beri nama dan ingat untuk memberikan deskripsinya agar nanti admin/dev tidak bingung.

Buat tombol khusus baru. Beri label dan deskripsi.

Penting:Jenis Tampilan harus Tombol Halaman Detail. Perilaku harus Jalankan JavaScript.

Masukkan kode ini ke tombol Anda. Mengubah nama variabel sesuai kebutuhan.

//I am assuming this code allows for the JS SOQL calls
//Check the resources section for SF documentation
{!REQUIRESCRIPT("/soap/ajax/29.0/connection.js")} 
{!REQUIRESCRIPT("/soap/ajax/29.0/apex.js")}
//Select the current account records and put it into the record //variable
var records = sforce.connection.query("SELECT Id, Process_Builder_Trigger__c FROM Account Where id = '{!Account.Id}'");
//The records object come with other garbage so we need to only pull //out the account we are working with
//Pull the account object out of the records variable and set it to //accountRec
var accountRec = records.getArray('records')[0];
//Increase accountRec Process_Builder_Trigger__c 
//JS sees the number field as a string so this will make sure that //is a number - Number(accountRec.Process_Builder_Trigger__c)
accountRec.Process_Builder_Trigger__c = Number(accountRec.Process_Builder_Trigger__c) + 1;
//Update accountRec object 
sforce.connection.update([accountRec]);
//Reload the page 
window.location.reload();

Tambahkan tombol ke tata letak objek.

Terakhir buat pembuat proses yang aktif ketika bidang nomor diubah. Sekarang pembuat proses dapat melakukan apa pun yang Anda inginkan!

Ini sebenarnya hanya 5 baris kode. Pemahaman bahwa menekan tombol akan menambah jumlah kolom angka daripada harus melakukan pengeditan sebaris atau membuka halaman edit adalah kuncinya. Di bagian sumber daya saya akan menyertakan inti dari versi saat ini yang saya miliki dengan validasi pengguna dan kotak dialog konfirmasi untuk meminta pengguna.

Tetapi mengapa?

Salah satu alasan utama saya menggunakan metode tombol dan bidang angka daripada menggunakan kotak centang adalah karena Anda dapat menggunakan kembali bidang angka dan pada dasarnya secara otomatis menghitung berapa kali tombol telah ditekan.

Dan karena itu menarik.

Masalah

Salah satu masalah besar yang saya temukan dalam menggunakan metode ini untuk mengaktifkan pembuat proses adalah lambatnya metode ini. Ada penundaan sejak Anda mengeklik tombol dan saat laman disegarkan. Bagi organisasi saya, hal ini bukan masalah, namun bagi organisasi lain mungkin menjadi masalah. Karena ada jeda antara penyegaran halaman dan klik tombol. Beberapa pengguna yang senang mengklik mungkin dapat mengaktifkan pembuat proses berkali-kali. Ini juga alasan saya menambahkan kode konfirmasi JS — lihat intinya.

Penafian/Sumber Daya

Saya bukan "ahli" dalam administrasi atau pengembangan Salesforce. Saat ini (24/8/2016) saya memiliki pengalaman 1 tahun dengan Salesforce. Bekerja pada Pengembang Platform Tersertifikasi Salesforce saya. Tentu saja ada cara lain untuk mengatasi masalah ini, tetapi inilah cara yang saya gunakan untuk mempelajari sesuatu yang baru dan pada dasarnya melihat apakah itu mungkin.

Dokumentasi Force.com Workbook pada JS dan tombol khusus.

Terima kasih sudah sampai sejauh ini.