October 2006 - Posts

MOSS 2007 ImageButton Doesn't Fire Event?
28 October 06 11:18 PM | cakriwut | with no comments

English (versi Indonesia)

Today I have got a panic call from my fellows developer, stating that the ImageButton doesn't fire events when user click on it. He added that it was working yesterday - but today when he come back to the page it behaves strangely. Trying to understand what's going on, I interviewed the story behind the problem.

  1. He creates a webpart that extensively using table layouts. The webpart contains few textbox and a submit button.

    TesterWP1
  2. Then, today he decide to replace submit button with ImageButton. However, it stop firing event. He makes sure that he only change System.Web.UI.WebControls.Button into System.Web.UI.WebControls.ImageButton - additionaly he also change click event delegate to listen to ImageClickEventArgs.

    TesterWP2

What might be the problem?

I think, first because by design event firing in ImageButton is different with Button (simply because it fires ImageClickEventArgs instead of EventArgs - other explaination must be somewhere in theory). Second, there should be kind of sink when ImageButton fires event. I will not try to explore the first argument - but the second argument is challenge to solve.
Lets define sink - as is a kind of dump box or masked event because of its behaviour or design. The events must be raise up from the control to the host application, however it sinked somewhere in the bubbling path. Let's see control hierarchy in the questioned webpart.

Bubbling

Having that hierarchy in our mind, we can start to see what happened in the code. The bigger likelyhood is Panel, because it works mainly as a container for other controls. So, here is the original code

SinkingProblem01

adminPanel visibility will be set to true on certain conditions, but by default it will be invisible. I am not sure why this works when he attach Button() but stop working when he attach ImageButton(). However, I think the invisibility of the panel covering event bubbling from ImageButton(). So to avoid sink-ing problem, I suggest not to set the visibility to false when the panel is being contructed in CreateChildControls() method. Now the code looks like,

SinkingProblem02

Compiling and testing the solution, it works as expected.

TesterWP3

--o0o--

Indonesian (English version)

Siang ini saya mendapat pertanyaan dari salah seorang teman, tentang mengapa ImageButton tidak bekerja sebagaimana mestinya - ketika di klik , tidak ada reaksi apapun kecuali refresh halaman. Dia menambahkan, bahwa sehari sebelumnya webpart tersebut bekerja dengan baik - namun hari ini ketika dia mencoba kembali terjadi keaneah seperti yang dia ceritakan. Saya mencoba memahami apa yang sebenarnya ingin dia lakukan, dengan bertany ini dan itu akhirnya didapatkan gambaran awal kejadian tidak bekerjanya webpart itu.

  1. Webpart dibuat secara intensive dengan menggunakan layout table. Didalam webpart ada beberapa text box, dan sebuah tombo submit.

    TesterWP1
  2. Kemudian, hari ini dia mencoba untuk mengganti tombol submit (Button()) dengan menggunakan ImageButton. Namun sayangnya ImageButton tersebut tidak menghasilkan event apapun. Dia meyakinkan bahwa yang diganti hanya deklarasi System.Web.UI.WebControls.Button menjadi System.Web.UI.WebControls.ImageButton - ditambahkannya lagi bahwa EventArgs diganti menjadi ImageClickEventArgs pada delegate control tersebut.

    TesterWP2

Jadi apa yang mungkin menjadi penyebabnya?

Dalam benak saya, kemungkinan pertama adalah karena desain keluarnya event di ImageButton berbeda dengan Button (ini mudah saja, karena ImageButton menghasilkan ImageClickEventArgs dan bukan EventArgs - mungkin ada penjelasan teoritis lain yang bisa didapatkan di buku??). Kemungkinan kedua adalah karena adanya perangkap ketika ImageButton menghasilkan event. Dalam hal ini, kemungkinan pertama tidak perlu lagi digali - namun kita perlu menggali solusi untuk kemungkinan kedua.
Disini saya mendefinisikan perangkap sebagai sebuah kotak sampah/buangan atau tirai atas event yang terjadi karena sifat / desain kontrol yang digunakan. Sebuah even akan dihasilkan oleh kontrol dan diberikan kepada host/parent nya; sehingga jika event tersebut tidak bisa ditangkap oleh host - berarti selama perjalanannya ada yang menangkap dan membuang event itu. Mari kita lihat hirarki control yang ada pada webpart yang sedang bermasalah tersebut,

