InfoPath 2010 and SharePoint 2010 Productivity Series
23 July 10 07:29 AM | cakriwut | 2 comment(s)

Integrasi SharePoint 2010 dengan produk Office 2010 terasa lebih kental jika dibandingkan dengan versi sebelumnya. Salah satunya adalah integrasi dengan InfoPath 2010. Fitur form service yang dulu hanya ada di form library, saat ini sudah ditanamkan di semua lists (dan tentu saja document library).

Untuk menjawab banyak pertanyaan rekan-rekan IT Pro dan developer, berikut saya sajikan webcast “InfoPath 2010 and SharePoint 2010 Productivity Series”.  Sesuai dengan namanya “series” , maka jangan lupa bahwa daftar ini akan selalu diperbaharui.

  1. Mengedit list form dengan menggunakan InfoPath Designer 2010.
    Disini rekan-rekan akan diajak untuk melihat teknik-teknik yang bisa digunakan untuk : mendefinisikan new form, edit form dan view form. Di akhir web cast, rekan-rekan dapat melihat bagaimana cara mengkonfigurasi daftar view yang muncul.
  2. Bagaimana membuat lookup field terfilter
    Salah satu masalah yang sering muncul adalah dahulu kita tidak dapat membuat filtered lookup field dengan mudah. Disini rekan-rekan akan diajak untuk melihat bagaimana membuat filtered lookup field dengan menggunakan InfoPath 2010.
  3. Membuat cascading lookup field
    Cascading lookup field adalah dua atau lebih field yang memiliki korelasi satu dengan yang lain. Misalnya, nama provinsi dengan nama negara dan sebagainya. Disini rekan-rekan akan diajak untuk melihat bagaimana membuat cascading lookup field didalam list di SharePoint 2010.
Share this post: | | | |
SharePoint 2010: Howto start customize list form (New/Edit/View) using InfoPath Designer 2010
21 March 10 09:15 PM | cakriwut | with no comments

English

In SharePoint 2010 there we have more option to customize list form. For instance, you can use SharePoint Designer 2010 or InfoPath Designer 2010. Since modifying list form using SPD is already exist in previous version. I will just show you how to customize list form using InfoPath Designer 2010.

When customizing list form using InfoPath Designer 2010, you will get all form designer benefit. For example, you can define the field validation rules, parent-child relation etc. And bet what, the process is straight forward. In this very basic how-to, I will demonstrate how to start customize list form using InfoPath Designer 2010. I will create an Book List with "Title" – "Author" – "Status" column. In the New form, I will only show "Title" and "Author" – while in Edit form, "Title" and "Author" will be readonly, but "Status" is editable.

How to customize list form using InfoPath Designer 2010.

  1. Prepare the custom list.

    Prepare custom "Book List" with 3 columns: "Title" – "Author" – "Status". "Status" field is choice "Available" – "In Used" – "Missing". After creating the list and preparing columns, we can start to use the list and add a new item in this form.

  2. Start InfoPath Designer

    Start InfoPath Designer and select to design SharePoint List form.

    Type in the SharePoint site URL

    And then select the Book List from the list of available data.

    Finally, click on Finish.

  3. When the form editor open , you can start to edit the New form. I add a title "Book List Entry" and delete the "Status" row.

    And here is the result:

  4. Add "Edit Form" view in the designer, and set Title and Author as readonly.

    Type-in the view title.

    Design the form – add "Status" column in the form.

    Set "Title" and "Author" textbox property to "ReadOnly"

  5. Publish the form to the list.

  6. Configure the "Book List" to use designated form.

    Open the list setting page, and expand context menu for the Forms.

    Since the first view will be the default – our interest is only to the "(Item) Edit Form". Click on (Item) Edit Form link, and change the Form view.

    You will realize that now you are seeing form services in web part.

    Click on Web Parts Tools tab, and then click on Web Part Properties.

    In the Web Part Properties, select the designated view.

  7. And here we go with the custom "New Form" and "Edit Form" for the list.

    New Form.

    Edit Form.

    Happy design

Share this post: | | | |
Microsoft SharePoint Administration Toolkit the 4th
06 September 09 09:59 PM | cakriwut | with no comments

English

Today, I almost missed an update of very nice tool – Microsoft SharePoint Administration Toolkit. I browse to Microsoft SharePoint Team Blog, – found out that they already announce the 4th release last week.

But before you can play around with the tools, you will need to install following pre-requisites:

  1. Service Pack 2 for WSS and SharePoint Server 2007
  2. April Cumulative Update for WSS and SharePoint 2007.

The April CU comes as hotfix – so you will need to register your email address and get the download link + password from your inbox.

