This content has been marked as final.
Show 1 reply
-
1. Re: Workspaces and Concurrent Conversations
harpritt Jul 16, 2007 6:57 AM (in response to harpritt)Hi ya
Got this one licked! Im not entirely sure what the exact reason is but i will try to explain what i had and what i did to correct it.
THIS IS WHAT I HAD
Symtoms : User A on Browser A would get logged out by user B on Browser B....@Stateful @Name("ticketSystem") @Conversational public class TicketSystemAction implements TicketSystem { @In(required = false) @Out(scope = BUSINESS_PROCESS,required = false) ChangeRequest changerequest; @In(required = false) GsmsMetaData gsmsMetaData; @In(required = false) NewGSMSData newGsmsData; @In(required = false) RequestState requestState; @In(required = false) RequestReference requestReference; @In User user; @Begin public String newTicket() { if (changerequest.getCrAction().equals("EDIT")) { return "editdoc"; } if (changerequest.getCrAction().equals("NEW")) { return "newdoc"; } if (changerequest.getCrAction().equals("MOVE")) { return "movedoc"; } if (changerequest.getCrAction().equals("DELETE")) { return "deletedoc"; } if (changerequest.getCrAction().equals("OTHER")) { return "other"; } //throw exception return "home"; } @End @CreateProcess(definition = "changerequestprocess") public String submitTicket() { //CREATE Change request //PERSIST IT getChangeRequestDAO().saveCr(changerequest); return "home"; } @BeginTask public String view_cr_waiting_appapproval() { return "viewcrwaitingappApproval"; } @EndTask(transition = "accept") public String appAcceptcr() { return "home"; } @EndTask(transition = "reject") public String appRejectCr() { return "home"; } @BeginTask public String view_cr_waiting_editor_revise() { return "view_crwaiting_edrevise"; }
THIS IS WHAT I DID
I Moved the methods invold in conversational scope into a seperate class....@Stateful @Name("createChangeRequest") public class CreateChangeRequestAction implements CreateChangeRequest { @In(required = false) @Out(scope = BUSINESS_PROCESS,required = false) ChangeRequest changerequest; @In(required = false) GsmsMetaData gsmsMetaData; @In(required = false) NewGSMSData newGsmsData; @In(required = false) RequestState requestState; @In(required = false) RequestReference requestReference; @In User user; @Begin public String newTicket() { if (changerequest.getCrAction().equals("EDIT")) { return "editdoc"; } if (changerequest.getCrAction().equals("NEW")) { return "newdoc"; } if (changerequest.getCrAction().equals("MOVE")) { return "movedoc"; } if (changerequest.getCrAction().equals("DELETE")) { return "deletedoc"; } if (changerequest.getCrAction().equals("OTHER")) { return "other"; } //throw exception return "home"; } @End public String submitTicket() { //CREATE CHANGE REQUEST getChangeRequestDAO().saveCr(changerequest); TicketSystem TS = new TicketSystemAction(); return TS.startTheCrProcess(); }
This was a hunch that worked, Id really like to know why it did what it did but i dont have the time. Ill post again when i work out.....
...