Bubbling

Dengan berbekal hirarki itu, kita dapat mulai menganalisa bagian mana yang mungkin menjadi penyebab anomali itu. Kemungkinan terbesar adalah pada bagian Panel - karena panel memiliki fungsi utama sebagai wadah untuk kontrol yang lain. Berikut ini gambaran kode webpart tersebut,

SinkingProblem01

adminPanel visibility akan diatur true berdasarkan kondisi-kondisi tertentu, namun secara default diharapkan tidak terlihat. Meskipun saya tidak yakin mengapa kode ini bekerja hanya untuk Button() namun tidak bekerja untuk ImageButton(). Namun, saya pikir bahwa pengaturan tidak terlihatnya panel menutupi kaluarnya event dari ImageButton(). Dengan demikian, untuk menghindari masalah perangkap itu, sebaiknya kita tidak mengatur visibility menjadi false ketika panel sedang dikonstruksi didalam CreateChildControls(). Dengan perbaikan itu maka kode yang baru akan nampak sebagai,

SinkingProblem02

Kita lakukan kompilasi ulang dan pengetesan, dan nampaknya solusi tersebut berhasil sesuai dengan yang diharapkan.

TesterWP3

Share this post: | | | |
MOSS 2007: Some Caveats in WebPart Development
22 October 06 07:07 AM | cakriwut | with no comments

English (Indonesian version)

WebPart creation is just analogous with the one for server controls. Any child controls in the webpart must be added programatically throughout the code (no design time GUIs) - and also for the layouts. Simply, what we do on server controls development are bringed into webpart development - the difference is webparts inheriting from System.Web.UI.WebControls.WebPart or Microsoft.SharePoint.WebPartPages.WebPart instead of System.Web.UI.WebControls.WebControl . However, there are some ceveats if you start developing webparts. If someday you ever encounter these symptoms, it might be because one of these reasons:

  1. Symptom, you are successfully developing webpart by gradually adding features and deploy the assembly into bin directory. However when you try to install it into production server, the Sharepoint can not import the web part; showing following error message.

    ImportError

    Possible reasons, the web part class contains explicits class contructors.
    Developers might create simple web part at the first time to see how it works, and then add some more functionalities time to time. The simple web part can be added to the web page sucessfully - and he/she add class contructor without any problem. This could be happened because, after the web part becomes child control of the web page - it will follow normal loading sequence (contruct - init - load - render). However, if it's first imported to the page an error will be presented to the users.

    Resolution, avoids using explicits class constructors in web part class.

  2. Symptom, web part are displayed correctly in web page, but it rendered as "object reference not found" in designer

    Editor

    Possible reasons, you use webpart properties to set properties of some object contructed in OnInit() timing event. Objects in web part can be created in CreateChildControls() or for some reason the developers need to put it in OnInit() timing event. When the page is in the OnInit() sequence, then webpart properties aren't born yet. So, basically you would get 'object reference not found' error.

    Resolution, moves properties set-up in CreateChildControls() or RenderWebPart() method. Furthermore, Microsoft suggest us to implement the IDesignTimeHtmlProvider interface, which means we need to implement GetDesignTimeHtml() method.

  3. Symptom, web part assembly is strong named and its already "<SafeControls.. " list of web.config. However, when you try to add it in site collection the web part is not listed.

    Possible reasons, by default Visual Studio 2005 creates private class. So, if you create new class and add inheritance from webpart class, it still private class. A private class can not be listed in web part catalog of site collection.

    Resolution, add public modifier to the web part class.

At last, if you create web part - always try full cycle loading. Delete and add the web part from web page before delivering to the user.

--o0o--

Indonesia (versi English)