Since its almost late for me, I think – I will continue the installation tomorrow, after downloading the package.

Check here for more details :
1. April CU : http://blogs.msdn.com/sharepoint/archive/2009/05/13/april-cumulative-update-packages-ready-for-download.aspx

2. Microsoft SharePoint Administration toolkit:
http://blogs.msdn.com/sharepoint/archive/2009/08/27/announcing-the-fourth-release-of-the-microsoft-sharepoint-administration-toolkit.aspx

Share this post: | | | |
StsAdm –o copyfarmappbincontent is available in CodePlex
05 September 09 11:30 PM | cakriwut | with no comments

English

Remember about critics to “stsadm –o copyappbincontent” to deploy SharePoint resource in my previous post here.

At the end of the post, I think that it should be “stsadm –o copyfarmappbincontent” instead.

Why?
Because the last will work in centralized deployment mode, same as solution deployment.

But what’s the secret? Why the standard copyappbincontent doesn’t work in farm configuration?

I’ll post in another article. But now, I have created the project in Codeplex. You can grab the code or download the binary here.

Share this post: | | | |
Critics to SharePoint resource deployment “stsadm –o copyappbincontent”
05 September 09 11:05 PM | cakriwut | with no comments

English

When you start to work with localization in SharePoint, I believe that you may end with one of Mikhail Dikov proposal here or here .

Partially I agree with his proposal, to leverage the resource deployment through the UI. However, his strategy may fail when you apply to server farm architecture with multiple Web Front End (WFE).

You have to go to every WFE, and activate/deactivate the feature before you can get it deployed in all WFE. The same concept as standard SharePoint’s stsadm command,

stsadm –o copyappbincontent

That command, instruct local SharePoint server to copy resources, sitemap etc. to web all application folder, except the Central Admin webapps.

And still we have big problem, that we have to run that command in every WFE.

I can say this is a big problem, because it against the concept of centralized deployment of WSP. Imagine, if you’re system administrator who wants to have WSP to automate distribution of artifact – and now you are facing a fact that since the WSP contains resources; you don’t have the centralized deployment concept anymore.
After doing

stsadm –o addsolution

stsadm –o deploysolution

in one of WFE - then you have to go through all WFE to execute

stsadm –o copyappbincontent

to deploy resources to webapps.

I know that some system administrator / production team, so we have to solve this problem. May be change it to stsadm –o copyfarmappbincontent , to perform appbincontent deployment in farm architecture. 

Share this post: | | | |
Filed under: ,
Configuring web.config for RSS WebParts
02 September 09 07:22 PM | cakriwut | 1 comment(s)

English

Today, I’ve got an enquiries from one of our users, who could not configure their RSS WebParts. I know from the errors message, its related with proxy and authentication – but in fact he was trying to get feed from internal server.

So, what is the situation?
We have internal domain with suffix *.mib , however some of our internal server doesn’t have internal name or lies across the region. Those which lay on the other region are only accessible through *.com name, which then routed using VPN in our internal network.

Existing web.config, is a standard just like in Kit Kai blog, or Agusto blog.

Suspect
a. Authentication
    All of our servers uses requires user authentication, which normally integrated into their domain account. However, when we deal with this kind of scenario, we may expect double-hop situation. Where users authentication need to be proxy to the next  server. In our environment, we identified that this is not a problem since they all configured with KERBEROS.

b. Incorrect route
    We know that the purpose of bypassing local proxy is to avoid RSS feed request to be routed through proxy. Having request through proxy could be cumbersome, since RSS webpart should handle authentication which is unsupported.
Hmm..  this could be the problem. Since the source RSS on other region is having *.com address; so in this case “bypassonlocal=true” doesn’t give any benefit. 

The Fix
Fortunately there is one more section that we might overlooked. If we refer to MSDN in this link, we can specifically exclude any URLs from being proxied.

So, since I want exclude some internal *.mycompany.com from the proxy – I then modify the web.config into,

<configuration>
   <system.net>
      <defaultProxy>
         <proxy proxyaddress="
http://proxysvr.mib:8080" bypassonlocal="true" />
         <bypasslist>
            <add address="[a-z]+\.mycompany\.com" />
            <add address="192\.168\..*" />
         </bypasslist>
      </defaultProxy>
   </system.net>
</configuration>

Share this post: | | | |
Howto: Limits PageLayouts availability in Create Page
17 May 09 11:03 AM | cakriwut | with no comments

English

When you start to create a page, you will be presented a Create page form. In that page, you will have opportunity to select the page layouts for the new page. This howto will describe how to limits page layouts availability in create page. 

See picture below, instead of having all page  layouts listed – we only have 3 page layouts related to the site.

5-6-2009 10-54-32 AM

