0% menganggap dokumen ini bermanfaat (0 suara)
63 tayangan184 halaman

Panduan Pemrograman SharePoint untuk Developer

Diunggah oleh

Susi Rahmawati
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
63 tayangan184 halaman

Panduan Pemrograman SharePoint untuk Developer

Diunggah oleh

Susi Rahmawati
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

SharePoint for 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]

Maju terus Geeks Indonesia,

Agusto Xaverius P S | Aries Prasetya Wibowo | Wely


SharePoint for Developer
3

DAFTAR ISI

Bab 1. Pengenalan Programming di SharePoint 2007 ............................................................. 5


1.1 Mengenal SharePoint 2007................................................................................................. 5
1.2 Collaborative Application Markup Language (CAML) .............................................. 11
1.3 Mempersiapkan Lingkungan Pemrograman ............................................................... 16
Bab 2. Programming Menggunakan SharePoint Object Model ........................................... 18
2.1 Membuat Web Part .................................................................................................................. 19
2.2 Manipulasi Site/Web................................................................................................................ 26
2.3 Manipulasi List ........................................................................................................................... 30
2.4 Manipulasi Document Library/Files ................................................................................... 33
2.5 Memanfaatkan Event Handler ............................................................................................. 35
2.6 Feature ......................................................................................................................................... 49
2.7 Windows Application ............................................................................................................... 49
Bab 3. SharePoint Workflow ............................................................................................................ 54
3.1 Workflow dengan SharePoint Designer ........................................................................... 55
3.2 Workflow dengan Visual Studio 2008............................................................................... 58
Bab 4. Programming WebPart Tingkat Lanjut .......................................................................... 76
4.1 Membuat custom WebPart property ................................................................................. 76
4.2 Connected WebPart ................................................................................................................. 81
4.3 Debugging WebPart................................................................................................................. 86
Bab 5. Membuat Template dan File Definisi .............................................................................. 88
5.1 List Template ............................................................................................................................. 88
5.2 Site Template............................................................................................................................. 91
5.3 Site Definition ............................................................................................................................ 93
5.4 Membuat List Definisi ............................................................................................................. 95
Bab 6. Content Type & Column Type ......................................................................................... 102
6.1 Mengenal Content Type & Column Type ................................................................... 102
Bab 7. Programming Menggunakan SharePoint Web Services ........................................ 114
7.1 Menggunakan Document Workspace Web services .................................................. 116
7.2 Menggunakan List Web services ...................................................................................... 128
SharePoint for Developer
4

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

Bab 1. Pengenalan Programming di SharePoint 2007

Bab ini menyajikan kembali terminologi-terminologi di SharePoint, tujuannya untuk


menyamakan bahasa dan pemahaman akan apa yang akan disajikan.

1.1 Mengenal SharePoint 2007


SharePoint adalah portal informasi enterprise dari Microsoft yang dapat dikonfigurasikan
untuk dijalankan di lingkungan intranet maupun internet.

Mengapa perlu SharePoint ?


 Seiring dengan berkembangnya sebuah perusahaan, file atau dokumen yang dimiliki
masing – masing karyawan juga bertambah banyak. Tidaklah jarang, seorang
karyawan harus membagikan file kepada rekan kerja tertentu. Permasalahan yang
sering timbul adalah sulitnya untuk memantau dan mengkontrol file yang akan kita
bagikan hanyalah kepada orang tertentu saja, atau masing – masing orang memilik
hak akses yang berbeda atas file yang dibagikan.
 SharePoint memungkinkan kita untuk meletakkan file atau dokumen yang akan kita
bagikan ke sebuah repositori yang terpusat. Selain itu, kita juga bisa membuat
aturan bahwa sebuah dokumen hanya bisa diakses oleh pengguna tertentu.
 Saat ini, sebuah perusahaan bisa memiliki berbagai cabang di beberapa tempat, baik
berbeda negara, kota, ataupun lokasi perkantoran. SharePoint memungkinkan tim
dan individu untuk tetap terhubung dan berkolaborasi bersama.
 Tidaklah jarang kita menemukan skenario bahwa sebuah divisi atau departemen
dalam perusahaan menginginkan sebuah website atau portal mereka sendiri.
Membuat website atau portal secara manual tidaklah mudah dan tentunya memakan
waktu yang relative lama. Dengan SharePoint, masing – masing divisi dalam
perusahaan, dapat membuat portal sendiri dengan konfigurasi yang cukup mudah.

Istilah SharePoint adalah pada dasarnya mengacu pada dua produk:

1. Windows SharePoint Services (WSS)


SharePoint for Developer
6

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.

2. Microsoft Office SharePoint Server (MOSS)


MOSS adalah bagian dari SharePoint yang dibangun di atas WSS dengan menambahkan
berbagai fitur dan web part.

Tujuan utamanya adalah memungkinkan informasi dalam sebuah perusahaan dapat


diorganisasi dan disentraliasi secara rapi dan terstruktur. MOSS dapat berinterkasi erat
dengan Microsoft Office System (Word, Excel, Outlook, dll) dan menambahkan berbagai
SharePoint for Developer
7

fitur seperti Business Data Catalog, Indexed Search, Single Sign On, Personalized Features,
dan lain sebagainya. Versi terbaru dari MOSS saat ini adalah 2007.

1.1.1. Arsitektur SharePoint 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.

Windows SharePoint Services 3.0 (WSS 3.0)


WSS 3.0 adalah teknologi yang terdiri dari sejumlah tools untuk kolaborasi. Tools tersebut
menyediakan cara yang mudah untuk mengakses dokumen, isi, orang, dan informasi. WSS
juga menyediakan beberapa kemampuan dan servis yang memungkinkan developer untuk
mengembangkan aplikasi web yang kaya dengan fitur. Beberapa kemampuan yang
ditawarkan dari WSS adalah sebagai berikut:

 Administration.
Class dan fitur dari namespace [Link] memungkinkan
SharePoint for Developer
8

administrator untuk men-deploy, melakukan migrasi, pemeliharaan, dan melakukan


administrasi terhadap situs SharePoint.
 Data Management.
WSS menyediakan lingkungan yang handal untuk melakukan kolaborasi data.
Terdapat sejumlah cara untuk mengatur isi dan metadata dari dokumen dan data
penting kita.
 Information Services.
Information Services pada WSS 3.0 terdiri dari inbound email, tanda notifikasi email,
dan fitur pencarian. Fitur – fitur tersebut membantu tim untuk tetap terhubung dan
produktif.
 Pages dan User Interface.
Halaman – halaman web pada WSS 3.0 dibangun di atas [Link] 2.0. Oleh karena
itu, halaman – halaman tersebut dapat kita modifikasi sesuai dengan keperluan kita.
 Provisioning.
Ketika kita membuat sebuah list atau situs, sebuah definisi atau template
menentukan bagaimana list atau situs tersebut diinstansiasi. Tidak seperti aplikasi
[Link] biasanya, sebuah halaman ASPX tidak perlu tersedia untuk semua halaman
pada server. WSS menganggap semua halaman yang tidak ter-customize sebagai
virtual file dimana dapat memungkinkan sekumpulan kecil file muncul pada beberapa
tempat.
 Security.
Fitur keamanan pada WSS 3.0 membantu memberikan proteksi dari perubahan data
yang tidak syah, baik sengaja maupun tidak sengaja. Selain itu, fitur keamanan juga
memastikan bahwa informasi yang sensitif hanya tersedia bagi pihak tertentu yang
memiliki hak untuk melihatnya.
 Web Parts.
Web Parts dalam WSS menyediakan sebuah cara bagi developer untuk membuat
elemen antarmuka yang mendukung customization dan personalization.
 Workflow.
Workflow mengimplementasikan bisnis proses custom yang dapat kita cantumkan
dokumen SharePoint dan list item. Kita dapat menggunakan worfflow untuk
mengatur hampir semua aspek item dalam WSS.
SharePoint for Developer
9

