Yups,, ketemu lagi kita...
Kali ini kita coba tinggalkan perkodingan
dan nikmati kemudahan feature content management dari sharepoint 2010. Mungkin
temen-temen ada yg belom tau istilah metadata ? udah simpelna metadata adalah
data yang menjelaskan data. Nah di sharepoint ini kita bisa membuat term yang
berhirarki dan bersinonim ? weeehh... penjelasan yang ga jelas... lebih baik
langsung kita praktekin biar langsung jelas.
Ikutin ya langkah dibawah ini :
1. Pertama buka
Sharepoint Central Administration. Start
>Administration, dan klik SharePoint 4.0 Central Administration.

2.
Di Quick Launch sebelah
kiri, klik System Settings.
3.
Dibawah section Servers,
klik Manage services on server.
4.
Pastikan Managed
Metadata Web Service itu dalam posisi started, kalau kagak klik Start.

5.
Sekarang di Quick
Launch, klik Application Management.
6.
Di section Service
Applications, klik Manage service
applications.
7.
Klik lagi di Managed
Metadata Service

8.
di Term Store
Administrators section, masukin credential admin ente.

9.
Di sebelah kiri ada tree-view, geser kursor ke Managed Metadata Service dan klik
dropdown pilih New Group.

10.
Ketik Lokasi dan
[ENTER].
11.
Kemudian arahin kursor ke lokasi, dan klik New Term Set.
12.
Ketik Jawa Barat terus
[ENTER].
13.
Kemudian arahin kursor ke Jawa Barat dan klik Create Term
14.
Ketik Bogor, dan
begitu selanjutnya sampai seperti gambar dibawah

Nah tadi diatas
itu kita bikin hirarki dari terms. Selanjutnya kita coba bikin sinonim dari
nama nama lokasi tersebut. Caranya ? Contoh :
1. Klik ke Bogor.
Terus disebelah kanan cari Other Labels
dan isi teks boksnya dengan BGR

2. Coba lakukan hal
yang sama untuk singkatan2 kota lainnya. Bandung > BDG, Garut > GRT, dst.
3. Nah sekarang
gimana cara memanfaatkannya ? Mari kita membuat custom list. Sekarang buka
salah satu sharepoint site.
4. Klik Site Actions > More Options.
5. Filter pilihan
dengan Lists, kemudian pilih Custom List.
6. Di textbox Name, ketik Registrasi
7. Klik Create.

