I have been making som e approval workflows, but am uncertain of what model to use. Hopefully some of you will contribute with your views of best practices for approval workflows.
My overall scenario is something like this:
1) Somebody creates a list item, and thereby triggers the approval workflow.
2) A task is created for the approver. Since the approver just looks at the mail and lazy-approves, he will not see the actual "live" list item. Therefor it is important, that the item cannot be changed while we are waiting for approval.
3) If the item is rejected, then the person who created the item must now be allowed to make changes to the item, and send it for approval again - again locking the item for updates while we wait for the approver.
4) When the item finally gets approved, it must still be locked for updates - we cannot allow changes, because we would then lose track of what was actually approved.
My dilemma is in regards to the locking down of update-rights. I read a alot of places, how we should avoid setting permissions on list item level, but I cannot see how this can be avoided, and still protecting the item from being updated while we wait for approval and again after approval.
Please share your thoughts :-)