Howto:

1. Open Site Settings, and click on “Page layouts and site templates”

5-6-2009 10-43-43 AM

2. Select “Pages in this site can only use the following layouts:” and subsequently select the page layouts for current site.

5-6-2009 10-53-33 AM

3. Click “OK” to apply your changes.

Share this post: | | | |
Hyper V Installation using Microsoft Hyper-V and VMWare ESXI
28 September 08 08:35 AM | cakriwut | with no comments

English:

I just found a video comparing installation of Microsoft Hyper-V and VMWare ESXI.

Indonesian:

Ada yang mau mencoba Microsoft Hyper-V atau VMWare ESXI? Temukan caranya Hyper V side-by-side comparison.

 

Share this post: | | | |
Filed under:
MOSS 2007 : Howto override page redirection Url
28 January 08 04:31 PM | cakriwut | with no comments

English (versi bahasa Indonesia)

I had a question from one of my friend “How can I override page redirection Url?”. He was using inline C# code which is not my preference – because it adds additional page-parser process and introduce new security consideration. His code also diminish upload attachment function in the original form.
My first suggestion was to create a new links that construct custom “Source=” url to the original form – but this is not what he looks for. He doesn’t want to replace the “New Item” menu with a link.

So in this case, he wants to click “New Item” menu in a list and redirected to custom page after sucessfull submission or cancelation.

ItemRedirect1

Technically, after we click “New Item” we’ll be redirected to “..\NewForm.aspx?RootFolder=….&Source=….”. And guess what – the “Source” is the location after we submit “OK” or press “Cancel”.

So – how can we change the “Source” url? Use Javascript !

Open “NewForm.aspx” using SharePoint Designer and find “PlaceHolderMain” content Id. Place following custom javascript just after tag definition.

function PreSaveAction()
{
     // TODO : create some actions here
     return true;
}

ItemRedirect2

Remember that the name of the function MUST BE PreSaveAction and it must return true.

Next, in the function I add operation to replace original action url with the new construction – I just need to change the text after “Source”. What you need to do, is change newSrcUrl variable to match with the custom page in your location. 

––o0o––

 

Indonesia (see English version)

Baru-baru ini saya mendapat pertanyaan dari seorang kawan tentang “Bagaimana cara mengganti halaman redirect? “. Menurutnya, dia sudah menggunakan inline C# namun akibatnya dia tidak dapat memanfaatkan upload attachment yang ada di form asli. Saya sendiri kurang sependapat dengan penggunaan inline C# itu, sebab inline C# akan menambah beban kerja server untuk memparsing dan juga membuka resiko keamanan yang baru.

Anjuran saya adalah dengan menggunakan link yang sudah diubah sedemikian rupa sehingga “Source” url disesuaikan dengan apa yang diinginkan. Tapi saran tersebut tidak sesuai dengan keinginannya, karena hal ini berarti mengganti menu “New Item” dengan menggunakan link.

Jadi, yang dia inginkan adalah tetap menggunakan menu “New Item” tetapi dapat mengganti halaman yang dibuka setelah submit atau cancel.

ItemRedirect1

Pada dasarnya, setelah kita mengklik “New Item” , maka kita akan diarahkan pada alamat “..\NewForm.aspx?RootFolder=….&Source=….”. Dan “Source” adalah lokasi yang akan dibuka ketika kita mensubmit form dengan mengklik “OK” atau menekan “Cancel”.

Jadi bagaimana kita dapat mengganti “Source” url? Gunakan Javascript !

Buka “NewForm.aspx” dengan menggunakan SharePoint Designer, dan cari tag id yang bertuliskan “PlaceHolderMain”. Kemudian tambahkan javascript berikut setelah tag tersebut,.

function PreSaveAction()
{
     // TODO : create some actions here
     return true;
}

ItemRedirect2

HATI-HATI, bahwa nama fungsi javascript tersebut HARUS  PreSaveAction dan nilai kembaliannya HARUS true.

Didalam fungsi javascript yang baru, kita hanya perlu menambahkan operasi untuk mengganti action url yang lama dengan action url baru. Di action url baru inilah kita definisikan “Source” url agar merujuk pada halaman web custom yang kita inginkan. Dari gambar diatas, Anda hanya perlu mengganti variable newSrcUrl agar sesuai dengan yang diinginkan – atau kalau perlu merubah operasi untuk mengganti “Source” url agar lebih robust.

––o0o––

Share this post: | | | |
MOSS 2007: How to create sub menu for context item
03 January 08 11:14 AM | cakriwut | 1 comment(s)

English (versi bahasa Indonesia)

