I think you mean in an action-state prior to the end state right?
yes you are accurate... but it does not go to a view state... if the action state expression encounters errors then it goes back to the previous view state.
if it is successful it directly goes to the end-state.
And I tried your redirect idea
Code:
<end-state id="finish" view="externalRedirect:../apply_dues.htm?_flowId=complexDues-flow"/>
still it goes back to the previous conversation
I am surprised no one else faces this issue, may be because their flow executions are not as long as mine.
FWIW the entire flow definition
Code:
<?xml version="1.0" encoding="UTF-8"?>
<flow xmlns="http://www.springframework.org/schema/webflow"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/webflow http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd"
start-state ="complexDuesSearchForm">
<on-start>
<evaluate expression="complexDues.setupReferrer"/>
<evaluate expression="complexDues.setupForm"/>
<evaluate expression="complexDues.setupReferenceData"/>
</on-start>
<view-state id="complexDuesSearchForm" view="complexDuesSearch">
<on-entry>
<evaluate expression="complexDues.setupSearchPage"/>
</on-entry>
<on-render>
<evaluate expression="complexDues.initMenuItem"/>
</on-render>
<on-exit>
<evaluate expression="complexDues.bind"/>
<evaluate expression="complexDues.processSearchForm"/>
<evaluate expression="complexDues.doSearch"/>
</on-exit>
</view-state>
<view-state id="complexDuesSummaryForm" view="complexDuesPayrollSummary">
<on-entry>
<evaluate expression="complexDues.getMemberResults"/>
<evaluate expression="complexDues.setupSummaryPage"/>
</on-entry>
<on-render>
<evaluate expression="complexDues.initMenuItem"/>
</on-render>
<on-exit>
<evaluate expression="complexDues.bind"/>
<evaluate expression="complexDues.updateMemberMaps"/>
</on-exit>
</view-state>
<view-state id="complexDuesSummaryMemberPage" view="complexDuesPayrollSummary">
<on-entry>
<evaluate expression="complexDues.pageMemberResults"/>
<evaluate expression="complexDues.setupSummaryPage"/>
</on-entry>
<on-render>
<evaluate expression="complexDues.initMenuItem"/>
</on-render>
<on-exit>
<evaluate expression="complexDues.bind"/>
<evaluate expression="complexDues.updateMemberMaps"/>
</on-exit>
</view-state>
<view-state id="complexDuesSummaryMemberSort" view="complexDuesPayrollSummary">
<on-entry>
<evaluate expression="complexDues.sortMemberResults"/>
<evaluate expression="complexDues.setupSummaryPage"/>
</on-entry>
<on-render>
<evaluate expression="complexDues.initMenuItem"/>
</on-render>
<on-exit>
<evaluate expression="complexDues.bind"/>
<evaluate expression="complexDues.updateMemberMaps"/>
</on-exit>
</view-state>
<subflow-state id="memberUpdate" subflow="member-flow">
<input name="subflow" value="flowScope.subflow" />
<input name="indOrgCode" value="flowScope.indOrgCode" />
<input name="memberId" value="flowScope.memberId" />
<input name="relatedId" value="flowScope.relatedId" />
<output name="mastId" value="flowScope.mastId" />
<transition on="finishSubflow" to="processMemberFlow"/>
</subflow-state>
<action-state id="setupSubflow">
<evaluate expression="complexDues.setUpMemberFlow"/>
<transition on="success" to="memberUpdate"/>
<transition on="error" to="complexDuesSummaryForm"/>
</action-state>
<action-state id="processMemberFlow">
<evaluate expression="complexDues.processMemberFlow"/>
<transition on="*" to="complexDuesSummaryForm"/>
</action-state>
<action-state id="processSummaryForm">
<evaluate expression="complexDues.processSummaryForm"/>
<transition on="success" to="complexDuesSearchForm"/>
<transition on="error" to="complexDuesSummaryForm"/>
</action-state>
<end-state id="finish" view="externalRedirect:../apply_dues.htm?_flowId=complexDues-flow"/>
<global-transitions>
<transition on="search" to="complexDuesSummaryForm"/>
<transition on="searchMember" to="complexDuesSummaryForm"/>
<transition on="pageMember" to="complexDuesSummaryMemberPage"/>
<transition on="sortMember" to="complexDuesSummaryMemberSort"/>
<transition on="process" to="processSummaryForm"/>
<transition on="cancelDues" to="complexDuesSearchForm"/>
<transition on="editMember" to="setupSubflow"/>
<transition on="addMember" to="setupSubflow"/>
<transition on="cancel" to="finish"/>
</global-transitions>
</flow>
thanks.