Membuat web part sangat mirip dengan teknik yang digunakan untuk membuat server control. Control-control yang akan ditambahkan kedalam web part harus ditambahkan secara programatik melalui code (karena tidak ada tool untuk GUI). Begitu *** ketika kita menginginkan layout tertentu pada web part, maka semua harus dilakukan secara manual melalui code. Tapi pada prinsipnya, apa yang kita lakukan pada saat membuat web server control juga dilakukan pada saat membuat web part - bedanya web part diturunkan dari System.Web.UI.WebControls.WebPart atau Microsoft.SharePoint.WebPartPages.WebPart dan bukan System.Web.UI.WebControls.WebControl. Namun, ada beberapa hal yang harus diperhatikan jika Anda baru memulai membuat web part. Ada beberapa jebakan yang biasanya dialami oleh rekan-rekan yang baru memulai project web part, misalnya:

  1. Gejala, fungsi-fungsi tambahan dapat ditambahkan pada web part yang sudah diinstall dengan tanpa masalah. Akan tetapi ketika web part tersebut akan diinstall ke tempat lain, muncul error yang menyebutkan bahwa web part tidak dapat diimport. Begitu ***, ketika web part di development dihapus dan akan ditambahkan kembali, muncul pesan error yang sama sebagai berikut,

    ImportError

    Kemungkinan penyebabnya, web part tersebut memiliki konstruktor yang eksplisit.
    Pada saat awal, web part mungkin dibuat dengan sangat sederhana hanya untuk melihat cara kerjanya. Lalu, web part tersebut ditambahkan kedalam halaman web dan tampil dengan tanpa masalah. Kemudian, seiring dengan waktu beberapa fungsi ditambahkan dan hasilnya langsung dilihat pada web part yang sudah ada didalam halaman web. Developer juga mungkin menambahkan konstruktur eksplisit tanpa masalah. Ini terjadi karena web part yang sudah menempel di halaman web akan mengikuti urutan eksekusi yang normal (construct - init - load - render). Akan tetapi, jika web part tersebut tidak dapat ditambahkan ke halaman web yang lain.

    Resolusi, hindari pendefinisian konstruktor eksplisit untuk web part.

  2. Gejala, web part tampil normal di web page, namun ketika web page dibuka dengan designer muncul pesan "object reference not found"

    Editor

    Kemungkinan penyebabnya, pengaturan property untuk object/control yang dibuat di method OnInit() dilakukan dengan menggunakan nilai dari property webpart.
    Biasanya konstruksi object/control dilakukan didalam CreateChildControls() namun kadangkala untuk alasan tertentu, developer harus meletakkannya di OnInit(). Ketika halaman berada pada urutan OnInit(), property webpart belum diwujudkan didalam object webpart tersebut. Sehingga, pada dasarnya pengaksesan property itu pada saat OnInit() akan menimbulkan kesalahan 'object reference not found' .

    Resolusi, pindahkan urutan pengaturan properti didalam method CreateChildControls() atau RenderWebPart(). Lebih jauh menurut Microsoft, kita harus mengimplementasikan interface IDesignTimeHtmlProvider, dan dengan kata lain harus menambahkan method GetDesignTimeHtml() didalam webpart yang kita buat.

  3. Gejala, assembly web part sudah memenuhi standard strong name. Isi "<SafeControls.. " di dalam web.config sudah ditambah dengan text yang sesuai. Namun, pada saat akan menambahkan web part kedalam site collection, tidak ditemukan nama web part yang dimaksud.

    Kemungkinan penyebabnya, secara default Visual Studio 2005 akan membuat class privat. Jadi, meskipun class tersebut sudah diturunkan dari class webpart, namun masih merupakan class private. Sebuah class private tidak dapat ditampilkan didalam web part catalog yang ada didalam site collection.

    Resolusi, tambahkan modifier public kedalam class web part.

Sebagai pedoman terakhir, jika Anda membuat sebuah web part - jangan lupa untuk selalu mencobanya secara lengkap. Hapus dan tambahkan web part dari web page serta cobalah untuk membuka halaman tersebut didalam designer.

Share this post: | | | |
Preparing Mobile Active Directory Infrastructure
19 October 06 06:36 AM | cakriwut | with no comments

English (versi Indonesia)

Often, we need to use Active Directory (AD) infrastructure during presentation. For example, AD is necessary infrastructure to demonstrate profile synchronization, audience grouping, approval hierarchy configuration using Sharepoint Designer, etc. Therefore we need mobile AD infrastructure - in a laptop or in VPC.

Installing AD in the laptop is the easiest way, but it will bring in some problem, ie.

  • AD is running all the time even if we don't need it - wasting unecessary resources
  • we are only showing operation in AD controller - hiding complete AD infrastructure behaviour

Surely we can demonstrate AD infrastructure by preparing client environment in VPC, however running AD everytime in our laptop is still undesireable. Thus, installing AD in VPC is the best option in our case - and for a complete AD infrastructure we need 2 virtual machine, for the Domain Controller and for the client box.