Microsoft Office SharePoint Server 2007 (MOSS 2007)

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.

Microsoft Office SharePoint Designer 2007


Microsoft Office SharePoint Designer 2007 adalah developer tool yang secara spesifik untuk
membangun situs SharePoint, aplikasi yang berbasis workflow, dan reporting tools.
SharePoint Designer menyediakan design interface WYSIWYG (what you see is what you
get), developer environment, dan tool pengembangan yang mudah digunakan untuk
membantu memudahkan mengembangan situs dan aplikasi.
SharePoint for Developer
11

Developer [Link] dapat memanfaatkan keuntungan atas pengetahuan mereka untuk


menggunakan tools ini guna membuat, melihat, dan memodfikasi halaman [Link].

1.2 Collaborative Application Markup Language (CAML)

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>

<FieldRef Name="Title" />

<Value Type="Text">I love Sharepoint</Value>


SharePoint for Developer
12

</Eq>

<Where>

<OrderBy>

<FieldRef Name="Title" />

<FieldRef Name="DivisionCode" />

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

Tabel 1.1 CAML operator

Operator Deskripsi

Pencarian yang mengandung nilai yang


Contains
dimasukkan

Pencarian yang sama dengan nilai yang


Eq
dimasukkan

Pencarian dimana lebih besar/sama dengan


Geq
dari nilai yang dimasukkan

Pencarian dimana lebih besar dari nilai yang


Gt
dimasukkan

Pencarian dimana lebih kecil/sama dengan


Leq
dari nilai yang dimasukkan

Lt Pencarian dimana lebih kecil dari nilai yang


SharePoint for Developer
13

dimasukkan

Pencarian yang tidak sama dengan nilai yang


Neq
dimasukkan

DateRangesOverlap ?

IsNotNull Pencarian data yang tidak Null

IsNull Pencarian data yang Nullweb

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>";

using (SPSite site = new SPSite(siteUrl))


