Menggunakan Client Side Object Model (CSOM) pada ... · untuk menjalankan situs-situs web yang...

21
Step By Step Menjadi Programmer Handal Dengan VB.Net Junindar, ST, MCPD, MOS, MCT, MVP VB.NET Junindar, ST, MCPD, MOS, MCT, MVP .NET [email protected] http://junindar.blogspot.com Abstrak Menurut wikipedia, SharePoint adalah sebuah platform sistem manajemen dokumen berbasis web yang diciptakan oleh Microsoft Corporation. SharePoint dapat digunakan untuk menjalankan situs-situs web yang terdiri atas ruangan kerja (shared workspace) dan dokumen yang digunakan secara bersama-sama (shared documents), selain tentunya aplikasi khusus seperti wiki dan blog. Fitur-fitur SharePoint ini bisa diakses oleh sebuah penjelajah web (meski yang disarankan adalah keluarga Microsoft Internet Explorer). Terdapat beberapa cara untuk melakukan pengaksesan SharePoint melalui client atau diluar dari environment SharePoint itu sendiri salah satu nya dengan menggunakan client side object model atau yang biasa disebut CSOM. Lisensi Dokumen: Copyright © 2003 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com. Menggunakan Client Side Object Model (CSOM) pada Sharepoint 2013

Transcript of Menggunakan Client Side Object Model (CSOM) pada ... · untuk menjalankan situs-situs web yang...

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Junindar, ST, MCPD, MOS, MCT, MVP .NET [email protected]

http://junindar.blogspot.com

Abstrak

Menurut wikipedia, SharePoint adalah sebuah platform sistem manajemen dokumen

berbasis web yang diciptakan oleh Microsoft Corporation. SharePoint dapat digunakan

untuk menjalankan situs-situs web yang terdiri atas ruangan kerja (shared workspace) dan

dokumen yang digunakan secara bersama-sama (shared documents), selain tentunya

aplikasi khusus seperti wiki dan blog. Fitur-fitur SharePoint ini bisa diakses oleh sebuah

penjelajah web (meski yang disarankan adalah keluarga Microsoft Internet Explorer).

Terdapat beberapa cara untuk melakukan pengaksesan SharePoint melalui client atau

diluar dari environment SharePoint itu sendiri salah satu nya dengan menggunakan client

side object model atau yang biasa disebut CSOM.

Lisensi Dokumen: Copyright © 2003 IlmuKomputer.Com

Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan

disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat

tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang

disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang,

kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.

Menggunakan Client Side Object Model (CSOM) pada Sharepoint 2013

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Pendahuluan

Pada artikel terdahulu (http://junindar.blogspot.com/2013/03/crud-pada-sharepoint-list-

menggunakan.html) penulis menjelaskan bagaimana melakukan proses Create, Read,

Update dan Delete (CRUD) pada Sharepoint List dengan menggunakan VB 10. Pada

artikel tersebut penulis menggunakan Web Services yang telah disediakan oleh SharePoint

itu sendiri. Sebenarnya terdapat beberapa cara untuk melakukan hal tersebut, bisa

menggunakan CSOM, JSOM dan REST API (https://msdn.microsoft.com/en-

us/library/office/dn268594.aspx).

Pada artikel ini penulis akan menjelaskan bagaimana menggunakan CSOM untuk membuat

list maupun memanipulasi data yang ada pada SharePoint list. CSOM digunakan untuk

aplikasi yang berjalan di luar dari SharePoint server, seperti windows aplikasi, mobile dan

sebagainya. Sebelum menggunakan CSOM terlebih dahulu kita memerlukan SharePoint

Server 2013 Client Components SDK dimana terdapat beberapa library yang akan

digunakan dalam penulisan kode program (http://www.microsoft.com/en-

my/download/details.aspx?id=35585).

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Isi

Untuk memudahkan memahami isi dari artikel ini, kita akan membuat sebuah project

latihan, dimana kita akan menggunakan CSOM dengan Visual Basic untuk membuat

SharePoint list maupun memanipulasi data-data pada SharePoint list. Ikuti langkah-

langkah dibawah ini.