8. Lihat di ribbon
bagian atas, di grup Settings, klik List Settings.
9. Scroll ke bawah,
lihat section Columns, klik Create column.
10. Isi column name dengan Asal
11. Pilih tipenya
Managed Metadata
12. Scroll ke bawah,
pilih term set-nya Indonesia. Kemudian ok.
13. Ke bagian colums
lagi dan klik title
14. Ubah namanya jadi
Nama, dan ok
15. Sekarang coba
tambahkann item baru ke dalam list tersebut. Ketika kamu masukin sinonim nama
kota di kolom Asal, otomatis langsung muncul autotext yang menjelaskan
hirarkinya.. Mantap khan !!!
Yep yep... pa kabar kawan ? Semoga tetep
asyik..
Kesempatan kali ini kita coba bikin model
business data connectivity (BDC) dengan
Visual Studio. Sebelumnya mungkin kita overview sedikit tentang BDC ini yah.
Business Connectivity
Services adalah salah satu feature sharepoint 2010 yang memungkinkan sharepoint
untuk mengakses data dari external data source, entah itu database, xml, web
service, apapunlah selama bisa diakses dengan .NET Ajib khan !! Yongki mama..
Gambar diatas menggambarkan arsitektur BCS yang terdiri dari:
1.
Office Client - Dengan
terkoneksi dengan sharepoint office client bisa mengambil data dari system
external.
2.
SharePoint Server -Sharepoint
menyimpan external content types (ECT), dimana ini adalah inti / model dari
system BCS ini.
3.
External Data - sumber data di
luar sharepoint
Step-step yang dilakukan pada umumnya untuk
menggunakan BDC itu :
1.
Bikin Model BDC (External
Content Type)
2.
Memanfaatkan External Content
Type :
a.
Bikin External list
b.
Baca/tulis ke external data
berdasarkan definisi di External Content Type
c.
Membuat Views berdasarkan
method "Finder"
d.
Melakukan Pre dan post query
filter
e.
Memanfaatkan BDC Web Part
f.
Memuat BDC Column
g.
Menambah property User profile
Bikin model BDC itu bisa dilakukan dengan
dua tool, yaitu :
-
Visual Studio (.NET Host
Connector)
-
Sharepoint Designer
-
Ga menutup kemungkinan ntar
kalau ada third party tool
Kapan harus menggunakan tool tersebut ?
Lihat gambar dibawah..
![]()
Simpelnya kalau ente developer, mau susah-susah
n canggih-canggih bikin model BDC pake visual studio, kalau ente adalah power
user dan doyan yang instan pake sharepoint designer.
![]()
Oke supaya jelas pemahaman kita tentang BDC
ini mari kita bikin .NET Connector dengan Visual Studio 2010. Ikuti step
dibawah ini yap :
1.
Buka visual studio 2010, dan
bikin proyek baru
2.
Expand sharepoint dan pilih
Business Data Connectivity Model.
![]()
3.
Kasih aja nama : Karyawan, trus
OK
4.
Trus masupin URL sharepoint
site kamu
5.
Oke, sekarang keluarin BDC
Explorer. Di menu atas pilih : View >
Other Windows > BDC Explorer.
![]()
6.
Pada model di tengah klik
Entity1, Ubah Name Entity1 jadi DataKaryawan
7.
Klik juga Identifier1, Ubah
Name Identifier1 jadi NRP
8.
Klik ReadList ubah Name jadi FindAllEntities
9.
Klik ReadItem ubah Name jadi
GetEntityById
10.
Di BDC Explorer. Expand
DataKaryawan > ReadItem > Id > Identifier1. Ubah Name dan Identifier
jadi NRP dan Type Name = System.String
11.
Di BDC Explorer. Expand
ReadList > returnParameter > Entity1List. Ubah name menjadi ListKaryawan
12.
Di BDC Explorer. Expand
ReadList > returnParameter > ListKaryawan> Entity1. Ubah name menjadi
Karyawan
13.
Di BDC Explorer. Expand
ReadList > returnParameter > ListKaryawan> Karyawan > Identifier1.
Ubah name dan identifier menjadi NRP
14.
Di BDC Explorer. Expand
ReadList > returnParameter > ListKaryawan> Karyawan > Message. Ubah
name menjadi Nama
15.
Di BDC Explorer. Expand
ReadList > returnParameter > ListKaryawan> Karyawan. Klik kanan dan
pilih add type descriptor. Kasih Name : Kelamin
16.
Lakukan step 13 ulang dan kasih
name : Status
17.
Klik kanan pada Di BDC
Explorer. ReadList > returnParameter > ListKaryawan > Karyawan, pilih
Copy
18.
Kemudian paste di ReadItem >
returnParameter
![]()
19.
Kemudian bukan Entity1.cs, ubah
isinya menjadi berikut :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Karyawan.BdcModel1
{
public partial class Karyawan
{
public string NRP { get; set; }
public string Nama { get; set; }
public string Status { get; set; }
public string Kelamin { get; set; }
}
}
20.
Buka juga
DataKaryawanService.cs dan ubah isinya jadi :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Text.RegularExpressions;
namespace Karyawan.BdcModel1
{
public class DataKaryawanService
{
private static DataTable getData()
{
string CSV =
@"NRP,Nama,Kelamin,Status
1110001,Asep,Pria,Menikah
1110002,Omen,Wanita,Janda
1110003,Ayam,Hermaprodit,Perjaka
1110004,Usbek,Pria,Perjaka
1110005,Kiwil,Pria,Perjaka
1110006,Oon,Pria,Menikah
1110007,Kremel,Wanita,Menikah
1110008,Tungkring,Wanita,Janda
1110009,Sime,Hermaprodit,Membelah diri";
DataTable dt = new DataTable("Data");
int RowCounter = 0;
string[] BarisData = Regex.Split(CSV, "\r\n");
foreach (string Baris in BarisData)
{
string[] Kolom = Baris.Split(',');
List<string> Val = new List<string>();
foreach (string KolomData in Kolom)
{
if (RowCounter == 0)
{
dt.Columns.Add(KolomData);
}
else
{
Val.Add(KolomData);
}
}
if (RowCounter > 0)
{
dt.Rows.Add(Val.ToArray());
}
RowCounter++;
}
return dt;
}
public Karyawan GetEntityById(string id)
{
DataTable data = getData();
var q = from c in data.AsEnumerable()
where c.Field<string>("NRP").Trim() == id
select new
{
NRP = c.Field<string>("NRP"),
Nama = c.Field<string>("Nama"),
Status = c.Field<string>("Status"),
Kelamin = c.Field<string>("Kelamin")
};
if (q == null) return null;
Karyawan kar = new Karyawan();
kar.NRP = q.First().NRP;
kar.Nama = q.First().Nama;
kar.Status = q.First().Status;
kar.Kelamin = q.First().Kelamin;
return kar;
}
public static IEnumerable<Karyawan> FindAllEntities()
{
DataTable data = getData();
var q = from c in data.AsEnumerable()
select new
{
NRP = c.Field<string>("NRP"),
Nama = c.Field<string>("Nama"),
Status = c.Field<string>("Status"),
Kelamin = c.Field<string>("Kelamin")
};
List<Karyawan> DataKaryawan = new List<Karyawan>();
foreach (var p in q)
{
Karyawan kar = new Karyawan();
kar.NRP = p.NRP;
kar.Nama = p.Nama;
kar.Status = p.Status;
kar.Kelamin = p.Kelamin;
DataKaryawan.Add(kar);
}
return DataKaryawan;
}
}
}
21.
Oke setelah itu Build : Build
> Build Solution
22.
Dan deploy :Klik kanan di
karyawan, klik deploy.
Untuk memastikan hasilnya benar, maka
langkah selanjutnya adalah memasukan BDC model kamu sebagai external list.
1.
Buka Internet Explorer and buka
site sharepoint kamu
2.
Buka Site Actions > View All
Site Content.
3.
Pada halaman All Site Content,
pilih Create.
4.
Pada Create page, filter
viewnya dengan List type dan pilih External List. Create
![]()
5.
Isi name : Data Karyawan,
External Content Type : DataKaryawan. Klik create
![]()
6.
Oke selamat mencoba. Terus
berbagi dan berkarya
![]()
Cheers J
Pa kabar semua ? semoga sehat
en makin ganteng. Uhm,,, kalau flashback ke postingan sebelumnya beberapa tahun
lalu mungkin ada yang pernah inget dengan Subpoint (http://geeks.netindonesia.net/blogs/mifmasterz/archive/2009/04/06/subpoint-generate-sharepoint-lists-to-classes.aspx). Nah Gremdol ini adalah
pengembangan lebih lanjut dari artikel tersebut. Di sela-sela waktu kosong saya
baca e-book dari mas Ariyanto tentang Origami (http://netindonesia.net/files/folders/ebook/entry63274.aspx) yaitu framework buat
aplikasi enterprise .NET, saya jadi terinspirasi gimana coba bikin yang mirip
kaya gitu tapi buat sharepoint.
Nah sedikit flashback,
SubPoint itu aplikasi console yang dapat menggenerate class dari sharepoint
list. Jaman dulu blom ada SPMetal lho... Dulu pada versi awalnya SubPoint itu
cuma bisa untuk melakukan Operasi CRUD pada sharepoint list. Nah Gremdol itu
pengembangan lanjutan dari subpoint yang memudahkan untuk men-generate query
CAML, terdengar mirip kaya SPMetal/LINQ to Sharepoint yah... haha...bedanya ini
karya lokal :P
Gimana cara pakainya ..?
1.
Buka konsole (cmd.exe)
2.
Ketik SubPoint [Site Url] [NameSpace] [Target Folder]
Contoh
: Subpoint "http://mycompanyserv" "SampleApp"
"c:\test"
3.
Silakan ambil class-class yang sudah digenerate di folder yang dituju.

![]()
Apa
saja yang bisa dilakukan dengan class hasil generate ?
1.
Kopi class hasil generate subpoint ke project Anda,
2.
Add reference ke file Gremdol.dll
3.
Add reference ke Sharepoint Services.
Setelah itu kita
dapat memanfaatkan class-class tersebut (Contoh):
Random rnd =
new Random(Environment.TickCount);
System.Console.WriteLine(
"Sample Header - Detail");
Penjualan baru =
new Penjualan();
Query<Penjualan> Qry =
new Query<Penjualan>(baru);
Qry.AddCriteria(Query<Penjualan>.QueryOperator.Equal,
"NoTransaksi",
"1001", Query<Penjualan>.ConcatOperator.And);
Qry.AddOrder(Query<Penjualan>.OrderOperator.Ascending,
"ID");
string CAMLStr = Qry.GetCAML();
Penjualan[] data = Penjualan.FetchByQuery(CAMLStr);
for (
int i = 0; i < data.GetUpperBound(0)+1;i++ )
{
Penjualan itm = data

;
System.Console.WriteLine(itm.NoTransaksi +
":" + itm.Tanggal +
"," + itm.Kasir);
}
PenjualanDetail Detail =
new PenjualanDetail();
Query<PenjualanDetail> Qry2 =
new Query<PenjualanDetail>(Detail);
Qry2.AddCriteria(Query<PenjualanDetail>.QueryOperator.Equal,
"NoTransaksi",
"1001",Query<PenjualanDetail>.ConcatOperator.And);
string CAMLStr2 = Qry2.GetCAML();
PenjualanDetail[] data2 = PenjualanDetail.FetchByQuery(CAMLStr2);
foreach (PenjualanDetail itm
in data2)
{
System.Console.WriteLine(itm.Barang +
":" + itm.Qty +
" x "+itm.Harga +
" = "+ (itm.Qty * itm.Harga).ToString() );
}
System.Console.ReadLine();
System.Console.WriteLine(
"Sample Insert Data");
Penjualan NewPenjualan =
new Penjualan();
NewPenjualan.NoTransaksi = rnd.Next(1000, 1010).ToString();
NewPenjualan.Kasir =
"Si Kasep - " + NewPenjualan.NoTransaksi;
NewPenjualan.Tanggal = DateTime.Now;
bool HslAdd = NewPenjualan.Save();
System.Console.WriteLine(
"insert result :" + HslAdd);
System.Console.ReadLine();
System.Console.WriteLine(
"Sample Update Data");
Penjualan sel = data[0];
sel.Kasir =
"Soleh - " + rnd.Next(1, 100).ToString();
bool hslUpd = sel.Update();
System.Console.WriteLine(
"Update result :"+hslUpd);
System.Console.ReadLine();
Query<Penjualan> Qry3 =
new Query<Penjualan>(baru);
Qry3.AddCriteria(Query<Penjualan>.QueryOperator.Contains,
"Kasir",
"Kasep", Query<Penjualan>.ConcatOperator.And);
string DeleteStr = Qry3.GetCAML();
bool HslDelete = baru.DeleteByQuery(DeleteStr);
System.Console.WriteLine(
"Delete result :" + HslDelete);
System.Console.ReadLine();
Hasil eksekusi :
![]()



Apa saja yang bisa dilakukan
dengan class Query ini ?
|
Operator
|
Types
|
Keterangan
|
Criteria
|
Equal
|
Sama dengan / =
|
|
Contains
|
Berisi / Like
|
|
GreaterEqual
|
>=
|
|
GreaterThan
|
>
|
|
LowerEqual
|
<=
|
|
LowerThan
|
<
|
|
NotEqual
|
!=
|
|
IsNotNull
|
!= Null
|
|
IsNull
|
= Null
|
Order
|
Ascending
|
Urut alphabet
|
|
Descending
|
Urut terbalik
|
Concat
|
And
|
Criteria And
Criteria
|
|
Or
|
Criteria Or
Criteri
|
Oke semoga bermanfaat.
Silakan download source codenya dan kembangkan sendiri. Jangan lupa berbagi.
Cheers J