Here's my virtual scenario :
I have a page to view a product and a link on this page (h:outputLink which points to the first page of the pageflow - not a action) to buy this one.
When the user want to buy this product and click the link, I start a long running conversation with a pageflow.
Note: a SFSB is used to manage this action.
(the begin-conversation is declared in the pages.xml).
Everything works fine with synthetic conversation id.
But the user can start 2 buy process in 2 browser tabs ...I don't want that :-) (don't ask me why)
Here's my wish : I would like to use Natural Conversations with a pageflow.
Here's my problems : (you'll see that the problems list is much longer than the wishes list) :
- when using Natural Conversation and 2 process in 2 tabs, the first process to finish destroy the conversation context (via an @End annotation).
In the second process, if I choose
next action (pageflow), I got a crash.
The Natural Id is provided by the SFSB which outject the product and the product id IS the Natural Conversation ID.
(01) Why the
no-conversation-view-id of the pageflow is not triggered ? (is the natural id provider called before the check of the conversation ?) ?
(02) Do I have to declare each page of the pageflow into the pages.xml with the conversation attribute ?
(03) Do I have to put the s:conversationName tag inside all the h:commandButton of the pages of my pageflow ?
(04) The natural conversation - the EL param-value attribute in the conversation declaration - is only a provider (a getter) ? or Seam set the value ?
(I think of it as a provider and Seam get the conversation id and set it into the Conversation object (don't know exactly which one : ConversationEntry perhaps, I didn't check that yet) ?
(05) Is It a good idea to use natural conversation for a pageflow ? (depends of the use case surely...) ?
(06) Do I need to use an h:outputLink to start the process and not a s:link. The s:link, seems to me, try to resolve the natural conversation id to join it. But my id provider is the SFSB and it's not here until the pageflow starts... so I got a crash (id is null). Is the only solution to use an h:outputLink tag ?
Thanks for your help.