Skip to main content

Posts

Pengalaman Ngoprek Zurmo

Zurmo adalah aplikasi pengelolaan relasi pelanggan (customer relationship management - CRM) berbasis web dan bersifat open source. Dikembangkan selama dua tahun lebih, dan baru saja rilis versi 1.0. Entah mengapa masih ada yang bikin aplikasi CRM baru di tengah banyaknya aplikasi sejenis yang sudah ada, baik yang gratisan maupun berbayar. Belum lagi layanan berbasis cloud. Pasar CRM sepertinya masih menjanjikan. Ada beberapa hal yang membuatku tertarik mencoba Zurmo. * Open source dan gratis * Berbasis web, Dikembangkan dengan PHP. * Database bisa Mysql, PostgreSql atau Oracle * Memakai Yii sebagai framework, yang kebetulan lebih kukenal dibanding framework lain * Modular, tiap fitur ataupun menu dijadikan modul, dalam satu folder. Jadi nambahin atau ngilangin modul bisa sesederhana menambah dan menghapus folder. Ya kurang lebihnya gitu, meski gak gampang2 amat sih * Aku suka User Interface nya. Bersih dan rapi. * Fiturnya menjanjikan, seperti Gamification, activity tracking,...

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

Take Screen Shot on Android

Dulu aku pernah menemukan sebuah file gambar di hp Android yang isinya screenshot. Padahal aku sendiri gak tahu gimana caranya mengambil screenshot. Kalau di PC kan ada tombol Print-Screen (PrnScr), dan di desktop Linux malah ada aplikasi bawaan buat screen capture yang lebih canggih. Nah, mendadak teringat dan jadi penasaran. Akibatnya aku googling deh. Hasilnya, banyak referensi yang memberitahukan daftar aplikasi yang bisa digunakan untuk melakukan hal itu. Kebanyakan merupakan aplikasi yang membutuhkan rooting , seperti Screenshot, Shoot Me, Drocap2 dsb. Itu kalau mau pakai yang gratisan. Kalau mau tanpa rooting,  ada aplikasnya, tapi bayar. Hingga akhirnya aku perhatikan komentar-komentar di halaman web yang memberi informasi itu, eh, katanya bisa melakukan screenshot tanpa aplikasi. Nah, masuk akal, wong aku pernah melakukannya kok, cuma secara tidak sengaja. Ternyata caranya gampang. Cukup pencet-tahan tombol BACK, kemudian pencet tombol HOME. Langsung deh terdengar bu...

Apex Salesforce Limitation

Geregetan juga saat coding di Salesforce.com dengan Apex, ternyata cukup banyak keterbatasan yang diterapkan di sana. Memang sih, tujuannya untuk optimalisasi proses dan mencegah server berantakan gara-gara terlalu banyak proses yang berjalan secara simultan. Bosku bilang ke client "ini adalah konsekuensi menggunakan sistem multi-tenant ". Awalnya aku penasaran, apa saja sih yang dibatasi oleh Salesforce.com ini. Eh, ternyata di debug log ada penjelasannya. Berikut daftar (mungkin belum semua) batasan yang diberikan oleh Salesforce, sekedar untuk pengingat: Number of SOQL queries: 100 Number of query rows: 50000 Number of SOSL queries: 20 Number of DML statements: 150 Number of DML rows: 10000 Number of script statements: 200000 Maximum heap size: 3000000 Number of callouts: 10 Number of Email Invocations: 10 Number of fields describes: 100 Number of record type describes: 100 Number of child relationships describes: 100 Number of picklist describes: 100 Nu...

Salesforce Data Connection with PHP

Sekedar untuk mengingat aja, contoh kelas untuk koneksi PHP ke Salesforce dengan API/SOAP. /** Class to handle connection to salesforce */ require_once("soapclient/SforcePartnerClient.php"); require_once("soapclient/BulkApiClient.php"); define('SOAP_PATH', "soapclient"); define('WSDL_XML_PARTNER', "partner.wsdl.xml"); define('WSDL_XML_ENTERPRISE', "enterprise.wsdl.xml"); define('WSDL_XML_METADATA', "metadata.wsdl.xml"); class SFConnectionClass { public $connection; public $server = 'sand'; // option (sand or prod) public $username = ''; public $password = ''; public $token = ''; public $sfSessionID = ''; public $sfLocation = ''; /* constructor // if parameter empty, use default */ public function SFConnectionClass($server = 'sand', $username = '', $password = '', $token = ...