Waiting on SharePoint list items for continuing workflow


Badge +1

Hi,


I have a scenario where I need to monitor a SharePoint list to check whether certain documents have been updated. A brief description of the workflow is:


1. Post multiple copies (e.g. three forms for three vendors, this number is arbitrary) of an InfoPath form to an extranet document library. After posting the documents, my workflow waits (maybe by using an asynchronous server event??).


2. When all 3 vendors have updated their respective documents, I wish to invoke my primary workflow (that has been waiting) so that it can proceed onto the next step.


I would appreciate any ideas/thoughts around this type of a solution.


Thanks in advance,


Ali


6 replies

Badge +8
This is very much possible by using the sharepoint events integration wizard
Badge +1

Hi,


That sounds wonderful. Is it possible for you point out any further steps or examples? I am having a difficult time in starting the solution. Not sure whether I need two different workflows or a single workflow can achieve all of this etc.


Thanks,


 Ali

Badge +8
Below the infopath integration wizard there is something called sharepoint events integration wizard, that wizard is capable of implementing what you want to achieve
Badge +1

Ok, just so that I follow this a bit better.


1. Primary workflow uploads 3 (arbitrary number, could be 1 could be 10) documents to an extranet document library


2. Primary workflow must wait for all documents uploaded in step 1 to be updated (lets say their status should be marked as Completed)


3. Only when all documents uploaded in step 1 have been "Completed" can my primary workflow continue


Will the SharePoint events integration wizard be able to wait on any number of documents (the number will only be known at runtime)? How should the workflow wait for these documents? Should I assign the task to multiple destination users at runtime or should I use an asynchronous server event, in which case who signals the process to continue? Ultimately, the documents are stored on an extranet making reverse communication from extranet to intranet impossible.


Any ideas?


Ali

Badge +8
I think this can be achieved by using a start rule on the activity where the workflow should wait. Try playing the activity wizard. ill think u ll be able to crack the solution. I have not done this personally and you could share it once you are done
Badge +1

Solution we implemented:


Key point: Instead of trying to design some sort of a crazy polling (loopback) activity we ended up using an Asynchronous Server Event.


1. All documents were posted to the extranet document library


2. After step 1, the workflow moves on to an Asynchronous Server Event which puts it's serial number into a DataField that can be accessed later to complete the activity and just waits.


3. BizTalk monitors the external document library and invokes a web service when the document is updated.


4. The web service processes the changes, incorporates them into a InfoPath form that is residing in the waiting workflow's XmlFields. The service checks to see if all responses have been received (by manipulating the form's data source. The form contains a repeating node which repeats as many times as the number of outstanding responses. Each node contains an attribute called "isProcessed". Once all nodes have their isProcessed attribute set to true, the workflow is ready to move on).


5. When all changes have been incorporated, the web service opens the sleeping event and completes it, making the workflow move onto the next step.


Ali

Reply