two virtual machine

 

But remember, today’s laptop usually only support for 2 GB ram (and 4 GB ram for the latest model in the market). Running, two virtual PC will reduce the performance, because the 2GB ram will be alocated for 3 machines - resulting un-impressive instrastructure demonstration.

Hence, we must remove one of the virtual machine out from the server. The only option now is removing virtual Windows XP - but then who become the client PC?

Yupe, our laptop (the host) will become client PC that will log-in to the AD (virtual machine). To set-up such environment, we need to make sure that AD is ready before we log-in to the host. Is that possible?

Yes, but we need Virtual Server instead of Virtual PC. Virtual Server runs as service, and consequently it will run when we start the PC (even if we haven’t logged yet).

So, can we start preparing mobile AD infrastructure now? Sure, and now the step-by-step (assuming that you already have AD in virtual server)

1. Go-to virtual machine configuration of “AD Domain Controller”.

AD Configuration

2. In the “AD Domain Controller” Status page, click on “General properties”

AD configuration 2

3. In the General Properties page, click on “Run virtual machine under following user account” and select either “Always automatically..” or “Automatically turn on…”. Save and return to “Status” page.

AD configuration 3

4. (If you already have “Microsoft Loopback” in virtual server, skip step 4-5, proceed to step 6).
Add “Microsoft loopback” adapter to the host machine - if none installed in your laptop; then goto Virtual Server Administration page. Create new Virtual Networks adapter.

AD configuration 5

5. In the “Network Properties” page, create new “Virtual Network via Loopback” adapter which connect to “Microsoft Loopback Adapter” on host computer. Save the new adapter.

AD configuration 6

6. In the “AD Domain Controller” Status page, click on “Network adapters” to bring you to Network Adapter Properties. Connect AD to “Microsoft Loopback” adapter.

AD configuration 4

Save your configuration and you’re now ready to join the host to AD in virtual machine. After you join the host, then we succesfully set-up the mobile AD infrastructure.

Next time your computer restarts, you can log-in into AD instead of login to the computer!

–o0o–

Indonesian (English version)

Kita seringkali membutuhkan infrastruktur Active Directory (AD) untuk melakukan demo/presentasi. AD dibutuhkan misalnya untuk mendemonstrasikan proses sinkronsisasi profil, grouping audiens, hirarki pada workflow dengan menggunakan Sharepoint Designer dan sebagainya. Oleh karena itu, kita membutuhkan infrastruktur AD yang dapat dibawa kemanapun kita pergi; bisa diinstall didalam laptop atau dengan menggunakan VPC.

Menginstall AD didalam laptop mungkin merupakan cara termudah, namun akan memunculkan beberapa masalah antara lain,

  • AD selalu harus dijalankan, meskipun kita tidak sedang membutuhkan AD - ini merupakan pemborosan sumber daya
  • laptop hanya membawa AD controller - dan belum menyajikan infrastruktur AD secara lengkap dimana dibutuhkan komputer/server lain untuk join ke dalam AD

Kita bisa menyiapkan komputer client didalam VPC dan mendaftarkannya kedalam AD, sehingga diperoleh infrastruktur AD yang lengkap. Namun tetap saja, AD seharusnya tidak perlu dijalankan setiap waktu - karena akan memberatkan kerja laptop kita sehari-hari. Oleh karena itu, pilihan paling cocok adalah dengan menginstall AD didalam VPC. Sehingga untuk membawa infrastruktur AD yang lengkap, maka kita akan membutuhkan 2 mesin virtual masing-masing untuk Domain Controller dan untuk PC client.

two virtual machine

Kembali ke masalah sumber daya, pada saat ini laptop biasanya mampu mendukung RAM hingga 2 GB (4 GB untuk laptop keluaran terbaru). Akibatnya, menjalankan 2 VPC pada saat bersamaan akan membagi alokasi RAM tersebut untuk 3 mesin yaitu 1 untuk host dan 2 untuk VPC - dan efeknya jelas akan menurunkan performa pada saat demo/presentasi.

Jadi kita harus “membuang” salah satu mesin virtual dari VPC - dan pilihan itu jatuh pada Windows XP virtual, agar laptop kita tidak menjalankan AD setiap waktu. Sekarang pertanyaannya, komputer mana yang akan menjadi client?

