The HTML Channel flow processor is configured in the toolkit configuration
file (btt.xml) as follows:
<kColl id="processors">
<field id="htmlProcessor" value="com.ibm.btt.automaton.html.DSEHtmlProcessor"
description="compound"/>
<field id="htmlState" value="com.ibm.btt.automaton.html.DSEHtmlState"
description="compound"/>
<field id="htmlTransition" value="com.ibm.btt.automaton.html.HtmlTransitionDescriptor"
description="compound"/>
</kColl>
The main-flow flow processor for this example is
defined as the HTML Channel processor. The "Gather Info" state from the state
diagram is defined as a subflow state, and is linked to the subflow definition
by the "financialInfoState" id value. This flow processor is defined in the
flow processor definition file (DSEPROC.XML) as follows:
<htmlProcessor id="creditCardsProc" context="creditCardsCtx"
conseqErrorPage="creditCardsConseqError.jsp">
<htmlState id="initial" type="initial">
<transitions>
<htmlTransition id="creditCards.start" targetState="creditHistoryOpState">
</htmlTransition>
</transitions>
</htmlState>
</htmlProcessor>
<htmlProcessor id="financialInfo" context="financialInfoCtx"
xValidation="com.ibm.btt.samples.html.FinancialInfoXVal">
<htmlState id="initial" type="initial">
<transitions>
<htmlTransition id="requestData.start" targetState="requestDataState">
</htmlTransition>
</transitions>
</htmlState>
<htmlState id="requestDataState" type="page" typeIdInfo="requestDataPage.JSP">
<transitions>
<htmlTransition id="OK" targetState="saveInfoOpState"
context="RequestDataState.OK.Ctx">
</htmlTransition>
<htmlTransition id="cancel" targetState="finalNotOK">
</htmlTransition>
</transitions>
</htmlState>
<htmlState id="saveInfoOpState">
<entryActions>
<executeOperationAct id="execOperAct" operationName="saveInfoOp"
linkContextTo="processor">
</executeOperationAct>
</entryActions>
<transitions>
<htmlTransition id="execOperAct.OK" targetState="finalOK">
</htmlTransition>
<htmlTransition id="execOperAct.error" targetState="errorInformationPage">
</htmlTransition>
</transitions>
</htmlState>
<htmlState id="errorInformationPage" type="page"
typeIdInfo="errorInformationPage.JSP">
<transitions>
<htmlTransition id="OK" targetState="finalNotOK">
</htmlTransition>
</transitions>
</htmlState>
<htmlState id="finalNotOK" type="final" typeIdInfo="notOK">
</htmlState>
<htmlState id="finalOK" type="final" typeIdInfo="OK">
</htmlState>
</htmlProcessor>
<htmlState id="creditHistoryOpState" conseq="false">
<entryActions>
<executeOperationAct id="execOperAct" operationName="creditHistoryOp"
contextToLinkTo="processor">
</executeOperationAct>
</entryActions>
<transitions>
<htmlTransition id="execOperAct.OK" targetState="selectCardsOpState">
</htmlTransition>
<htmlTransition id="execOperAct.notOK" targetState="financialInfoState">
</htmlTransition>
</transitions>
</htmlState>
<htmlState id="selectCardsOpState">
<entryActions>
<executeOperationAct id="execOperAct" operationName="selectCardsOp"
contextToLinkTo="processor">
</executeOperationAct>
</entryActions>
<transitions>
<htmlTransition id="execOperAct.OK" targetState="creditCardsPage">
</htmlTransition>
<htmlTransition id="execOperAct.error" targetState="errorInformationPage">
</htmlTransition>
</transitions>
</htmlState>
<htmlState id="financialInfoState" type="subFlow" typeIdInfo="finantialInfo">
<transitions>
<htmlTransition id="OK" targetState="selectCardsOpState">
</htmlTransition>
<htmlTransition id="notOK" targetState="finalNotOK">
</htmlTransition>
</transitions>
</htmlState>
<htmlState id="creditCardsPage" type="page" typeIdInfo="creditCardsPage.JSP">
<transitions>
<htmlTransition id="OK" targetState="creditCardConfirmationPage">
</htmlTransition>
<htmlTransition id="cancel" targetState="finalNotOK">
</htmlTransition>
</transitions>
</htmlState>
<htmlState id="creditCardConfirmationPage" type="page"
typeIdInfo="creditCardConfirmationPage.JSP">
<transitions>
<htmlTransition id="OK" targetState="creditCardProcessingOpState" conseq="true">
</htmlTransition>
<htmlTransition id="cancel" targetState="finalNotOK">
</htmlTransition>
</transitions>
</htmlState>
<htmlState id="creditCardProcessingOpState" type="page"
typeIdInfo="creditCardConfirmationPage.JSP">
<entryActions>
<executeOperationAct id="execOperAct" operationName="creditCardProcessingOp"
contextToLinkTo="processor">
</executeOperationAct>
</entryActions>
<transitions>
<htmlTransition id="execOperAct.OK" targetState="creditCardProcessingOp">
</htmlTransition>
<htmlTransition id="execOperAct.error" targetState="finalNotOK">
</htmlTransition>
</transitions>
</htmlState>
<htmlState id="errorInformationPage" type="page" typeIdInfo="errorInformationPage.JSP">
<transitions>
<htmlTransition id="OK" targetState="finalNotOK">
</htmlTransition>
</transitions>
</htmlState>
<htmlState id="finalNotOK" type="final" typeIdInfo="notOK">
</htmlState>
<htmlState id="finalOK" type="final" typeIdInfo="OK">
</htmlState>
</htmlProcessor>
The sub-flow flow processor for this
example is defined as the HTML Channel processor and defined in the flow processor
definition file (DSEPROC.XML) as follows:
<htmlProcessor id="financialInfo" context="financialInfoCtx"
xValidation="com.ibm.btt.samples.html.FinancialInfoXVal">
<htmlState id="initial" type="initial">
<transitions>
<htmlTransition id="requestData.start" targetState="requestDataState">
</htmlTransition>
</transitions>
</htmlState>
<htmlState id="requestDataState" type="page" typeIdInfo="requestDataPage.JSP">
<transitions>
<htmlTransition id="OK" targetState="saveInfoOpState"
context="RequestDataState.OK.Ctx">
</htmlTransition>
<htmlTransition id="cancel" targetState="finalNotOK">
</htmlTransition>
</transitions>
</htmlState>
<htmlState id="saveInfoOpState">
<entryActions>
<executeOperationAct id="execOperAct" operationName="saveInfoOp"
linkContextTo="processor">
</executeOperationAct>
</entryActions>
<transitions>
<htmlTransition id="execOperAct.OK" targetState="finalOK">
</htmlTransition>
<htmlTransition id="execOperAct.error"
targetState="errorInformationPage">
</htmlTransition>
</transitions>
</htmlState>
<htmlState id="errorInformationPage" type="page"
typeIdInfo="errorInformationPage.JSP">
<transitions>
<htmlTransition id="OK" targetState="finalNotOK">
</htmlTransition>
</transitions>
</htmlState>
<htmlState id="finalNotOK" type="final" typeIdInfo="notOK">
</htmlState>
<htmlState id="finalOK" type="final" typeIdInfo="OK">
</htmlState>
</htmlProcessor>