1. Buat sebuah project dengan nama “LatihanCSOM”.

2. Ganti properties pada Form1 menjadi seperti berikut.

Name = frmUtama

Text = Menu Utama

StartPosition = CenterScreen

3. Tambahkan Menustrip pada form, lalu tambahkan beberapa menu item seperti berikut.

File > Exit

Tools > Create List

List Item

4. Tambah sebuah form dengan nama “frmCreateList”.

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

5. Tambahkan beberapa control pada frmCreateList, ganti text form menjadi Create List

- 2 buah Text Box dengan masing-masing properties name sebagai berikut.

txtName dan txtDescription

- 2 buah label dengan masing-masing text List Name dan Description

- 1 buah DataGridView dengan nama DgvList

- 1 buah button dengan nama btnCreate dan text nya Create.

Susun control-control tersebut seperti gambar dibawah.

Selanjutnya adalah menambahkan reference SharePoint.Client dan

SharePoint.Client.Runtime pada project.

Note : Dua dll diatas terdapat pada C:\Program Files\Common Files\Microsoft

Shared\Web Server Extensions\15\ISAPI\

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Sebelum kita lanjutkan menulis kode pada frmCreateList, kita akan membuat sebuah

Module yang digunakan sebagai koneksi terhadap SharePoint 2013.

- Tambahkan sebuah Module pada project, dengan nama module “MySPContext”

- Import dua namespace seperti berikut.

- Buat sebuah Public Function dengan nama “myContext” dan ketikkan sintaks seperti

dibawah.

Imports System.Net

Imports Microsoft.SharePoint.Client

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Method ini berfungsi untuk melakukan koneksi terhadap SharePoint yang kita

inginkan. Dan akan digunakan pada form-form lain yang akan dijelaskan dibawah.

Note : Untuk SharePoint yang menggunakan Form Base dapat menggunakan

sintaks dibawah ini

Setelah selesai membuat module, selajutnya kita akan kembali pada frmCreateList.

Buka jendela code pada frmCreateList.

- Import namespace SharePoint.Client

- Selanjutnya adalah membuat sebuah method untuk menambahkan kolom pada

DataGridView

Imports Microsoft.SharePoint.Client

Public Function myContext() As ClientContext Dim context As New ClientContext("SharePointUrl")

Dim credential As NetworkCredential = _ New NetworkCredential("Domain\Username", "Password")

context.Credentials = credential

End Function

context.AuthenticationMode = _ ClientAuthenticationMode.FormsAuthentication

context.FormsAuthenticationLoginInfo = _

New FormsAuthenticationLoginInfo("username", "password")

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Kode diatas selain untuk menambahkan kolom pada DataGridView (DgvList)

digunakan juga untuk mengatur Style pada DgvList. Terdapat tiga kolom yang akan

kita tambahkan. Ketiga kolom tersebut menggunakan control yang berbeda seperti

TextBox, ComboBox dan CheckBox Untuk ColomnType kita gunakan ComboBox

control untuk menampilkan data. Dan terdapat 3 (tiga) pilihan dalam ComboBox

tersebut yaitu Text, Number dan Note. Pilihan ini yang nantinya digunakan sebagi tipe

data kolom pada list yang akan kita buat.

Note : Pada SharePoint 2013 terdapat banyak tipe data yang dapat digunakan.

Sebagai latihan kita hanya akan menggunakan 3 (tiga) tipe data saja.

- Buat sebuah method untuk membuat kolom pada SharePoint seperti dibawah.

Private Sub FormatGridWithBothTableAndColumnStyles()

DgvList.DefaultCellStyle.ForeColor = Color.Navy DgvList.RowsDefaultCellStyle.BackColor = Color.AliceBlue

DgvList.GridColor = Color.Blue

DgvList.BorderStyle = BorderStyle.Fixed3D DgvList.RowHeadersBorderStyle = DirectCast(BorderStyle.Fixed3D,

DataGridViewHeaderBorderStyle)

DgvList.AutoGenerateColumns = False

Dim ColumnName As New DataGridViewTextBoxColumn()

ColumnName.DataPropertyName = "FieldName"

ColumnName.HeaderText = "Field Name" ColumnName.Width = 100

