Agusto Xaverius P Sipahutar

Job:Making some bugs and patch
Moss/Wss,C#,Sql Server,WWF,K2.BlackPearl
Motto : Keep Study and study
See also: Other Geeks@INDC

News




MCP Logo
MCTS Logo

MCP ID# 3542391

My Curiculum Vitae


Agusto Xaverius P S's Facebook profile

Other Article

My Community

My Article/Share Knowledge

Others Moss/Wss Site

My Other Website/Blogs

My Share (Ebook,etc)

January 2010 - Posts

Review again : SharePoint 2007 For Developer

Tahun sudah sampai di 2010, dan Microsoft sudah mulai mengeluarkan SharePoint 2010 dan SharePoint Foundation 2010 versi beta.

Banyak hal yang ada lagi yang akan kita dapat perbuat dengan new version ini, tapi sebelum kita masuk kedalam SharePoint 2010 ini, saya akan mencoba review lagi SharePoint 2007 / WSS 3.0 dari sisi developer :

Saya akan coba membuat article didalam blog ini dan hal hal yang akan di pelajari adalah sebagai berikut :

1. WebPart Development

2. DataList

3. Event Handler

4. Ajax

5. Workflow

6. Page Navigation

7. Page Branding

8. Web Service

9. Content Type

10. User Management

11. Reporting Service

12. Excel Service

13. Info Path

So, Guy Stay tune di blog ini. Cheer !

Share this post: | | | |
Posted: Jan 30 2010, 07:08 PM by agusto | with 2 comment(s)
Filed under: ,
Programming OCS R2 : Getting Presence Status

