Belum lama ini ada proyek cukup intensif berkaitan dengan Case Management di platform Salesforce.com. Salesforce sendiri sudah memiliki fitur ini, yang masuk dalam produk Service Cloud, dan cukup banyak fasilitas yang tersedia. Salah satunya adalah Email-to-case, yang memungkinkan kita menerima keluhan/saran melalui email, dan secara otomatis system akan membuat record di object Case (standard object).
Aku membuat trigger untuk object Case, yang akan mengupdate field tertentu berdasar data yang diinput. Ternyata, trigger yang aku buat tidak berfungsi dengan baik jika record Case dibuat dari Email-to-case. Padahal kalau dibuat secara manual (data entry), atau dibuat dari fitur Web-to-case, triggernya bisa berfungsi dengan baik.
Nah, aku coba debug, gak muncul di Debug Log. Ternyata yang user yang menjalankan peran saat proses Email-to-case adalah user "System", bukan user yang aku pakai. Pantas saja debug log gak ada isinya, karena bukan userku yang melakukannya. Pengaturan tentang siapa yang berperan dalam Email-to-case ini bisa dilakukan di menu:
Setup > Services > Support Settings, bagian "Automated Case User".
Masalahnya, untuk membuat Debug Log user System, tidak bisa dilakukan langsung lewat menu Debug Log, karena dianggap user tidak dikenali.
Setelah browsing sebentar, nemu solusi di sini:
https://help.salesforce.com/articleView?id=000333602&type=1&mode=1
Di situ dianjurkan untuk memakai Workbench, terus masuk ke menu Utilities > REST Explorer.
PIlih metode POST, gunakan URL berikut
/services/data/v35.0/tooling/sobjects/TraceFlag/
Selanjutnya gunakan contoh di bawah ini sebagai body:
{ "TracedEntityId" : "0050p000002Qr3OAAS", "ExpirationDate" : "2021-04-21T13:04:31.000+0000", "DebugLevelId" : "7dl2w000000Hp0eAAC", "LogType" : "USER_DEBUG", "StartDate" : "2021-04-21T03:34:31.000+0000" }
Sebelum execute, sesuaikan data dari contoh tersebut:
- TraceEntityId : ID dari user System (SELECT Id FROM User WHERE Name = 'System')
- DebugLevelId : ID dari DebugLevel (SELECT Id, DeveloperName FROM DebugLevel)
Setelah di-execute dan sukses, cek di Debug Log, seharusnya ada pilihan debug log untuk user tersebut sudah aktif.
Note: untuk query DebugLevelId, gunakan Developer Console dengan mengaktifkan Tooling API.
Oh ya, format tanggal adalah dalam GMT, jadi jam-nya harus disesuiakan dengan jam yang diiinginkan di timezone kita.
Sebagai contoh, untuk jam WIB, gunakan waktu 7 jam lebih awal.
Happy debugging!
Comments