-
Jul 23rd, 2012, 05:56 AM
#1
How to persist flow execution data on Spring Web Flow 2.3
Hi @ll,
First of all I have to say that I was searching hard about this topic since weeks ago before creating this post. I think there is not too much information about it and what I find confuses me. At the same time, I have created this post with the intention of helping other people that may have the same problem.
Well so here we go... I am currently defining the architecture specification for an app and I was thinking about using Spring Web Flow because it could be helpful for managing navigation on this app, there are some UIs based on complex wizards.
On these wizards, it is required that the user is able to pause the work he is doing for resuming later, perhaps in 30 minutes, 1 hour or even days further. For instance, one wizard has steps A, B and C; the user arrives step B and due to several reasons he can not continue working on next steps until tomorrow or after tomorrow, for example.
I know that Spring Web Flow pauses and resumes flows automatically on every state, and even if you leave the flow and then come back by pressing the back button of the browser or using URL, the flow is restored at the same point it was. I know that it works this way by storing data in HTTP session, but what I really need is to resume the same way even if session has expired (please, anybody correct me if I am wrong). I think that I would need to store or persist the same data that is stored on HTTP session (DB would be the best), the question is how.
Is it possible to do? Does Spring Web Flow provide any tool/mechanism to do what I need? Did not anybody have the same requirement than me?
At the moment I have some clues that make me think that probably exists a way of achieving it:
- FlowScoped PersistenceContext: in the SWF you can textually read "To support saving and restarting the progress of a flow over an extended period of time, a durable store for flow state must be used. If a save and restart capability is not required, standard HTTP session-based storage of flow state is sufficient". (http://static.springsource.org/sprin...l/ch07s02.html).
- Interface FlowExecutionStorage: it seems that there are some strategies for storing the flow execution data and the default implementation stores on HTTP session. Perhaps exists the appropriate implementation for storing the flow's data in DB or even implementing you own strategie. (http://static.springsource.org/sprin...onStorage.html)
It is the most relevant information that I was able to find related with the topic. I hope it is enough for making others understand the problem that I am trying to solve.
PS: Feel free of making suggestions for improving the title and content of this question, it could help others.
Thank you very much in advance.
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules