Okay, so I’ve not been blogging much recently as I have been sidetracked onto exciting deployment tests for the system we’ve been working on. However, I did come across this interesting issue…
Normally, if I were having K2 BlackPearl on the same box as SharePoint, I would install SharePoint first, then K2. This seems to work without much fuss, and is the right way of doing it.
However, this time I had installed K2, and was now trying to install SharePoint (long story). However, SharePoint’s installer kept failing (using the SP2 with cumumlative updates to April, in a slipstream installer). It simply would not complete successfully.
Eventually, we tracked this down to the SQL 2005 Report Viewer. We uninstalled (via ‘Add an Remove Progams’) the ‘Microsoft Report Viewer Redistributable 2005′ program, stopped the K2 BlackPearl service, and tried installing SharePoint again. It worked.
Of course, the idea would be, don’t have the two on the same box. But just in case someone else tries the same thing.
We’ve got an interesting requirement. We’re using a SharePoint list to store documents which are related to K2 SmartObjects. One of my colleagues is building a custom user control that’s going to show information from this SmartObjects, and associated documents. We want to allow users to
click to add a document to our smart object entity
Read his post first; this is just my thoughts. Done? Good.
Robert Bogue makes some good points. I totally agree with him on the second point – Workflow History isn’t an Audit. However, this does sort of highlight the crux of the issue – that there is no Audit. One is mentioned in his previous post, but I’ve never managed to figure out what he meant by that, or to find a decent audit in Workflow that I didn’t have to build myself. And I just keep thinking that this is something that a plug-in tracking service ought to be able to provide…
I guess my ‘What were they thinking!’ isn’t that there is the auto-cleanup, but rather why didn’t Microsoft offer an audit mechanism out of the box. I asked Lawrence Liu about that once at a SUGUK meeting – he said that SharePoint Workflow “wasn’t intended to be an enterprise solution”. Fair enough, if that’s what they want to do (and to leave space for the likes of K2 and Skelta), but then stop advertising SharePoint as having user configurable workflows.
A number of our customers have gone through the logic of:
SharePoint is an Enterprise level system
It has workflow built into it
Therefore we can use workflow to support our enterprise’s processes
They’re pretty disappointed to discover that it lacks pretty basic things like audit. I can’t say I blame them either. But I digress.
Regarding his first point about configuring the timeout – writing an application isn’t a good general option. I’ve no doubt it works, but SharePoint administrators are necessarily programmers. Even if they are, there’s no guarantee that they’re good SharePoint programmers. The setting in the manifest – that I like. Don’t depend on your users being able to code their own solutions. Further, I don’t know how this would apply to SharePoint Designer workflows, though personally I steer clear of them.
So yes, I’d agree with Robert – it’s not a ‘Huge Issue’, but it is a problem.
So, I’d built a demo with a short-term licence key – one that expired at the end of December. This was unfortunate as the demo got moved to January. Anyway, what happened when the licence expired? Um, sudden workflow death. The workflow host ceased functioning – so my workflows which were in progress wouldn’t do anything, and even the worklists stopped functioning.
Hmm. Seems a bit brutal to me – I’d expected that the in progress workflows might be possible to continue, albeit that I wouldn’t expect to be able to start new processes. I suppose maybe it makes sense, ‘cos otherwise people would be able to still be using ‘in progress’ workflows for years afterwards, but it was a bit of a shock.
This problem proved a real puzzler for me – but the guys on the K2 underground came through with a good answer – the Application Pool Identity of the Moss Site Collection must be part of the Farm Administrators group. (Which makes sense when you think about it. The K2 web services are running under the App pool identity of the site collection, and they’re trying to deploy features to the farm…)
Unfortunately, I then suffered a second problem – and error of ‘Value cannot be null’ when trying to deploy a workflow associated with a SharePoint Content Type. Sadly, all this was worked on last minute just before Christmas, so I’ve forgotten a lot of what I did to my machine. I met with some of the guys from K2 who were very helpful, and we did quite a lot. My memories are:
Installed SP1 for [blackpearl]
Installed Office 2007 (I was in a hurry and forgot, okay?)
Stopped trying to associate the workflow with a content type and instead associated it with a specific list – which worked for the demo, but associating with the content type is a far, far cooler idea.
Gave more rights to K2 to some of the users. I had to give the App pool more permissions than I had, in order to allow it to display worklists, which also makes sense.
Sorted out a misconfiguration in IIS.
I’m sure I’ve missed other things, but it was so long ago now, I can’t quite remember. The only other thing I can remember doing was sitting around a lot waiting for everthing to work. The applications were quick enough when they’d been compiled, but that meant that the first time I hit some of the pages, well, there was a lot of waiting. And errors from timeouts. Particularly we had problems with contacting SQL Reporting Services from some of the K2 wizards, but found that if you waited a moment or two and then tried again then they were okay.
K2Underground is quite good, but keep an eye on my blog – I’m going to start writing about K2 in the development section.
It’s good, but it doesn’t help solve some long standing issues to do with storing data in workflow engines. I have had to implement my own data storage system alongside the K2 workflow in the project I have been working on for the last 6 months.