Features have been introduced as one of building block in SharePoint 2007. Using feature ones could extend the capabilities of SharePoint, from just a simple ActionMenu to the site definition – all of them can be done using feature. 
I have created many ActionMenu that extend “EditItem” block in SharePoint but sometimes its not enough. How about creating sub menu for context item – just like “Send to” context menu?

SendToItem

Picture 1. Sub menu in context item

I can not find any information to create sub menu using feature – please correct me. So what can we do? Well…we’ll do the old way – extending the ows.js with our javascript.

Then if we want to create a new context “Comments” menu with “View Comments” and “Add Comments” for list item like this picture, what can we do?

CommentsSubmenu

Picture 2. Custom sub menu in context item

If you look at ows.js and start finding “Add[???]MenuItems” function then you’ll realize that it always calls “Custom_Add[???]MenuItems”. The last function is our place to make customization. For example, if I want to customize the context menu of ListItem then I need to define “Custom_AddListMenuItems” as follows,

function Custom_AddListMenuItems(m, ctx)

  AddCommentSubMenu(m,ctx);
  AddAttachmentSubMenu(m,ctx);
  CAMSep(m);
  return false;
}

We call “CAMSep(m)” to create separator and returning false to enable rendering default context menu item.  I create “Comments” and its submenu using “AddCommentSubMenu(m,ctx)” function like this,

function AddCommentSubMenu(m,ctx)
{
    strDisplayText="Comments"; 
    strImagePath=ctx.imagesPath+"reply.gif";
    var sm=CASubM(m,strDisplayText,strImagePath,"",400);
 
    sm.id="ID_Comment";
    var menuOption;
    
    // define your own action
    strAction=””;
    menuOption=CAMOpt(sm, "View comments", strAction,"");

    menuOption=CAMOpt(sm,"Add comment", strAction,"");
}

The “CASubM()” is the main function to create sub menu. If you look for the function in ows.js, you’ll find the definition for the function,

function CASubM(p,wzText,wzISrc,wzIAlt,wzISeq,wzDesc)

I guess I’ll make my guess for the parameters,

– p , the menu to attach
– wzText , text to display in the sub menu
– wzISrc  , icon location for the sub menu
– wzIAlt   , alt text for the image icon
– wzISeq  , I am not sure but I thing this related sequence number
– wzDesc ,  I am not sure either , it should be a description but I saw ows.js never put any text on it.

Anyway, you only need to modify parameter p, wzText, wzISrc, wzIAlt and leave default value for the last 2 parameter.

After we done with customization, put the script to the page as reference or as inline javascript, and now you can have your own sub menu for context item.

––o00––

 

Indonesia (see English version)

Features merupakan salah satu terminologi baru yang diperkenalkan di SharePoint 2007. Kita dapat menggunakan feature untuk menambah fungsi-fungsi baru didalam SharePoint – mulai dari sekedar menambahkan ActionMenu sampai membuat site definition baru – semua dapat dilakukan dengan menggunakan feature
Didalam banyak kesempatan saya sering membuat ActionMenu untuk menambah fungsi di bagian “EditItem” didalam list-item SharePoint – namun kadangkala hal itu masih belum cukup. Salah satu yang mungkin kita inginkan adalah, bagaimana cara membuat sub menu untuk menu context – seperti “Send to” dibawah ini?

SendToItem

Gambar 1. Sub menu didalam menu context

Sampai saat ini saya belum punya cara termudah untuk membuat sub menu dengan menggunakan feature (mungkin kita bisa menggunakan feature receiver – tapi berarti kita harus membuka visual studio) CMIIW. Jadi apa yang bisa kita lakukan? Yah terpaksa kita lakukan dengan cara lama, dengan memanfaatkan ows.js dan menambah fungsi javascript tambahan. 

Sebagai contoh, disini kita akan menambahkan menu context baru “Comments” dengan sub menu “View Comments” dan “Add Comments” seperti gambar dibawah.

CommentsSubmenu

Picture 2. Custom sub menu in context item

Jika kita perhatikan didalam ows.js , setiap fungsi “Add[???]MenuItems” akan memanggil “Custom_Add[???]MenuItems”. Contohnya, fungsi “AddListMenuItems” akan memanggil fungsi “Custom_AddListMenuItems”. Didalam fungsi “Custom_AddListMenuItems” inilah kita dapat menambahkan fungsi-fungsi baru seperti yang kita inginkan.

Disini kita akan menambah menu di list item, jadi disini kita definisikan fungsi Custom_AddListMenuItems sebagai berikut,

function Custom_AddListMenuItems(m, ctx)

  AddCommentSubMenu(m,ctx);
  AddAttachmentSubMenu(m,ctx);
  CAMSep(m);
  return false;
}

