Another side of my life...

Blogging ? why not...
See also: Other Geeks@INDC

July 2011 - Posts

Sharepoint 2010 : Metadata Management

 

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


 

 

 

Share this post: | | | |
Sharepoint 2010 : Creating Business Data Connectivity Model

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

 

Share this post: | | | |
Posted: Jul 28 2011, 08:02 AM by Mifmasterz | with no comments |
Filed under: , ,
SubPoint-Extension, codename : Gremdol. SPList class generator

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);
//Sample Header & Detail
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();
//System.Console.WriteLine(CAMLStr);
Penjualan[] data = Penjualan.FetchByQuery(CAMLStr);
//Cetak Header
for (int i = 0; i < data.GetUpperBound(0)+1;i++ )
{
    Penjualan itm = dataIdea;
    System.Console.WriteLine(itm.NoTransaksi + ":" + itm.Tanggal + "," + itm.Kasir);
                
}
//Cetak Detail
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();
//System.Console.WriteLine(CAMLStr);
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();

//Insert Data
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();

            
//Sample Update
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();

//Delete By Query
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

Share this post: | | | |
Posted: Jul 26 2011, 04:05 PM by Mifmasterz | with no comments |
Filed under: ,