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)

Update User Profile Properties Programmatically
using (SPSite site = new SPSite("http://servername"))

{

ServerContext context = ServerContext.GetContext(site);

UserProfileManager profileManager = new UserProfileManager(context);

string sAccount = "domainname\\username";

UserProfile u = profileManager.GetUserProfile(sAccount);

u[PropertyConstants.PictureURL].Value = "SOME URL";

u.Commit();

}

Share this post: | | | |
Posted: Mar 11 2010, 10:50 AM by agusto | with no comments
Filed under:
Remove link on Lookup Field

Untuk menghapus link pada lookup field di view yang kita buat di sharepoint bisa melakukan dengan cara menggunakan javascript yang kita taruh di dalam content editor webpart.

Cara nya sebagai berikut :

1. Sample view sbb :

image

2. Tambahkan Content Editor WebPart dengan letaknya di taruh di bawah view tersebut

3. Modify Content Editor WebPart, Update di Source editor, dan tambah source javascript sebagai berikut :

<script language="javascript" type="text/javascript">
_spBodyOnLoadFunctionNames.push("RemoveLookupLinks");
function RemoveLookupLinks()
{
var oP = document.getElementsByTagName('a');
var flag = false;
for(var i=0;i<oP.length;i++)
{
  if(oPIdea.attributes["href"].value.indexOf("RootFolder=*")!= -1)
  {
   
    var linkvalue = oPIdea.innerHTML;//value of the lookup field
    oPIdea.parentNode.innerHTML = linkvalue;
    flag = true;
    break;
  }
}
if(flag)
  RemoveLookupLinks();
}
</script>

4. Sekarang hasil di view akan sebagai berikut :

image

Share this post: | | | |
Posted: Mar 09 2010, 10:42 AM by agusto | with no comments
Filed under:
Getting the w3wp.exe Process ID for Attach to Process On IIS 7

Di task manager properties kita bisa lihat semua aplikasi pool w3wp yang sedang aktif dan berapa total memory yang digunakannya tapi kita tidak bisa mengetahui pool itu milik dari aplikasi mana.

Untuk itu kita bisa lakukan dengan membuat batch file iisapp.bat dan isilah batch file tersebut dengan command sebagai berikut :

   1: cd\windows\system32\inetsrv
   2: appcmd.exe list wp

Dan setelah itu iisapp.bat di eksekusi maka kita akan lihat seperti gambar dibawah ini :

112007_1430_Gettingthew1

Share this post: | | | |
Posted: Mar 03 2010, 10:45 AM by agusto | with no comments
Filed under:
Web Part And Web Service Currency Converter

Sample Code nya sebenarnya saya sudah lama saya dapatkan disalah satu sample code di internet. Hal yang membuat saya merapihkan / mengimplementasikan code tersebut karena supaya langsung dapat digunakan.

Kenapa saya membuat Web Service Currency Converter. Di sini saya berharap mungkin ada teman-teman yang ingin menggunakan code tersebut dan mempublishnya ke WebSite public dan banyak orang bisa menggunakan Web Services tersebut atau pun di install di aplikasi internal dan bisa di pakai oleh semua aplikasi lainnya selain .Net.

Dan kenapa saya membuat dalam bentuk Web Part, karena memang aplikasi ini saya lebih peruntukkan untuk SharePoint Site saya, sehingga saya membuat Web Part Project dan saya pun telah sertakan dalam source code ini.

Source telah di publish http://currencyconverter.codeplex.com (23 Feb 2010 release 1).

Sample Web Service Sebagai Berikut :

image
image
image
Share this post: | | | |
How To: Change a SharePoint Application Pool Programmatically

Selain kita bisa menggantikan SharePoint Pool lewat IIS Manager. Kita pun bisa melakukannya dengan menggunakan coding.

Berikut ini sample code nya :

   1: System.Uri webAppToChangeUri = new System.Uri("http://contoso:2100");
   2: SPWebApplication webAppToChange = SPWebApplication.Lookup(webAppToChangeUri);
   3: webAppToChange.ApplicationPool.Name = "ALL MOSS";
   4: webAppToChange.Update(true);
   5:  
   6: webAppToChange.Provision(); 
Share this post: | | | |
Posted: Feb 22 2010, 03:07 PM by agusto | with no comments
Filed under:
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: ,
Windows 7 Launch at Banjar Baru, Banjarmasin (19 December 2007)

Tanggal 19 Desember 2009 kemarin adalah pembukaan Window 7 di Banjar Baru, Banjar masin. Seperti rekan rekan saya yang sudah memposting mengenai event tersebut  yaitu Mas Suherman (Mugi Banjarmasin) di http://mugi.or.id/blogs/suherman/archive/2009/12/22/report-windows-7-community-launch-at-martapura.aspx dan juga Narenda Wicaksono (Microsoft) di http://mugi.or.id/blogs/narenda/archive/2009/12/24/catatan-perjalanan-banjarmasin.aspx, oleh hal itu saya pun ingin memposting apa yang telah saya berikan disana.