Fungsi “CAMSep(m)” berguna untuk membat pembatas dan kembalian false (return false) dihasilkan agar konteks menu default tetap dirender. Untuk membuat menu “Comment” dan submenu dibawahnya, kita buat fungsi baru “AddCommentSubMenu(m,ctx)” seperti dibawah,

function AddCommentSubMenu(m,ctx)
{
    strDisplayText="Comments"; 
    strImagePath=ctx.imagesPath+"reply.gif";
    var sm=CASubM(m,strDisplayText,strImagePath,"",400);
 
    sm.id="ID_Comment";
    var menuOption;
    
    // define your own action
    strAction=””;
    menuOption=CAMOpt(sm, "View comments", strAction,"");

    menuOption=CAMOpt(sm,"Add comment", strAction,"");
}

Fungsi “CASubM()” adalah kunci untuk membuat sub menu. Jika kita lihat definisi CASubM() didalam ows.js, kita dapat temukan definisi fungsi itu sebagai berikut,

function CASubM(p,wzText,wzISrc,wzIAlt,wzISeq,wzDesc)

Disini kita gunakan intuisi untuk menterjemahkan parameter itu (so just guessing – OK),

– p , parent menu yang akan ditempel sub menu
– wzText , teks yang akan ditampilkan di sub menu
– wzISrc  , lokasi ikon untuk sub menu
– wzIAlt   , teks alternatif untuk ikon 
– wzISeq  , (gak yakin) tapi mungkin urutan sub menu
– wzDesc ,  (gak yakin) kemungkinan besar adalah deskripsi, tapi didalam tidak pernah digunakan didalam ows.js

Yah, singkat kata, kita hanya perlu melakukan modifikasi parameter  p, wzText, wzISrc, wzIAlt dan menggunakan nilai default untuk parameter-parameter yang lain.

Setelah selesai, letakkan script tersebut secara inline maupun sebagai reference , dan dijamin Anda akan mendapatkan sub menu untuk item konteks.

 

Share this post: | | | |
MOSS 2007 : Displaying User Picture Profile
25 November 07 04:36 PM | cakriwut | with no comments

English (versi bahasa Indonesia)

Recently I’ve got a question how to display user picture profile. 

Up5

Again, there are many approach – however I’ll show you with no code approach. First, I want to emphasize that this approach can be used to answer other customization which uses SharePoint’s ootb controls.  

So, here we go. Open the default.aspx using SharePoint designer and look at the toolbox control on the right pane. You’ll see several categories ie. ASP.NET Controls, SharePoint Controls etc. In this case we need Server Controls (SharePoint) – it will available if you work with MOSS 2007 not WSS v3.0.

Up1

Expand Server Controls (SharePoint) and there are many specific controls from SharePoint Server WebControls. To show user picture profile, we need ProfilePropertyImage from SharePoint Server WebControls. I guess you understand how to pick-it-up, just drag-drop from the toolbox into designer pane.

Up2

In this case I drag-drop from toolbox pane to the empty space just above default WebPartZone in default.aspx.

Up3

Giving a center tag arround the ProfilePropertiImage, will give you just like mine.

Up4

Then, save the page to see the result; an avatar will be shown for any users who already customize their profile image.

At last, if you can not see the image, please check if the tags looks similar with

<SPSWCrofilePropertyImage PropertyName="PictureUrl" ResizeToFit="100" RenderWrapTable="True" ShowPlaceholder="true" id="PictureUrlImage" runat="server"/>

Please pay attention that “PropertyName” of the tag should be “PictureUrl”.

Indonesia (see English version)

Baru-baru ini saya mendapat pertanyaan bagaimana cara menampilkan gambar yang ada di profile user.  

Up5

Sama seperti artikel-artikel saya sebelumnya, ada banyak cara yang dapat kita lakukan – dan lagi-lagi saya tetap menganjurkan untuk menggunakan teknik dengan sedikit coding. (no code approach). Sebelum melanjutkan, saya juga ingin menggaris-bawahi bahwa teknik ini dapat pula digunakan untuk melakukan kustomisasi lain yang membutuhkan kontrol bawaan dari SharePoint.   

Pertama-tama buka “default.aspx” dengan menggunakan SharePoint designer. Lihat pane “toolbox control” yang ada disebelah kanan – kalau belum muncul masuk ke dalam menu “Task Pane” dan pilih Toolbox control.  Disana kita bisa dapatkan beberapa kategori misalnya, ASP.NET Controls, SharePoint Controls dsb. Dalam kasus ini yang kita butuhkan adalah Server Controls (SharePoint) – kategori ini akan muncul jika kita bekerja dengan MOSS 2007.

Up1