{
using (SPWeb web = [Link]())
{
SPList listContact = [Link][listName];
SPQuery query = new SPQuery();
[Link] = strQuery;
items = [Link](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

Dapat kita lihat pada contoh di bawah ini :

<FieldRef Name='Title' />


<Value Type="Text">I love Sharepoint</Value>

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 :

<FieldRef Name='Start_x0200_Date' />


<Value Type="DateTime">2008-01-01T00:00:00Z</Value>

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

1.3 Mempersiapkan Lingkungan Pemrograman

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.

1.3.1 Pemograman Langsung di Dalam Server

Untuk pemograman kita harus memiliki satu server farm yang mempunyai site Sharepoint.
Dan utk hal tersebut kita harus menginstall aplikasi sebagai berikut :

 Windows 2003 / Windows 2008


SharePoint for Developer
17

 .Net Framework 2.0 dan 3.0 / .net 3.5


 MOSS/WSS (Untuk Windows 2008 harus di install dengan MOSS/WSS
SP1)
 Visual Studio 2005 / Visual Studio 2008
 Windows Workflow Foundation untuk Visual Studio 2005
 SDK MOSS / SDK WSS sebagai referensi.

1.3.2 Pemograman Dengan Menggunakan Client (Instalasi SharePoint di


Komputer Berbeda)
Untuk pemograman di Client kita dapat mempersiapkan aplikasi sebagai berikut :

 Windows XP (SP2) / Windows Vista


 .Net Framework 2.0 dan 3.0 / .net 3.5
 Visual Studio 2005 / Visual Studio 2008
 Windows Workflow Foundation untuk Visual Studio 2005
 SDK MOSS / SDK WSS sebagai referensi.

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

Bab 2. Programming Menggunakan SharePoint Object Model

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

2.1 Membuat Web Part


Web Part adalah sebuah jenis dari server control yang memungkinkan end user untuk
memanipulasi letak, tampilan, sifat, dan data pada Web Part Page. Web Part adalah
komponen andalan di SharePoint untuk membuat suatu halaman memiliki konten yang
dinamis.

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

Kemudian tambahkan line berikut tambahkan ―[Link];‖


supaya kita dapat menginherit class WebPart.
SharePoint for Developer
20

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.

protected override void CreateChildControls()


{
[Link](new LiteralControl("Halo, dunia"));
}

Sehingga hasil akhir kode kita akan tampak seperti berikut:


SharePoint for Developer
21

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:

<SafeControl Assembly="<Nama Assembly>, Version=<Versi Assembly>, Culture=neutral,


PublicKeyToken=< PublicKeyToken Assembly>" Namespace="<Namespace>"
TypeName="*" Safe="True" AllowRemoteDesigner="True" />

Misalnya:

<SafeControl Assembly="WebPartHaloDunia, Version=[Link], Culture=neutral,


PublicKeyToken=0a1384a760445361" Namespace="WebPartHaloDunia" TypeName="*"
Safe="True" AllowRemoteDesigner="True" />

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.

2.2 Manipulasi Site/Web


Untuk mencapai tugas-tugas pemrograman WSS, referensi ke Site Collection (SPSite) atau
Site (SPWeb) diperlukan. Referensi ini dapat dilakukan dengan mudah dengan
menggunakan [Link] [Link] dan SPControl class.

//Mendapatkan Site Collection menggunakan Context

SPSite siteCollection = [Link](Context);

Atau

//Mendapatkan site menggunakan Context


SharePoint for Developer
27

SPWeb site = [Link](Context);

Pada beberapa kasus referensi ke site yang berbeda context mungkin diperlukan:

//Mendapatkan Site Collection menggunakan Absolute URL

SPSite siteCollection = new SPSite("[Link]

Atau

//Mendapatkan Site Collection menggunakan GUID

SPWeb site = [Link][siteGuid];

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.

//Melakukan edit setting umum


[Link] = [Link];
[Link] = [Link];
//Menyalakan RSS
[Link] = [Link];
//Melakukan edit navigasi site
[Link] = [Link];
[Link] = [Link];

Untuk mencoba fungsi-fungsi di atas kita akan menggunakan modifikasi dari


WebPartHaloDunia pada komputer yang terinstall SharePoint Server 2007.

Kita akan melanjutkan webpart yang sudah kita buat pada bagian pertama.

Tambahkan referensi ke assembly SharePoint melalui Project > Add Reference …


SharePoint for Developer
28

Tambahkan line using [Link]; dan using [Link]; pada bagian


using.

Kemudian tambahkan kode berikut :

protected override void CreateChildControls()


{
SPWeb web = [Link]([Link]);
[Link] = true;
[Link] = "Practice using SPWeb";
[Link]();
[Link] = false;

[Link](new LiteralControl("Halo, dunia"));


}
SharePoint for Developer
29

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

2.3 Manipulasi List


Semenjak WSS v2, SPList telah ditingkatkan dengan menambahkan folder dan versioning.
Akibatnya, Document Library sekarang berdasar pada SPList dengan penambahan metode
dan property.

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.

//Mengambil list tertentu melalui parent site's Lists collection


SPList listToEdit = [Link][listToEditGuid];
SharePoint for Developer
31

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.

//Mengubah property dari list


[Link] = [Link];
[Link] = [Link];
//Menyalakan versioning dan approval
[Link] = [Link];
[Link] = [Link];
//Membuat list masuk ke dalam daftar QuickLaunch
[Link] = [Link];
//Melakukan commit terhadap perubahan
[Link]();

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];

ListItem data dirubah melalui indexer listitem untuk nama field.

//Merubah nilai dari field title pada listitem


listItem["Title"] = [Link];

Perubahan ini memerlukan pengetahuan tentang nama-nama field yang ada dan apakah
field itu harus berisi atau tidak.

Untuk mencoba menggunakan SharePoint SPList, kita tetap akan menggunakan


WebPartHaloDunia dengan kode sebagai berikut:

protected override void CreateChildControls()


SharePoint for Developer
32

{
SPWeb web = [Link]([Link]);
[Link] = true;

SPList learnList = [Link]["Learn List"];


foreach (SPListItem itm in [Link])
{
itm["Title"] = "Updated by WebPartHaloDunia";
[Link]();
}

[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

Kemudian itemnya akan berubah semua menjadi seperti ini:

2.4 Manipulasi Document Library/Files


SharePoint object model mendukung document libraries untuk diimplementasikan dengan
maksimal. Dukungan itu bisa didapat dari beberapa kelas-kelas kunci seperti:

SPFileCollection, SPFile, SPDocumentLibrary, SPListItem, SPFolderCollection, SPFolder

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.

Pertama buat 1 document library berisi beberapa files.


SharePoint for Developer
34

Setelah itu masukkan kode ini ke WebPartHaloDunia

protected override void CreateChildControls()


{
SPWeb web = [Link]([Link]);
SPDocumentLibrary doclib = (SPDocumentLibrary)[Link]["PracticeDocLib"];

string downloadLinks = "<br/>New item for downloads:<br/>";


foreach (SPListItem itm in [Link])
{
downloadLinks += "<a href='" + [Link] + "/" + [Link] + "'>" + [Link]
+ "</a><br/>";
}

[Link](new LiteralControl("Halo, dunia" + "<br/>" +


downloadLinks));
}

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.

2.5 Memanfaatkan Event Handler


Event handler pada Windows SharePoint Service v3.0 (WSS v3) secara signifikan akan
meningkatkan kemampuan kita untuk melakukan control terhadap suatu event yang terjadi
di dalam WSS, dengan penambahan kemampuan event handler yang bisa dijalankan
sebelum suatu aksi dicommit ke dalam SharePoint database, juga dengan mengkaitkan
event handler kepada objek-objek seperti list dan site, juga document library.

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:

ContextEvent, ItemAdded, ItemAdding, ItemAttachmentAdded, ItemAttachmentAdding,


ItemAttachmentDeleted, ItemAttachmentDeleting, ItemCheckedIn, ItemCheckedOut,
ItemCheckingIn, ItemCheckingOut, ItemDeleted, ItemDeleting, ItemFileConverted,
SharePoint for Developer
36

ItemFileMoved, ItemFileMoving, ItemUncheckedOut, ItemUncheckingOut, ItemUpdated,


ItemUpdating

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.

Pertama, buat suatu Class Library baru. Kita namakan ―SharePointEventHandler‖.

Tambahkan referensi ke ―Windows SharePoint Services‖.


SharePoint for Developer
37

Kemudian pada bagian deklarasi class, tambahkan inherit dari SPItemEventReceiver


sehingga kode akan terlihat seperti berikut:
SharePoint for Developer
38

Setelah itu pada bagian dalam class tambahkan method berikut:

public override void ItemAdded(SPItemEventProperties properties)


{
SPListItem itm = [Link];
itm["Title"] = "Whatever you type changed by EventHandler";
[Link]();

[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

Build project itu, kemudian masukkan assembly [Link] ke dalam


C:/Windows/assembly.

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

Sama seperti sebelumnya tambahkan referensi ke ―Windows SharePoint Services‖.


SharePoint for Developer
42

Setelah itu tambahkan kode berikut:

private void Form1_Load(object sender, EventArgs e)


{
SPSite site = new SPSite("[ServerName]");
SPWeb web = [Link]["/"];
SPList list = [Link]["[ListName]"];
[Link]([Link], "[NamaAssembly],
Version=[Link], Culture=neutral, PublicKeyToken=[PublicKeyToken]",
"[ClassName]");

[Link]("Event handler added", "Event Handler Binding",


[Link], [Link]);
}
SharePoint for Developer
43

Jangan lupa untuk mengganti [ServerName], [ListName], [NamaAssembly], [PublicKeyToken],


[PublicKeyToken].

Sebagai panduan berikut adalah kode yang digunakan pada contoh program:

private void Form1_Load(object sender, EventArgs e)


{
SPSite site = new SPSite("[Link]
SPWeb web = [Link]["/"];
SPList list = [Link]["Learn List"];
[Link]([Link],
"SharePointEventHandler, Version=[Link], Culture=neutral,
PublicKeyToken=cd15f0cc201346ba", "SharePointEventHandler.Class1");

[Link]("Event handler added", "Event Handler Binding",


[Link], [Link]);
}
SharePoint for Developer
44

Jika kita run programnya, maka Event Handler telah dengan sukses dikaitkan dengan List.
SharePoint for Developer
45

Berikutnya kita akan melakukan testing pada SharePoint site.


SharePoint for Developer
46

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.

2.7 Windows Application


UI yang disediakan oleh SharePoint sangat membantu. Tetapi kadang-kadang kita ingin
membuat tools yang mudah dipergunakan untuk kegiatan-kegiatan yang bersifat repetitif
seperti mengeset properti dari semua file dalam document library. Atau ingin membuat tool
untuk mengcopy item antara dua document library.
SharePoint for Developer
50

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:

private void button1_Click(object sender, EventArgs e)


{
SPSite site = new SPSite([Link]);
SPWeb web = [Link]["/"];
SharePoint for Developer
52

[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

Bab 3. SharePoint Workflow

Apa itu Workflow ?

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 ?

 Meningkatkan efisiensi - otomatisasi banyak proses bisnis di penghapusan hasil dari


langkah-langkah yang tak perlu banyak.
 Proses kontrol yang lebih baik - meningkatkan pengelolaan bisnis proses yang dicapai
melalui metode standarisasi bekerja dan ketersediaan audit trails.
 Meningkatkan layanan pelanggan - konsistensi dalam proses mengarah ke yang lebih
besar kemungkinan meramalkan di tingkat respons pelanggan.
 Fleksibilitas - software kontrol atas proses memungkinkan mereka kembali desain
sesuai dengan perubahan kebutuhan bisnis
 Perbaikan proses bisnis - fokus pada proses bisnis mereka mengarah ke
mempersatukan dan penyederhanaan.

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 :

1. Menggunakan Workflow yang sudah terinstall di SharePoint 2007


2. Menggunakan SharePoint Designer
3. Menggunakan Visual Studio 2005/2008 untuk membuat workflow yang lebih
kompleks.
SharePoint for Developer
55

Software yang dibutuhkan bila menggunakan Visual Studio 2005 :

 Visual Studio 2005 Extensions untuk Windows Workflow Foundation


[Link]
8023-E8F38E709BA6&displaylang=en
 SharePoint 2007 SDK
[Link]
B2D6-0074D6286FA9&displaylang=en

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

3.1 Workflow dengan SharePoint Designer


SharePoint Designer adalah tool dari Microsoft yang beberapa fungsi sama dengan
FrontPage, tetapi dari produk Microsoft SharePoint 2007 / WSS 3.0, Microsoft tidak lagi
menggunakan FrontPage untuk pengubahan page, penambahan web part, dan lain lain
tetapi menggunakan SharePoint Designer.

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 :

1. Buka SharePoint Designer.

2. Klik Open Site dan masukkan Site yang telah kita miliki

3. Didalam File menu, Klik New, dan kemudian Workflow.


SharePoint for Developer
56

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 :

 Centang checkbox ―Allow this workflow to be started manually‖

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

8. Masukkan nama didalan texbox Step Name

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.

3.2 Workflow dengan Visual Studio 2008


Ada beberapa hal yang harus dilakukan dalam pembuatan workflow didalam visual studio
2008:

Task 1 – Membuat workflow project

1. Buka Visual Studio 2005 dengan Start Menu | Programs | Microsoft Visual
Studio 2008 | Microsoft Visual Studio 2008.

2. Visual Studio, Pilih File | New | Project.

3. New Project akan muncul windows dialog.

4. Didalam New Project, windows dialog dibawah Project Types , plih Visual C# |
SharePoint. | Sequential Workflow Library.

5. Berikan nama project dengan nama ―HelpRequestWorkflow”.

6. Berikan nama solusinya yaitu ―WSSHOL_HelpRequestWorkflow”.


SharePoint for Developer
59

7. Klick OK.

8. DIdalam Solusi Explorer, double klik kedalam file [Link] untuk membuta
Workflow designer.

Workflow akan ada OnWorkflowActivated sebagai aktiviti default.

9. Klik kanan didalam Toolbox dan plih Choose Items.

[Link] Studio akan menampilkan tampila pemilihan Toolbox Items pada dialog
window.

[Link] ―Choose Toolbox‖ tersebut pilih tabular Activities.

[Link] Browse.

[Link] dialog windows, navigasikan ke C:\Program Files\Common Files\Microsoft


Shared\web server extensions\12\ISAPI folder.

[Link] [Link] dan klik Open.


SharePoint for Developer
60

[Link] OK.
SharePoint for Developer
61

[Link] SendEmail activity dari Toolbox ke workflow dibawah WorkflowActivated1.

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] Properti Window, expand property dari CorrelationToken.

[Link] sendEmail1.

[Link] workflowToken dari drop-down list yang berhubungan dengan


CorrelationToken properti.

[Link] klik sendEmail1 activity.

[Link] Studio akan membuat sendEmail1_MethodInvoking method dan membuka


code editor.

Visual Studio dengan otomatis akan menambah beberapa kode kedalam


workflow code

public Guid workflowId = default([Link]);


public [Link]
workflowProperties = new
[Link]();

[Link] kode kedalam sendEmail1_MethodInvoking method:


SharePoint for Developer
63

[Link] collHashes =
[Link];
[Link] collKeys = [Link];

[Link] kode kedalam sendEmail1_MethodInvoking method:

string employeeAlias = [Link];


string priority = [Link];
string issue = [Link];
string notes = [Link];

[Link] kode kedalam sendEmail1_MethodInvoking method:

foreach (object oKey in collKeys)


{
if ([Link]() == "EmployeeAlias")
{
employeeAlias = collHashes[[Link]()].ToString();
}
if ([Link]() == "UserPriority")
{
priority = [Link](collHashes[
[Link]()].ToString()).ToString();
}
if ([Link]() == "Issue")
{
issue = collHashes[[Link]()].ToString();
}
if ([Link]() == "Notes1")
{
notes = collHashes[[Link]()].ToString();
SharePoint for Developer
64

[Link] kode kedalam sendEmail1_MethodInvoking method:

[Link] = "administrator@[Link]";
[Link] = "New help request";

[Link] kode kedalam sendEmail1_MethodInvoking method:

[Link] mailBody = new [Link]();


[Link]([Link](
"The following was received today ({0:d})", [Link]));
[Link]();

[Link] kode kedalam sendEmail1_MethodInvoking method:

if (employeeAlias == [Link] || priority == [Link] ||


issue == [Link] || notes == [Link])
{
[Link]("The document {0} was uploaded",
[Link]);
[Link]();
[Link]("It is not a valid help request document.");
}

[Link] kode kedalam sendEmail1_MethodInvoking method:

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] kode kedalam sendEmail1_MethodInvoking method:

[Link] = [Link]();

Sebelum deploy, workflow assemblynya harus memiliki strong name.

[Link] menu,pilh Project | HelpRequestWorkflow Properties.

[Link] Studio menampilan the Project Designer.

[Link] Project Designer, pilih halaman Signing.

[Link] halaman Signing, pastikan Sign the assembly di centang.

[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] Protect my key file with a password dan klik ok

[Link] Project Designer.


SharePoint for Developer
66

[Link] dan Build solusinya

Task 2 – Deploy workflow ke SharePoint

Ada 3 file xml yang harus kita buat yaitu :

 [Link].
 [Link].
 [Link].

Visual akan membuat file [Link] dan ditambahan kedalam project yang nanti akan kita
gunakan untuk penginstallan workflow dan contentype.

1. Buat [Link] dengan isi sebagai berikut :

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

2. [Link] dengan isi sebagai berikut :.

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

3. Pada command prompt, arahkan ke folder to C:\SPHOLS\Labs\Lab 04 -


Workflow\WSSHOL_HelpRequestWorkflow\HelpRequestWorkflow\bin\Debug.

4. Ketik sn –T [Link] untuk menampilan public tokey key.


SharePoint for Developer
68

5. Copy public token key yang telah di generate.

6. Update dari text REPLACETHIS dengan token yang telah kita dapatkan.

7. Save [Link] file.

8. Di Solusition Explorer, klik kanan di HelpRequestWorkflow dan pilih Add |


Existing Item dari menu.

9. Tambahkan file [Link].

[Link] [Link] dengan kode sebgai berikut

<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

Name="EmployeeAlias" Required="TRUE" />


<FieldRef ID="{DCCADD9E-F8A1-4f60-ABEE-7422D17B6DBE}"
Name="RequestDate" Required="TRUE" />
<FieldRef ID="{9362DE0D-E87E-48e4-8ED9-2C82882DB97E}"
Name="UserPriority" Required="TRUE" />
<FieldRef ID="{A55A5AAA-123B-4263-8D63-785F31D93895}"
Name="Issue" Required="TRUE" />
<FieldRef ID="{A17F2592-9FC4-41ec-AC96-FD092F3F0AFA}"
Name="Notes" Required="TRUE" />
</FieldRefs>
</ContentType>
</Elements>

[Link] Solution Explorer, klik kanan HelpRequestWorkflow dan pilih Add | Existing
Item dari menu

[Link] Add Existing Item - HelpRequestWorkflow dialog window will display.

[Link] eksekusi stamen kedalam file [Link]

echo Copying the feature...

rd /s /q "%CommonProgramFiles%\Microsoft Shared\web server


extensions\12\TEMPLATE\FEATURES\HelpRequestWorkflow"
mkdir "%CommonProgramFiles%\Microsoft Shared\web server
extensions\12\TEMPLATE\FEATURES\HelpRequestWorkflow"

copy /Y [Link] "%CommonProgramFiles%\Microsoft Shared\web server


extensions\12\TEMPLATE\FEATURES\HelpRequestWorkflow\"
copy /Y [Link] "%CommonProgramFiles%\Microsoft Shared\web server
extensions\12\TEMPLATE\FEATURES\HelpRequestWorkflow\"
copy /Y [Link] "%CommonProgramFiles%\Microsoft Shared\web server
extensions\12\TEMPLATE\FEATURES\HelpRequestWorkflow\"
SharePoint for Developer
70

xcopy /s /Y *.aspx "%programfiles%\Common Files\Microsoft Shared\web server


extensions\12\TEMPLATE\LAYOUTS"

echo Adding assemblies to the GAC...

"%programfiles%\Microsoft Visual Studio 8\SDK\v2.0\Bin\[Link]" -uf


HelpRequestWorkflow
"%programfiles%\Microsoft Visual Studio 8\SDK\v2.0\Bin\[Link]" -if
bin\Debug\[Link]

:: 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]

echo Activating the feature...

pushd %programfiles%\common files\microsoft shared\web server extensions\12\bin

::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]

stsadm -o installfeature -filename HelpRequestWorkflow\[Link] -force


stsadm -o activatefeature -filename HelpRequestWorkflow\[Link] -url [Link]

echo Doing an iisreset...


popd
iisreset

[Link] command prompt Start Menu | Command Prompt.


SharePoint for Developer
71

[Link] command prompt, navigasikan ke C:\SPHOLS\Labs\Lab 04 -


Workflow\WSSHOL_HelpRequestWorkflow\HelpRequestWorkflow.

[Link] install untuk installl HelpRequestWorkflow feature.


SharePoint for Developer
72
SharePoint for Developer
73

Task 3 – Implementasi Workflow dengan Document Library

1. Dari SharePoint home page pilih Site Actions | Site Settings.

2. Didalam Site Collection Administration section, pilih Site Collection Features.

3. Pilih Site Settings di top dari page, dan klik Site Settings page.

4. Didalam Galleries section, pilih Site Content Types.

5. Didalam Support section, pilih Help Request.

6. Didalam Settings section, pilih Advanced Settings.

7. Pilih Upload a new document template.

8. Klik Browse. Maka akan tampil file dialog window.


SharePoint for Developer
74

9. Navigasikan ke the C:\SPHOLS\Labs\Lab 04 - Workflow\Resources\Lab 1 folder.

[Link] Help [Link] file dan klik Open.

[Link] Site Content Type Advanced Settings page, klik OK.

[Link] Site Content Type page, dibawah the Settings section, pilih Workflow
Settings.

[Link] Add a workflow.

[Link] Help Request Workflow didalam workflow list template

[Link] Help Request Workflow didalam unique name text box.

[Link] chekbox Start this workflow when a new item is created.

[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

Bab 4. Programming WebPart Tingkat Lanjut

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.

4.1 Membuat custom WebPart property


Property didalam WebPart yaitu suatu property yang kita dapat set pada saat kita
mengimplementasikan salah satu WebPart kita dan kita dapat melalukan parameter
property yang secara default sudah ada dalam SharePoint WebPart dan juga property
lainnya yang kita dapat tambahkan didalam WebPart kita.

Untuk membuat custom WebPart property kita bisa lakukan dengan beberapa langkah
sebagai berikut :

1. Buka Microsoft Visual Studio 2008.


SharePoint for Developer
77

2. Buat Project baru dengan tipe Class Library

3. Tambahkan referensi [Link] dan [Link]

4. Buat Class baru dengan nama wpSimpleLoanCalculator

5. Buatlah coding 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;
}
}
}

private double calcPayment(double PV, double N, double Rate)


{
return (PV) * (Rate / 1200) / (1 - (1 / [Link]((1 + Rate / 1200), N)));
}

protected override void Render([Link] writer)


{
[Link]([Link]("Your estimated load payment will be
{0:$#,##0.00;($#,##0.00);Zero}",
[Link](this._pv, this._n, this._rate)));
}
SharePoint for Developer
80

}
}

6. Compile dan Build

7. Kopi assembly file ke bin site yang telah kita buat

8. Update [Link] untuk bisa mengenali WebPart yang telah di buat

9. Add WebPart dari Site Settings > Modify all site settings > Klik Web Parts

[Link] New Web Part

[Link] Overwrite if file already exists ?

[Link] WebPart yang telah kita buat

[Link] WebPart yang telah kita buat ke halaman [Link]

[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

4.2 Connected WebPart


Connected WebPart adalah suatu feature dari WebPart dimana WebPart bisa saling
berhubungan. Pada bagian ini kita akan membahasa pembuatan 2 (dua) WebPart yang
bisa saling berhubungan.

Untuk membuat connected WebPart property kita bisa lakukan dengan beberapa langkah
sebagai berikut :

1. Buka Microsoft Visual Studio 2008.

2. Buat Project baru dengan tipe Class Library

3. Tambahkan referensi [Link] dan [Link]

4. Buat Class baru dengan nama ISelectedCustomer

5. Buatlah coding sebagai berikut :

using System;
using [Link];
using [Link];
using [Link];

namespace [Link]
SharePoint for Developer
82

{
public interface ISelectedCustumer
{
string CustomerID { get; }
}
}

6. Buat Class baru dengan nama wpCustomerProvider

7. Buatlah coding sebagai berikut :

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];
}

private void LoadCustomer()


{
SharePoint for Developer
83

[Link](new ListItem("ALFKI", "ALFKI"));


[Link](new ListItem("AGUSTO", "AGUSTO"));
}

protected override void CreateChildControls()


{
[Link]();
ddCustomers = new DropDownList();
[Link] = true;
[Link] += new
EventHandler(ddCustomers_SelectedIndexChanged);
LoadCustomer();
[Link](ddCustomers);
}

protected override void Render([Link] writer)


{
[Link](writer);
}

[ConnectionProvider("CustomerID", "CustomerID")]
public ISelectedCustumer GetCustomerID()
{
return this as ISelectedCustumer;
}

public string CustomerID


{
get { return [Link]; }

}
SharePoint for Developer
84

}
}

8. Buat Class baru dengan nama wpConsumer

9. Buatlah coding sebagai berikut :

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;

[ConnectionConsumer("Message Consumer CustomerID", "CustomerID")]


public void SetCustomer(ISelectedCustumer c)
{
this._customer = c;
}

protected override void CreateChildControls()


{
[Link]();
txtCustomers = new TextBox();
[Link](txtCustomers);
SharePoint for Developer
85

if (_customer != null)
{
[Link] = _customer.CustomerID;
}

protected override void Render([Link] writer)


{
[Link](writer);
}

}
}

[Link] dan Build

[Link] assembly file ke bin site yang telah kita buat

[Link] WebPart dari Site Settings > Modify all site settings > Klik Web Parts

[Link] Add New Web Part

[Link] Overwrite if file already exists?

[Link] WebPart yang telah kita buat

[Link] WebPart yang telah kita buat ke halaman [Link]

[Link] WebPart dan klik Modify Shared Web Part

[Link] WebPart > Connection > Send CustomerID to > klik wpConsumer
SharePoint for Developer
86

4.3 Debugging WebPart


Debugging WebPart dapat kita lakukan dengan menggunakan Visual Studo 2008
dikarenakan pembuatan WebPart yang kita buat pun dilakukan dengan tool tersebut.

Bagaimana cara kita melakukan debug aplikasi WebPart kita, yaitu dengan sebagai berikut
:

1. Buka Microsoft Visual Studio 2008.

2. Buka project WebPart yang telah dibuat

3. Klik Tools > Attach to process

4. Pilih semua proses yang dengan nama [Link] > klik button Attach
SharePoint for Developer
87

5. Pilih semua proses yang dengan nama [Link]

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

Bab 5. Membuat Template dan File Definisi

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

5.1 List Template


Pada saat kita telah membuat suatu List ataupun Document Library, atau Picture Library,
dll. Kita biasanya melakukan beberapa perubahan dari default yang telah di berikan
SharePoint misalnya penambahan Field, perubahan view atau penambahan view. Biasanya
list yang telah kita update tersebut, kita ingin juga diimplementasikan ke site lainnya atau
kita ingin membuat list baru dengan template yang sama dengan list yang telah kita
[Link] oleh karena itu SharePoint memberikan fitur yaitu melakukan backup list
template tersebut dan setelah itu kita bisa download list template tersebut dan kita install
di site lainnya dan pada saat pembuatan list baru, maka kita akan memilih dari template
yang telah diupload.
SharePoint for Developer
89

Untuk membuat List definisi tersebut, dapat dilihat dari langkah-langkah sebagai berikut :

1. Buka SharePoint Site


2. Buatlah Document Library baru dengan nama ―Document Template‖
3. Tambahkan beberapa field yaitu :
 ExpiredDate dengan tipe DateTime
 Remarks dengan tipe Multi line of text
 Department dengan tipe Single line of text
4. Pada bagian ―Permissions and Management‖ > klik ―Save document library as
template‖

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

5.2 Site Template


Sama dengan fungsi dari List definisi yang telah kita bahas diatas. Maka fungsi dari Site
Definisi adalah melakukan penyimpanan ke site template sehingga kita bisa membuat site
dengan tidak perlu lagi membuat kembali list /document library kembali. Tetapi dengan
membuat site dengan tipe site template yang telah di simpan dan semua tampilan, list,
document library, dll akan sama dengan site yang kita simpan

Untuk membuat Site definisi tersebut, dapat dilihat dari langkah-langkah sebagai berikut :

1. Buka SharePoint Site


2. Klik Site Action > Site Settings > Klik Save site as template
SharePoint for Developer
92

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

5.3 Site Definition


Kita dapat melihat list site template yang terinstall dalam server kita yaitu pada folder
[SharePoint] 12\TEMPLATE\SiteTemplates

Bila kita hanya menginstall WSS maka kita akan mendapatkan beberapa site template
sebagai berikut :

Nama Template Kategory


Team Site Collaboration
Blank Site Collaboration
Document Workspace Collaboration
Wiki Site Collaboration
Blog Collaboration
Basic Meeting Workspace Meetings
Blank Meeting Workspace Meetings
Decision Meeting Workspace Meetings
Social Meeting Workspace Meetings
Multipage Meeting Workspace Meetings
SharePoint for Developer
94

Sedangkan bila kita menginstall SharePoint maka kita akan mendapatkan tambahan
beberap site template lagi selain template yang ada diatas, site-site itu adalah :

Nama Template Kategory


Template Name Template Category
Document Center Enterprise
Records Center Enterprise
Personalization Site Enterprise
Site Directory Enterprise
Report Center Enterprise
Search Center with Tabs Enterprise
Search Center Enterprise
Publishing Site Publishing
Publishing Site with Workflow Publishing
News Site Publishing

Untuk dapat membuat kustom Site Defini yang baru, kita dapat mengikuti cara-cara
sebagai berikut :

1. Buka physical folder file definition


Biasanya instalasi yang kita lakukan standar, maka site definition akan terinstal di
folder ―C:\Program Files\Common Files\microsoft shared\Web Server
Extensions\12\TEMPLATE\SiteTemplates‖
2. Duplikasi satu folder ―MPS‖ dan berikan nama ―MYTEMPLATE‖
3. Supaya SharePoint bisa mengenal template yang baru, kita harus melakukan update
pada file [Link] yang berada di ―C:\Program Files\Common Files\microsoft
shared\Web Server Extensions\12\TEMPLATE\1033\XML‖
4. Masukkan informasi template baru dengan informasi sebagai berikut :

<Template Name="MYTEMPLATE" ID="99">


<Configuration ID="0" Title="MYTEMPLATE" Hidden="FALSE"
SharePoint for Developer
95

ImageUrl="/_layouts/images/[Link]" Description="This is a sample Site


Template." DisplayCategory="Collaboration" > </Configuration>
</Template>

5. Restart IIS (Internet Information Services)


6. Buat Site dengan site definisi yang baru

Untuk melakukan perubahan dalam template, kita dapat melakukan perubahan pada file
[Link]. Untuk informasi lebih detilnya, dapat lihat dalam WSS SDK dan MOSS SDK.

5.4 Membuat List Definisi


Cara membuat list definisi adalah sebagai berikut :

A. Membuat Site Column

1. Buatlah sebuah folder dengan nama SubmissionColumns didalam folder C:\Program


Files\Common Files\Microsoft Shared\web server
extensions\12\TEMPLATE\FEATURES
SharePoint for Developer
96

2. Buatlah file xml yaitu [Link] sebagai berikut :

<?xml version="1.0" encoding="utf-8" ?>


<Feature
Id="{a94f84a5-c87a-4fef-8e01-f064bc1bd9d7}"
Title="Submission Columns"
Description="This feature contains site columns used in the submission process"
Version="[Link]"
Scope="Site"
xmlns="[Link]
<ElementManifests>
<ElementManifest Location="[Link]" />
</ElementManifests>
</Feature>

3. Buatlah file xml yaitu [Link] sebagai berikut :

<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

4. Registrasi feature yang kita buat tersebut dengan menggunakan stsadm.

stsadm -o installfeature -filename SubmissionColumns \[Link] -force


stsadm -o activatefeature -filename SubmissionColumns \[Link] -url
[Link]

B. Membuat Content Type

1. Buatlah sebuah folder dengan nama SubmissionCT didalam folder C:\Program


Files\Common Files\Microsoft Shared\web server
extensions\12\TEMPLATE\FEATURES
2. Buatlah file xml yaitu [Link] sebagai berikut :

<?xml version="1.0" encoding="utf-8" ?>


<Feature Id="{56615608-9e3d-4ff6-b2c6-90e070e45ff8}"
Title="Submission Content Types"
Description="This feature contains content types used in the submission
process"
Version="[Link]"
Scope="Site"
xmlns="[Link]
<ElementManifests>
<ElementManifest Location="[Link]" />
</ElementManifests>
</Feature>

3. Buatlah file xml yaitu [Link] sebagai berikut :

<?xml version="1.0" encoding="utf-8"?>


<Elements xmlns="[Link]
SharePoint for Developer
98

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

4. Registrasi feature yang kita buat tersebut dengan menggunakan stsadm.


stsadm -o installfeature -filename SubmissionCT\[Link] -force
stsadm -o activatefeature -filename SubmissionCT\[Link] –ur l
[Link]

C. Membuat List Definisi

1. Buatlah sebuah folder dengan nama SubmissionsList didalam folder C:\Program


Files\Common Files\Microsoft Shared\web server
extensions\12\TEMPLATE\FEATURES
2. Buatlah file xml yaitu [Link] sebagai berikut :

<?xml version="1.0" encoding="utf-8" ?>


SharePoint for Developer
99

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

<?xml version="1.0" encoding="utf-8"?>


<Elements xmlns="[Link]
<ListTemplate
Name="Submissions"
Type="6500"
BaseType="0"
OnQuickLaunch="TRUE"
SecurityBits="11"
Sequence="360"
DisplayName="Submissions"
Description="Create a submissions list when you want to allow users to
submit submissions on a document"
Image="/_layouts/images/[Link]" />
</Elements>

4. Create folder dengan nama Submissions didalam SubmissionsList folder dan copy
FEATURES\CustomList\CustList\ [Link] file into the Submissions folder.
SharePoint for Developer
100

5. Update tag xml ContentTypes

<ContentTypes>
<ContentTypeRef ID="0x01AB">
<Folder TargetName="Submission" />
</ContentTypeRef>
<ContentTypeRef ID="0x0120" />
</ContentTypes>

6. Update tag xml Fields

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

7. Tambahkan data pada [Link]

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

8. Lakukan Registrasi dan restart IIS :

stsadm -o installfeature -filename SubmissionList\[Link]-force


stsadm -o activatefeature -filename SubmissionList\[Link] –ur l
[Link]
IISReset

[Link] Sites Setting > Modify all site settings akan tampil di custom list satu list baru
dengan nama SubmissionList

Bab 6. Content Type & Column Type

6.1 Mengenal Content Type & Column Type

6.1.1 Content Type

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

Contoh penggunaan content type ke dalam list

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.

6.2.2 Column Type

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.

Contoh pilihan tipe informasi yang disediakan SharePoint

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.

6.2 Membuat Custom Column Type


SharePoint for Developer
104

Perhatian: Langkah-langkah berikut didemokan dengan menggunakan WSS3

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.

6.3 Membuat Custom Content Type

Perhatian: Langkah-langkah berikut didemokan dengan menggunakan WSS3

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

Untuk membuat content type baru, klik ―Create‖.

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.

Jika proses berhasil, akan tampil halaman berikut:


SharePoint for Developer
107

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

Pada layar ―Document Library Settings‖, pilih ―Advanced Settings‖.

Pada bagian ―Allow management of content types‖, pilih ―Yes‖.

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

Bab 7. Programming Menggunakan SharePoint Web Services

Untuk kemudahan berkomunikasi dengan aplikasi / platform lain, SharePoint telah


mengimplementasikan SOA (Service Oriented Architecture) dengan menyediakan berbagai
Web Services untuk diconsume. Beberapa di antaranya adalah:

 [Link], yang memberi kemudahan programmer untuk membuat /


menghapus site di server WSS.

 [Link], untuk mengambil data dan mengeset alert.

 [Link], untuk menduplikasi informasi menjadi list item dan menduplikasi


informasi dari list item ke local.

 [Link], untuk membuat dan memanipulasi document work spaces termasuk


membuat folder, menemukan dokumen berdasarkan metadata, juga pembuatan
dan penghapusan workspace.

 [Link] dan [Link], menyediakan fungsi yang mirip untuk image


library dan meeting workspaces.

 [Link], untuk memanipulasi dan membuat form yang digunakan Sharepoint


list untuk berinteraksi dengan user list item.

 [Link], untuk memanipulasi template yang disediakan WSS atau


memindahkan konten web dari site yang satu ke yang lainnya.

 [Link], untuk membaca group membership, meng-assign users ke group


dan memanipulasi anggota dan hak akses dari grup.

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

melakukan integrasi dengan SharePoint melalui web service, diantaranya adalah


InfoPath, Excel, dan Sharepoint Designer.

File-file fisik WSS Web Services dapat ditemukan di:

C:\Program Files\Common Files\Micrsoft Shared\Web Server


Extensions\12\ISAPI\*.asmx

Sedangkan untuk Administration Web Service bisa ditemukan di:

C:\Program Files\Common Files\Micrsoft Shared\Web Server


Extensions\12\ADMISAPI\[Link]

Untuk diakses via http sendiri, file-file tersebut dimapping ke virtual folder
/_vti_bin/*.asmx di IIS.
SharePoint for Developer
116

7.1 Menggunakan Document Workspace Web services


Pada bagian ini, kita akan mencoba membuat suatu aplikasi yang memanfaatkan Web
Service Document Workspace untuk membuat suatu workspace baru melalui Windows
Application.

Masuk ke Visual Studio, bwt New Project Windows Form Application.

Berikutnya kita akan menambahkan Reference ke Web Service Document Workspace.

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

Kemudian masukkan URL dari Web Services kita:

[Link]

misalkan site adalah localhost maka url akan tampak seperti

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

Pada bagian Web References akan bertambah satu references ―[Link]‖


SharePoint for Developer
122

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]

private void button1_Click(object sender, EventArgs e)


{
[Link] dsc = new [Link]();

NetworkCredential creds = new NetworkCredential("[username]",


"[password]", "[domain]");
[Link] = creds;
[Link] = "[Link]

[Link]("NEW", "[domain]\\[username]", "NEWDWS",


"[documenturl]");
}

Berikut adalah contoh:

private void button1_Click(object sender, EventArgs e)


{
SharePoint for Developer
125

[Link] dsc = new [Link]();

NetworkCredential creds = new NetworkCredential("administrator",


"password", "localhost");
[Link] = creds;
[Link] = "[Link]

[Link]("NEW", "localhost\\administrator", "NEWDWS",


"[Link]
}

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

7.2 Menggunakan List Web services


Berikutnya kita akan mencoba untuk menggunakan List Web Services. Kita akan mencoba
untuk mengambil data item-item apa saja yang terdapat dalam sebuah list kemudian
menampilkannya dalam sebuah MessageBox.

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

private void button2_Click(object sender, EventArgs e)


{
[Link] lsts = new
[Link]();

[Link] = "[Link]

[Link] = true;

[Link] doc = new [Link]();


[Link]("<Document><Query /><ViewFields /><QueryOptions
/></Document>");
[Link] listQuery = [Link]("//Query");
[Link] listViewFields =
[Link]("//ViewFields");
[Link] listQueryOptions =
[Link]("//QueryOptions");

#region Get web id


[Link] sdta = new [Link]();

[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);

Guid webId = new Guid([Link]);


#endregion

[Link] items = [Link]("[listname]",


[Link], listQuery, listViewFields, [Link], listQueryOptions,
[Link]());

string listItems = [Link];


foreach (XmlNode nd in [Link])
{
if ([Link] != null)
{
listItems += [Link]["ows_Title"].Value + "\r\n";
}
}

[Link](listItems);
}
SharePoint for Developer
134

Setelah itu Run project, kemudian klik tombol ―Show List Data‖.
SharePoint for Developer
135

7.3 Menggunakan User Profiles & Security web services

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]

Berikut adalah fungsi-fungsi dari UserProfileService Web Service:

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

Kemudian tambahkan referensi ke UserProfileService web service dengan mengakses URL:

[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

Setelah itu tambahkan line berikut pada baris using:

using [Link];

Berikutnya copy kode berikut:

static void Main(string[] args)


{
try
{
// Create an instance of the Web service proxy class.
SharePoint for Developer
139

[Link] service =
new [Link]();
[Link] = "[ServiceUrl]";
[Link] =
[Link];

[Link] idres =
[Link](0);
[Link][] pdats = [Link];

foreach ([Link] pdat in pdats)


{
[Link]([Link] + ": ");
foreach ([Link] vdat in [Link])
{
[Link]([Link]);
}
[Link](" _");
}
}
catch (Exception ex)
{
[Link]([Link]);
}

[Link]("\n\rPress any key to continue...");


[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

7.4 Membuat Custom Web Services


Selain memanfaatkan web service yang telah disediakan sebagai bagian dari produk WSS
dan MOSS, kita juga dapat membuat web service custom sesuai kebutuhan kita.

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

Pada Class Library tersebut tambahkan refensi ke [Link].


SharePoint for Developer
144

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()
{

//Uncomment the following line if using designed components


//InitializeComponent();
}

[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}

Kemudian rubah [Link]. Hilangkan atribut CodeBehind dari page directive kemudian
modifikasi isinya hingga mirip dengan format berikut:

<%@ WebService Language="C#" Class="Service, <namaassembly>, Version=[Link],


Culture=neutral, PublicKeyToken=<publickey>" %>

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:

<%@ Page Language="C#" Inherits="[Link]" %>


<%@ Assembly Name="[Link], Version=[Link], Culture=neutral,
PublicKeyToken=71e9bce111e9429c" %>
<%@ Import Namespace="[Link]" %>
<%@ Import Namespace="[Link]" %>
<% [Link] = "text/xml"; %>

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

Pada [Link],, aplikasikan perubahan berikut pada SOAP address berikut:

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

<contractRef ref=<% [Link]([Link]([Link] +


"/_vti_bin/[Link]?wsdl"), [Link]); %>
docRef=<% [Link]([Link]([Link] +
"/_vti_bin/[Link]"), [Link]); %>
xmlns=" [Link] " />
<discoveryRef ref=<% [Link]([Link]([Link] +
"/_vti_bin/[Link]?disco"),[Link]); %>
xmlns="[Link] />
SharePoint for Developer
155

Lakukan iisreset.
SharePoint for Developer
156

Voila! Web service custom buatan kita siap digunakan.


SharePoint for Developer
157
SharePoint for Developer
158

Bab 8. Memanfaatkan Excel Services

8.1 Mengenal Excel Services


Excel Services adalah suatu teknologi baru yang merupakan bagian dari Shared Services.
Teknologi ini memberi kemudahan berupa kemampuan untuk menghitung dan
menampilkan Excel spreadsheets menggunakan MOSS tanpa Excel ter-install di client
machine. Dengan Excel Services anda dapat menggunakan spreadsheets untuk membuat
dashboards di dalam SharePoint atau sekedar membagi spreadsheet menggunakan
browser. Tidak cukup sampai di situ, Excel Services juga memiliki mesin kalkulasi yang
mendukung server-side proses kalkulasi yang bias digunakan untuk mengurangi beban
kalkulasi yang menyedot sumber daya (mesin). Excel Services terdiri dari tiga komponen:
Excel Web Access web part, Excel Calculation Services, dan Excel Web Services.

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.

8.2 Mempublish Table, Formula dan Graphics


Pertama, buat sebuah Document Library yang akan kita namakan ―Excel Services‖
SharePoint for Developer
159

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 klik OK maka akan tampil screen sebagai berikut:


SharePoint for Developer
164

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.

Kemudian save ke dalam Document Library ―Excel Services‖.


SharePoint for Developer
165

Setelah itu masuk ke dalam Document Library settings > pilih Advanced Settings untuk
menampilkan file excel di browser.
SharePoint for Developer
166

Pilih ―Display as a Web page‖ pada bagian ―Browser-enabled Documents‖.


SharePoint for Developer
167

Setelah itu coba klik file Excel yang ada di Document Library ―Excel Services‖ dan voila! File
Excel kita tampil di browser dengan baik.

8.3 Menggunakan Excel Services Web Service


Setelah anda dapat membuat dan publish sebuah spreadsheet ke Excel Services, kita dapat
akses sel dan formula menggunakan Excel Web Services. Excel Web Services dapat diakses
melalui server tempat Shared Services berada. Kita dapat menggunakan servis ini untuk
development environment dengan membuat reference Web Service ini di Visual Studio
dengan menggunakan alamat berikut:

[Link] site)/_vti_bin/[Link].

Setelah membuat reference, kita dapat memanggil metode OpenWorkbook untuk


mengakses semua spreadsheet yang kita publish ke Excel Services. Metode ini memerlukan
path ke workbook sebagai parameter, kemudian memberi kita suatu session identifier
untuk kita pakai jika akan melakukan operasi terhadap workbook. Metode GetCell dan
SharePoint for Developer
168

SetCell member kita kemampuan untuk membaca dan menulis ke dalam spreadsheet,
sedangkan metode Calculate melakukan kalkulasi semua formula pada workbook.

Secara spesifik apa yang dapat web service lakukan?

Inilah jawabannya … list dari semua yang dapat kita lakukan dengan Excel Web Services:

GetApiVersion: Mendapatkan string versi dari web service API.

sessionId = OpenWorkbook: Membuka sesi kalkulasi server-side. Metode ini


mengembalikan sessionId yang kita pergunakan untuk operasi lainnya seperti GetCell atau
SetCell.

GetSessionInformation: Mendapatkan beberapa properti dari sesi server, terutama konteks


bahasa sesi.

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.

Calculate: Melakukan penghitungan ulang formula-formula pada range-range spesifik atau


keseluruhan workbook. Berguna ketika pembuat workbook mematikan kalkulasi otomatis
pada workbook. Ada dua cara disediakan – menggunakan koordinat berupa angka atau
string untuk merujuk pada suatu range – lebih kurang sama seperti pada metode Set.

CalculateWorkbook: Melakukan kalkulasi keseluruhan workbook, menggunakan satu dari


dua metode kalkulasi.
SharePoint for Developer
169

Recalculate: Hanya melakukan kalkulasi terhadap formula yang mempunya ketergantungan


terhadap data tertentu yang nilainya berubah.

CalculateFull: Melakukan kalkulasi semua formula, baik yang mempunyai ketergantungan


atau tidak.

GetCell: Mendapatkan nilai dari sebuah sel. Nilai baliknya dapat berupa sebuah string atau
binary.

GetRange: Mendapatkan nilai dari range yang berkesinambungan.

GetWorkbook: Mendapatkan keseluruhan workbook yang terkalkulasi ke dalam memori


aplikasi, sebagai byte array. Kita bisa mendapatkan workbook keseluruhan atau sebuah
snapshot – workbook keseluruhan (format, nilai hasil kalkulasi) minus formula-formula dan
koneksi eksternal, juga tanpa bagian workbook yang ditandai untuk tidak terlihat ketika
dipublish

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

ExcelService svc = new ExcelService ();


SharePoint for Developer
171

[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

8.4 Membuat User Defined Function (UDF)


Untuk membuat UDF ada beberapa langkah yang harus kita lakukan:

1. Membuat UDF Project di Visual Studio 2005


SharePoint for Developer
173

Kita dapat menggunakan template class library Visual Studio 2005 untuk dengan mudah
menciptakan assembly UDF Excel Services.

Untuk membuat class library project di Visual Studio 2005

1. Mulai Visual Studio 2005.


2. Pada menu File, pilih New, kemudian pilih Project. Akan muncul New Project
dialog box.
3. Pada bagian Project Types, pilih Visual C#.
4. Pada bagian Templates, pilih Class Library.
5. Isi nama dan lokasi untuk project dan klik OK.

2. Tambahkan Reference untuk 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:

C:\Program Files\Common Files\Microsoft Shared\web server


extensions\12\ISAPI

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

3. Membuat Custom Functions

Setelah menambahkan reference ke assembly UDF Excel Services, langkah berikutnya


adalah membuat custom function dan menandainya dengan atribut UDF Excel Services.
Kita harus menandai class yang mengimplementasikan metode UDF dengan atribut
[Link] dan menandai metode UDF dengan
atribut [Link]. Berikutnya, tambahkan line
berikut supaya kita tidak harus menulis ulang path utuh namespace berkali-kali:

using [Link];

Berikutnya adalah menandai class dengan atribut UdfClass.

[UdfClass]
public class Class1
SharePoint for Developer
176

Langkah terakhir adalah membuat metode yang mengimplementasikan UDF. Tambahkan


atribut berikut ke dalam class yang baru saja kita tandai.

[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

Setelah itu, build Class Project ini.

4. Konfigurasi Excel Services

Melakukan konfigurasi Excel Services untuk bisa bekerja dengan assembly UDF
memerlukan langkah-langkah berikut:

1. Membuat ―trusted file location‖.


2. Melakukan register assembly UDF.
SharePoint for Developer
178

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.

Untuk mendaftarkan assembly UDF dengan Excel Services

1. Pada menu Start, klik All Programs.


2. Pilih Microsoft Office Server > SharePoint 3.0 Central Administration.
3. Pada Quick Launch, klik link shared services provider (SSP) —sebagai contoh,
"SharedServices1"—untuk melihat home page Shared Services home page.

4. Di bawah Excel Services Settings, klik User-defined function assemblies.


SharePoint for Developer
179

5. Pada halaman Excel Services User-Defined Functions, klik Add User-Defined


Function Assembly untuk membuka halaman Excel Services Add User-Defined
Function Assembly.
6. Pada box Assembly, ketik path dari assembly UDF yang sudah kita buat
sebelumnya.

7. Di bawah Assembly Location, pilih lokasi yang sesuai.


SharePoint for Developer
180

8. Di bawah Enable Assembly, centang Assembly enabled.


9. Klik OK.

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.

5. Membuat dan Publish Excel Workbook Memanggil UDF

Buat workbook Excel yang memanggil UDF yg diimplementasikan di bagian sebelumnya


dengan cara seperti berikut:

Membuat workbook Excel yang memanggil UDF

1. Mulai Excel 2007.


2. Pada sel A1, ketikkan formula untuk memanggil UDF MyDouble. Fungsi MyDouble
memerlukan parameter bertipe double. Contoh ini mengambil parameter tersebut
dari sel B1. Pada sel A1, ketik =MyDouble(B1).
SharePoint for Developer
181

3. Pada sel B1, ketik angka 8.

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

9. Simpan workbook pada local folder. Namai dengan


"[Link]".

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.

Langkah terakhir adalah melakukan publish workbook ke Document Library sebelumnya


dengan langkah-langkah seperti berikut:

Untuk publish workbook

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

7. Klik OK. "MyDoubleParam" sekarang sudah terdaftar pada list Parameters.


8. Klik OK.
9. Pada dialog box Save As, pastikan bahwa check box Open in Excel Services
sudah terpilih.
[Link] box File name, ketik path Document Library yang sudah jadi ―trusted file
location‖ tempat workbook ini akan disimpan. Sebagai contoh,
[Link] [Link].

[Link] Save.
SharePoint for Developer
184

Workbook [Link] ditampilkan di Excel Web Access. Sel A1


menampilkan angka "72" karena sel B1 * 9 = 8 * 9, yaitu 72. Sel A2 menampilkan angka
dan sel A3 menampilkan tanggal hari ini. Angka pada sel A2 mewakili angka dari 1/1/1900
(atau 1/1/1904 jika Excel dikonfigurasi menggunakan "Use 1904 Date System"). Untuk
merubah value yang digunakan sebagai parameter oleh UDF MyDouble yang dipanggil di
sel A1, isi value yang berbeda pada tab Parameters, kemudian klik tombol Apply. Excel
Services akan mengkalkulasi ulang workbook.

Anda mungkin juga menyukai