Skip to main content

Posts

Showing posts with the label Salesforce

Javascript : Checkbox Toggle (Pengganti Radiobutton)

 Kebutuhannya sederhana, ada banyak checkbox, tapi hanya bisa memilih satu saja.  Misalnya kita punya tabel data, tiap baris ada checkbox, hanya saja dibatasi hanya ada satu yang bisa dicentang. Saat satu baris dicentang (checked), maka yang lain otomatis dihilangkan centangnya (unchecked). // function to uncheck other checkboxes using javascript only function uncheckOther(obj)  {   if (obj.checked) {   var inputs = document.getElementsByTagName("input");   for(var i = 0; i < inputs.length; i++) {     inputs[i].checked = false;    }     obj.checked = true;   } }    Terus di tag checkbox-nya panggil fungsi tersebut: <input type="checkbox" id='test1' value="abc" onclick="uncheckOther(this)"> Sebenarnya kalau di halaman web biasa, aku bisa mengganti checkbox dengan button atau link di tiap barisnya, langsung ada ID. Masalahnya, pas aku coba pakai ini di Visualforce page (Salesforce) aku mengalami kesul...

Salesforce : Debug Log untuk user System Terkait Email-to-Case

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 t...

Tidak Bisa Edit Salutation di Lightning - #SalesforceJourney

Masalahnya sepele, cuma ingin mengubah daftar Salutation yang ada di object Lead dan Contact, yang merupakan field dengan tipe picklist. Dulu caranya gampang, tinggal buka object Lead, buka daftar field, pilih Salutation. Dari situ bisa langsung oprek daftar Salutation yang ada. Bisa nambah, hapus ataupun mengubah yang sudah ada. Tapi di Lightning, ternyata fitur itu tidak tersedia. Jadi hingga saat ini, satu-satunya cara ya harus pindah dulu ke tampilan Classic, dan lakukan perubahan dari sana. Oh ya, ternyata values yang ada di Salutation di Lead, juga dipakai di Contact. Jadi mengubah daftar picklist Salutation di Lead, otomatis akan berlaku juga di Contact. Praktis.

Soal Test Class di Salesforce.com

Sumber gambar: force.com Aku adalah penganut falsafah "learning by doing", artinya lebih suka untuk praktek langsung daripada repot baca teori. Ini berlaku juga saat membeli barang baru, langsung utak-atik tanpa mau repot-repot membaca buku petunjuk penggunaan. Termasuk saat belajar pengembangan aplikasi di Salesforce.com (force.com). Seminggu pertama baca-baca dan mengikuti tutorial sangatlah membosankan, dan baru semangat ketika terjun langsung dalam proyek, dan belajar dengan mencontek hasil kerjaan orang lain. Akibatnya, tidak memiliki dasar yang mendalam. Termasuk dalam hal membuat testclass. Selama ini aku anggap testclass hanya sebagai basa-basi, formalitas agar aplikasi bisa di-deploy ke production. Soalnya system mewajibkan minimal code coverage 75%, baru bisa di-deploy. Tentu saja ini hal yang menjengkelkan dan membuat frustrasi. Hal ini diperparah dengan kebiasaanku yang tidak pernah membaca teori tentang test class ataupun cara yang benar untuk membuat test ...

Visual Force Page : Create List With Hyperlink Column

Apex code sederhana, untuk membuat table berisi daftar record suatu object, dengan menampilkan hyperlink ke record tersebut. Soalnya kalau hanya menampilkan field Name (sebagai primary key), ternyata gak ada hyperlink. Contohnya ingin menampilkan list Lead seperti berikut. Nah, potongan programnya cukup seperti ini Dengan asumsi, listLead adalah List , yang merupakan list berisi record dari standard object Lead. Sekedar pengingat saja.

Apex Controller - New Button Override with Autotext for Name

