November 2007
Pengantar
Salesforce.com dan Google menghosting aplikasi "Software as a Service" yang populer dan kedua organisasi tersebut menyediakan API yang memungkinkan developer mengakses penyimpanan data besar yang mendukung aplikasi ini. Hal ini menjadi menarik saat kita menggabungkan kedua set API tersebut. G Suite terus digunakan semakin banyak di lingkungan perusahaan dan Salesforce.com telah membangun platform ekstensif untuk membuat aplikasi bisnis kustom, sehingga ada banyak peluang bagi developer (yaitu Anda!) untuk menggabungkan kecanggihan Google dan Salesforce.com.
Artikel ini akan menunjukkan cara menggunakan Google Data API RESTful untuk mulai membuat mashup perusahaan, meskipun Anda baru mulai menggunakan platform Salesforce.com atau protokol Google Data. Saya akan membantu Anda menyiapkan lingkungan pengembangan, menginstal mashup Salesforce.com dan Google yang sudah ada, lalu menulis mashup Anda sendiri.
Halo, Salesforce.com!
Jika Anda baru mengenal Salesforce.com seperti saya, Anda harus mulai dengan mendaftar ke akun developer di ADN, Apex Developer Network. Akun developer memberi Anda akun Salesforce.com berfitur lengkap, ditambah akses ke wiki Apex dan forum diskusi.
Selanjutnya, Anda harus mendapatkan Apex Toolkit for Eclipse. Toolkit ini memerlukan Java 1.5 dan Eclipse 3.2.2, atau yang lebih baru. Jika Anda sudah terbiasa menggunakan Eclipse, situs update software untuk toolkit ini adalah http://www.adnsandbox.com/eclipsetoolkit/10.0/
. Jika Anda belum memahami plugin Eclipse, atau terjadi kesalahan selama penginstalan, wiki Apex menyertakan petunjuk penginstalan mendetail.
Setelah toolkit diinstal, Anda dapat mengakses konten bantuan Apex yang terintegrasi ke dalam sistem Bantuan Eclipse. Di Eclipse, buka Help | Help Contents | Apex Toolkit for Eclipse untuk melihat konten ini. Salah satu sumber bantuan adalah tutorial mulai cepat yang akan menunjukkan cara membuat project baru dan menambahkan S-Controls, class, dan pemicu. Jika Anda belum pernah bekerja dengan kode Apex, Anda harus mempelajari tutorial ini dan membuat project Apex sebelum melanjutkan.
Mengekspor acara ke Google Kalender
Ron Hess menulis aplikasi Google Calendar Mash-up yang memungkinkan Anda mengekspor acara dari Salesforce.com ke Google Kalender. Ron juga menulis artikel yang menjelaskan cara kerja mashup-nya. Aplikasi Google Spreadsheet yang akan saya tunjukkan cara membuatnya nanti dimodelkan berdasarkan mash-up Google Kalender Ron. Terima kasih, Ron.
Jika Anda adalah pengguna berat Salesforce.com, Anda mungkin dapat mengintegrasikan dan menggunakan aplikasi Google Kalender Ron tanpa petunjuk apa pun. Awalnya saya membutuhkan sedikit bantuan, jadi berikut yang saya lakukan untuk melihat aplikasi Ron beraksi.
- Instal aplikasi:
- Buka halaman Google Calendar Mash-up, lalu klik Dapatkan Sekarang.
- Masukkan kredensial ADN Anda, lalu klik Lanjutkan.
- Baca Persyaratan & Ketentuan, lalu klik Lanjutkan.
- Klik Berikutnya di halaman "Periksa isi paket".
- Pilih tingkat keamanan, lalu klik Berikutnya.
- Klik Instal.
- Konfigurasi proxy AJAX Salesforce.com
- Di menu "Administration Setup", klik Security Controls | Remote Site Settings.
- Klik New Remote Site.
- Masukkan Google sebagai "Nama Situs Jauh" dan untuk "URL Situs Jauh", gunakan https://www.google.com.
- Klik Simpan.
- Tambahkan tombol "Tambahkan ke Google" ke halaman Detail Acara:
- Di menu "Penyiapan Aplikasi", klik Sesuaikan | Aktivitas | Tata Letak Halaman Acara.
- Klik Edit di baris "Tata Letak Acara".
- Klik dua kali area "Tombol Halaman Detail".
- Tandai "Tambahkan ke Google", lalu klik panah kanan (>) untuk menambahkan tombol.
- Klik Oke.
- Klik Simpan di halaman "Properti Tata Letak Halaman".
- Mengekspor acara
- Klik Beranda di kiri atas untuk melihat kalender Anda.
- Jika Anda tidak memiliki acara, klik Acara Baru untuk membuatnya.
- Klik acara untuk melihat halaman Detail Acara.
- Klik tombol Tambahkan ke Google.
- Klik OK melalui dialog JavaScript
- Login dengan nama pengguna dan sandi Google Anda.
- Klik Beri akses untuk memberi aplikasi SalesForce akses tulis ke Google Kalender Anda.
- Lihat acara di Google Kalender Anda
Membangun aplikasi Google Spreadsheet
Oke, Anda mungkin sudah lelah mengklik halaman Salesforce.com dan siap menulis beberapa kode. Buka Eclipse lagi dan Anda akan melihat bahwa project Apex yang Anda buat sekarang berisi S-Controls untuk aplikasi Google Kalender Ron. Hal ini karena Apex Toolkit untuk Eclipse terus-menerus disinkronkan dengan Salesforce.com. Keren, bukan?
Anda dapat membuat aplikasi Data Google Anda sendiri dengan menggunakan kembali beberapa fungsi Mash-up Google Kalender, seperti kontrol autentikasi. Di bagian selanjutnya, saya akan menunjukkan cara membuat aplikasi yang mengekspor kontak Salesforce.com Anda ke Spreadsheet Google.
Memublikasikan S-Control sederhana
S-Control adalah file yang dihosting oleh Salesforce.com dan dieksekusi di browser web saat pengguna mengakses aplikasi Anda. S-Control dapat berisi jenis konten apa pun yang dapat Anda tampilkan atau jalankan di browser web, seperti HTML, CSS, atau JavaScript.
Ada beberapa bagian yang bergerak dalam mashup Salesforce.com dan Google, jadi hal pertama yang saya lakukan adalah menambahkan tombol "Ekspor ke Google" ke halaman daftar kontak yang memanggil S-Control sederhana—hanya untuk memastikan semua saluran sudah benar sebelum saya berkutat dengan JavaScript.
Di project Apex, klik kanan folder "S-Controls" dan pilih Apex | New S-Control. Beri label dan nama export_contacts untuk S-Control baru, biarkan jenisnya sebagai HTML Kustom, lalu klik Selesai.
S-Control baru akan berisi file HTML kerangka. Anda akan menambahkan banyak JavaScript di <head>, tetapi Anda dapat mengisi <body> terlebih dahulu, agar ada sesuatu yang ditampilkan kepada pengguna saat kontak diekspor. Salin HTML ini ke dalam isi S-Control Anda untuk menampilkan "titik menunggu" dan logo Google Spreadsheet:
<div id="waiting" align="center" /> <img src="/img/icon/home32.png" height="64" width="64" /> <img src="/img/waiting_dots.gif" alt="Please wait..." title="Please wait..." height="25" width="196" /> <img src="http://docs.google.com/images/doclist/logo_docs.gif" /> <p><h3>Exporting contacts to Google Spreadsheets, please wait...</h3></p> </div>
Sekarang Anda dapat memublikasikan S-Control dan menyiapkan tombol yang akan memanggilnya.
- Gunakan Eclipse untuk memublikasikan file S-Control:
- Klik kanan project Apex Anda, lalu pilih Apex | Synchronize with Salesforce.
- Temukan S-Control baru Anda di struktur direktori, klik kanan, lalu pilih Override remote and publish to server.
- Jika Anda tidak dapat menemukan S-Control, Apex Toolkit mungkin telah menguploadnya untuk Anda, tetapi sebaiknya gunakan perspektif sinkronisasi untuk memastikan kode terbaru berjalan di server.
- Gunakan UI Salesforce.com untuk menentukan tombol yang akan memanggil S-Control ini:
- Di menu "Penyiapan Aplikasi", klik Sesuaikan | Kontak | Tombol dan Link.
- Di bagian "Tombol dan Link Kustom", klik Baru.
- Masukkan Ekspor ke Google untuk label, dan biarkan Export_to_Google sebagai nama.
- Pilih "Tombol Daftar" sebagai Jenis Tampilan.
- Pilih "Custom S-Control" sebagai Sumber Konten.
- Pilih "Tampilkan di jendela yang ada dengan sidebar" sebagai Perilaku.
- Pilih "export_contacts" dari menu S-Control Kustom.
- Tambahkan tombol ke daftar kontak:
- Di menu "Penyiapan Aplikasi", klik Sesuaikan | Kontak | Tata Letak Penelusuran.
- Klik Edit di baris "Tampilan Daftar Kontak".
- Tandai "Ekspor ke Google", lalu klik panah kanan (>) untuk menambahkan tombol.
- Klik Simpan.
- Ikuti uji coba:
- Klik tab Kontak.
- Pilih "Semua Kontak" sebagai Tampilan, lalu klik Buka.
- Klik tombol Ekspor ke Google yang baru.
- Lihat "waiting_dots", tetapi jangan mengharapkan hal lain terjadi.
Berinteraksi dengan Google Spreadsheet
Jika melihat sumber untuk Mash-up Google Kalender, Anda akan melihat bahwa file gcal_snippet.scf berisi abstraksi untuk server Google Kalender. Untuk berinteraksi dengan Google Spreadsheet, Anda harus membuat file serupa untuk server Google Spreadsheet. Saya menggunakan kembali kode Ron Hess untuk menggunakan proxy AJAX Salesforce.com dan melakukan autentikasi dengan Google AuthSub serta mengganti fungsi yang menulis peristiwa ke Google Kalender dengan fungsi yang menulis informasi ke Google Spreadsheet. Sumber lengkap untuk file ini tersedia di gspreadsheet_snippet.scf.
Selanjutnya, saya menambahkan JavaScript ke S-Control export_contacts.scf untuk membuat kueri Salesforce.com guna mendapatkan informasi kontak dan menuliskannya ke Spreadsheet Google. Mendapatkan data dari Salesforce.com sangatlah mudah. Cukup buat kueri dan berikan fungsi callback untuk dieksekusi saat data ditampilkan. Contoh:
var query = 'Select FirstName, LastName, Phone From Contact'; var queryResult = sforce.connection.query(query, queryCallback);
Setelah mendapatkan informasi kontak dari Salesforce.com, Anda harus menentukan tempat untuk mengekspornya. Dalam protokol Google Data RESTful, setiap spreadsheet dapat diidentifikasi dengan URL unik. Anda bisa mendapatkan daftar spreadsheet pengguna (dan URL terkait) dengan membuat kueri URL metafeed: http://spreadsheets.google.com/feeds/spreadsheets/private/full
. Metode berikut melakukan iterasi melalui spreadsheet ini, mencari spreadsheet dengan judul tertentu. Saat menemukan spreadsheet yang benar, spreadsheet tersebut akan mendapatkan daftar sheet terlebih dahulu, lalu menampilkan URL feed sel untuk sheet pertama.
function getCellFeedUrl() { var SPREADSHEET_TITLE = 'Salesforce.com Contacts'; var WORKSHEET_REL = 'http://schemas.google.com/spreadsheets/2006#worksheetsfeed'; var CELLSFEED_REL = 'http://schemas.google.com/spreadsheets/2006#cellsfeed'; // Query to find the spreadheet called "Salesforce.com Contacts" var spreadsheets = g.getFeed('http://spreadsheets.google.com/feeds/spreadsheets/private/full'); var entries = g.getEntryList(spreadsheets); for (var e in entries) { if (g.getTitle(entries[e]) == SPREADSHEET_TITLE) { var worksheetsFeedUrl = g.link(entries[e],WORKSHEET_REL); var worksheets = g.getFeed(worksheetsFeedUrl); var worksheetEntries = g.getEntryList(worksheets); return g.link(worksheetEntries[0], CELLSFEED_REL); } } }
Informasi selengkapnya tentang feed yang tersedia di Google Spreadsheets Data API dapat ditemukan di Panduan Referensi.
Fungsi queryCallback
menggunakan metode getCellFeedUrl
untuk menemukan URL feed sel yang diperlukan untuk mengirim permintaan pembaruan sel, lalu menulis informasi kontak satu sel dalam satu waktu.
function queryCallback(queryResult) { var cellFeedUrl = getCellFeedUrl(); var contacts = queryResult.getArray('records'); for (var i=0; i<contacts.length; i++) { g.updateCell(cellFeedUrl, i+1, 1, contacts[i].LastName + ", " + contacts[i].FirstName); g.updateCell(cellFeedUrl, i+1, 2, contacts[i].Phone); } jumpback(); // Return to the contacts page when your done }
Metode updateCell
ada di S-Control gspreadsheet_snippet.scf. Metode ini mendapatkan URL pengeditan sel dalam baris dan kolom yang diberikan, lalu mengirim pesan HTTP PUT
yang berisi representasi Data Google dari sel yang diperbarui:
GoogleSpreadsheet.prototype.updateCell = function(cellsFeedUrl, row, column, content ) { var cellEntry = this.getFeed(cellsFeedUrl+'/R'+row+'C'+column); var cellEditUrl = this.link(cellEntry,'edit'); var newCellEntry = "<atom:entry xmlns:atom='http://www.w3.org/2005/Atom'>" + "<atom:category scheme='http://schemas.google.com/spreadsheets/2006' " + "term='http://schemas.google.com/spreadsheets/2006#cell' />" + "<gs:cell xmlns:gs='http://schemas.google.com/spreadsheets/2006' " + "row='" + row + "' col='" + column + "' inputValue='" + content + "' />" + "</atom:entry>"; this.putEntry(cellEditUrl, newCellEntry); }
Informasi selengkapnya tentang cara memperbarui sel dengan Google Spreadsheets Data API dapat ditemukan di Panduan Developer.
Google Spreadsheets Data API menggunakan subdomain https://spreadsheets.google.com
, jadi sebelum kode di atas berfungsi, Anda harus mengonfigurasi server proxy AJAX Salesforce.com dan menambahkan https://spreadsheets.google.com
.
Anda juga harus membuka Google Dokumen dan membuat spreadsheet baru untuk menyimpan data. Pastikan Anda menyimpannya sebagai Salesforce.com Contacts.
Setelah mengupload Kontrol S ini, Anda dapat mengekspor informasi kontak ke Spreadsheet Google. Bagaimana dengan cara lainnya? Dengan pengetahuan baru Anda tentang Salesforce.com dan Google Data API, Anda juga dapat menulis beberapa kode untuk mengimpor informasi kontak dari Google Spreadsheet ke Salesforce.com.
Kesimpulan
Artikel ini baru membahas sedikit saja, tetapi setelah Anda memahami platform Salesforce.com dan Google Data API, pikirkan semua aplikasi yang dapat Anda tulis untuk memanfaatkan sistem yang canggih ini. Serangkaian API Data Google terus berkembang, sehingga Anda dapat memanfaatkan lebih banyak informasi dalam aplikasi Anda, dan platform Salesforce.com menawarkan banyak alat yang berguna yang tidak dibahas dalam artikel ini. Kami akan menantikan mashup perusahaan Anda berikutnya di AppExchange.
Selamat membuat kode!