Tuesday, December 28, 2010

Emailed HTML Rich Text Column Relative URLs

Scenario
  • You have a list with a multi line text column with Enhanced Rich Text.
  • The item contains links from the current server.
  • You are emailing the contents of that column via SharePoint Designer 2007 Workflows
Issue
  • The hyperlinks in the email do not work.
  • The server name was automatically stripped from the URL, making a relative path.
Resolution
  • Workaround:
    • Add the following note to the field description notifying users of the problem and the workaround.
      • "Use http://TinyUrl.com for hyperlinks and images on this site.  This will prevent emailed relative links."
    • This works because SharePoint only strips URLs it recognizes as local URLs
      • These are usually defined in the Alternate Access Mappings
    • You can use any URL redirector
  • Fixes:
    • Use Visual Studio Workflows and replace the Relative URLs with Absolute URLs
    • Intercept the outbound emails (on the SharePoint or Email servers) and replace
    • Use a custom Workflow Action that prepends the servername into the URLs
    • Use a different field type.  Try different custom Rich Text editor columns.

Monday, December 6, 2010

Help Desk Template Sealed Columns

Scenario
  • You wish to install the MS Fab 40 Help Desk template.
  • You need to change the values in, description of, or delete the Status, Priority, or KBArticle choice or lookup columns/fields.
Issue
  • These columns are Sealed in the list definition. Therefore, you cannot delete or edit them.
    • Note: The Priority column seems to inherit initial values from the standard Priority site collection column
Resolution
  • If you haven't done much with the template, you can unseal the columns in the site definition.  You must do the following on each FEW server.  You must then recreate any ServiceRequest lists.
    • Navigate to C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12\TEMPLATE\FEATURES\HelpDeskServiceRequestsList\servicerequest
    • Edit schema.xml
    • Replace all instances of Sealed="TRUE" with Sealed="FALSE"
  • If you have made changes, you can unseal all columns except Priority using SharePoint Manager 2007.  Priority can be hidden from forms and views or may be removed programatically.  Or alternatively, you can change the list definition as above, create a new ServiceRequest list and move the items from the old list to the new.