Brad's profileSharePoint BlogPhotosBlogLists Tools Help

Blog


    May 31

    Proposal and Scoping Visio diagrams / resources

    I was busy looking for something entirely different on SharePoint and stumbled on the following resources, which will come in handy when building proposals / response documents, architecture diagrams, etc.

    http://technet.microsoft.com/en-us/library/cc263199.aspx – these are a series of models and diagrams here in PNG, JPG and Visio format that can be used as a starting point for architecture diagrams in proposals and presentations. They are based on real-world production deployments using best-practices design and architecture. They include:

    • Logical Architecture Sample Design: Corporate Deployment
    • Architecture Design Example: Twynham School (U.K.)
    • Architecture Example: Single School, Single Server
    • Extranet Topologies for SharePoint Products and Technologies
    • Shared Services Providers for Office SharePoint Server 2007
    • Inter-Farm Shared Services for Office SharePoint Server 2007
    • Deploying Microsoft Office SharePoint Server Geographically
    • Global Knowledge Management with Microsoft Office SharePoint Server
    • Office SharePoint Server 2007 Data Protection and Recovery model
    • Office SharePoint Server 2007 Availability model
    • Upgrading Windows SharePoint Services 2.0 to Windows SharePoint Services 3.0
    • Model: Upgrading Microsoft SharePoint Portal Server 2003 to Microsoft Office SharePoint Server 2007
    • Model: Site Permissions for Office SharePoint Server 2007 and Windows SharePoint Services 3.0
    • Model: SharePoint Products and Technologies Baseline Site Hierarchies
    • Sample project plan: Microsoft Office SharePoint Server 2007 deployment
    • Extranet hardening planning tool: back-to-back perimeter
    • Poster: Stsadm Technical Reference (Office SharePoint Server 2007)
    • Poster: Stsadm Technical Reference (Windows SharePoint Services)

    There's also a MOSS and WSS 3 STSADM tech reference poster that can be downloaded from Ian Morrish's WSS Demo site (which is handy, because the redirect links on the Microsoft page above do not work).

    Finally, here's a list of resources for SharePoint, grouped by resource type here - http://www.wssdemo.com/Pages/GroupBy.aspx

    May 29

    The HTML Calculated Field

    I have been using this function a lot lately, as it's easy to build, easy to modify and does not require SPD's Data Form Web Part to create good looking lists. The basic premise behind it is you use a "calculated field" to construct a HTML String, then you throw a small bit of javascript on a page in a content editor web part (the js never changes from page to page, so you could lob it in a sharepoint js file too, as it does not affect anything else). This allows you to do things like apply traffic lights to any conditional test you can perform in Excel (as a calculated field has 90% of the functionality of excel formulas) or colour-code a list item based on its approval status. It's pretty cool, and really jazzes up your user interface – for example, you can colour a monthly calendar event to represent some type of event, without chewing up valuable real-estate describing the event in the item title.

    Cristophe also has some other neat features, such as a month calendar view that can be displayed on the right side of the screen without requiring a 1600x1200 display, a scrolling news item, etc. Check his site out to be inspired :) He also has some other sites containing content too - http://8002.freesharepoint2007.com/default.aspx and http://pathtosharepoint.wordpress.com/

    May 28

    Theming – a useful utility for getting colours

    So, more on the theming quest for knowledge – I was at a corporate site and they dumped this style guide on my desk and said "Follow That, sport" (actually, it was nothing like that, I'm just talking it up – it's a great client). After laughing my ass off at the Branding Nazi's (Marketing) choice of site colours, I thought – I could probably use one or 2 of these colours and come up with a nice theme. Maybe there is a tool on the web that'll help me…

    http://colorsontheweb.com/colorwizard.asp – Enter your hex colour code and hit go, and it'll pick colours that work together well (shades) and colours to use for "hover" and button effects (Tetradic and Split Complimentary were great for these).

    Oh, I also use Paint.NET to create and manipulate images, buttons etc – this was an undergraduate program started at MS to supersede MS Paint, but it's now a community tool. The best part are the plug-ins, but it's simple enough to use without being an art major. You can grab it here.

    A theme with the name "<themename> 1011" and version already exists on the server.

    First time I've ever hit this one – Building a custom theme for a client, using the technique Heather Solomon suggested here (Great strategy, saves heaps of time in testing cycles). Everything's going smashingly, then when I first change the test site to the new theme, it comes up with the dodgy message listed in the title.

    Googling found a few people with some unique ideas – Change the name of the theme (puh-lease), renaming the theme folder (uh-huh) and delete the cached theme using SPD (this was plausible at least, but didn't help me resolve the issue).

    In the end, I had to go in to the codepage value within the inf file in the themes folder to a different value (anything but what it was) and it resolved the problem. Thinking about it now, I probably could have deleted the file altogether as generally it's only used for multilingual environments so they can "read" the theme name in their native language, and has nothing to do with the theme functionality. One trap I'll remember for next time when copying a theme folder as a starting point for customisation.

    Thanks for the tip, Aris!

    May 26

    Search Not Working? Might be that an update has clobbered it…

    I’m starting to hit this problem so much lately that it’s now one of the first things I look for when a client calls me and indicates their search is not working properly. It also seems to affect authentication in other cases, and is more likely to occur in demo environments where everything sits on the one box (including the browser being used to access the site) – Mark Harrison's hit the issue recently too…

    A security bulletin came out on November 11th 2008 that discusses a remote code execution vulnerability. Almost all versions of Windows are affected by this vulnerability. SharePoint systems on <= Windows 2003 SP1 or Windows 2008 server have this patch installed. Implementing the patch causes an indexing server to fail when it attempts to index a site that is:

    • Hosted on the same server and
    • Uses a host header / DNS entry instead of a machine name and
    • Is being indexed using aforementioned DNS Entry
    • The site runs under a named account (an AD or Local Computer account, not say “Network Service”)

    Symptoms:

    • You will see errors in the indexing log that indicate access is denied to the web sites
    • You will see Errors in the Windows Security log that indicate Event ID 537 has occurred – this error will list the user as the crawling account used by your indexing engine, a logon type of 3 and a Logon process containing some unusual characters such as Ðùº
    • You will not be able to search for content that would normally be returned on those sites

    The text from the error is:

    "Access is denied. Verify that either the Default Content Access Account has access to this repository, or add a crawl rule to crawl this repository. If the repository being crawled is a SharePoint repository, verify that the account you are using has "Full Read" permissions on the SharePoint Web Application being crawled."

    Cause:

    The patch that was rolled out as part of the 2003 Service Pack and with Windows 2008 Server disable the service account’s ability to use cached authentication credentials to access the local resource – this prevents an authentication token playback exploit that the patch fixed.

    Resolution:

    There are 2 resolutions, neither of which involve modifying SharePoint or the security granted to the account. On the server running the indexing service, you need to enable a registry key that either:

    1. Enables an authentication request to be cached for a specific DNS name, or
    2. Enables all authentication requests to be cached for that computer (disabling the hotfix’s change).

    Option 2 needs a reboot. Now let’s say that you have a server farm. Every time you add a new web application with an Alias and you go with option 1, you need to apply the Registry update so that the site can be indexed. In most enterprises, this would be "discovered" post-Search implementation until it happened so often that it became annoying - and a process was put in place to update the registry key along with creating a search site. I can’t see many people buying this "Best Practice" option unless they work for a bank or somewhere with sensitive information. Here is the info from KB Article 896861:


    Method 1: Specify host names
    Note: Microsoft recommends that you use this method.
    To specify the host names that are mapped to the loopback address and can connect to Web sites on your computer, follow these steps:
    1. Click Start, click Run, type regedit, and then click OK.
    2. In Registry Editor, locate and then click the following registry key:

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0

    3. Right-click MSV1_0, point to New, and then click Multi-String Value.
    4. Type BackConnectionHostNames, and then press ENTER.
    5. Right-click BackConnectionHostNames, and then click Modify.
    6. In the Value data box, type the host name or the host names for the sites that are on the local computer, and then click OK.
    7. Quit Registry Editor, and then restart the IISAdmin service.
    Method 2: Disable the loopback check
    Follow these steps:
    1. Click Start, click Run, type regedit, and then click OK.
    2. In Registry Editor, locate and then click the following registry key:

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

    3. Right-click Lsa, point to New, and then click DWORD Value.
    4. Type DisableLoopbackCheck, and then press ENTER.
    5. Right-click DisableLoopbackCheck, and then click Modify.
    6. In the Value data box, type 1, and then click OK.
    7. Quit Registry Editor, and then restart your computer.


    This is just one of those Search Issues that is not immediately clear… hopefully this saves someone more troubleshooting time than it cost me :)
    The only other mention I have seen of this issue specifically relating to SharePoint was here - http://stabilissolutions.blogspot.com/2009/02/sharepoint-2007-search-access-denied.html – Thanks Darren for pointing me in the right direction :)

    Brad

    May 23

    Logging anomalies in SharePoint Designer Workflows

    My mate Yaohan keeps telling me to “man up” and learn how to use Visual Studio and Windows Workflow Foundation to build SharePoint workflows. I just can’t bring myself to do it – It would be such a major transition for me that the rest of my work would suffer.

    Step Completion
    Something I’ve been noticing recently (while using my girly-girl SharePoint Designer workflows) is how the logging to workflow history behaves a bit strangely. When doing SPD workflow, the history log entries don't get written until the end of the step they’re created in... so if your workflow crashes out near the end of say step 6, the last log entry you'll see is the last one written on step 5. Sometimes this makes it hard to troubleshoot where the issue actually is.

    Serial Actions do not complete in order
    Also running actions in serial does not mean things complete in order. As an example: just because within a single workflow step “Action 1” creates an activity list item and assigns the item id to a variable, doesn't mean that “Task 2” (which writes the variable to another list item) will be writing any useful information (When it tries to read the variable, it reads an empty string and replaces it with ???? in some cases). This is because the reading of a variable happens a lot faster than the creating of an activity – and it looks like SharePoint is still creating the list item when it hands back control to the workflow. The only way to guarantee it (as far as I can tell) is to read the variable on a subsequent step.

    Commit & Proceed
    Putting these 2 issues together, it seems that there must be some kind of "Commit and proceed" phase at the end of each step. Having discovered these two anomalies, I've started to change the way I build workflows now to leverage this. I now try and spread my workflow out between multiple steps, with each step containing a decision (or conditional test) and a single action or activity for each “branch” of the decision (Think "Baby Steps").

    Custom Workflow Logging
    Also, I now use a custom list to log workflow progress (and configure the behavior of your workflows) for more complex workflows, or ones that need a permanent audit trail – this provides me with a permanent log (vs the history log which “cleans up” events after 60 days) and allows me to change the workflow behaviour without modifying the workflow. For example, if you build a workflow that emails a report to some execs, set a “debug” flag in a list or read the recipients from a list you’ve created. That way you can do all your testing with your own email address and set it up for Executive receipt once you have finalised it and ironed out the issues. Paul Galvin discusses the 60-day Workflow history log in more detail here, including recommending the creation of a Custom list to create a workflow log. Some other people have strong feelings on the thinking behind this “auto-cleanup” feature too, so much so that Microsoft have released instructions on how to disable the cleanup job.

    Brad

    May 22

    Whoopsie! Service Pack 2 has a 180 day timebomb…

    Sometimes things just don’t go according to plan. It looks like SharePoint’s latest service pack has a 180 day timebomb in it. There’s a patch coming, and the workaround is pretty easy – you just enter your key again.

    I feel sorry for the SharePoint dev team – they do such a good job, but people often remember the things that do not go so well… Hopefully this one will be quickly fixed and just as quickly forgotten… At least it does not affect people immediately.

    More details can be found here - http://blogs.msdn.com/sharepoint/archive/2009/05/21/attention-important-information-on-service-pack-2.aspx

    UPDATE: There's a hotfix available to fix it now. check it out here - http://support.microsoft.com/default.aspx?scid=kb;EN-US;971620

    May 18

    Bypassing the recycle bin

    Testing can be so much fun. You build up sites, fill them with rubbish data, tear them down, rinse and repeat. Recently I had a site I'd put a fair bit of effort into and the client loved it. Problem - how do I leave the site as it is, but remove all the bad data?

    Option 1: Once you have deleted all of the bad content from the lists, etc, you can go page by page through the recycle bin, 50 at a time and delete them from there... then do the same in the site collection recycle bin (this takes too long, gives me RSI)

    Option 2: You could go to Central admin, and under the web app delete everything in the site collection by switching off and on the recycle bin (not granular enough - deletes all recycled objects in all site collections within that Web app)

    Option 3: You can go to the recycle bin of interest, then enter the following into the address bar (by itself):
    javascript:emptyItems();
    Woah! Files in the recycle bin vanish, and people would not even know they existed. Lucky users don't know that this exists... oh wait, now they do :) - thanks to Jag from OBS who blogged this "gem" - http://itfootprint.wordpress.com/2008/03/14/empty-sharepoint-user-recycle-bin/ 

    Option 3 wins hands down.

    Brad

    May 17

    Can’t get the Room and Resource Reservation system working?

    Came across an issue with a client when deploying the Room and resource reservation system on a client site (you know, the one from Microsoft’s “Fab 40” collection with all of those pesky issues).

    Anyway, it was installing fine, no error, could create an RRR site… but it was not booking the rooms properly. Huh? I know about the fact you cannot delete a reservation (fixed that issue – future post), or that there’s a bug when creating resources in any locale except US (bug in the Workflow, fixed that)… but being able to book the same resource for the same time to 2 different people? Surely even the simplest test would have picked this one up!

    Turns out that there is a column that this “Conflict Detection” feature relies on… and if you try and install the application and this column exists as a site column for a parent (or a site collection column) then you’ll run into this. Problem is, I cannot remember the name of the column… and the environment is one I no longer have access to (so I cannot find out). I know this post does not have a specific resolution, but if you have installed this Template, and you find that you can “double-book” meeting rooms, check to make sure that the necessary feature is active – If it’s not, the error you get when you try to activate it will likely indicate a column name conflict.

    Cheers! B

    SharePoint 2010 Preliminary Requirements

    Some details have started to come out about the requirements for SharePoint 2010.

    Running it:

    • It can only be installed on 2008 Server
    • It will only be released in 64-bit, which means…
    • You can either install it on Windows 2008 64-bit OR Windows 2008 R2 64-bit

    Information Store:

    • You can only use SQL 2005 OR 2008
    • ONLY 64-bit versions of SQL 2005 or 2008 will be supported

    Using it:

    • You can only author content using a Windows machine and IE 7, IE 8 or (wait for it) Firefox 3 (I know, no way, right?) – Essentially the Browser MUST be XHTML 1.0 Compliant.
    • IE 6 will continue to be supported as a level 2 browser, along with FF 1.5, 2, Safari 3, etc… also IE 7, 8 and FF 3 will be supported as Level 2 browsers on other Operating systems (although they indicate that they’re working on removing the restriction on the OS).

    More info can be found here… - Announcing SharePoint Server 2010 Preliminary System Requirements

    Brad