Buka Server Controls (SharePoint) dan didalamnya akan kita dapatkan beberapa kontrol yang diambil dari SharePoint Server WebControls.  Untuk menampilkan gambar profile user yang kita butuhkan adalah ProfilePropertiImage. Klik di ProfilePropertyImage dan drag-drop kedalam default.aspx yang sedang dibuka di panel designer.

Up2

Untuk mendapatkan hasil seperti yang diinginkan diatas, saya memasukkan control tersebut keatas WebPartZone yang ada dibagian kanan (lihat gambar dibawah).

Up3

Kemudian dengan menambahkan tag “center” maka ProfilePropertiImage akan tampil rata kanan-kiri, sama seperti dibawah ini.

Up4

Akhirnya, simpan halaman tersebut dan buka dengan browser; sampai disini kita akan dapat melihat gambar profile user. Dan jika user melakukan kustomisasi gambar profilenya, maka secara otomatis gambar diatas juga akan menampilkan avatar yang sesuai.

Pada tahap ini, jika Anda gambar profile tidak muncul – coba cek tag yang baru disisipkan apa sudah terlihat seperti ini, 

<SPSWCrofilePropertyImage PropertyName="PictureUrl" ResizeToFit="100" RenderWrapTable="True" ShowPlaceholder="true" id="PictureUrlImage" runat="server"/>

Perhatikan bahwa “PropertyName” harus diisi dengan “PictureUrl”.

 

 

Share this post: | | | |
How to enable "Edit Page" in SharePoint's standard form.aspx
03 November 07 02:28 PM | cakriwut | with no comments

English (versi bahasa Indonesia)

Just like the old version, if we want to add additional web part in standard form (newform.aspx, editform.aspx, dispform.aspx) then we have establish a strategy to view the page in edit mode. However, the new page model in SharePoint 2007 makes our job more easier.

NewItemAction

Picture 1a. No “Edit Page” in SharePoint form.

 

NewItemInEditMode
Picture 1b. NewForm.aspx in Edit Mode

Actually we can change site template definition, but since I don’t want to modify all forms, then I choose to edit directly using SharePoint Designer (SPD) . I open the site using SPD, go through target list and open “NewForm.aspx” in the designer.

NewItemEdit

Picture 2. Open NewForm.aspx using SharePoint Designer

Having the form in the designer, then I go to “Site Action” content template (by default it is master page content place holder). So I click on it to “Create Custom Content”.

NewItemMaster

Picture 3. Create Custom Content in Site Action section

Switched into code designer for the new content block then look for <SharePoint:MenuItemTemplate tag. There are few tags, but the point of interest for our project is the one with “MenuItem_EditPage” id. Change the id to anything you’d like – mine, I change it to “MenuItem_EditPage1”.

NewItemMaster2

Picture 4. Change the id for MenuItemTemplate

Save the changes and now goto NewForm.aspx. See a new “Edit Page” command in Site Action.

NewItemWithEdit

Picture 5. Edit Page menu command in “Site Action”

o0o—

Indonesia (see English version)

Sama seperti di versi sebelumnya, jika kita ingin menambahkan web part di form-form standar SharePoint (newform.aspx, editform.aspx, dispform.aspx) maka kita harus bisa menampilkan form tersebut dalam mode edit. Namun kali ini pekerjaan kita akan jauh lebih sederhana dengan diperkenalkannya master page dan page layouts di SharePoint 2007.

NewItemAction

Picture 1a. “Edit Page” tidak bisa ditemukan di form standar.

 

NewItemInEditMode
Gambar 1b. NewForm.aspx dibuka dalam mode edit

Ada dua pilihan yang dapat dilakukan yaitu melakukan perubahan secara global di definisi site template atau melakukan perubahan secara terbatas di masing-masing list. Karena tidak semua list perlu perubahan ini, maka saya akan melakukannya secara terbatas dengan mengedit “NewForm.aspx” secara langsung dengan menggunakan SharePoint Designer (SPD).

NewItemEdit

Gambar 2. Buka NewForm.aspx dengan menggunakan SharePoint Designer

Setelah form tersebut terbuka, arahkan mouse ke area “Site Action” (secara default area ini mengambil definisi dari master page). Context menu di area ini memungkinkan kita untuk mendefinisikan konten secara khusus dan tidak mengambil definisi dari master page. Klik di “Create Custom Content”.

NewItemMaster

Gambar 3. Create Custom Content pada area Site Action

Ubah tampilah SPD ke bagian source code dan disana kita akan dapat menemukan blok yang berisi tag <SharePoint:MenuItemTemplate . Kita bisa menemukan beberapa tag semacam itu, tapi target kita adalah tag yang memiliki id “MenuItem_EditPage”. Ubah nama id menjadi nama lain – disini saya mengubahnya menjadi “MenuItem_EditPage1”.

