Panduan Pemrograman SharePoint untuk Developer
Panduan Pemrograman SharePoint untuk Developer
PRAKATA
Akhirnya buku ―SharePoint for Developer‖ ini terbentuk juga setelah beberapa hal situasi
dan kondisi yang mengakibatkan lamanya pengerjaan buku ini. Kami berterima kasih
kepada Tuhan Yang Maha Esa telah memberikan kesehatan dan waktu dalam
pengerjaannya.
Buku ini penulis beri judul dengan nama ―SharePoint for Developer‖ karena memang isi dari
buku ini memang diperuntukan kepada para developer yang ingin mempelajari SharePoint.
Sedangkan SharePoint itu sendiri adalah salah satu produk andalan Microsoft yang lebih
menitikberatkan kepada kolaborasi, integrasi, content management, document
management, dan lain-lain.
Didalam buku ini telah terdapat 8 (delapan) bab pembahasan mengenai SharePoint, dan
penulis pun tahu bahwa pembahasan akan SharePoint itu sangat luas sehingga buku ini
masih belum cukup untuk dapat menguasai SharePoint secara keseluruhan. Akan tetapi
penulis berharap dengan buku ini bisa dijadikan referensi untuk menguasai SharePoint dan
dapat membuat aplikasi dengan solusi SharePoint.
Penulis mengucapkan terima kasih kepada Umi Fadilah atas design covernya, Mas Riwut
Libinuko yang telah memberikan ide akan silabus buku ini, dan juga mengucapkan terima
kasih kepada Mas Naren yang selalu memberikan dukungan dan juga mengingatkan
penulis untuk menyelesaikan buku ini. Dan kepada rekan-rekan yang tidak dapat kami
sebutkan satu persatu.
Akhir kata buku ini untuk Anda anggota komunitas, dan untuk lebih lanjut tanya jawab
akan SharePoint kita memiliki milis komunitas yaitu dotnet@[Link] dan Geeks
Portal ([Link]
DAFTAR ISI
7.3 Menggunakan User Profiles & Security web services ............................................... 135
7.4 Membuat Custom Web Services .................................................................................................... 142
Bab 8. Memanfaatkan Excel Services ........................................................................................ 158
8.1 Mengenal Excel Services ..................................................................................................... 158
8.2 Mempublish Table, Formula dan Graphics ................................................................... 158
8.3 Menggunakan Excel Services Web Service .................................................................. 167
8.4 Membuat User Defined Function (UDF) ......................................................................... 172
SharePoint for Developer
5
Windows SharePoint Services (WSS) adalah pondasi yang menawarkan fungsionalitas dan
servis kepada produk dan teknologi SharePoint lainnya (MOSS). Selain servis, WSS juga
menyediakan web portal yang memiliki berfungsi untuk kolaborasi, document mangement,
dan browser-based management, dan administrasi dengan menyediakan repositori yang
tersentralisasi. WSS cocok digunakan untuk untuk tim, project, dan organisasi dalam skala
kecil.
Versi terbaru dari WSS saat ini adalah 3.0 dengan Service Pack 1.
fitur seperti Business Data Catalog, Indexed Search, Single Sign On, Personalized Features,
dan lain sebagainya. Versi terbaru dari MOSS saat ini adalah 2007.
Seperti yang kita perhatikan pada gambar di atas. Kita memerlukan Windows Server 2003
atau 2008 sebagai system operasi. Untuk database, SharePoint menggunakan SQL Server.
Web Server yang digunakan adalah Internet Information Services (IIS) , dan Windows
Workflow Foundation sebagai workflow framework.
WSS 3.0 dan MOSS 2007 dibangun di atas software – software tersebut.
Administration.
Class dan fitur dari namespace [Link] memungkinkan
SharePoint for Developer
8
MOSS 2007 adalah sebuah produk server yang dibangun di atas teknologi Windows
SharePoint Serviecs 3.0. MOSS 2007 menyediakan framework yang konsisten dan familiar
untuk lists dan libraries, site administration, dan site customization.
Sebagai tambahan, MOSS 2007 memungkinkan kita untuk:
Mengelolah pencarian efektif untuk orang, dokumen, dan data
Partisipasi dalam bisnis proses forms-driven
Akses dan analisis bisnis data dalam ukuran besar.
MOSS 2007 juga memungkinkan kita untuk membuat solusi web-based dan situs yang
mendukung content publishing yang spesifik, content management, records management,
atau keperluan business inteligence. MOSS 2007 menyediakan komponen built-in untuk
membantu kita untuk membuat web-based solution yang kaya dengan fitur. Alhasil, MOSS
2007 dapat menghemat waktu pengembangan dan menyediakan kemampuan dengan skala
enterprise untuk memenuhi kebutuhkan bisnis yang kritikal.
SharePoint for Developer
10
MOSS 2007 menawarkan 6 kapabilitas atau servis utama yang memungkinkan developer
untuk melakukan customization dan memperkaya aplikasi web mereka, yaitu sebagai
berikut:
Collaboration and Social Computing.
MOSS 2007 menyediakan Web Parts yang memungkinkan fungsionalitas untuk wiki,
blogs, RSS feeds, integrasi email, dan koordinasi tugas.
Portals.
MOSS 2007 adalah platform untuk portal yang berskala enterpriise yang
memudahkan kita dalam membangun dan memelihara situs portal untuk semua
aspek dalam bisnis. Portal menyediakan situs personal yg built-in ―My Site‖, content
syndication, profil pengguna, audience targeting, mobile device support, portal site
templates, document aggregation Web Parts, dan lain sebagainya.
Enterprise Search.
Enterprise Search dalam MOSS 2007 menyediakan pengumpulan konten, indexing,
dan kemampuan query yang luas dan handal.
Enterprise Content Management (ECM).
Fitur ECM menyediakan cara untuk mengatur konten dan metadata dari dokumen
bisnis dalam MOSS 2007 document libraries. ECM adalah komponen kunci
infrastruktur yang membantu perusahaan untuk mengatur banyaknya konten yang
tidak terstruktur seperti forms, dokumen, records, pesan email, video, instan
message, dan halaman web.
Business process and forms.
MOSS 2007 menyediakan built-in electronic forms dan workflow templates.
Business Intelligence
MOSS menyediakan infrastruktur untuk membuat dashboard yang memungkinkan
para pembuat keputusan dapat mengakses informasi.
Apa itu Collaborative Application Markup Language (CAML) dan apakah gunanya di dalam
pemograman [Link] ini digunakan di dalam Sharepoint untuk melalukan sintaks
query dalam list yang kita miliki dan juga dapat sebagai dipakai untuk melakukan kerjaan
lainnya misalnya pembuatan membuat site,event listener, dan lain lain. Sedangkan bila
digunakan sebagai pencarian bisa kita samakan dengan pada saat kita mempunyai suatu
database dan kita ingin melakukan pencarian dalam data yang kita miliki sama juga halnya
dengan hal ini.
Sharepoint menggunakan database SQL Server sebagai repositori tetapi kita tidak bisa
langsung melakukan query ke database sharepoint kita dan bila kita mengetahui skema
databasenya pun sebaikkan dihindari untuk melakukan query dengan sintaks SQL langsung
ke database Sharepoint tetapi kita kita lakukan dengan API object yang telah di berikan
oleh Sharepoint.
CAML ini telah ada sejak dari versi pertama yaitu Sharepoint 2001. Dan konsep dari CAML
itu selalu berbentuk Extensible Markup Language (XML) dokumen.
Untuk lebih jelasnya dapat di lihat pada contoh CAML sebagai berikut :
<Query>
<Where>
<Eq>
</Eq>
<Where>
<OrderBy>
<OrderBy>
</Query>
Contoh CAML ini mengandung arti yaitu melakukan pencarian data dimana mencari data
pada field Title yang mempunyai value "I love Sharepoint". Dan hasil data tersebut akan
diurutkan berdasarkan field Title dan field DivisionCode pengurutan secara Ascending.
Untuk mengetahui operator-operator apa saja yang digunakan pada programming CAML
ini, kita dapat lihat pada tabel di bawah ini :
Operator Deskripsi
dimasukkan
DateRangesOverlap ?
Untuk menggunakan CAML ini kita bisa menggunakan API object yang telah diberikan oleh
Sharepoint, dengan contoh seperti dibawah ini :
using Systems;
using [Link];
using [Link];
using [Link];
namespace MySharePoint
{
class program
{
static void Main(string[] args)
{
SPListItemCollection items = null;
string siteUrl = "[Link]
string listName = "Contact List";
string strQuery = @"<Query>
<Where>
<Eq>
<FieldRef Name='Title' />
<Value Type="Text">I love Sharepoint</Value>
</Eq>
</Where>
<OrderBy>
<FieldRef Name='Title' />
<FieldRef Name='DivisionCode' />
</OrderBy>
SharePoint for Developer
14
</Query>";
if (items!=null)
{
//disini kita sudah mendapatkan koleksi dari list Contact List
//sesuai dengan kriteria pencarian yang kita lakukan
foreach (SPListItem listItem in items)
{
//apa yang ditampilkan semua field yang yang didefinisikan
//dari Contact list yang telah kita buat.
[Link](listItem["Title"].toString());
}
}
}
}
}
}
}
SPQuery adalah API pada Sharepoint untuk melakukan pencarian berdasarkan spesifik field
yang akan kita akan cari. Untuk lebih jelasnya mengenai SPQuery ini bisa dapat refer pada
link ini [Link]
Pencarian ini mengunakan case sentitive sehingga kita harus memastikan nama field yang
kita gunakan itu sesuai dan juga kita harus memastikan bahwa type datanya sesuai dengan
yang kita gunakan.
SharePoint for Developer
15
Pada contoh diatas pencarian tersebut dengan FieldRef nya "Title" dan type yang kita
gunakan didalam list kita adalah Text.
Bagaimana bila misalnya Field yang kita buat misalnya Start Date dan type data Date,
untuk hal ini Sharepoint akan menampilkan field ini menjadi Start_x0200_Date. Dan oleh
karena itu untuk sintaks CAML kita dapat buat sebagai berikut :
Untuk mempermudah dalam membuat sintaks CAML kita dapat menggunakan tool yang
dapat mempermudah kita dalam membuat sintaks CAML. Untuk mendowload aplikasi ini
kita dapat download di
[Link]
SharePoint for Developer
16
Setelah kita memulai mencoba aplikasi Sharepoint dan mencoba membaca banyak artikel-
artikel tentang Sharepoint, kita dapat memberikan opini bahwa Sharepoint bukan saja
sebuah aplikasi melainkan sebuah framework. Dan bila kita telah mempelajari Sharepoint
dan semua feature yang ada dan mengimplementasikannya secara out of the box
Sharepoint tersebut, pasti kita akan dihadapkan untuk melakukan penambahan fungsi
ataupun menggunakan aplikasi lain ataupun data lain yang dapat kita tampilkan didalam
site Sharepoint itu. Dan hal tersebut mampu dilakukan oleh SharePoint. Mari kita lihat apa
yang harus kita siapkan jika kita ingin melakukan modifikasi pada SharePoint.
Untuk pemograman kita harus memiliki satu server farm yang mempunyai site Sharepoint.
Dan utk hal tersebut kita harus menginstall aplikasi sebagai berikut :
Dalam hal ini client tidak perlu di install Sharepoint tetapi harus mereferensikan ke
Sharepoint Assembly yang dapat kita ambil pada komputer server kita yang telah kita
install. Untuk file-file tersebut dapat kita ambil didalam folder c:\program files\common
files\microsoft shared\web server extension\12\isapi. Biasanya kita selalu menggunakan
assembly [Link] dan pastikan bahwa assembly tersebut tersimpan
didalam folder solusi aplikasi yang akan kita buat.
SharePoint for Developer
18
Salah satu elemen kunci pada platform Windows SharePoint Services adalah kemudahan
melakukan modifikasi melalui SharePoint Object Model (atau bisa juga disebut Application
Programming Interface/API kalau anda lebih terbiasa). SOM (SharePoint Object Model) ini
mencakup semua fungsi-fungsi SharePoint (seluruh SharePoint User Interface ditulis
menggunakan SOM) dan merupakan jalan utama untuk menambahkan fungsi-fungsi baru
ke dalam SharePoint.
SharePoint menyediakan SOM melalui 2 jalan: yang pertama adalah koneksi langsung ke
site SharePoint, sedangkan satu cara lainnya adalah via HTTP Web Services. Kedua metode
tersebut (biasanya dikombinasikan) dapat digunakan untuk menghubungkan (atau
mengakses) SharePoint dari aplikasi lain di luar SharePoint, komponen web, Event
Receiver, dan web part.
SOM dapat kita akses dengan membuat referensi dari aplikasi kita ke
[Link], yang dapat kita temukan di 12 hive, yaitu C:\Program
Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI directory. Assembly
ini adalah inti dari Windows SharePoint Services object model, tentu saja karena
namespace [Link] terdapat di dalamnya, namespace yang menjadi titik awal
untuk berpetualang dalam SOM.
Pada bab ini, kita akan membahas memanfaatkan SOM dalam membuat web part,
memanipulasi site, list, document library, memanfaatkan event handler, menggunakan
feature dan wsp, dan juga membuat windows application yang mengakses Sharepoint.
SharePoint for Developer
19
Class yang akan kita gunakan untuk membuat Web Part baru adalah class Web Part milik
ASP2, [Link].
Pertama, buka Visual Studio kemudian buat projek ―Class Library‖ baru. Kita beri nama
―WebPartHaloDunia‖.
Sebagai class library, WebPart tidak memiliki form UI untuk didesain. Jadi, untuk mengatur
apa yang akan kita tampilkan ke halaman web nanti kita perlu melakukannya dengan
baris-baris kode. Sebagai awal, tambahkan baris kode berikut ke dalam class HaloDunia
kita.
Untuk melakukan deployment Web Part ke dalam SharePoint assembly yang kita buat
harus strong-named, karena itu berikan Strong Name Key untuk assembly web part ini.
Setelah itu lakukan Build agar kita bias mendapatkan dll hasil compile dari class library ini.
Biasanya disimpan di dalam folder \bin di folder project kita.
Dari folder \bin tersebut, deploy assembly ke dalam GAC (C:\WINDOWS\assembly). Jika
tidak ingin menggunakan GAC, bisa ditambahkan attribute AllowPartiallyTrustedCallers
pada file [Link] di project kita tadi. Jika kita menggunakan GAC dan ingin
melakukan update, maka setelah kita drag drop assembly kita ke dalam GAC kita perlu
melakukan iisreset /restart. Atau jika tidak ingin me-restart seluruh iis bisa juga dengan
menggunakan iisapp /a <Nama Application Pool> /r.
SharePoint for Developer
22
Setelah assembly masuk ke dalam GAC, lihat properties dari assembly dan catat ―Public
Key Token‖nya. Kita akan memerlukannya nanti untuk meregister assembly kita kedalam
SharePoint.
Untuk melakukan register buka ―Home Directory ― web site kita. Jika diinstall tanpa
merubah path, alamatnya adalah C:\Inetpub\wwwroot\wss\VirtualDirectories\<Nama
Port>. Dalam kasus ini, saya membuat site baru di port 9090, karena itu saya masuk ke
folder 9090.
SharePoint for Developer
23
Setelah masuk ke folder tersebut, lakukan edit file [Link]. Editor Visual Studio bisa
digunakan untuk melakukan editing file ini. Temukan group ―SafeControl‖ kemudian
tambahkan line dengan format seperti berikut:
Misalnya:
Setelah itu, webpart kita sudah terdaftar ke site SharePoint kita. Tapi webpart itu belum
langsung bisa digunakan, langkah selanjutnya adalah menambahkan webpart tersebut ke
dalam gallery milik SharePoint. Pertama, masuk ke dalam Site Settings dari site SharePoint
kita.
SharePoint for Developer
24
Kemudian pilih menu ―Web Part‖ di bawah header ―Galleries‖. Di halaman berikutnya, klik
―New‖.
Pada halaman ini, list dari webpart yang terdaftar di site SharePoint ini akan diurutkan
berdasarkan abjad. Cari webpart yang kita buat tadi kemudian beri tanda centang, setelah
itu klik tombol ―Populate Gallery‖.
SharePoint for Developer
25
Setelah itu kembali ke Home. Halaman Home milik WSS3 adalah suatu ―Web Part Page‖,
yaitu halaman yang bisa di-customize menggunakan webpart. Lakukan ―Edit Page‖.
Pada saat kita memilih ―Add Web Part‖ akan keluar window baru yang berisikan webpart-
webpart yang tersedia di Gallery. Carilah webpart kita yang sudah kita tambahkan tadi.
SharePoint for Developer
26
Segera sesudah kita menekan tombol OK, webpart yang kita buat tadi sudah bergabung di
dalam halaman Home. Sejauh ini kita sudah belajar bagaimana membuat webpart dan
melakukan deploymentnya si SharePoint, teknik-teknik programming Web Part selanjutnya
akan dibahas lebih dalam di Bab 4.
Atau
Pada beberapa kasus referensi ke site yang berbeda context mungkin diperlukan:
Atau
Setelah site direferensikan, maka site itu dapat diedit. SPWeb class menyediakan property
untuk merubah beberapa settings. Untuk melakukan commit perubahan yang dilakukan
kepada site, kita harus memanggil metode Update.
Kita akan melanjutkan webpart yang sudah kita buat pada bagian pertama.
AllowUnsafeUpdates diperlukan jika kita akan melakukan Update() melalui metode GET.
Build ulang WebPartHaloDunia, deploy ulang ke GAC, lakukan iisreset, kemudian cek
kembali website tempat kita menaruh WebPartHaloDunia.
Jika sebelumnya, judulnya adalah ―WSS V3 – Learning Sharepoint‖, maka setelah kita
update akan berubah menjadi ―Practice using SPWeb‖.
SharePoint for Developer
30
SPList juga memiliki sistem versioning dan security yang dapat diaplikasikan pada
SPListItem.
Untuk membuat referensi ke list, gunakan property Lists yang akan mengembalikan objek
SPListCollection. Guid, atau nama list dapat digunakan pada list collection untuk
mengembalikan list spesifik.
Mengedit list mirip dengan melakukan edit pada site. Setelah kita membuat referensi pada
list, property SPList dapat kita ubah. Setelah semua perubahan dilakukan, kita harus
memanggil metode Update.
Untuk melakukan edit terhadap ListItem, kita perlu membuat referensi. ListItem dapat
direferensikan dengan menggunakan Guid sebagai indexer, pada list Items collection, yang
akan mengembalikan SPListItemsCollection.
//Mendapatkan ListItem
SPListItem listItem = [Link][itemGuid];
Perubahan ini memerlukan pengetahuan tentang nama-nama field yang ada dan apakah
field itu harus berisi atau tidak.
{
SPWeb web = [Link]([Link]);
[Link] = true;
[Link] = false;
[Link](new LiteralControl("Halo, dunia"));
}
Deploy ulang webpart halo dunia, kemudian akses halaman homepage tempat WebPart
HaloDunia kita masukkan. ―Learn List‖ sebelumnya akan tampak seperti ini:
SharePoint for Developer
33
Kelas-kelas seperti SPFile dan SPFolder menyediakan berbagai fungsionalitas dan banyak
properti yang dapat kita gunakan untuk menggali informasi dari file dan folder.
Berikut kembali kita akan modifikasi WebPartHaloDunia untuk menampilkan item2 dalam
suatu document library dalam bentuk link.
Deploy ulang. Lakukan iisreset. Kemudian lihat kembali di halaman depan tempat
WebPartHaloDunia berada. Kemudahan dari kita menggunakan SPDocumentLibrary adalah
SharePoint for Developer
35
ketika kita menggunakan iterasi terhadap item-itemnya, maka kita dapat langsung
memakai properti URL dari item tersebut (dikombinasikan dengan properti URL dari SPWeb
contextnya) untuk membuat link langsung ke file tersebut.
Sebagai developer, kita akan melakuakn override terhadap metode-metode dari class
SharePoint untuk event yang akan kita handle. Metode yang bisa kita override dari class
SPItemEventReceiver adalah sebagai berikut:
Bagi developer, yang spesial dari Event Handler adalah SPItemEventProperties yang
disediakan. Dengan objek ini kita bisa dengan mudah mendapatkan item, web, site yg
terlibat dalam satu konteks untuk kemudian kita lakukan modifikasi.
[Link](properties);
}
SharePoint for Developer
39
Setelah itu berikan Strong Key pada project karena kita harus memasukkan assembly ini
ke dalam GAC.
SharePoint for Developer
40
Setelah itu, untuk melakukan binding assembly dengan SharePoint list kita akan membuat
1 project lagi. Kali ini Windows Form yang akan kita beri nama ―RegisterTheEventHandler‖.
SharePoint for Developer
41
Sebagai panduan berikut adalah kode yang digunakan pada contoh program:
Jika kita run programnya, maka Event Handler telah dengan sukses dikaitkan dengan List.
SharePoint for Developer
45
Tambahkan 1 item baru ke dalam list yang telah kita kaitkan dengan EventHandler. Karena
event yang kita buat sebelumnya adalah ItemAdded, berarti event itu akan berjalan ketika
suatu item baru ditambahkan.
SharePoint for Developer
47
Setelah item baru ditambahkan, tampak belum ada perubahan. Karena event ditrigger
ketika item baru selesai dibuat. Kecuali jika kita memakai event ItemAdding maka akan
tampak perubahan langsung.
SharePoint for Developer
48
Refresh kembali maka akan tampak value dari item yang sudah berubah.
SharePoint for Developer
49
2.6 Feature
Feature mengurangi kompleksitas ketika kita akan melakukan suatu kustomisasi yang
simple terhadap suatu site, dan sangat membantu ketika ada upgrade yang akan kita
deploy. Feature membuat kita dapat menghindar dari kebutuhan untuk mengcopy sejumlah
besar kode untuk merubah suatu fungsional yang simpel. Feature juga mengurangi
versioning dan isu ketidak konsistenan yang dapat terjadi diantara front-end Web server.
Feature juga membuat aktivasi dan deaktivasi suatu fungsional lebih mudah pada saat
deploy aplikasi, dan administrator juga dapat merubah template atau definisi dari sebuah
site hanya dengan membuat beberapa Feature mati atau nyala melalui antarmuka.
Menggunakan Windows Application, kita dapat mengakses suatu site SharePoint dengan 2
cara:
1. Jika mengakses langsung pada komputer yang terinstall SharePoint Server 2007
maka kita dapat memanggil SPSite dengan properti URL langsung ke URL site
SharePoint. Misalnya (SPSite(―[Link]
2. Jika mengakses dari luar computer yang terinstall SharePoint Server 2007, maka
kita dapat menggunakan Web Services. Cara ini akan dibahas pada bab mengenai
Web Services.
Berikut kita akan berlatih dengan membuat suatu aplikasi sederhana yang akan
menggunakan SharePoint object dari Windows Application.
Tambahkan referensi ke assembly Microsoft SharePoint. Kemudian tambahkan line ini pada
bagian using: using [Link];
SharePoint for Developer
51
Buat form seperti terlihat di bawah ini. Site Url nanti akan kita isi dengan URL dari website
SharePoint yang ingin kita lihat titlenya.
Klik button ―Get site title‖ dan isi code behindnya dengan code berikut:
[Link] = [Link];
}
Properti AllWebs dari site merupakan koleksi dari SPWeb dibawah suatu site. ―/‖ adalah
web root, yaitu web yang terletak pada ―/‖ pertama setelah nama site. Misalkan site kita
localhost, maka rootnya punya Url sebagai berikut: [Link]
Jika kita memiliki web lagi dibawah root tersebut. Misalkan namanya Child, maka Url dari
web Child adalah: [Link] Untuk mengaksesnya kita bisa menggunakan
.AllWebs[―Child‖].
Setelah itu Run project ini, isi textbox Site Url dengan site yang ingin dilihat titlenya (untuk
contoh di sini digunakan ―[Link] Kemudian tekan button ―Get site title‖,
otomatis textbox site title akan berisi title dari site yang bersangkutan.
Untuk pemakaian SharePoint objek lainnya sama seperti yang kita gunakan pada WebPart.
Perbedaannya terletak pada cara kita mendapatkan SPWeb tempat kita akan melakukan
perubahan.
SharePoint for Developer
53
SharePoint for Developer
54
Workflow merupakan otomatisasi dari jalur kerja suatu gambaran dari sebuah urutan
operasi, dinyatakan sebagai karya seseorang, pekerjaan yang sederhana atau kompleks
mekanisme kerja sekelompok orang, pekerjaan organisasi staf, atau komputer.
Keuntungan Workflow ?
Oleh sebab itu didalam SharePoint 2007, Microsoft memberikan feature workflow. Dan
workflow tersebut dibangun diatas arsitektur Windows Workflow Foundation (WF) yang
telah dirilis dari mulai .net framework 3.0. Didalam WF tersebut, SharePoint 2007 meng-
extends kemampuan WF untuk integrasi dengan SharePoint 2007 infrastruktur. Sehingga
kita dapat menggunakan workflow didalam SharePoint 2007 untuk penanganan dokumen,
list, dan lain-lain.
Workflow didalam SharePoint 2007 dapat diimplementasikan dengan 3 (tiga) cara, yaitu :
Sedangkan untuk Visual Studio 2008, tidak membutuhkan Visual Studio extension tersebut,
tetapi dapat langsung terinstal template SharePoint Workflow bila kita melakukan
penginstalan Visual Studio 2008 dimana SharePoint 2007 pun terinstal.
Bila kita tidak memiliki Software SharePoint 2007, kita masih bisa mempelajari SharePoint
Workflow dengan menggunakan Windows SharePoint Services 3.0 (WSS 3.0). Untuk
download bisa didapat di link disini
[Link]
4565E8549C2A&displaylang=en
SharePoint Designer selain untuk fungsi-fungsi tersebut salah satu fungsi SharePoint
Designer adalah membuat workflow.
Untuk membuat workflow dengan SharePoint Designer bisa kita lakukan dengan beberapa
langkah sebagai berikut :
2. Klik Open Site dan masukkan Site yang telah kita miliki
4. Didalam Give a name to this workflow box, ketik nama untuk workflow tersebut
5. Didalam option ―the What SharePoint list should this workflow be attached to‖
pilihlah list yang akan digunakan sebagai workflow
6. Dibawah opsi ―Select workflow start: kita dapat melakukan beberapa opsi pilihan
yaitu :
Bila pilihan ini di centang maka workflow akan berjalan, maka workflow tidak
akan langsung berjalan bila dokumen tersimpan. Tetapi link workflow harus di
klik untuk men-triger workflow tersebut berjalan
Centang checkbox ―Automatically start this workflow when a new item is created‖
Pilihan ini akan membuat workflow langsung berjalan pada saat item di simpan.
SharePoint for Developer
57
7. Klik Next
9. Masukkan Condition dan bila kondisi memang tidak diperlukan tidak perlu dilakukan
[Link] Action untuk aksi yang akan dilakukan bila kondisi terpenuhi
SharePoint for Developer
58
[Link] Next
[Link] Finish untuk menyelesaikan workflow yang telah dibuat, atau klik next untuk
membuat kondisi dan action yang lainnya.
1. Buka Visual Studio 2005 dengan Start Menu | Programs | Microsoft Visual
Studio 2008 | Microsoft Visual Studio 2008.
4. Didalam New Project, windows dialog dibawah Project Types , plih Visual C# |
SharePoint. | Sequential Workflow Library.
7. Klick OK.
8. DIdalam Solusi Explorer, double klik kedalam file [Link] untuk membuta
Workflow designer.
[Link] Studio akan menampilkan tampila pemilihan Toolbox Items pada dialog
window.
[Link] Browse.
[Link] OK.
SharePoint for Developer
61
Klik di lingkarang merah dimana di tandai sebagai error message dan kita klik utk
mengetahui error apa yang ada.
SharePoint for Developer
62
[Link] onWorkflowActivated1.
[Link] sendEmail1.
[Link] collHashes =
[Link];
[Link] collKeys = [Link];
[Link] = "administrator@[Link]";
[Link] = "New help request";
else
{
[Link]("From: " + employeeAlias);
SharePoint for Developer
65
[Link]();
[Link]("Priority: " + priority);
[Link]();
[Link]();
[Link]("Issue: " + issue);
[Link]();
[Link]("Notes: " + notes);
[Link]();
[Link]();
[Link]("See : " + [Link]);
}
[Link] = [Link]();
[Link] Choose a strong name key file drop-down list, pilih New.
[Link] Studio akan menampilan Create Strong Name Key di dialog window.
[Link] Create Strong Name Key di dialog window, ketik HelpRequestWorkflowKey di Key
file name textbox.
[Link].
[Link].
[Link].
Visual akan membuat file [Link] dan ditambahan kedalam project yang nanti akan kita
gunakan untuk penginstallan workflow dan contentype.
<Feature Id="3ECA6D2E-4D7D-4f8c-A623-64F2DDEBE62D"
Title="Help Request Workflow"
Description="Runs when a help request is submitted"
Version="[Link]"
Scope="Site"
xmlns="[Link]
<ElementManifests>
<ElementManifest Location="[Link]" />
<ElementManifest Location="[Link]" />
</ElementManifests>
<Properties>
<Property Key="GloballyAvailable" Value="true" />
</Properties>
</Feature>
<Elements xmlns="[Link]
SharePoint for Developer
67
<Workflow
Name="Help Request Workflow"
Description="Runs when a help request is submitted"
Id="74461565-CB89-47d3-8CA7-9A852A14E722"
CodeBesideClass="HelpRequestWorkflow.Workflow1"
CodeBesideAssembly="HelpRequestWorkflow, Version=[Link],
Culture=neutral, PublicKeyToken=REPLACETHIS"
StatusUrl="_layouts/[Link]">
</Workflow>
</Elements>
6. Update dari text REPLACETHIS dengan token yang telah kita dapatkan.
<Elements xmlns="[Link]
<!-- Define the Help Request content type -->
<Field ID="{C6F07C5F-823A-42a3-B31A-29C9E4332D52}"
Name="EmployeeAlias" DisplayName="Alias"
Type="Text" Group="HelpRequest" />
<Field ID="{DCCADD9E-F8A1-4f60-ABEE-7422D17B6DBE}"
Name="RequestDate" DisplayName="Date"
Type="DateTime" Group="HelpRequest" />
<Field ID="{9362DE0D-E87E-48e4-8ED9-2C82882DB97E}"
Name="UserPriority" DisplayName="Priority"
Type="Number" Group="HelpRequest" />
<Field ID="{A55A5AAA-123B-4263-8D63-785F31D93895}"
Name="Issue" DisplayName="Issue"
Type="Text" Group="HelpRequest" />
<Field ID="{A17F2592-9FC4-41ec-AC96-FD092F3F0AFA}"
Name="Notes" DisplayName="Notes"
Type="Note" Group="HelpRequest" />
<ContentType ID="0x010100773D844FEC7E44b895CA0E23678CA995"
Name="Help Request" Group="Support"
Description="Help Request Details" >
<FieldRefs>
<FieldRef ID="{C6F07C5F-823A-42a3-B31A-29C9E4332D52}"
SharePoint for Developer
69
[Link] Solution Explorer, klik kanan HelpRequestWorkflow dan pilih Add | Existing
Item dari menu
:: Note: 64-bit alternative to lines above; uncomment these to install on a 64-bit machine
::"%programfiles% (x86)\Microsoft Visual Studio 8\SDK\v2.0\Bin\[Link]" -uf
HelpRequestWorkflow
::"%programfiles% (x86)\Microsoft Visual Studio 8\SDK\v2.0\Bin\[Link]" -if
bin\Debug\[Link]
::Note: Uncomment these lines if you've modified your deployment xml files or IP forms
::stsadm -o deactivatefeature -filename HelpRequestWorkflow\[Link] -url [Link]
::stsadm -o uninstallfeature -filename HelpRequestWorkflow\[Link]
3. Pilih Site Settings di top dari page, dan klik Site Settings page.
[Link] Site Content Type page, dibawah the Settings section, pilih Workflow
Settings.
[Link] OK.
[Link] In the upper left of the Web page, select the Home tab to return to the
Team Site home page.
SharePoint for Developer
75
SharePoint for Developer
76
Seperti kita telah bicarakan di bab sebelumnya mengenai webpart. WebPart di SharePoint
adalah komponen andalan di SharePoint untuk membuat suatu halaman memiliki konten
yang dinamis.
WebPart sudah dikenalkan oleh SharePoint dari awal SharePoint dibuat yaitu pada tahun
2001. WebPart itu suatu konsep dimana semacam suatu potong-potongan bagian yang
dapat dimasukkan dan dapat juga dibuang.
Dan sekarang mulai [Link] 2.0 WebPart pun diperkenalkan sebagai usercontrol baru.
Sehingga kita bisa membuat WebPart yang mana bisa di pasang di aplikasi [Link] atau
bisa juga dipasang di SharePoint.
Bila kita ingin membuat WebPart yang bisa dipakai di semua aplikasi kita bisa
menggunakan Namespace [Link], tetapi bila kita hanya
ingin WebPart hanya dijalankan di lingkungan SharePoint saja maka kita dapat
menggunakan Namespace [Link].
Pada bab ini, kita akan pembuatan WebPart mulai dari pembuatan custom WebPart
property, connected WebPart, dan juga bagaimana kita melakukan debugging WebPart
yang telah dibuat.
Untuk membuat custom WebPart property kita bisa lakukan dengan beberapa langkah
sebagai berikut :
using System;
using [Link];
using [Link];
using [Link];
using [Link];
namespace [Link]
{
public class wpSimpleLoanCalculator :
[Link]
{
private string _textToRender = [Link];
private double _pv = 0;
private double _n = 0;
private double _rate = 0;
[WebBrowsable(true),
WebDisplayName("Loan Value"),
WebDescription("Enter a loan amount"),
Personalizable([Link])
]
public double PV
{
get { return this._pv; }
set
{
if (value < 0)
SharePoint for Developer
78
{
this._pv = 0;
}
else
{
this._pv = value;
}
}
}
[WebBrowsable(true),
WebDisplayName("Time in Months"),
WebDescription("Enter time in months"),
Personalizable([Link])
]
public double N
{
get { return this._n; }
set
{
if (value < 0)
{
this._n = 0;
}
else
{
this._n = value;
}
}
}
[WebBrowsable(true),
SharePoint for Developer
79
WebDisplayName("Interest Rate"),
WebDescription("Enter valid interest rate"),
Personalizable([Link])
]
public double Rate
{
get { return this._rate; }
set
{
if (value < 0)
{
this._rate = 0;
}
else
{
this._rate = value;
}
}
}
}
}
9. Add WebPart dari Site Settings > Modify all site settings > Klik Web Parts
[Link] WebPart dan kita akan melihat ada 3 property yang ada dalam WebPart kita
yaitu Loan Value, Time In Months, Interest Rate
SharePoint for Developer
81
Untuk membuat connected WebPart property kita bisa lakukan dengan beberapa langkah
sebagai berikut :
using System;
using [Link];
using [Link];
using [Link];
namespace [Link]
SharePoint for Developer
82
{
public interface ISelectedCustumer
{
string CustomerID { get; }
}
}
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace [Link]
{
public class wpCustomerProvider : [Link],
ISelectedCustumer
{
public wpCustomerProvider() { }
protected DropDownList ddCustomers;
private string selectedCustomer = [Link];
void ddCustomers_SelectedIndexChanged(object sender, EventArgs e)
{
selectedCustomer = [Link];
}
[ConnectionProvider("CustomerID", "CustomerID")]
public ISelectedCustumer GetCustomerID()
{
return this as ISelectedCustumer;
}
}
SharePoint for Developer
84
}
}
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace [Link]
{
public class wpConsumer : [Link]
{
public wpConsumer() { }
private ISelectedCustumer _customer = null;
protected TextBox txtCustomers;
if (_customer != null)
{
[Link] = _customer.CustomerID;
}
}
}
[Link] WebPart dari Site Settings > Modify all site settings > Klik Web Parts
[Link] WebPart > Connection > Send CustomerID to > klik wpConsumer
SharePoint for Developer
86
Bagaimana cara kita melakukan debug aplikasi WebPart kita, yaitu dengan sebagai berikut
:
4. Pilih semua proses yang dengan nama [Link] > klik button Attach
SharePoint for Developer
87
6. Lakukan beberapa breakpoint di beberapa code yang akan kita lakukan debug
7. Buka aplikasi SharePoint yang mana coding webpart nya digunakan dipage tersebut
SharePoint for Developer
88
Ketika kita membuat suatu site, SharePoint dengan langsung menyediakan beberapa List,
Document Library, dan default page. Dan ketika kita membuat suatu Document Library,
maka secara default pun SharePoint akan menambah field Title,Created, Modified, dan
sebagainya.
Bagaimana hal itu bisa terjadi ? Ini dikarenakan SharePoint pada saat penginstallan
membuat suatu file definisi tempat menyimpan informasi-informasi [Link]
sedangkan isi dari file definisi itu sendiri adalah berupa gabungan dari tag-tag XML, ASPX,
controls yang disimpan didalam 12 hive folder.
Oleh karena itu setiap kita membuat List, Document Library, Contact, Wiki, Blog, dan
sampai membuat Site. SharePoint akan mengambil informasi tersebut dari file definisi
sehingga bila ada perubahan dari file definisi tersebut maka secara otomatis akan
direfleksikan oleh seluruh Site, Document Library atau List yang menggunakan file definisi
tersebut.
Pada bab ini kita akan mempelajari membuat list template, site template, dan juga
membahas mengenai List Definisi dan Site Definisi
Untuk membuat List definisi tersebut, dapat dilihat dari langkah-langkah sebagai berikut :
5. Ketik File name untuk menjadi nama file dari list template yang kita buat.
6. Ketik Template Name sebagai title dari template tersebut
7. Ketik Template Description sebagai deskripsi
8. Centang Include Content bila kita ingin semua konten yang ada didalam list yang
telah kita buat itu akan ikut tersimpan juga. Sehingga pada saat kita membuat dari
template tersebut maka list yang baru tersebut akan disertakan dokumen / data
penyertanya
9. Klik Ok untuk simpan
SharePoint for Developer
90
[Link] list template gallery untuk masuk ke halaman daftar dari semua template yang
telah dimiliki
[Link] suatu Document Library dengan template ―Document Template‖ dan kita
akan memiliki Document Library dengan hasil yang sama baik itu Field, View,
maupun documentnya
SharePoint for Developer
91
Untuk membuat Site definisi tersebut, dapat dilihat dari langkah-langkah sebagai berikut :
3. Ketik File name untuk menjadi nama file dari site template yang kita buat.
4. Ketik Template Name sebagai title dari template tersebut
5. Ketik Template Description sebagai deskripsi
6. Klik Ok untuk simpan
7. Klik site template gallery untuk masuk ke halaman daftar dari semua site template
yang telah dimiliki
8. Sekarang kita dapat membuat site berdasarkan site template yang telah kita buat
SharePoint for Developer
93
Bila kita hanya menginstall WSS maka kita akan mendapatkan beberapa site template
sebagai berikut :
Sedangkan bila kita menginstall SharePoint maka kita akan mendapatkan tambahan
beberap site template lagi selain template yang ada diatas, site-site itu adalah :
Untuk dapat membuat kustom Site Defini yang baru, kita dapat mengikuti cara-cara
sebagai berikut :
Untuk melakukan perubahan dalam template, kita dapat melakukan perubahan pada file
[Link]. Untuk informasi lebih detilnya, dapat lihat dalam WSS SDK dan MOSS SDK.
<Elements xmlns="[Link]
<Field ID="{374e02cc-fe2e-4247-8762-e69242f9ff94}"
Name="SubmissionComments"
SourceID="[Link]
StaticName="SubmissionComments"
Group="Submission Columns"
Type="Note"
DisplayName="Comments"
Sortable="FALSE"
Description="Comments on the submission"
Sealed="TRUE"
UnlimitedLengthInDocumentLibrary="TRUE"
AllowDeletion="TRUE"
ShowInFileDlg="FALSE">
</Field>
</Elements>
SharePoint for Developer
97
<ContentType
ID="0x01AB"
Name="Submission"
Group="Submission Content Types"
Description="Create a new submission"
Version="0">
<FieldRefs>
<FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title"
DisplayName="Title" Sealed="TRUE"/>
<FieldRef ID="{475c2610-c157-4b91-9e2d-6855031b3538}"
Name="FullName" Required="TRUE" />
<FieldRef ID="{fce16b4c-fe53-4793-aaab-b4892e736d15}" Name="Email"
Required="TRUE" />
<FieldRef ID="{374e02cc-fe2e-4247-8762-e69242f9ff94}"
Name="SubmissionComment" Required="TRUE" />
</FieldRefs>
</ContentType>
</Elements>
<Feature
Id="{6d2c42db-782c-417e-9c7c-2c941ef52b92}"
Title="Submission List"
Description="This feature contains a submission list definition"
Version="[Link]"
Scope="Site"
xmlns="[Link]
<ElementManifests>
<ElementManifest Location="ListTemplate\[Link]" />
</ElementManifests>
</Feature>
3. Buat folder ListTemplate didalam folder SubmissionsList . Buatlah file xml yaitu
[Link] sebagai berikut :
4. Create folder dengan nama Submissions didalam SubmissionsList folder dan copy
FEATURES\CustomList\CustList\ [Link] file into the Submissions folder.
SharePoint for Developer
100
<ContentTypes>
<ContentTypeRef ID="0x01AB">
<Folder TargetName="Submission" />
</ContentTypeRef>
<ContentTypeRef ID="0x0120" />
</ContentTypes>
<Fields>
<Field
Name="Title"
ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}"
DisplayName="Title"
Sealed="TRUE"
SourceID="[Link]
StaticName="Title">
</Field>
<Field
ID="{475c2610-c157-4b91-9e2d-6855031b3538}"
Name="FullName"
DisplayName="$Resources:core,Full_Name;"
Type="Text"
SourceID="[Link]
StaticName="FullName">
</Field>
<Field
ID="{fce16b4c-fe53-4793-aaab-b4892e736d15}"
Name="Email"
DisplayName="$Resources:core,E-mail_Address;"
SharePoint for Developer
101
Type="Text"
SourceID="[Link]
StaticName="Email">
</Field>
<Field
ID="{374e02cc-fe2e-4247-8762-e69242f9ff94}"
Name="SubmissionComments"
SourceID="[Link]
StaticName="SubmissionComments"
Group="Submission Columns"
Type="Note"
DisplayName="Comments"
Sortable="FALSE"
Description="Comments on the submission"
Sealed="TRUE"
UnlimitedLengthInDocumentLibrary="TRUE"
AllowDeletion="TRUE"
ShowInFileDlg="FALSE">
</Field>
</Fields>
<ViewFields>
<FieldRef Name="Attachments">
</FieldRef>
<FieldRef Name="LinkTitle">
</FieldRef>
<FieldRef Name="FullName">
</FieldRef>
SharePoint for Developer
102
<FieldRef Name="Email">
</FieldRef>
<FieldRef Name="SubmissionComments">
</FieldRef>
</ViewFields>
[Link] Sites Setting > Modify all site settings akan tampil di custom list satu list baru
dengan nama SubmissionList
Sebuah content type mewakili suatu grup dari item-item informasi organisasi yang memiliki
atribut yang sama. Atribut ini bisa kita definisikan sendiri, termasuk nama, deskripsi,
kategori group sesuai kebutuhan bisnis kita. Sebagai tambahan, kita dapat
mengasosiasikan suatu atribut dengan template, workflow, site column, dan policy
management bahkan setting untuk document information panel. Anda dapat merubah
atribut-atribut ini kapanpun dan memiliki opsi untuk membuat perubahan ini berlaku ke
keseluruhan aplikasi.
SharePoint for Developer
103
SharePoint menawarkan beberapa content types yang menyediakan dasar yang baik untuk
semua content type yang akan dikembangkan kedepannya. Anda dapat memilih salah satu
content type ini dan menggunakannya untuk membuat content type anda sendiri di central
gallery, setelah itu dapat kita aplikasikan ke banyak list dan library di seluruh site
collection. Dengan membuat content types baru, anda dapat member rules dan atribut
untuk mengkustomisasi informasi dan menghubungkannya kepada aktivitas bisnis anda.
Lebih spesifik dari content type kita memilki column type, yaitu item-item informasi yang
terdapat di dalam content type. Sama seperti content type, kita dapat merubah column
type ini kapanpun dan memiliki opsi untuk membuat perubahan ini berlaku ke seluruh
aplikasi.
Pada column type ini SharePoint menyediakan pilihan tipe informasi yang ingin kita simpan
ke dalam column ini. Ada 11 pilihan yaitu: Single line of text, Multiple lines of text, Choice,
Number, Currency, Date and Time, Lookup, Yes/No, Person or Group, Hyperlink or Picture,
dan terakhir Calculated. Dengan memilih tipe informasi yang berbeda, maka kita akan
mendapatkan User Interface yang berbeda juga untuk melakukan fungsi-fungsi dasar
seperti view, add, edit sesuai tipe informasi yang kita pilih.
Untuk membuat custom column type, kita dapat langsung mengakses ―Site Settings‖ yang
merupakan sub menu dari ―Site Actions‖.
Kemudian setelah kita masuk ke halaman ―Site Settings‖ pilih ―Site Columns‖.
Akan tampil halaman ―Site Column Gallery‖ yang berisikan list column-column yang
terdapat di dalam site kita. Untuk membuat column type baru, pilih ―Create‖
Akan tampil halaman ―New Site Column‖, tuliskan nama, tipe informasi, group, dan
additional column settings (yang akan berubah sesuai dengan tipe informasi yang kita
pilih). Klik OK.
SharePoint for Developer
105
Maka column type baru kita sudah terbuat, akan ditampilkan sesuai dengan Grup yang kita
masukkan di form sebelumnya. Klik nama column type untuk melakukan edit.
Setelah membuat column type baru pada bagian sebelumnya, sekarang kita akan mencoba
membuat content type baru. Content type yang akan kita buat akan menggunakan column
type baru yang kita buat di bagian sebelumnya. Studi kasusnya adalah content type
dengan tipe dokumen, tetapi dengan template custom.
Pertama, sama dengan ketika akan membuat column type baru, pilih ―Site Actions‖
kemudian ―Site settings‖.
Kemudian pilih ―Site content types‖ yang merupakan sublink dari bagian ―Galleries‖.
SharePoint for Developer
106
Form ―New Site Content Type‖ akan tampil. Isikan nama, deskripsi, parent content type
from (dalam kasus ini pilih Document Content Types), parent content type (dalam kasus ini
pilih Document), dan terakhir group.
Untuk merubah template, klik ―Advanced Settings‖. Kemudian pilih template yang akan
diupload dengan ―Upload a new document template‖.
Sebagai template dokumen yang baru, kita membuat 1 dokumen word baru. Misalnya beri
nama Meeting [Link].
SharePoint for Developer
108
Jika sukses, kita akan kembali ke halaman awal kembali. Kali ini kita akan menambahkan
column type ke dalam content type ini. Klik link ―Add from existing site columns‖.
Pada dropdown ―Select columns from‖ pilih group tempat column type yang kita buat pada
bagian sebelumnya. Kemudian setelah column type kita muncul di list ―Available columns‖,
klik kemudian pilih ―Add >‖ untuk memindahkan dia ke list ―Column to add‖.
SharePoint for Developer
109
Setelah proses berhasil, pada bagian Columns akan muncul nama column type yang kita
tambahkan tadi.
Kemudian, untuk mengaplikasikan content type yang baru kita buat tadi masuk ke dalam
suatu Document Library. Pilih ―Settings‖ > ―Document Library Settings‖.
SharePoint for Developer
110
Maka akan tampil bagian baru yaitu ―Content Types‖ pada halaman ―Document Library
Settings‖.
SharePoint for Developer
111
Berikutnya, tambahkan content type yang sudah kita buat tadi dengan memilih ―Add from
existing site columns‖. Ubah pilihan dropdown menjadi grup content type kita tadi. Setelah
content type kita muncul di lsit ―Available Site Content Types‖ sorot kemudian klik tombol
―Add >‖ dan content type itu akan berpindah ke list ―Content types to add‖. Klik OK.
Jika sukses, maka akan kembali ke halaman ―Document Library Settings‖. Pada bagian
―Content Types‖ akan bertambah nama content type yang sudah kita buat tadi (dalam
kasus ini ―New Content Type‖). Perhatikan juga pada bagian ―Columns‖ otomatis
bertambah ―Column Baru‖ yang merupakan column type bawaan content type.
SharePoint for Developer
112
Jika kita kembali ke halaman awal document library kita, ketika coba memilih tombol new
maka akan muncul pilihan ―New Content Type‖ yaitu content type yang kita tambahkan
tadi.
Dan ketika kita pilih, template yang digunakan adalah template yang sudah kita upload
tadi.
6.4 Kesimpulan
SharePoint for Developer
113
Column type dan content type merupakan tools yang sudah disediakan SharePoint untuk
memenuhi kebutuhan document management dasar bagi suatu perusahaan. Dengan
menggunakan tools ini para developer akan lebih cepat menyelesaikan suatu requirement
penambahan atau perubahan proses bisnis.
SharePoint for Developer
114
Dengan web services kita bisa membuat berbagai aplikasi dengan memanfaatkan
informasi dari SharePoint, misalnya aplikasi desktop yang membaca item-item dari suatu
list, atau aplikasi web yang memiliki fitur untuk administrasi SharePoint site, dari
sesama produk Microsoft sendiri sudah disediakan aplikasi-aplikasi yang dapat
SharePoint for Developer
115
Untuk diakses via http sendiri, file-file tersebut dimapping ke virtual folder
/_vti_bin/*.asmx di IIS.
SharePoint for Developer
116
Untuk VS 2008, dari menu pilih Project > Add Service Reference.
Untuk VS 2005, dari menu pilih Project > Add Web Reference.
SharePoint for Developer
117
Kemudian klik ―Advanced‖. Untuk pengguna VS 2005, langkah ini bisa dilewati.
Kemudian klik ―Add Web Reference‖, sekali lagi untuk pengguna VS 2005 langkah ini bisa
dilewati.
SharePoint for Developer
118
SharePoint for Developer
119
[Link]
[Link]
Kita beri nama Reference kita sebagai [Link], kemudian klik Add Reference.
SharePoint for Developer
120
SharePoint for Developer
121
Jika ragu, kita dapat melakukan tes URL terlebih dahulu menggunakan browser.
Kembali ke form kita, tambahkan satu buah tombol ―Create Document Workspace‖.
Sebelum itu, masuk ke dalam site SharePoint tempat kita akan membuat Document
Workspace baru. Pertama kita perlu membuat 1 Document Library baru, kemudian upload
1 buah document yang akan jadi ―korban‖ untuk percobaan kita membuat document
workspace baru.
SharePoint for Developer
123
SharePoint for Developer
124
Berikutnya klik 2x tombol ―Create Document Workspace‖ yang sudah kita buat tadi, setelah
itu tambahkan kode berikut:
Jangan lupa untuk mengganti tag2x berikut: [username], [password], [domain], [site],
[documenturl]
Pada bagian ini kita membuat object baru [Link] dsc, kemudian kita memanggil
fungsi ―CreateDws‖ yang berfungsi menciptakan suatu workspace baru.
Kemudian Run aplikasi kita dan klik tombol ―Create Document Workspace‖. Tunggu
sebentar jika tidak ada error browsing ke dalam site SharePoint tempat document kita
berada.
SharePoint for Developer
126
Melalui ―Site Actions‖ masuk ke dalam All Site Content. Akan terlihat sebuah site baru
―NEWDWS‖ di sana.
Melalui ―Site Actions‖ masuk ke dalam All Site Content. Akan terlihat sebuah workspace
baru ―NEWDWS‖ di sana.
SharePoint for Developer
127
SharePoint for Developer
128
Pertama-tama buat sebuah Custom List di site SharePoint. Sebagai contoh bisa kita
namakan ―Learn List‖.
SharePoint for Developer
129
Sama seperti pada bagian yang pertama, kita akan membuat suatu reference baru ke Web
Service List.
[Link]
SharePoint for Developer
130
Untuk bisa mengambil data dari suatu list, masih ada satu referensi lagi yang kita perlukan
yaitu:
[Link]
SharePoint for Developer
131
Kemudian pada bagian Web References kita akan terdapat 3 item. 2 item baru yang baru
saja kita tambahkan yaitu: [Link] dan [Link].
SharePoint for Developer
132
Berikutnya kita lakukan modifikasi terhadap form kita. Kita tambahkan 1 tombol yaitu
―Show List Data‖ yang akan menampung kode kita untuk membaca dan menampilkan
item-item dalam satu list.
SharePoint for Developer
133
Klik 2x tombol ―Show List Data‖ kemudian tambahkan kode berikut. Jangan lupa untuk
mengganti tag-tag seperti: [site] dan [listname].
[Link] = "[Link]
[Link] = true;
[Link] = true;
[Link]._sWebMetadata webMeta;
[Link]._sWebWithTime[] arrWebWithTime;
[Link]._sListWithTime[] arrListWithTime;
[Link]._sFPUrl[] arrUrls;
string roles; string[] roleUsers; string[] roleGroups;
[Link] = "[Link]
[Link](out webMeta, out arrWebWithTime, out arrListWithTime,
out arrUrls, out roles, out roleUsers, out roleGroups);
[Link](listItems);
}
SharePoint for Developer
134
Setelah itu Run project, kemudian klik tombol ―Show List Data‖.
SharePoint for Developer
135
UserProfileService Web service menyediakan suatu antarmuka bagi klien remote untuk
membaca dan membuat user profiles. Web service ini hanya tersedia bagi Microsoft Office
SharePoint Server dan bisa diakses pada URL:
[Link]
AddColleague
AddLink
AddMembership
AddPinnedLink
CreateMemberGroup
CreateUserProfileByAccountName
GetCommonColleagues
GetCommonManager
GetCommonMemberships
GetInCommon
GetPropertyChoiceList
GetUserColleagues
GetUserLinks
GetUserMemberships
GetUserPinnedLinks
GetUserProfileByGuid
GetUserProfileByIndex
GetUserProfileByName
GetUserProfileCount
GetUserProfileSchema
ModifyUserPropertyByAccountName
RemoveAllColleagues
RemoveAllLinks
RemoveAllMemberships
SharePoint for Developer
136
RemoveAllPinnedLinks
RemoveColleague
RemoveLink
RemoveMembership
RemovePinnedLink
UpdateColleaguePrivacy
UpdateLink
UpdateMembershipPrivacy
UpdatePinnedLink
Pada contoh ini kita akan membuat suatu console application yang akan mengakses
UserProfileService web service untuk mendapatkan properti dari suatu user.
Pertama buka Visual Studio, kemudian buat suatu projek Console Application baru.
[Link]
SharePoint for Developer
137
Setelah itu tambahkan referensi ke Microsoft Office Server component (ini hanya jika
development dilakukan pada server yang terinstall MOSS, jika tidak copy terlebih dahulu
assembly Microsoft Office Server ke dalam server development. File dapat ditemukan di :
%ProgramFiles%\Common Files\Microsoft Shared\Web server
extensions\12\ISAPI)
SharePoint for Developer
138
using [Link];
[Link] service =
new [Link]();
[Link] = "[ServiceUrl]";
[Link] =
[Link];
[Link] idres =
[Link](0);
[Link][] pdats = [Link];
Jangan lupa untuk mengganti [ServiceUrl] dengan URL dari web service di server kita
masing-masing. Baris .GetUserProfileByIndex(0) akan mengembalikan UserProfile dari SSP
pada index ke-0 kemudian kita lakukan looping dengan foreach ([Link]
pdat in pdats) untuk mengeluarkan masing-masing propertinya.
SharePoint for Developer
140
Sebelum melakukan tes, jangan lupa untuk mengecek dari SSP apakah ada UserProfiles
untuk diquery yang terdaftar pada SSP
Setelah itu jalankan program dan voila! Program akan menampilkan properti-properti dari
User yang kita pilih.
SharePoint for Developer
141
SharePoint for Developer
142
Langkah membuatnya sama dengan langkah-langkah untuk membuat custom web service
biasa, tetapi web service ini akan dideploy sebagai bagian dari folder _vti_bin milik
SharePoint Services.
Pada contoh ini kita akan membuat suatu web service yang akan sekedar mengembalikan
string ―Hello world‖.
Pertama buka Visual Studio, kemudian buat satu solution [Link] Web Service.
Setelah itu tambahkan satu project Class Library ke dalam solution tersebut untuk
menampung code untuk proses dari web service tersebut.
SharePoint for Developer
143
Berikutnya sign Class Library supaya assemblynya bisa menjadi strong-named assembly.
Copy [Link] yang ada di dalam project Web Service kedalam Class Library yang kita
buat tadi. Delete [Link] file, dan delete juga [Link] yang ada pada folder App_Code.
Pada project Web Service sisakan [Link]. Isi dari [Link] seharusnya seperti ini:
using System;
using [Link];
using [Link];
using [Link];
using [Link];
SharePoint for Developer
145
using [Link];
[WebService(Namespace = "[Link]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using [Link] AJAX,
uncomment the following line.
// [[Link]]
public class Service : [Link]
{
public Service()
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
Kemudian rubah [Link]. Hilangkan atribut CodeBehind dari page directive kemudian
modifikasi isinya hingga mirip dengan format berikut:
Jangan lupa untuk mengganti <namaassembly> dan <publickey> sesuai dengan informasi
hasil kompilasi assembly Class Library.
SharePoint for Developer
146
Setelah itu lakukan copy file [Link] ke dalam folder C:\Program Files\Common
Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\ supaya kita bisa
membuat file .disco.
SharePoint for Developer
147
Kemudian dengan menggunakan Visual Studio Command Prompt ketikkan perintah berikut:
disco [Link]
SharePoint for Developer
148
SharePoint for Developer
149
Setelah itu pada direktori tempat Visual Studio Command Prompt berada: C:\Program
Files\Microsoft Visual Studio 9.0\VC kita akan menemukan 2 file yaitu [Link] dan
[Link].
SharePoint for Developer
150
Untuk mendaftarkan namespace Windows SharePoint Services object model, buka kedua
file .disco dan .wsdl, kemudian ganti instruksi XML awal -- <?xml version="1.0"
encoding="utf-8"?> -- dengan instruksi sebagai berikut:
Pada file .disco, modifikasi referensi kontrak dan tag alamat SOAP supaya mirip dengan
contoh berikut, yaitu mengganti path literal dengan path yg dihasilkan dari kode dengan
menggunakan class [Link] [
[Link] ],
and yang akan mengganti nama metode yang dispesifikasikan pada atribut binding:
SharePoint for Developer
151
<contractRef ref=<%
[Link]([Link]([Link](Request) +
"?wsdl"),[Link]); %>
docRef=<%
[Link]([Link]([Link](Request)),Respon
[Link]); %>
xmlns="[Link] />
<soap address=<%
[Link]([Link]([Link](Request)),Respon
[Link]); %>
xmlns:q1="[Link] binding="q1:HelloWorld"
xmlns="[Link] />
<soap address=<%
[Link]([Link]([Link](Request)),Respon
[Link]); %>
xmlns:q2="[Link] binding="q2:ServiceSoap12"
xmlns="[Link] />
SharePoint for Developer
152
<soap:address location=<%
[Link]([Link]([Link](Request)),Respon
[Link]); %> />
SharePoint for Developer
153
Ubah nama kedua file ke dalam format yang sesuai [Link] dan
[Link] jadi servis kita dapat dengan mudah ditemukan melalui
Windows SharePoint Services.
SharePoint for Developer
154
Untuk membuat Web service kita dapat dikenali oleh Visual Studio bersama dengan Web
service default milik SharePoint, buka file [Link] yang terletak pada \Program
Files\Common Files\Microsoft Shared\Web Server Extensions\12\ISAPI dan tambahkan
kode berikut, menspesifikasikan file asmx Web service kita.
Lakukan iisreset.
SharePoint for Developer
156
Excel Web Access web part digunakan untuk menampilkan spreadsheet sebagai HTML pada
browser. Setelah mengkonfigurasi Excel Service dengan benar, anda dapat memasukkan
web part ini di halaman mana saja dan menggunakannya untuk menampilkan spreadsheet.
Excel Calculation Services menjalankan kalkulasi yang berjalan pada server (server-side),
caching, dan manajemen session untuk spreadsheet. Jika anda memiliki suatu spreadsheet
yang rumit dan diakses banyak user, Excel Calculation Services dapat di-load balancing
untuk meningkatkan performa.
Excel Web Services menyediakan suatu antarmuka yang dapat deprogram untuk Excel
Services. Menggunakan web services ini, anda dapat mengembangkan aplikasi custom
yang menggunakan mesin kalkulasi dari Excel Services. Ini membuat anda dapat
mengalihkan kalkulasi yang berat ke server.
Setelah itu kita perlu membuat SharePoint tahu bahwa Document Library itu adalah suatu
―trusted file location‖. Masuk ke dalam Central Administration kemudian SSP. Kemudian
pilih ―Trusted file locations‖.
SharePoint for Developer
160
Pilih ―Add Trusted File Location‖ untuk menambahkan lokasi file excel yang bisa kita publish
sebagai web dengan Excel Services.
SharePoint for Developer
161
Pada contoh ini digunakan Document Library yang kita buat pada langkah pertama, yaitu
―Excel Services‖. URLny kurang lebih seperti ini : [Link]
site)/Excel%20Services/
SharePoint for Developer
162
Jangan lupa memberi tanda centang pada ―Allow User-Defined Functions‖ karena area ini
akan kita pergunakan juga untuk mencoba UDF nantinya.
SharePoint for Developer
163
Setelah itu buat suatu file Excel dengan Ms Office Excel 2007. Di dalamnya isi dengan
tabel, suatu fungsi (misalnya SUM), dan buat grafik dari tabel itu.
Setelah itu masuk ke dalam Document Library settings > pilih Advanced Settings untuk
menampilkan file excel di browser.
SharePoint for Developer
166
Setelah itu coba klik file Excel yang ada di Document Library ―Excel Services‖ dan voila! File
Excel kita tampil di browser dengan baik.
[Link] site)/_vti_bin/[Link].
SetCell member kita kemampuan untuk membaca dan menulis ke dalam spreadsheet,
sedangkan metode Calculate melakukan kalkulasi semua formula pada workbook.
Inilah jawabannya … list dari semua yang dapat kita lakukan dengan Excel Web Services:
SetCell: Merubah nilai suatu sel pada suatu sheet workbook. Ada dua cara untuk
memanggil metode ini: pertama memanggil alamat sel (misalnya ―B52‖) atau range yang
dinamai (misalnya ―Interest‖), cara lainnya adalah dengan memanggil koordinat
intergernya, seandainya di dalam kode kita lebih nyaman menggunakannya (terutama jika
kita bermain dengan index).
SetRange: Sama seperti SetCell, tetapi untuk merubah value pada range yang
berkesinambungan.
Refresh: Membaca data dari koneksi data eksternal (atau koneksi workbook) dan me-
refresh nilai-nilai pada sel-sel yang relevant, seperti cel-cel PivotTable atau hasil dari
formula cube.
GetCell: Mendapatkan nilai dari sebuah sel. Nilai baliknya dapat berupa sebuah string atau
binary.
CancelRequest: Jika aplikasi kita menjalankan sesi Excel Web Services pada thread yang
terpisah, dan ingin menggagalkan suatu request ke server yang berjalan terlalu lama
(misalnya sebuah kalkulasi yang membuat user menunggu hingga sempat membuat kopi
terlebih dahulu) – hal ini dapat dilaukan dengan memanggil metode ini.
CloseWorkbook: Memberi perintah kepada server untuk menutup workbook yang dibuka
untuk sesi saat ini, sehingga server dapat melepaskan semua resources yang digunakan
dalam konteks sesi itu.
SharePoint for Developer
170
[Link] = [Link];
Status[] stat;
string sessId =
[Link]("[Link]
"i", "i",out stat);
[Link] = [Link](sessId, "Sheet1", 2, 1, false, out stat).ToString();
SharePoint for Developer
172
Kita dapat menggunakan template class library Visual Studio 2005 untuk dengan mudah
menciptakan assembly UDF Excel Services.
Berikutnya, tambahkan reference ke assembly UDF Excel Services. Jika Visual Studio 2005
berada pada komputer yang sama dengan SharePoint Server 2007, lakukan hal-hal sebagai
berikut:
SharePoint for Developer
174
1. Klik kanan project pada Visual Studio Solution Explorer dan pilih menu Add
Reference….
2. Pilih [Link] pada dialog box Add Reference, kemudian scroll ke bawah untuk
komponen Excel Services UDF Framework, pilih, kemudian klik OK untuk
menambahkan reference.
Jika Visual Studio 2005 berjalan pada komputer yang tidak memiliki SharePoint Server
2007 terinstall di dalamnya, maka assembly UDF Excel Services tidak akan tersedia. Pada
kasus ini, kita dapat mengcopy assembly UDF Excel Services dari komputer yang memiliki
SharePoint Server 2007 ke local folder atau komputer development. Assembly UDF Excel
Services namanya adalah [Link] dan secara default
dapat ditemukan pada folder berikut pada komputer yang terinstall dengan SharePoint
Server 2007:
Setelah mendapatkan local copy dari assembly UDF Excel Services, kita dapat
menambahkan reference kepada assembly itu dengan browsing untuk file local. Untuk
menambahkan reference ke local copy lakukan sebagai berikut:
1. Klik kanan project pada Visual Studio Solution Explorer dan pilih menu Add
Reference….
2. Pilh tab Browse pada dialog box Add Reference dan browse ke folder tempat
assembly UDF Excel Services berada. Pilih assembly itu, kemudian pilih OK untuk
menambah reference.
SharePoint for Developer
175
using [Link];
[UdfClass]
public class Class1
SharePoint for Developer
176
[UdfMethod]
public double MyDouble(double d)
{
return (d * 9);
}
[UdfMethod(IsVolatile = true)]
public DateTime ReturnDateTimeToday()
{
return ([Link]);
}
Metode MyDouble menerima parameter untuk tipe double dan mengembalikan hasil
berupa nilai parameter dikalikan 9. Metode ReturnDateTimeToday mengembalikan tanggal
saat ini. Kedua metode tersebut ditandai dengan atribut UdfMethod. Metode apapun yang
tidak ditandai dengan tanda tersebut tidak akan dipedulikan dan tidak akan dianggap
metode UDF. UdfMethod memiliki property Boolean IsVolatile yang dapat kita gunakan
untuk menandai apakah suatu metode volatile atau nonvolatile. Default valuenya adalah
FALSE, yang berarti nonvolatile.
SharePoint for Developer
177
Melakukan konfigurasi Excel Services untuk bisa bekerja dengan assembly UDF
memerlukan langkah-langkah berikut:
Langkah pertama untuk membuat ―trusted file location‖ telah kita lakukan pada sub-bab
pertama. Kita akan memanfaatkan ―trusted file location‖ yang sudah kita buat pada sub-
bab pertama yaitu Document Library ―Excel Services‖.
Excel Services mencatat assembly-assembly UDF yang terdaftar. Kita dapat membuat
enable atau disable setiap assembly dengan Excel Services. Untuk mendaftarkan assembly
UDF dengan Excel Services, lakukan hal berikut dengan komputer yang terinstall
SharePoint Server 2007.
Ketika kita mendaftarkan assembly UDF assembly pada Excel Services, salah satu pilihan
Assembly Location adalah file path. Sebuah lokasi file path dapat berupa local folder atau
network share.
4. Beri nama sel B1. Pertama klik pada tab Formulas. Kemudian klik sel B1. Pada tab
Formulas, pada grup Defined Named, klik Define. Pada dialog box New Name,
pada box Name, ketik MyDoubleParam.
5. Pada sel A2, ketik formula untuk memanggil UDF ReturnDateTimeToday. Ketik
=ReturnDateTimeToday().
6. Pada sel A3, ketik formula untuk memanggil UDF ReturnDateTimeToday. Ketik
=ReturnDateTimeToday(). Berikutnya, klik-kanan sel A3 untuk menampilkan
menu. Klik Format Cells.
7. Pada dialog box Format Cells, pada tab Number, pilih Date. Pilih format date dari
list Type —sebagai contoh, *3/4/2001.
8. Klik OK.
SharePoint for Developer
182
Sel A1, A2, dan A3 akan menjadi "#NAME?" pada Excel. Ini karena Excel tidak dapat
menjalankan panggilan ke UDF MyDouble dan UDF ReturnDateTimeToday. Formula
akan dijalankan dengan baik setelah workbook ditampilkan menggunakan Excel Services.
1. Klik Microsoft Office Button, arahkan ke Publish, dan klik Excel Services.
2. Pada dialog box Save As, klik Excel Services Options.
3. Pada dialog box Excel Services Options, pada tab Show, pastikan pilihan Entire
Workbook sudah terpilih.
4. Klik tab Parameters.
5. Klik tombol Add….
6. Pada dialog box Add Parameters, pilih check box MyDoubleParam.
SharePoint for Developer
183
[Link] Save.
SharePoint for Developer
184