Ini adalah source code untuk mendapatkan Presence Status di Microsoft OCS R2

   1: using System;
   2: using System.Collections.Generic;
   3: using System.Linq;
   4: using System.Web;
   5: using System.Web.UI;
   6: using System.Web.UI.WebControls;
   7: using Microsoft.Rtc.Collaboration;
   8: using Microsoft.Rtc.Collaboration.Presence;
   9: using Microsoft.Rtc.Signaling;
  10: using System.IO;
  11: using System.Xml;
  12: using Microsoft.Rtc.Collaboration.ContactsGroups;
  13: using System.Text;
  14:  
  15: namespace OCSWeb
  16: {
  17:     public class GetPresenceUser
  18:     {
  19:         #region private members
  20:  
  21:         // These numbers and xml constructs are explained in the UCMA .chm, and the OCS Redline documentation. it is beyond the scope of this sample to reexplain this here.
  22:         private static String _userStateXml = "<state xmlns=\"http://schemas.microsoft.com/2006/09/sip/state\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" manual=\"true\" xsi:type=\"userState\"><availability>{0}</availability></state>";
  23:         private static String _machineStateXml = "<state xmlns=\"http://schemas.microsoft.com/2006/09/sip/state\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" manual=\"false\" xsi:type=\"machineState\"><availability>{0}</availability></state>";
  24:  
  25:         //Construct the network credential that the UserEndpoint will use to authenticate to the Office Communications Server instance.
  26:         // User name and password pair of a user enabled for Office Communications Server. 
  27:         private static String _userName = "agusto.xaverius";     // User name and password pair of a user enabled for Office Communications Server. 
  28:         private static String _userPassword = "1234567";
  29:  
  30:         private static String _userDomain = "constoso";    // Domain that this user is logging into. Note: This is the AD domain, not the portion of the SIP URI following the at sign.
  31:         private static System.Net.NetworkCredential _credential = new System.Net.NetworkCredential(_userName, _userPassword, _userDomain);
  32:  
  33:         //The URI and connection server of the user used.
  34:         private static String _userURI = "sip:agusto.xaverius@contoso.com";  // This should be the URI of the user given above.
  35:         private static String _userServer = "ocs.contoso.com";  // The Office Communications Server that the user listed will log in to..
  36:  
  37:         // Transport type used to communicate with your OCS (Office Communications Server) instance.
  38:         private static SipTransportType _transportType = SipTransportType.Tcp;
  39:  
  40:  
  41:         // Other UCMA objects, for global placeholding.
  42:         CollaborationPlatform _collabPlatform;
  43:         UserEndpoint _userEndpoint;
  44:         ContactGroupServices _cgServices;
  45:         LocalOwnerPresence _localOwnerPresence;
  46:         CustomPresenceCategory _userState;
  47:         CustomPresenceCategory _machineState;
  48:         RemotePresence _remotePresence;
  49:         #endregion
  50:  
  51:         private string _ErrorMesaage;
  52:         public string ErrorMesaage
  53:         {
  54:             get { return _ErrorMesaage; }
  55:             set { _ErrorMesaage = value; }
  56:         }
  57:  
  58:         public GetPresenceUser()
  59:         {
  60:             
  61:         }
  62:  
  63:         public void GetPresence(string sip)
  64:         {
  65:             ClientPlatformSettings clientPlatformSettings = new ClientPlatformSettings("GetPresence", _transportType);
  66:             clientPlatformSettings.DefaultAudioVideoProviderEnabled = false;
  67:             _collabPlatform = new CollaborationPlatform(clientPlatformSettings);
  68:             _collabPlatform.BeginStartup(PlatformStartupCompleted, null);
  69:  
  70:         }
  71:  
  72:         private void PlatformStartupCompleted(IAsyncResult result)
  73:         {
  74:             try
  75:             {
  76:                 _collabPlatform.EndStartup(result);
  77:                 InitalizeRegisteredUserEndpoint(_userURI, _userServer, _credential);
  78:             }
  79:             catch (ConnectionFailureException connFailEx)
  80:             {
  81:                 ErrorMesaage = connFailEx.Message + "," + connFailEx.StackTrace;
  82:             }
  83:             catch (InvalidOperationException ioe)
  84:             {
  85:                 ErrorMesaage = ioe.Message + "," + ioe.StackTrace;
  86:             }
  87:         }
  88:  
  89:         private void InitalizeRegisteredUserEndpoint(String userURI, String userServer, System.Net.NetworkCredential credential)
  90:         {
  91:             UserEndpointSettings userEndpointSettings = new UserEndpointSettings(userURI, userServer, 6060);
  92:             userEndpointSettings.Credential = credential;
  93:             _userEndpoint = new UserEndpoint(_collabPlatform, userEndpointSettings);
  94:             _userEndpoint.BeginEstablish(EndpointEstablishCompleted, null);
  95:         }
  96:  
  97:         private void EndpointEstablishCompleted(IAsyncResult result)
  98:         {
  99:             try
 100:             {
 101:                 _userEndpoint.EndEstablish(result);
 102:                 
 103:                 RemotePresence _remotePresence = _userEndpoint.RemotePresence;
 104:                 _remotePresence.PresenceNotificationReceived += new EventHandler<RemotePresenceNotificationEventArgs>(remotePresence_PresenceNotificationReceived);
 105:  
 106:                 RemotePresentitySubscriptionTarget _target1 = new RemotePresentitySubscriptionTarget(_userURI, String.Empty);
 107:                 List<string> _targetList = new List<string>();
 108:                 _targetList.Add(_userURI);
 109:                 
 110:                 string[] _cats = { "state", "contactCard" };
 111:                 _remotePresence.EndPresenceQuery(_remotePresence.BeginPresenceQuery(_targetList, _cats, remotePresence_PresenceNotificationReceived, null, null));
 112:                 
 113:             }
 114:             catch (ConnectionFailureException connFailEx)
 115:             {
 116:                 ErrorMesaage = connFailEx.Message + "," + connFailEx.StackTrace;
 117:             }
 118:             catch (InvalidOperationException iOpEx)
 119:             {
 120:                 ErrorMesaage = iOpEx.Message + "," + iOpEx.StackTrace;
 121:             }
 122:             catch (RegisterException regEx)
 123:             {
 124:                 ErrorMesaage = regEx.Message + "," + regEx.StackTrace;
 125:             }
 126:             catch (AuthenticationException ae)
 127:             {
 128:                 ErrorMesaage = ae.Message + "," + ae.StackTrace;
 129:             }
 130:             catch (OperationTimeoutException ate)
 131:             {
 132:                 ErrorMesaage = ate.Message + "," + ate.StackTrace;
 133:             }
 134:         }
 135:  
 136:         void remotePresence_PresenceNotificationReceived(object sender, RemotePresenceNotificationEventArgs e)
 137:         {
 138:             foreach (RemotePresentityNotificationData notification in e.Notifications)
 139:             {
 140:                 string targetUri = notification.Uri; 
 141:                 foreach (PresenceCategoryWithMetaData category in notification.Categories)
 142:                 {
 143:                     switch (category.Category.CategoryName)
 144:                     {
 145:                         case "state":
 146:                             ErrorMesaage = category.Category.GetCategoryDataXml(); //-> validasi xml ini dan dapatkan data visiblity
 147:                             break;
 148:                         default:
 149:                             break;
 150:                     }
 151:                 }
 152:             }
 153:         }
 154:     }
 155: }