Dim ColumnType As New DataGridViewComboBoxColumn() ColumnType.DataPropertyName = "FieldType"

ColumnType.HeaderText = "Field Type"

ColumnType.Width = 100

ColumnType.Items.AddRange("Text", "Number", "Note")

Dim ColumnView As New DataGridViewCheckBoxColumn() ColumnView.DataPropertyName = "DefaultView"

ColumnView.HeaderText = "Default View"

ColumnView.Width = 100

DgvList.Columns.Add(ColumnName)

DgvList.Columns.Add(ColumnType) DgvList.Columns.Add(ColumnView)

End Sub

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Method diatas berfungis untuk membuat kolom pada SharePoint. Kolom dibuat

berdasarkan item yang dimasukkan pada DgvList. Perhatikan sintak diatas terdapat

pengulangan (For Each As DataGridViewRow), dimana pada pengulangan tersebut

kita letakkan kondisi, yang mana dicari hanya baris dengan cell pertama tidak sama

dengan kosong. Dalam hal ini adalah kolom “FieldName”. Sedangkan “bStatus”

digunakan untuk kolom DefaultView. Kolom ini berfungsi untuk menjadi indikasi,

apakah kolom tersebut akan ditampilkan pada SharePoint view atau tidak. Yang

terakhir adalah memasukkan informasi-informasi diatas kedalam function

list.Fields.AddFieldsAsXml

- Double click form dan ketikkan sintaks berikut :

Sebagai default pada saat form Create List ini dibuka, maka pada DgvList akan terdapat

3 (tiga) kolom yang telah kita buat pada method

“FormatGridWithBothTableAndColumnStyles” yaitu kolom FieldName, FieldType

dan DefaultView.

- Double click pada button Create dan ketikkan sintaks dibawah

Private Sub CreateField(list As List)

For Each row As DataGridViewRow _

In From row1 As DataGridViewRow _

In DgvList.Rows Where row1.Cells(0).Value IsNot Nothing

Dim bStatus As Boolean

If row.Cells(2).Value IsNot Nothing Then

bStatus = True Else

bStatus = False

End If

list.Fields.AddFieldAsXml("<Field DisplayName='" + _

row.Cells(0).Value.ToString() + _ "' Type='" +

row.Cells(1).Value.ToString() + _

"' />", bStatus, AddFieldOptions.DefaultValue) Next

End Sub

Try

FormatGridWithBothTableAndColumnStyles()

Catch ex As Exception

MsgBox(ex.Message) End Try

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Sintaks ini lah yang digunakan untuk membuat SharePoint list, yang terlebih dahulu

diperhatikan adalah membuat koneksi dengan SharePoint yaitu dengan memanggil

function myContex pada module (Dim context = myContext). Selanjutnya adalah

dengan membuat ListCreationInformation, pada bagian ini dimana kita akan

melakukan penamaan pada list (creationInfo.Title = txtName.Text) dan memilih tipe

dari list yang akan dibuat (creationInfo.TemplateType =

CInt(ListTemplateType.GenericList)). Untuk latihan kita akan membuat custom list

sehingga kita akan memilih GenericList sebagai tipe templatenya. Selanjutnya kita

panggil method CreateList yang telah kita buat sebelumnya untuk membuat field pada

list. Diikuti dengan list.Update dan context.ExecuteQuery.

- Buka frmUtama, double click pada menuitem “CreateList” dan ketikkan sintaks

berikut, untuk membuka frmCreateList

Jalankan program dan buka form Create List. Sebagai pengujian kita akan membuat 4

buah field dengan menggunakan semua tipe data yang ada pada combobox (Text,

Number dan Note), sedangkan untuk field telp default view nya kita hilangkan. Lalu

klik button Create.

Try

Cursor = Cursors.WaitCursor Dim context = myContext()

Dim web As Web = context.Web

Dim creationInfo As New ListCreationInformation()

creationInfo.Title = txtName.Text creationInfo.TemplateType = CInt(ListTemplateType.GenericList)

Dim list As List = web.Lists.Add(creationInfo)

list.Description = txtDescription.Text CreateField(list)

list.Update()