NewItemMaster2

Gambar 4. Ubah id dari MenuItem Template

Simpan seluruh perubahan diatas dan buka kembali NewForm.aspx. Arahkan kursor ke Site Actions dan disana kita bisa melihat command menu “Edit Page” seperti yang diharapkan. Dan mulai sekarang dengan mudah kita bisa menambah / menghapus web part di halaman itu.

NewItemWithEdit

Gambar 5. Menu Edit Page di “Site Action”

o0o—

Share this post: | | | |
MOSS 2007: How to delete default Shared Service?
26 August 07 12:10 AM | cakriwut | 1 comment(s)

English (versi bahasa Indonesia)

You might already know that one of essential component in MOSS 2007 is the Farm’s Shared Services. Farm’s Shared Services serves all server in the farm for profiles, bussiness data catalog and many more. Default Shared Services is the first farm’s shared services that we create in our MOSS 2007 servers. If we ever create farm shared services, then any web applications listed in SharePoints configuration databases will be associated with any of farm shared services. And so this is a not turning back operation; once you make an association then “forever” MOSS won’t let you disassociate with it.

Sharedsvcerr3
You can see the “Delete” action is disabled by default – so , how to delete this kind of default Shared Services?
Of course we will use the unprotected tools from MOSS.

Let’s understand what happened if we issue “Delete” shared service command?

MOSS will present you to */_admin/deletessp.aspx page with ssp GUID as sspId parameter. The page would be seen as  */_admin/deletessp.aspx?sspID={GUID}

Hence if we want to delete any of shared service, we only need to call that page with correct sspId – and if we put the GUID of default shared service then it will be deleted too.

Find out the GUID by clicking “Edit Properties” link for the Default Shared Service.

Ssp2

You’ll come to */_admin/sspdetails.aspx?task=Edit&sspId={GUID}. And intuitively you know the rest is to use that GUID. When you run deletion procedure for default shared service, there would be error like this,

Sharedsvcerr2

You can ignore it, because it will delete the ssp anyway.

-o0o-

Indonesia (see English version)

Anda mungkin sudah tahu salah satu komponen penting di MOSS 2007 adalah Farm Shared Services. Farm Shared Service merupakan layanan bersama yang digunakan oleh semua server yang ada didalam konfigurasi farm di MOSS 2007; misalnya untuk melakukan sinkronisasi profile dengan Active Directory, business data catalog, search dsb.
Default Shared Services adalah shared service yang dibuat pertama kali didalam farm. Jadi pada saat pertama kali kita membuat farm shared services di MOSS, semua aplikasi web yang ada didalam database konfigurasi akan diasosiasikan secara otomatis ke farm shared service tersebut. Proses assosiasi tersebut hanya berlangsung satu arah, artinya jika suatu saat kita ingin menghapus shared service maka secara desain hal tersebut tidak dimungkinkan oleh MOSS.

Sharedsvcerr3
Kita bisa melihat bahwa perintah “Delete” secara default tidak dapat diakses – jadi bagaimana cara kita menghapus default shared service? 
Anda mungkin berfikir untuk mengapus database shared service, tapi tidak, kita akan menggunakan tools yang sudah disediakan oleh MOSS.  

Apa yang sebenarnya dilakukan jika kita meng-klik perintah “Delete” ?

MOSS membawa kita ke halaman  */_admin/deletessp.aspx dengan GUID ssp sebagai parameter sspId. Jadi halaman tersebut akan terlihat sebagai   */_admin/deletessp.aspx?sspID={GUID}

Jadi singkat kata, jika kita ingin mengapus shared service apapun, maka yang kita lakukan adalah memanggil halaman tersebut dengan dilengkapi parameter sspId yang dikehendaki. Jika kita masukkan GUID yang dimiliki oleh default shared service, maka dapat dipastikan default shared service juga akan terhapus. 

GUID dari shared service dapat dicari dengan meng-klik perintah “Edit Properties” seperti gambar dibawah.

Ssp2

Kita akan dibawa ke halaman */_admin/sspdetails.aspx?task=Edit&sspId={GUID}. Dan secara intuitif yang dilakukan selanjutnya adalah menggunakan GUID tersebut untuk memanggil halaman deletessp.aspx. 

Jika Anda melakukan prosedur menghapus default shared service seperti diatas, Anda akan menemukan error seperti ini, 

Sharedsvcerr2

Abaikan pesan kesalahan tersebut, sebab MOSS akan tetap menghapus default shared service seperti yang kita inginkan.

Share this post: | | | |
WingsAir / LionAir Delay? Ah itu sudah biasa
25 August 07 05:05 PM | cakriwut | with no comments