Share this post: | | | |
Posted: Jan 26 2010, 02:20 PM by agusto | with 1 comment(s)
Filed under:
Bug ? Visual Studio 2010 Beta Create SharePoint Workflow on x64

Kemarin baru selesai installasi SharePoint Foundation 2010 yang mana pasti requirement-nya pasti harus di OS x64 bit. Dan juga saya mencoba menginstall Visual Studio 2010 Beta untuk bisa membuat aplikasi di atas SharePoint Foundation 2010 tersebut.

Tadi saya ingin mencoba membuat project sharepoint workflow di SharePoint Foundation 2010 dan yang terjadi saya mendapatkan error seperti ini :

image

Masih belum support kah ? Visual Studio 2010 untuk membuat aplikasi SharePoint workflow di mesin x64 ?

Share this post: | | | |
Create Your Own Document Center Application Using SharePoint

Saat ini kami sudah mempunyai namanya Portal Center (untuk menampung news, announcement, calendar, dll), setelah itu ada juga Project Center (untuk menampilkan project aplikasi), dan juga ada Report Center tempat menampung semua report/chart aplikasi dari project center yang ada.

Dari hal ini yang telah di miliki ini, akhirnya saya memutuskan untuk membuat 1 subsite khusus yang saya namakan Document Center. Inti dari Document Center adalah tempat menyimpan semua file-file elektronik yang ada dan akan menjadi pusat dokumen portal sehingga semua user bisa saling berkolaborasi disana.

Kita tahu bahwa SharePoint punya kelebihan akan hal itu yaitu Content Type, Versioning, Alert, dan lain lain oleh karena itu hal itu harus kita manfaatkan sebaik baiknya fitur yang sudah tersedia tersebut.

Apa saja fitur Document Center yang saya lagi kembangkan :

1. WebPart menampilan data dari semua Document Library dengan status terakhir.

2. Webpart menampilan treeview seluruh  dokumen library yang ada.

3. Webpart menampilan Simple Pencarian saat ini dengan nama file.

4. WebPart pencarian dengan menggunakan Content Type dari setiap Document Library.

5. WebPart menampilan jumlah dokumen dari setiap dokumen library yang ada. (akan di buat)

5. Tag Cloud (akan di buat)

6. Workflow Dynamic approval (akan di buat).

Nah bagaimana bentuk aplikasi Document Center itu ? Seperti inilah saya membuat nya.

1. Tampilan utama

a.TreeView Menu di bagian kiri. Menampilan struktur semua dokumen library yang ada dalam bentuk treeview.

b. WebPart menampilkan 10 document terakhir dari semua document library yang ada (hal ini bisa di kustomisasi total dokumen yang mau di tampilkan, paging, Field yang mau ditampilan, dan query yang ingin dilakukan)