Berikut ini adalah slide presentasi saya mengenai Collaboration SharePoint 2007 And OCS R2

image

image

image

image

image

image

image

image

image

image

image

image

Harapan saya semoga Banjarmasin akan selalu up to date dengan techonolgy yang terbaru sekarang baik itu untuk mahasiswa/mahasiswi nya, maupun perusahaan-perusahaan yang berada disana.

Atas segala kerjasama dan sambutan yang hangat disana, saya ucapkan terima kasih.

Share this post: | | | |
Posted: Dec 31 2009, 01:56 PM by agusto | with no comments
Filed under: ,
Collaboration OCS R2 and SharePoint 2007 (1)

Didalam minggu ini mendapatkan task dari kantor dimana harus mengintergrasikan OCS (Office Communicator Client) R2 dengan Sharepoint yang telah ada beberap site yang telah eksisting.

 

OCS R2 tersebut ternyata harus di install di sistem operasi 64 bit, dan OCS R2 ini tetap mempunyai 2 versi yaitu versi Standar dan versi Enterprise. Tetapi untuk saat ini bos memiilih OCS R2 yang standar saja.

 

Apa saja yang harus di persiapaan sebelum install OCS R2 di windows 2008 Server :

1. Komputer yang telah memiliki AD (Active Directory) atau bila belum berarti harus di buat sebelum installasi OCS R2

2. Install DNS bila status DNS belum ada

2. Install feature IIS 7.0, IIS 6.0, Setifikasi service

2. Install MSMQ.

Memang di saya baca di beberapa artikel MSMQ tidak dipakai di OCS R2, tetapi bila ternyata pada saat install kita akan mengalami error message yang ternyata hal tersebut masih menggunakan MSMQ.

3. Remove KB KB974571 di dalam Windows 2008 anda.

Karena hal ini akan membuat installasi akan mendapatkan error dengan code : 0xC3EC78D8

Bila hal ini telah selesai installasi akan dapat dilakukan.

 

OCS R2 ini dapat di akses oleh client dengan menggunakan 2 cara yaitu :

1. OCS Communicator Client

  New Picture

   2. OCS Web Client (Feature ini harus di installasi terlebih dahulu dan setting virtualisi web baru OCS web client bisa di akses)

New Picture (1)

image

 

Nah, tadi kita sudah bicarakan di atas setelah installasi ini apa yang menjadi kolaborasi antara SharePoint dengan OCS R2. Kolaborasi nya adalah pada saat kita lihat di list kita yang mempunyai field User maka Office Communicator Client kita dapat terintergrasi dengan SharePoint dengan memberitahukan status kita apakah itu available busy, away, dan lain-lain. Bisa dilihat di gambar ini icon berwarna hijau menandakan status user available.

New Picture (2)

 

Dan pada icon tersebut kita pun langsung bisa melalukan hal misalnya calling, send email , dan lain lain

New Picture (3)

Share this post: | | | |
Posted: Nov 27 2009, 10:56 PM by agusto | with 2 comment(s)
Filed under: ,
Searching PDF Files on SharePoint 2007 / WSS 3.0

Microsoft SharePoint 2007 / WSS  3.0 menyediakan fitur search didalam aplikasi mereka tetapi ada tipe file search yang bisa dilakukan pencarian sampai kedalam konten dokumen yang ada didalam dokumen itu hanya bisa dilakukan oleh tipe document .txt, dan Microsoft format misalnya doc,docx, dll

 

Untuk dapat melakukan pencarian dokumen PDF maka kita harus menginstall third party tool yang akan mengimplementasikan IFilter pada SharePoint 2007 / WSS 3.0. Salah satu third party itu dan free adalah adobe acrobat. Untuk SharePoint yang x32 bisa hanya dengan menginstall Adobe Acrobat Reader 9.0 dimana didalamnya sudah terimplementasi IFilter nya , tetapi untuk yang versi x64  itu tidak sama dengan x32 hanya dengan menginstall Adobe Acrobat Reader 9.0 tetapi kita menginstall Adobe PDF iFilter 9 for 64-bit.

Untuk download Adobe PDF iFilter 9 for 64-bit ini bisa download di link ini http://www.adobe.com/support/downloads/detail.jsp?ftpID=4025 dan untuk mengetahui mengenai bagaimana setting PDF bisa di SharePoint di SharePoint bisa download tutorial ini : http://www.adobe.com/special/acrobat/configuring_pdf_ifilter_for_ms_sharepoint_2007.pdf

Share this post: | | | |
Posted: Nov 24 2009, 02:29 AM by agusto | with no comments
Filed under:
More Posts Next page »