context.ExecuteQuery() Catch ex As Exception

MsgBox(ex.Message)

Finally

Cursor = Cursors.Default

End Try

Dim frm As New frmCreateList frm.ShowDialog()

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Buka SharePoint dan lihat apakah list yang kita buat diatas sudah ada. Lalu klik List

Setting pada list tersebut maka field-field yang kita buat pada DgvList juga ada.

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Perhatikan gambar diatas, ternyata field Telp tidak ada. Hal ini dikarenakan kita tidak

memilih checkbox default view pada DgvList diatas.

Note : Untuk field Title, Modified dan lain-lain yang ada pada list, field-field tersebut

merupakan default field yang selalu ada pada saat list di buat.

Setelah seleai membuat form Create List, langkah selanjutnya adalah membuat form untuk

memanipulasi data pada List yang kita buat sebelumnya.

- Buat sebuah form dengan nama “frmListItem” dang anti text form tesebut menjadi List

Item.

- Tambahkan beberapa control seperti berikut.

1 Textbox, dengan nama txtName. 1 buah label dengan text List Name.

1 DataGridView dengan nama DgvList

4 buah button dengan properties sebagai berikut.

Name: btnView, Text = View

Name: btnSave, Text = Add Item

Name: btnUpdate, Text = Update Item

Name: btnDelete, Text = Delete Item

- Susun control-kontrol diatas seperti gambar dibawah ini.

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

- Buka jendela code pada form. Dan import namespace seperti dibawah.

- Buat sebuah method dengan nama FormatGrid yang berfungsi untuk menampilkan

kolom-kolom dari SharePoint list.

Perhatikan sintaks diatas, pada baris (DgvList.Columns.Clear()) pertama kita akan

menghapus semua kolom yang ada pada DgvList. Selanjutnya dari variable listColumn

kita akan melakukan pengulangan (For Each clm In listColumn) pada proses

Imports Microsoft.SharePoint.Client

Private Sub FormatGrid(listColumn As IEnumerable(Of String))

DgvList.Columns.Clear() DgvList.DefaultCellStyle.ForeColor = Color.Navy

DgvList.RowsDefaultCellStyle.BackColor = Color.AliceBlue

DgvList.GridColor = Color.Blue DgvList.BorderStyle = BorderStyle.Fixed3D

DgvList.RowHeadersBorderStyle = DirectCast(BorderStyle.Fixed3D, _

DataGridViewHeaderBorderStyle)

DgvList.AutoGenerateColumns = False For Each clm In listColumn

Dim ColumnName As New DataGridViewTextBoxColumn()

ColumnName.Name = clm.ToString() ColumnName.DataPropertyName = clm.ToString()

ColumnName.Width = 100

ColumnName.HeaderText = clm.ToString() If clm.ToString() = "ID" Then

ColumnName.[ReadOnly] = True

End If DgvList.Columns.Add(ColumnName)

Next

End Sub

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

pengulangan inilah kita akan membuat kolom yang diambil dari list. Jika field bernama

“ID” maka kolom pada DgvList akan menjadi ReadOnly.

- Selanjutnya adalah membuat sintaks untuk memasukkan data pada DgvList.

Disini akan dijelaskan maksud dari sintaks diatas. (Dim listcolumns = New List(Of

String)() From {"ID"}) merupakan sebuah variable List(Of String) yang digunakan

untuk menampung nama-nama field yang akan ditampilkan dengan default value nya

adalah “ID”. Selanjutnya adalah (For Each fieldTemp In fieldColl) pengulangan

terhadap Field Collection (fieldColl). Seperti yang telah dijelaskan diatas terdapat

banyak default field pada saat list dibentuk. Oleh karena itu kita akan menampilkan

hanya field-field yang kita buat saja kecuali field ID. Field ini digunakan untuk proses

hapus dan update list item. Untuk menampilkan field-field yang diinginkan maka kita

menggunakan kondisi sebagai berikut.

Private Sub CreateFieldAndFillGridView( _

fieldColl As IEnumerable(Of Field), _ listItems As IEnumerable(Of ListItem))

Dim listcolumns = New List(Of String)() From {"ID"}