Yupe, laptop kita (host) akan menjadi PC client yang akan digunakan untuk log-in kedalam AD (virtual machine). Agar skenario itu bisa bekerja, kita harus memastikan bahwa AD sudah siap sebelum kita melakukan proses log-in kedalam host. Mungkinkah hal itu dilakukan dan siapa yang akan menjalankan AD?

Ya sangat mungkin, namun kita membutuhkan Virtual Server dan bukan Virtual PC. Virtual Server bekerja sebagai service, dan konsekuensinya akan otomatis dijalankan pada saat kita mulai menjalan PC (meskipun belum log-in).

Sekarang, mari kita mulai tahap-tahap untuk menyiapkan skenario tersebut kedalam laptop. Langkah-langkah dibawah ini mengasumsikan bahwa AD sudah disiapkan terlebih dahulu di virtual server.

1. Masuklah kedalam halaman konfigurasi “AD Domain Controller”.

AD Configuration

2. Klik “General Properties” didalam halaman status “AD Domain Controller”

AD configuration 2

3. Pada halaman General Properties, berikan cek pada “Run virtual machine under following user account” dan pilih salah satu “Always automatically..” atau “Automatically turn on…”. Simpan dan kembali ke halaman status.

AD configuration 3

4. (Lewati bagian ini dan langsung ke no. 6, jika “Microsoft Loopback” sudah ada di virtual server/host).
Install & tambahkan adapter “Microsoft loopback” ke dalam laptop (host) - jika belum adapter to the host machine. Kemudian masuk kedalam halaman Virtual Server Administration. Buat Virtual Network Adapter baru.

AD configuration 5

5. Didalam halaman “Network Properties” , buat sebuah adapater virtual baru “Virtual Network via Loopback” yang terhubung secara langsung ke “Microsoft Loopback Adapter” yang ada didalam komputer host. Simpan adapter baru tersebut.

AD configuration 6

6. Pada halaman status “AD Domain Controller”, klik “Network adapters” untuk membawa kedalam Network Adapter Properties. Ganti network adapter AD agar terhubung kedalam adapter network “Virtual Network via Loopback”.

AD configuration 4

Simpan konfigurasi tersebut dan host sudah bisa di-join kedalam AD. Setelah host di-join, maka kita telah sukses menyiapkan infrastruktur AD yang portabel.

Selanjutnya, jika kita merestart laptop - maka dengan mudah kita bisa log-in kedalam AD selain login secara lokal kedalam laptop.

Share this post: | | | |
Danger of Content Editor Webpart
13 October 06 09:44 AM | cakriwut | with no comments

English:
Do you know that content editor webpart can take down your sharepoint's site?

Content editor webpart is a standard webpart that comes with Sharepoint installation. Using this webpart, we can easily add rich text content to our page. We can also do some trick using scripting language, for example extend context menu for List or Document Library.

ContentEditorShow

Content editor webpart has two editor type, Rich Text Editor (RTE) and Source Editor (SE). RTE gives us WYSIWYG page editor while SE gives us source code look of the content. Hence if you only want to put some text with formatting then RTE is the right tools, and you’ll need SE if you want to see the tags and text inside. Of course, you can use SE to add scripting, style and other thing that RTE can not do.

Editing content using either RTE or SE has no harm if the tags are written completely. However it will start to make problem if some of the tags aren’t in pair - a javascript error, FrontPage error (when editing using FrontPage 2003) and even taking down the site if it happened in ticket page (default.aspx).

How does the problem begin?
Ok, take a look at an example. You want to make a table with a single row, but you forgot to close some of the tags.

It must be,

<table>
<tr>
<td>Some text here </td>
</tr>
</table>

but, you forget to write </tr> tags

<table>
<tr>
<td>Some text here </td>
<!— </tr> —- is missing –>
</table>

The un enclosed <tr> will soon match-up with some </tr> anywhere in the page. And when this happened, the page will screw up and formatted incorrectly. On the other hand, the Sharepoint pages use scripting and dhtml technique to create rich web experience. And facing incorrect tagging inside page will make those technique works improperly - and finally screw up the site entirely.

Preventive Action

  1. Use RTE first

  2. Try to avoid - edit the content editor webpart directly in the page. You better use FrontPage and then copy-paste the code into content editor webpart

  3. I also recommend to give editing capability only to trained users.