Field Name di Salesforce ada dua jenis : Autonumber atau Text(80). Jika kita pilih Autonumber, kita gak bisa mengubah nilainya. Tapi jika kita pilih Text, field ini jadi wajib. Kadangkala kita ingin punya Autonumber sendiri, tidak memakai autonumber standard dari salesforce. Ini bisa ditangani dengan membuat trigger. Masalahnya, field Name itu wajib diisi dan user tidak bisa menyimpan sebuah record tanpa memberi isi pada field tersebut, padahal field tersebut nantinya akan ditimpa (replace) dengan trigger. Jadi terkesan user harus mengisi dengan sesuatu yang tidak berguna, hanya sekedar agar record bisa disimpan. Salah satu solusi mengatasi ini adalah dengan memberi nilai default ke field Name tersebut, sehingga nilainya sudah otomatis ada, dan user tidak perlu repot-repot mengisinya. Ini bisa dilakukan dengan membuat sebuah VF Page sederhana, yang akan meng-override New button dan isinya cuma meredirect ke halaman New. Berikut contoh code Controllernya. Sengaja malas mengubah de...

Salesforce.com Trigger : Generate Auto Running Number

Salesforce memiliki tipe data berupa autonumber, yang akan terisi otomatis dengan nilai yang selalu bertambah ( auto increment ). Ternyata ini tidak hanya untuk field Name, tapi kita juga bisa menambah baru. Kita juga bisa menentukan berapa jumlah karakter dari nilai autonumber yang kita inginkan. Misalnya kita ingin field itu berisi 5 karakter, maka kita cukup atur {00000} dan nilainya nanti akan menjadi 00001, 00002 dst. Kita bahkan bisa menggabungkan dengan huruf tertentu, misal X-{00}, akan menjadi X-01 dst. Atau bahkan dengan tahun, bulan dan tanggal record tersebut dibuat, misal {YYYY}/{MM}/{000} akan menghasilkan 2012/11/001 dst. Meskipun demikian, ada beberapa kekurangan yang belum aku temukan solusinya selain dengan membuat trigger untuk menghasilkan nilai nomor urut ( running number)  tersebut. Berikut beberapa kasus yang sepertinya tidak bisa dihandle hanya dengan field auto number tersebut. Nomor urut yang perlu di-reset secara berkala, misal per bulan atau per tah...

Rumus Menghitung Umur di Salesforce

Sekedar catatan saja, buat rumus untuk menghitung umur seseorang, lewat formula field. Asumsi field tanggal lahir adalah Date_of_Birth__c IF(   MONTH(TODAY())>MONTH( Date_of_Birth__c ),   YEAR(TODAY())-YEAR(Date_of_Birth__c ),   IF(AND(MONTH(TODAY()) = MONTH(Date_of_Birth__c ),      DAY(TODAY()) >=  DAY(Date_of_Birth__c )),      YEAR(TODAY())-YEAR(Date_of_Birth__c ),      (YEAR(TODAY())-YEAR(Date_of_Birth__c ))-1) ) Entah cukup akurat atau tidak, tapi secara umum berjalan dengan baik :) Sekedar tambahan untuk, berikut rumus untuk menghitung Tanggal Akhir = Tanggal Awal + Durasi (Bulan) Agak rumit karena penjumlahan di formula hanya untuk hari, sementara dalam satu bulan jumlah hari berbeda-beda. Sebenarnya yang sulit adalah menentukan tanggal akhir, agar tanggal tidak melebihi jumlah hari di bulan tertentu. Jika Y adalah tanggal akhir, X tanggal awal dan D adalah durasi dalam bulan, kira-kira b...

Mengatasi Jumlah Tab di Salesforce

Secara default, Salesforce hanya menyediakan 25 tab. Jika kita ingin membuat tab melebihi itu, kita harus membayar lagi. Konsep tab di salesforce mirip dengan menu, bisa dibilang menggantikan menu, karena tidak banyak pilihan navigasi lain selain lewat tab. Pada dasarnya, untuk tab dibutuhkan jika kita ingin mengakses data (termasuk membuat record baru, menghapus record yang ada ataupun mengeditnya) dalam sebuah object tertentu. Sedikit merepotkan saat kita membuat object baru, kita harus membuat tab baru untuk melakukan testing atau agar object itu bisa aktif, karena membuat object baru tidak secara otomatis menghasilkan tab untuk mengakses menu itu. Untuk proyek yang sekelas ERP misalnya, tentu tidak cukup hanya memiliki 25 tab, dan kami pernah dapat complaint  dari customer karena hal itu. Makanya dulu kepikiran, pasti ada cara untuk mengatasi hal ini. Mungkin bisa dengan membuat visualforce page yang bermanfaat untuk mengakses object tertentu, tanpa harus membuat tab baru. Ak...