Hari ini sepulang dari Surabaya, saya mencoba lagi terbang dengan menggunakan airlines group LionAir, yaitu WingsAir. Terakhir kali kira-kira 4 bulan yang lalu saya menggunakan LionAir dan terjadi delay. Dan kejadian ini berulang hari ini ketika saya memilih WingsAir. Jadi, begitu melihat pengumuman delay penerbangan WingsAir (WN8985 , no 2 dari atas) – komentar saya “Ah itu sudah biasa”.

DSC01210

Terus terang saya bete, tapi mudah-mudahanan delaynya bisa “cukup lama”. Kalau delaynya cukup lama, otomatis saya punya hak untuk melakukan claim asuransi keterlambatan penerbangan – soalnya tiketnya dibeli dengan kartu kredit hehehe. Yah, kita tunggu saja.

 

Share this post: | | | |
MOSS 2007: Fixing SSOSrv error 0x80040e14
20 August 07 12:22 AM | cakriwut | 1 comment(s)

English (versi Indonesia)

Yesterday I tried to enable single-sign-on (SSO) webpart on one of our client's server. It was very strange since the webpart was tested well few month ago on other client - but not at this time.
The "GetCredentials" of "ISsoProvider" always throws an error:

ssofailed4

I have double checked SSO configuration in the server farm, and looks everything has been setup correctly - so what was wrong?

KB932917 is not available!
Further investigation in the events viewer, I've found error number 0x80040e14. The error description is non-sense, credentials configuration has been double checked and this is not the first sso implementation.

ssofailed6

Searching the problem in Internet direct me to an explaination from Chris Calderon and he referred KB932917 which is private link from Microsoft. It will be included in roll-up SP package, but when? We need it right at the moment.

Do it your self!
From that article, Chris already mention that the problem is; MOSS always validate IX_SSO_Credentials index.
So, I open SSO database in SQL Management Studio, and found that there only IX_SSO_TempCredentials index in dbo.SSO_Credentials table.

ssoqry

Using the same index creation statement, I create second index called IX_SSO_Credentials. Then I left database with two index in that table - and starting to validate our sso webpart again.

ssofailed7

And, thanks God - although we expect for the upcoming update but now everything is running well again.

--o0o--

Indonesia (English version)

Kemarin, untuk kesekian kalinya saya mengimplementasikan webpart single-sign-on (SSO) di salah satu mesin di client kami. Tapi kali ini saya mendapatkan keanehan, webpart tersebut gagal berfungsi - padahal ini bukan implementasi pertama kali. Terpaksa, visual studio debuging dihidupkan dan error muncul pada saat pemanggilan method "GetCredentials" dari interface "ISsoProvider".

ssofailed4

Terpaksa, dilakukan check-list konfigurasi SSO di webfarm dan semua sudah dikonfigurasi dengan benar - jadi apa yang salah?

KB932917 tidak tersedia!
Saya coba melakukan investigasi lanjutan dengan membuka event viewer. Disana ada error yang disebabkan oleh SSO dengan nomor 0x80040e14. Penjelasan bahwa credentials tidak dapat diambil sangat tidak masuk akal, sebab konfigurasi SSO ini sudah bukan yang pertama kalinya, dan credentials yang digunakan juga memiliki otoritas yang sesuai.

ssofailed6

Saya coba membuka internet dan menemukan penjelasan dari Chris Calderon dan disebutkan *** bahwa kita harus menggunakan hotfix KB932917 dari Microsoft. Saya coba membuka link tersebut dan gagal. Menurut informasi yang ada, hotfix tersebut akan dimasukkan didalam service pack MOSS 2007, tapi kapan? Padahal kita butuh hotfix itu saat ini!

Patching Manual!
Dari blog yang ditulis Chris, kita bisa lihat bahwa masalah utamanya adalah MOSS selalu menggunakan index IX_SSO_Credentials yang ada di database SSO.
Hmm, saya buka database SSO dengan menggunakan SQL Management Studio. Ternyata disana hanya ada index dengan nama IX_SSO_TempCredentials.

ssoqry

Tanpa pikir panjang, saya gunakan perintah yang sama untuk membuat IX_SSO_TempCredentials - dan saya buat index kedua dengan nama IX_SSO_Credentials. Jadi sekarang dbo.SSO_Credentials memiliki dua index yang sama dengan nama berbeda.

ssofailed7

Tanpa menunggu terlalu lama, saya sekali lagi mencoba webpart sso dan syukurlah bahwa patching manual tersebut berhasil; dan webpart sso dapat bekerja dengan baik seperti sedia kala.

Share this post: | | | |
More Posts Next page »