For Each fieldTemp In fieldColl

If fieldTemp.InternalName.Contains("_") _ OrElse fieldTemp.InternalName.StartsWith("ows") _

OrElse fieldTemp.InternalName.ToLower().Contains("order") Then

Continue For

End If If fieldTemp.FieldTypeKind = FieldType.Text _

OrElse fieldTemp.FieldTypeKind = FieldType.Note _

OrElse fieldTemp.FieldTypeKind = FieldType.Number Then

listcolumns.Add(fieldTemp.InternalName)

End If

Next

FormatGrid(listcolumns)

For Each oItem In listItems

Dim row As String() = New String(listcolumns.Count - 1) {} Dim icol = 0

For Each clm In listcolumns

row(icol) = oItem(clm.ToString()).ToString() icol += 1

Next

DgvList.Rows.Add(row) Next

End Sub

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Maka field-field yang masuk dalam kondisi diatas akan diabaikan.

Dan akan menampilkan field-field yang sesuai dengan kondisi diatas lalu memasukkan

nama field tersebut kedalam listcolumns (variable yang telah kita buat sebelumnya).

Setelah mendapatkan field-field yang diinginkan, selanjutnya adalah memanggil

method FormatGrid dengan memasukkan variable listcolumns.

Dan terakhir adalah memasukkan data-data pada DgvList sesuai dengan field-field

yang didapat sebelumnya.

- Double click button View dan ketikkan sintaks dibawah.

If fieldTemp.InternalName.Contains("_") _

OrElse fieldTemp.InternalName.StartsWith("ows") _

OrElse fieldTemp.InternalName.ToLower().Contains("order") Then Continue For

End If

If fieldTemp.FieldTypeKind = FieldType.Text _ OrElse fieldTemp.FieldTypeKind = FieldType.Note _

OrElse fieldTemp.FieldTypeKind = FieldType.Number Then

listcolumns.Add(fieldTemp.InternalName)

End If

For Each oItem In listItems

Dim row As String() = New String(listcolumns.Count - 1) {}

Dim icol = 0 For Each clm In listcolumns

row(icol) = oItem(clm.ToString()).ToString()

icol += 1

Next DgvList.Rows.Add(row)

Next

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Sintaks diatas berfungsi untuk menampilkan data-data pada list. Setelah melakukan

koneksi (Dim context = myContext()) pada SharePoint, selanjtunya memanggil list

berdasarkan title (Dim oList = context.Web.Lists.GetByTitle(txtName.Text)). Dan

untuk mempercepat proses kita lakukan query dengan kriteria dimana ID lebih besar

dari 0. Dan setelah selesai maka method CreateFieldAndFillGridView(fieldColl,

listItems) yang telah dijelaskan sebelumnya akan dipanggil dengan mengirimkan 2

buah variable fieldColl (FieldCollection) dan listItems (List Item Colection).

- Buka form Menu Utama, double click menu item List Item dan ketikkan sintaks

dibawah, untuk membuka form List Item.

- Jalankan program dan buka form List Item. Masukkan nama list dan klik button view,

maka DgvList akan menampilkan kolom-kolom seperti gambar dibawah ini.

Try Dim context = myContext()

Dim oList = context.Web.Lists.GetByTitle(txtName.Text)

Dim camlQuery As New CamlQuery() camlQuery.ViewXml = "<Where><Gt><FieldRef Name='ID'/>" + _

"<Value Type='Number'>0</Value></Gt></Where>"

Dim listItems = oList.GetItems(camlQuery) Dim fieldColl = oList.Fields

context.Load(fieldColl)

context.Load(listItems) context.ExecuteQuery()

CreateFieldAndFillGridView(fieldColl, listItems)

Catch ex As Exception

MsgBox(ex.Message) End Try

Dim frm As New frmListItem

frm.ShowDialog()

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

- Selanjutnya adalah membuat sintaks untuk menambah data pada SharePoint list.

Silahkan ikuti langkah-langkah berikut. Double click button Save (Add Item), dan

ketikkan sintaks dibawah ini.

Untuk menyimpan data yang terdapat pada DgvList, kita akan mengambil data satu per