--o0o-- 

Indonesian:
Tahukan Anda, kalau content editor webpart dapat menyebabkan gangguan fungsi yang fatal pada situs Sharepoint?

Content editor webpart adalah webpart standar yang diinstall pada saat installasi Sharepoint. Dengan menggunakan webpart ini, kita dapat mengedit isi halaman dengan antar muka yang mendukung HTML. Kita juga dapat menyisipkan script kedalan content editor webpart, misalnya script yang berguna untuk menambah context menu dari List atau Document Library.

ContentEditorShow

Content editor webpart memiliki dua jenis editor yaitu Rich Text Editor (RTE) dan Source Editor (SE). RTE memiliki tampilan WYSIWYG sedangkan SE memiliki tampilan code sumber yang membangun isi halaman. Jadi, kalau kita ingin menuliskan sebuah halaman web maka gunakanlah RTE. Namun, kalau kita ingin melihat isi halaman tersebut, SE merupakan pilihan yang tepat. SE juga dapat digunakan untuk menambahkan script, style dan menghasilkan apa yang tidak dapat dilakukan dengan hanya menggunakan RTE saja.

Mengedit halaman di RTE ataupun SE tidak berbahaya asal tags dituliskan secara lengkap dan benar. Namun, masalah akan mulai muncul jika penulisan tags tidak lengkap. Problem yang akan muncul mulai dari javascript error, halaman tidak bisa dibuka dengan FrontPage 2003 atau bahkan merusak site secara keseluruhan (jika content editor wp berada di ticket page - page default - default.aspx).

Bagaimana masalah it muncul?
Kita ambil contoh sebuah kasus sederhana. Sebuah tabel berisi satu baris akan ditambahkan kedalam page dengan menggunakan content editor webpart. Namun, ada salah satu tags yang tidak memiliki pasangan.

Code yang benar adalah,

<table>
<tr>
<td>Some text here </td>
</tr>
</table>

namun, tag </tr> tidak dibuat sehingga code yang ditulis adalah,

<table>
<tr>
<td>Some text here </td>
<!— </tr> —- is missing –>
</table>

Tag <tr> yang tidak berpasangan akan memperoleh pasangannya </tr> disuatu tempat dihalaman tersebut. (Ingat bahwa halaman web Sharepoint dikonstruksi dari tags HTML). Dan ketika tag tersebut menemui pasangannya, maka format halaman secara keseluruhan akan terpengaruh dan berubah tidak seperti yang direncanakan.
Dilain pihak, halaman web Sharepoint sangat mengandalkan scripting dan teknik dhtml untuk menyajikan halaman web yang interaktif. Scripting dan teknik dhtml yang digunakan tidak mengantisipasi adanya kesalahan semacam itu - dan akibatnya dapat dibayangkan bahwa scripting tersebut akan beroperasi pada blok halaman yang salah. Lebih jauh lagi, jika hal ini terjadi pada halaman tiket (default.aspx) dan Anda sedang beruntung.. maka seluruh site tidak akan bisa dibuka.

Pencegahan

  1. Selalu dahulukan RTE dan bukan SE

  2. Hindari melakukan editing langsung didalam halaman, namun gunakan FrontPage untuk membuat halaman; lalu copy-paste code yang dihasilkan kedalam content editor webpart

  3. Berikan hak edit hanya kepada orang-orang yang sudah terlatih menggunakan HTML/scripting.

Share this post: | | | |
Compatibility Problem Virtual Server / Virtual PC and Wireless Device
11 October 06 05:42 PM | cakriwut | with no comments

Kali ini gue mengalami masalah dengan virtual server. Virtual machine yang ada didalam virtual server tidak bisa terhubung melalui devais nirkabel yang ada didalam laptop. Dengan konfigurasi yang sama, hampir semua teman didalam kelas tidak mengalami masalah kecuali satu orang lagi dari India. Padahal, gue menggunakan Virtual Server 2005 R2 (virtual server keluaran paling gress dari Microsoft) dan si orang India menggunakan Virtual PC 2004 SP1 dengan hotfix untuk prosesor centrino.

Setelah mencoba selama beberapa jam, kami semua tidak ada yang tahu penyebab masalah tersebut. Dan bahkan salah satu teman gue dari Microsoft juga tidak dapat memberikan solusi. Dia menyarankan untuk nebeng di mesin sebelah gue (sesuatu hal yang tidak dapat gue terima).

