I am a total newbie on SharePoint, workflows, InfoPath technology... I had never heard of any of it until about two weeks ago.
Our environment is all 2007 - SharePoint, InfoPath, everything.
I have published an InfoPath form on a SharePoint site created via SPD, and have bound that form to a workflow, also created via SPD. So far so good.
The form in question goes through a series of phases: 1 - Gather requirements 2 - Initial review 3 - Work Effort Analysis 4 - CCB review
Phases 1 and 3 especially can take a long time (days), so the user must be able to save the form as often as necessary during those phases, without the workflow doing anything with it.
But the WF needs to know when the user is done with any given step.
The same form is used during all phases... different people add different content at different times; all of it going into the same form instance.
I've read many posts here about inserting a hidden field in the form to track when the user is done via a Submit button vs just saving the form. OK in concept, but so far I've seen no explanation of the details of making this work.
Consider this scenario:
User makes updates to the form (say adds requirements) and saves the form. Then the user decides they are done, and selects the Submit button. So the button rules can set the hidden status appropriately, but now the form has changed again and must be saved again, ideally without further user action, so the WF can detect the change in status and go to the next step.
What is the best known method for handling this situation? It seems like I need to be able to do the following in the Submit button handler or rules:
a) Update the status field to the appropriate next status, for use by the WF. b) Save the updated form, transparently to the user. Not create a new one; save the current one, without changing the originator.
I can update the status field OK, but I'm stuck on step b). How to save - not submit as in create new - a form programmatically.
As hard as it has been to find the answer to this, I wonder if I'm off on the wrong track all together?