satu (row by row) oleh karena itu akan menggunakan pengulangan terhadap baris

DgvList (For Each row As DataGridViewRow In DgvList.Rows). Selanjutnya akan

mengecek apakah cell pertama pada gridview memeiliki nilai (value), jika iya maka

akan diabaikan. Kenapa diabaikan? Karena cell pertama pada DgvList adalah “ID”,

sehingga jika pada cell tersebut memiliki nilai maka dapat dipastikan data tersebut

sudah ada pada list (liat proses menampilkan data). Selanjutnya mendeklarasikan

ListItemCreationInformation (Dim itemCreateInfo As New

ListItemCreationInformation()) dan ListItem (Dim newItem As ListItem =

oList.AddItem(itemCreateInfo)). Lalu melakukan pengulangan terhadap kolom yang

terdapat pada DgvList (kecuali kolom ID) untuk memasukkan nilai pada ListItem.

Try

Cursor = Cursors.WaitCursor

Dim context = myContext() Dim oList = context.Web.Lists.GetByTitle(txtName.Text)

For Each row As DataGridViewRow In DgvList.Rows

If row.Cells(1).Value Is Nothing _ OrElse row.Cells(0).Value IsNot Nothing Then Continue For

Dim itemCreateInfo As New ListItemCreationInformation() Dim newItem As ListItem = oList.AddItem(itemCreateInfo)

For Each col As DataGridViewColumn _

In From col1 As DataGridViewColumn _

In DgvList.Columns Where col1.Name <> "ID" newItem(col.Name) = row.Cells(col.Name).Value.ToString()

newItem.Update()

Next context.ExecuteQuery()

Next

MessageBox.Show("Item Saved") btnView.PerformClick()

Catch ex As Exception

MsgBox(ex.Message) Finally

Cursor = Cursors.Default

End Try

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Setelah selasai menjalankan proses penambahan data, maka selanjutnya adalah

menjalankan perintah pada button View (btnView.PerformClick()).

- Double click button Update (Update Item)

Hampir sama seperti proses penambahan data, pada proses ini untuk cell pertama yang

tidak memili value akan diabaikan (kebalikan dari proses sebelumnya). Tetapi pada

proses update kita memerlukan nilai dari ID untuk setiap item yang akan diubah.

Dengan menggunakan fungsi GetItembyId

(oList.GetItemById(row.Cells("ID").Value.ToString()) ).

- Sedangkan untuk proses hapus data, double click button Delete. Untuk proses delete

tidak sama seperti proses penambahan data maupun update data. Pada 2 proses

sebelumnya kita melakukan pengulangan pada baris DgvList, yang lebih dikenal

multiple item. Sedangkan untuk proses delete, akan dilakukan melalui single item.

For Each col As DataGridViewColumn _

In From col1 As DataGridViewColumn _

In DgvList.Columns Where col1.Name <> "ID"

newItem(col.Name) = row.Cells(col.Name).Value.ToString() newItem.Update()

Next

Try Cursor = Cursors.WaitCursor

Dim context = myContext()

Dim oList = context.Web.Lists.GetByTitle(txtName.Text) For Each row As DataGridViewRow In DgvList.Rows

If row.Cells(0).Value Is Nothing Then

Continue For

End If Dim listItem As ListItem = _

oList.GetItemById(row.Cells("ID").Value.ToString())

For Each col As DataGridViewColumn _ In From col1 As DataGridViewColumn _

In DgvList.Columns Where col1.Name <> "ID"

listItem(col.Name) = row.Cells(col.Name).Value.ToString()

listItem.Update()

Next

context.ExecuteQuery() Next

MessageBox.Show("Item Updated")

btnView.PerformClick() Catch ex As Exception

MsgBox(ex.Message)

Finally Cursor = Cursors.Default

End Try

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Dimana user akan memilih data yang akan di hapus pada GridView (dengan cara klik

pada baris yang dinginkan). Selanjutnya klik button delete.

Hampir sama seperti proses update, kita juga memerlukan nilai dari ID untuk

menghapus data yang diinginkan. Untuk mendapatkan nilai ID yang di pilih dari

