Skip to main content

Posts

Showing posts from November, 2012

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

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 berikut rumusnya. DATE(   YEAR(X) + FLOOR((MONTH(X) + D)  / 12),