Jadi apa yang terpikir pada saat itu? In pasti masalah kompatibilitas antara virtual PC/virtual server dengan adapter wireless. (punya gue 3945ABG). Dan dengan demikian, tidak ada yang bisa dilakukan kecuali menunggu Microsoft mengeluarkan patch atau mengupdate driver untuk adapter tersebut.

Sementara belum di-rilis, apa yang bisa dilakukan?

Kita harus dapat memanfaatkan koneksi wireless tersebut secara tidak langsung dengan menggunakan NAT. Jadi, alih-alih menggunakan bridge kita harus mengkonfigurasi NAT antara virtual machine dengan host. Mengatur NAT di virtual PC dapat dilakukan dengan sangat mudah, karena virtual PC sudah memiliki opsi NAT.
Untuk membuat NAT di virtual server; kita membutuhkan adapter microsoft loopback dan internet connection sharing di devais wireless. Kemudian, adapter jaringan virtual machine harus dihubungkan ke adapter microsoft loopback. Dengan cara ini, virtual server dapat terhubung ke jaringan luar melalui adapter microsoft loopback. Kemudian, adapter microsoft loopback akan meneruskan paket data melalui devais wireless sebagai gateway. Cara yang dilakukan pada virtual server tersebut juga dapat diterapkan di virtual PC.

Share this post: | | | |
Filed under: ,
MOSS 2007: Session State is Not Available
11 October 06 02:19 PM | cakriwut | with no comments

Jika pada saat mengaktifkan workflow / form services di Sharepoint 2007, muncul pesan kesalahan

SessionStateIsNotAvailable

Maka artinya session state di web application belum diaktifkan - dan di web.config dapat dilihat ada bagian "Session" yang diremark.

OriginalWebConfigNoSessionState

Untuk mengaktifkannya, hilangkan remark pada

<add name="Session" type="System.Web.SessionState.SessionStateModule"/>

di web.config yang ada didalam web application yang bersangkutan.

OriginalWebConfigWithSessionState

Referensi : googling

Share this post: | | | |
MOSS 2007: Records Management
10 October 06 10:50 PM | cakriwut | 2 comment(s)

Mendengar kata "records management" yang terbayang di benak saya adalah proses pengelolaan data / list / log. Namun, sejalan dengan proses belajar tentang konsep yang dibawa oleh MOSS 2007, records management ternyata lebih kompleks dari sekedar catatan biasa / list. Records management juga berbeda dengan document management - karena records management membutuhkan persyaratan-persyaratan khusus yaitu:

  • pengklasifikasian harus dapat dilakukan secara otomatis
  • pencatatan harus dilakukan cara unik
  • memiliki sistem auditing dan aturan yang standar
  • harus memiliki lingkungan terpisah yang independen
  • akses baca yang terbatas/terkendali

Jadi records management adalah sebuah document management ditambah dengan syarat-syarat dasar tersebut; atau dengan kata lain saya bisa mengatakan bahwa records management adalah proses pencatatan dan pengumpulan bukti-bukti ke sebuah wadah didalam MOSS 2007. Dengan memanfaatkan fitur-fitur di document library, information rights management (IRM) dan auditing, maka MOSS 2007 dapat digunakan untuk membuat records management untuk sebuah organisasi. Nah, pekerjaan kita selanjutnya adalah bagaimana mengimplementasikan sebuah records management di MOSS 2007 agar memenuhi standar yang berlaku (misal, aturan retensi, auditing dll).

Sebuah records management dapat dimodelkan seperti dibawah ini,

Records Management Repository

Pada gambar diatas records owner mengirimkan semua catatannya kepada records manager. Catatan itu dapat berupa dokumen digital atau dokumen hasil digitalisasi dengan menggunakan perangkat digitalisasi seperti scanner, foto dsb. Records owner sendiri dapat merupakan seorang pekerja informasi (Information Worker) yang memeliki akses kedalam informasi yang ada di server (Exchange, Sharepoint dsb) melalui terminalnya. Kemudian, semua catatan dimasukkan kedalam records repository, dimana aturan-aturan baku diberlakukan secara otomatis kedalam catatan yang disimpan tersebut.

Share this post: | | | |