DgvList (DgvList(0, DgvList.CurrentRow.Index).Value.ToString())

Setelah selesai membuat ketiga proses diatas, selanjutnya adalah menguji proses-proses

tersebut. Jalankan program dan buka form List Item

Untuk menguji program ini, masukkan nama list yang telah kita buat sebelumnya (MyList),

dan klik button View, lalu masukkan data-data yang dinginkan seperti gambar diatas.

Selanjutnya klik button Add Item. Tunggu hingga keluar pesan data sudah disimpan. Untuk

Try

Cursor = Cursors.WaitCursor Dim context = myContext()

Dim oList = context.Web.Lists.GetByTitle(txtName.Text)

Dim listItem As ListItem = _ oList.GetItemById(DgvList(0, _

DgvList.CurrentRow.Index).Value.ToString())

listItem.DeleteObject() context.ExecuteQuery()

MessageBox.Show("Item Deleted")

btnView.PerformClick() Catch ex As Exception

MsgBox(ex.Message)

Finally

Cursor = Cursors.Default End Try

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

melihat apakah data sudah disimpan pada SharePoint list, buka list pada SharePoint site.

Seperti gambar dibawah ini.

Lakukan juga pengujian untuk 2 proses lainnya (update dan delete). Ubah data yang

dinginkan dan klik button Update Item. Sedangkan untuk delete, seperti yang telah

dijelaskan sebelumnya klik baris pada DgvList dan klik button Delete Item. Jika berhasil

maka kita sukses membuat program untuk memanipulasi data menggunakan CSOM

dengan Visual Basic.

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Penutup

Pada artikel ini telah dijelaskan bagaimana memanfaatkan CSOM baik untuk membuat

SharePoint list maupun memanipulasi data yang ada pada list. Sehingga diharapkan

pembaca artikel ini dapat memahami proses dalam menggunakan CSOM baik dari

melakukan koneksi ke SharePoint sampai melakukan proses CRUD pada list item. Semoga

artikel ini bermanfaat dan berguna bagi para pembaca yang ingin belajar CSOM.

Sedangkan untuk memudahkan dalam memahami isi artikel, maka penulis juga

menyertakan dengan full source code project latihan ini, dan dapat di download disini

http://junindar.blogspot.com/2015/04/menggunakan-client-side-object-model.html

Step By Step Menjadi Programmer Handal Dengan VB.Net

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Referensi

1. www.msdn.microsoft.com

2. www.planetsourcecode.com

3. www.codeproject.com

4. www.aspnet.com

Masih banyak lagi referensi yang ada di Intenet. Anda tinggal cari di www.Google.com.

Dengan kata kunci “tutorial VB.Net”

Biografi Penulis.

Junindar Lahir di Tanjung Pinang, 21 Juni 1982. Menyelesaikan

Program S1 pada jurusan Teknik Informatika di Sekolah Tinggi

Sains dan Teknologi Indonesia (ST-INTEN-Bandung). Junindar

mendapatkan Award Microsoft MVP VB pertanggal 1 oktober

2009 hingga saat ini. Senang mengutak-atik computer yang

berkaitan dengan bahasa pemrograman. Keahlian, sedikit mengerti

beberapa bahasa pemrograman seperti : VB.Net, C#, SharePoint,

ASP.NET, VBA. Reporting: Crystal Report dan Report Builder.

Database: MS Access, MY SQL dan SQL Server. Simulation /

Modeling Packages: Visio Enterprise, Rational Rose dan Power

Designer. Dan senang bermain gitar, karena untuk bisa menjadi

pemain gitar dan seorang programmer sama-sama membutuhkan

seni. Pada saat ini bekerja di salah satu Perusahaan Consulting dan

Project Management di Malaysia sebagai Senior Consultant.

Memiliki beberapa sertifikasi dari Microsoft yaitu Microsoft

Certified Professional Developer (MCPD – SharePoint 2010), MOS

(Microsoft Office Specialist) dan MCT (Microsoft Certified

Trainer) Mempunyai moto hidup: “Jauh lebih baik menjadi

Orang Bodoh yang giat belajar, dari pada orang Pintar yang

tidak pernah mengimplementasikan ilmunya”.