State of Knowledge Management [2007]

I would like to propose the following "state of KM" for 2007:

  1. Most leaders recognise the importance of improving and retaining individual and collective knowledge within an organisation to maximise effectiveness;
  2. "Knowledge Management" is now the recognised term for this requirement.
  3. Leaders believe that KM processes should be integrated into existing organisation structures.
  4. Most leaders believe that their managers already have the skills to achieve "Knowledge Management" once appropriate information management systems are installed.
  5. In the next 12-24 months 5-10 years:
    (a) Leaders will realise that (3) is necessary but not sufficient.
    (b) Leaders will realise that (4) is largely untrue.

EDIT: 2 years is probably optimistic!

Discussion groups with high barriers of entry

A few of my recent posts have talked about actKM, a Knowledge Management discussion list which originated in Canberra but has since attracted a number of high-profile names in the KM field.

Since I also participate in a few open-source software development mailing lists, I've noticed some similarities between these groups and actKM. Common characteristics include:

  • Comparatively small community struggling for broader acceptance;
  • Impatience with re-hashing of old questions and arguments when posed by newcomers;
  • Zealous advocacy of a Righteous and True Path; and
  • Strong exclusionary behavior shown to "unbelievers".

The IIS Metabase, WBEMTEST and Communicator web client

This is worth documenting, if only for the fact that I've never been game to touch the IIS metabase before.

The Communicator Web Access planning document talks about Metabase settings, but not how to change them. Here's the basics --

Customize SharePoint MiniConsole

Ok, this one's easy with one trick. If you want to modify the links shown in the SharePoint MiniConsole (shown, for example, as the "Create Site" and "Add Link to Site" buttons in the Site Directory), just open the page you want and look for code like this:


<asp:Content ContentPlaceHolderId="PlaceHolderMiniConsole" runat="server">
	<SPSWC:MiniConsole runat="server">
	<SPSWC:SPSRepeatedControls id="RptControls" runat="server" HeaderHtml="" BeforeControlHtml="<td class='ms-toolbar' nowrap='true' ID='_spFocusHere'>"
  

More on Data Form Web parts

If you use Data Form Web Parts in SharePoint at all, you must read this MSDN article by Eray Chou. This in particular caught my eye:

SPDataSource Parameters

When in List or ListItem mode, the SelectParameters collection expects a number of well known parameter names to determine the appropriate list to bind to:

  • ListID – GUID that corresponds to a List’s ListID.
  • ListName – Display name for a List.
  • ListItemId – ID for a single item in ListItem mode
  • WebUrl – Url to the web. When not specified, SPDataSource uses the current web to resolve the previous parameters. You can also use this parameter to access lists in other Web sites in the same Site Collection assuming you have permissions to that list.

Get a List's Guid

The two easiest ways to retrieve a List's globally unique identifier in SharePoint 2007 are:

SharePoint Designer 2007

  1. Open the SharePoint site being examined.
  2. Click Data View -> Manage Data Sources ...
  3. Highlight the List and click hover drop-down -> Show Data -> Click on the list name... hyperlink at the top of the Data View.
  4. Note the ID shown in this window.

VBScript

  1. Use the following code snippet:
    ' Get the root element object
    Set SOAPClient = createobject("MSSOAP.SOAPClient")
    SOAPClient.mssoapinit "http://sharepoint/site/_vti_bin/Lists.asmx?WSDL"
    Set xmlDoc = SOAPClient.GetListCollection()
    
    DisplayNode xmlDoc
    

    in conjunction with the DisplayNode XML print function.

Viewing recent comments in Discussions

Unquestionably, one of the most powerful features of SharePoint is the DataView web part (unfortunately, only accessible through SharePoint Designer 2007 or Frontpage 2003).

There's a particularly useful trick for SharePoint Designer outlined in the Microsoft Office Online Help for SharePoint which shows how to use "joined item subviews".

In this case, I wanted a view of most recent comments for the Discussion Database site template.

Rename Template "Custom" tab in SharePoint 2007

In SharePoint 2007, any custom templates added through the stsadm command stdadm -o addtemplate appear under the "Custom" tab.

This may not appear sufficiently corporate for some people. One easy fix is to simply modify the locale file at C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\Resources\core.en-US.resx. Just find

  <!--TemplatePickerControl -->
  <data name="TemplatePickerControl_Custom">
    <value>Custom</value>
  </data>

and modify <value> to anything you li

Chain UpdatePanel requests

ASP.NET AJAX has some pretty nifty features, but one of the nicest is the UpdatePanel, which allows coders to easily set up partial-page refreshes through XMLHttpRequest, and from what I can see it has good cross-browser support.

However, one thing I always wanted to do was chain UpdatePanels together so that (for example) a number of server-side requests could be fired off, with the user status being updated appropriately.

The "internal abstract" trap

To avoid other bashing their head against a brick wall for hours, I offer the following sage advice:

    If you are trying to extend an abstract class from a library you don't control (eg. SharePoint 2007), check for internal abstract method signatures first.

Specifically, I was trying to create a custom version of the DataViewWebPart. This is a sealed class, so okay, C# won't let you try and extend that.

What about its parent, BaseXsltDataWebPart? That's marked as public abstract, so you can happily use that as a base.

Syndicate content