c. Webpart Find dokumen. Webpart ini bila kita lihat saya taruh di sebelah kanan, kita tinggal ketik nama file yang kita inginkan dan klik button search dan akan menampilan semua dokumen yang ada di seluruh document library sesuai dengan nama file yang kita inginkan.

1

 

2. Hasil Result dari WebPart Find Dokumen

3

 

3. Page untuk mencari dokumen berdasarkan content type persetiap dokumen library

5

 

4. Hasil dari Pencarian Dokumen berdasarkan Content Type dari salah satu dokumen library

4

Share this post: | | | |
Posted: Jan 19 2010, 01:07 AM by agusto | with no comments
Filed under:
NEVER STOP WINDOWS SHAREPOINT SERVICES WEB APPLICATION !
Jangan pernah melakukan stop Windows SharePoint Services Web Application yang ada di SharePoint Central Administration.

Apa yang akan terjadi ? Yaitu SharePoint akan automaticaly menghapus website dan folder sharepoint yang telah dibuat.
sp
Share this post: | | | |
Posted: Jan 18 2010, 01:53 AM by agusto | with 2 comment(s)
Filed under:
Restart SharePoint Timer

Sharepoint timer adalah salah satu function yang ada di Sharepoint yang sangat berguna sekali sebagai background aplikasi dan setelah kita menggunakan featurenya kita dengan mudah menset jadwal aplikasi kita akan berjalan dalam schedule tiap hari, minggu, atau hari hari tertentu saja.

Tetapi setelah saya baca baca di beberapa artikel Sharepoint di internet ternyata fungsi ini terkadang sangat memakan memori yang cuku besar juga karena semakin banyaknya aplikasi kita yang kita jalankan menggunakan timer jobs ini.

Kita bisa lihat bahwa Sharepoint Timer tersebut di jalankan oleh 1 service yaitu : Windows SharePoint Services Timer

2360775169_cbc38cbcd8_o

Services ini yang bekerja mencari semua aplikasi yang menggunakan fitur Job Timer akan di jalankan sesuai dengan setting schedule yang telah dilakukan. Dan hal ini yang terkadang membuat memory pada Windows SharePoint Services Timer semakin bertambah.

Untuk mengatasinya kita bisa membuat batch scheduler dan melakukan stop dan start services tersebut.

Sintaksnya sebagai berikut :

   1: net stop "Windows SharePoint Services Timer"
   2:  
   3: net start "Windows SharePoint Services Timer
Share this post: | | | |
Posted: Jan 04 2010, 10:15 PM by agusto | with no comments
Filed under:
My MVP SharePoint Services has been renewed

Pas tanggal 1 Januari 2010 saya mendapatkan email dari Microsoft seperti ini :

Dear Agusto Xaverius,


Congratulations! We are pleased to present you with the 2010 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. We appreciate your outstanding contributions in SharePoint Services technical communities during the past year.

Dengan ini email ini menyatakan bahwa awal tahun 2010, MVP saya dengan kontribusi mengenai SharePoint Service telah di renew oleh Microsoft.

Tahun 2010 adalah tahun yang baik buat kita, dari sisi saya sebagai Developer SharePoint ada 3 hal yang saya nanti nantikan di tahun 2010 ini :

1. SharePoint 2010

2. Visual Studio 2010

3. SharePoint Designer 2010

3 aplikasi ini selama ini telah membantu saya selama ini di tahun 2007, dan di tahun 2010 3 aplikasi ini akan bertambah kemampuannya dan perbaikan di segala hal yang telah di pelajari dari tahun sebelumnya.

Oleh sebab itu pun, saya pasti akan menggunakan 3 aplikasi tersebut dengan versi terbaru dan akan selalu mengupdate hal-hal yang berhubungan dengan Sharepoint ini ke dalam blog saya.

Selamat Tahun Baru 2010. God Bless You All

Share this post: | | | |
Posted: Jan 04 2010, 12:33 AM by agusto | with 4 comment(s)
Filed under: ,