Sharepoint By Dummies

See Also:

If only Microsoft had a wishlist

leave a comment »

There are various things we often get asked to do with Sharepoint  which require functionality simply not available in a supportable way in Sharepoint (not even 2010).  I want to emphasise the word supportable there.  There are ways to fudge, cludge, bodge etc these things but they either work inconsistently or require you to do things that ensure that the system will not be supported and could fall apart if the servers ever get patched.  A previous administrator on one of our WSS 3.0 (aka Sharepoint 2007) sites implemented some things this way that means that we cannot migrate the site to Sharepoint 2010 without rebuilding it pretty much from the ground up (and will lose the functionality as you still can’t do it supportably in 2010).  The hosting supplier for some of our externally hosted sites said they cannot patch the server those sites are on without moving them to a dedicated farm because another customer on the same farm is using cludged functionality they know will break if they apply the patch.

Some features I’d like to see (here I’m looking at both Sharepoint and Sharepoint Designer):

  • Run workflows at set time and date (with option to recurr).  We get a lot of requests for things that need this but haven’t found a way to do it in a supportable manner.  We’ve found a number of ways to cludge it but they’re not reliable and don’t persist over server reboots.  Basically we’re looking for a CRON/AT type functionality within Sharepoint.  This would only be relevant to Site workflows.
  • Allow workflows to loop, in particular as a way to step through lists (encapsulating Document Libraries and similar as a special case of list).  Sometimes you want to step through a list and do something with each item, probably involving some sort of conditions (While {there are list items to process}, Where {condition is true} Do {some action} Until {end of list}).   Currently a site workflow can search a list for items where one field matches a certain value and process the first one it finds.  There are cludges to do this but they are unreliable and rely on the processing changing the fieldthat is matched on (else they’ll just keep hitting the same record).
  • Array variable processing in workflows and parameters.  This links to the above item of looping, as you loop through the list you build an array which after you exit the loop you use in a subsequent action.
  • Proper date arithmatic in workflows, filters and conditional formatting in XSLT views.  In workflows you can compare a date field to the current date or to some fixed date and get equals or not equals.  In filters and conditional formatting you can similarly compare to the current date or a fixed date but this adds in greater than or less than.  What you can’t do is compare to  X days before or after current date.  What we’re looking for is add the grater and less than comparison operators to workflow and add to all the ability to do arithmetic manipulation on what the field is being compared to.  There are a number of cludges for the arithmetic manipulation part,  mostly including a calculated field and comparing that to current date and they usually work but they’re inelegant and can be a maintenence nightmare.
  • Nested groupings in filters and list comparisons (IN and NOT IN) in filters and increase maximum filter size.  Currently it is only possible have one level of grouping, you can’t have a group within a group.  A number of times we’ve run into situations where we have to have a filter which implements something like “(((field1=P1 OR field1=P2 OR field1=P3) AND field2 > [Current Date]) OR ((field1=P1 OR field1=P2 OR field1=P3) AND field2 is null AND (field3 < [CurrentDate] OR field4 = ‘TBC’))) AND field5 not equals ‘CLOSED'” where P1, P2 and P3 are parameters passed in from the URL or another part of the page.  This, as can be seen, requires nexted grouping and is quite large, easily blows the maximum filter size.  Adding in list comparison operators would shrink it somewhat (“field1=P1 OR field1=P2 OR field1=P3” would become “field1 IN (P1,P2,P3)”) and if array processing was implemented would allow the option of parameter lists of arbitary size to be processed by passing a one dimensional array as the parameter.

An example of a customer request that would use many of these is:

On the 15th of each month after close of business (20:00) read the risk register.  Identify all risks which have not been updated in the past 30 days and the assignees and owners of those risks.  Send each risk assignee one email listing each risk they are assigned to that has not been updated in the past 30 days telling them to update them with actions taken since the last update within 5 working days.  Send each risk owner one email listing each risk they own that has not been updated in the past 30 days, identifying the assignee of each risk, asking them to ensure that the assignee updates the risk  within 5 working days.

With access to the backend database this is probably not too hard to do programmatically, but it can’t be done from within Sharepoint and SPD right now.


Written by stephenboothuk

September 2, 2011 at 4:35 pm

Posted in Uncategorized

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

Speeches I Would Have Given

What I would have said at conference

Blogging about dyspraxia, aiming to raise much needed awareness a bit at a time as well as hopefully helping others along the way.

David Hunt, PE... Mechanical Engineer on the loose!

VALUE = Creativity + Diverse Experience + Critical Thinking

Not Literally Productions

Comedy, parody, tutorials and more!


A personal blog about having Asperger's

Dementia and Elderly Care News

News and research of interest to people involved in Dementia and Elderly Care

Marc D Anderson's Blog

A Knowledge Management Zealot Speaks Out

Codeless Solutions for SharePoint

Bryon Wyly is a SharePoint Developer dedicated to finding the limits to out-of the-box SharePoint solutions

the political blog of gordon lyew

SharePoint Business Analyst

Just another weblog

%d bloggers like this: