Writing Complex Workflows
May 2, 2008
This isn’t really going to be an in-depth technical post… just a brief description of a change of mindset that our Notes team needed to realize to work with SharePoint:
In Notes/Domino, we are used to a single agent holding all of the logic for a complex workflow. Between LotusScript, Java, Script Libraries, even calling out to system DLLs, an agent can become quite a sizable chunk of code. And we like it that way – it makes the agent list a readable, maintanable catalog of what code runs in each application. New developers can take a quick look at forms and agents and understand how an app works.
So in SharePoint, we were incorrectly expecting to see something similar – a single container that holds all the logic for a complex process. What we are finding is that expectation is making us fail at appreciating what SharePoint can really do. If we accept that a complex process may hold dozens of similar workflows to be called by separate lists, and come together into the full process, we are able to do much more work.
As the perfect example, from the day we sat down in a SharePoint training class, we were in shock that you could not have a workflow branch its logic based on form data. At least, not via the SharePoint designer. What never ever occurred to us is that you branch your logic before the workflow starts. Each branch is its own workflow object, and you call the proper one.
Our mindset needed to change from expecting a single object as the “parent” of all logic, to thinking of each object as its a single function of the greater whole, even though there is no place in the interface to point at as the container for the whole app.
May 2, 2008 at 6:37 am
Good point. I’ve found there are a lot of partially similar concepts between Notes and SharePoint like this. Often Notes is easier to work with up to a certain level, and with SharePoint you have to do some custom programming to get to that level. SharePoint’s strength, though, is with custom programming you won’t run into limits like you do with Notes.
The views that display lists are ’sort of’ like the views in Notes at a basic level. But trying to do something more fancy like grouping list items by a multi-value field can’t be done with the ListViewWebPart. It is a cakewalk in Notes of course. However, you could build your own WebPart to work the way you want it to. You could even build it to display rich text in the view, something that Notes can’t do (at least not the version I’m on)
May 26, 2008 at 10:00 pm
I have been working with a consultant at a client site who is trying to build a workflow application on SP. So far, I have been less than thrilled by the results, but I have a sneaking suspicion that has more to do with the developer than it does with SP.
One question that did come up when working through the SP prototype was how many levels of access does SP have? In Notes/Domino, we are used to having Readers, Authors, and Editors, but in SP I have only seen Readers and Editors, no Authors.
Is the idea of an Author, who can create documents, edit and delete their own documents, and read everyone else’s documents, foreign to SP or it is something that the developer screwed up? Is ownership of an item in a list able to be added to a custom form without a lot of .Net or is this something that I have to work around?
I cannot imagine doing any workflow in an application without the concept of ownership and Authors, so I have to believe it is something that is relatively easy to add in.
May 27, 2008 at 4:27 am
@2) SharePoint security does have those concepts, but they are managed differently. SP Security is actually extremely granular, with a few dozen options on what you can let the user do/not do. These options are “compiled” up into labeled security groups… Full Control, Contribute, Read, Restricted Read, etc.
I’ve never tried to set up the equivalent of “Author” access, but it would be done by creating a new group of security options at a site collection level. I think that is done from the Actions menu at the root of the collection, but I haven’t gone there in months so I am not 100% sure.
In any case, I am 80% sure it is possible, but I’d have to sit down and play with it to give specific guidance on the steps to make it happen.
June 18, 2008 at 8:44 pm
Somehow i missed the point. Probably lost in translation
Anyway … nice blog to visit.
cheers, Contrapuntally.