To provide concrete definitions, the following example defines a
business operation for acquiring a mutual fund. See the Flow processor example:
dialog navigation controller for a use case for this business operation. In
the example, the fund acquisition processor is a self-defined processor, which
means its definition is contained in the FundAcquisition.xml file. The example
does not contain context, data, and format definitions but they should also
be in the self-defined file or in the generic toolkit files.
<processor id="fundAcquisition" context="fundAcquisitionCtx"
implClass="com.ibm.btt.automaton.DSEProcessor" refFlow="genericServerFlow"/>
<refFormat name="hostSendFormat" refId="fundAcqHostSendFmt"/>
<refFormat name="hostReceiveFormat" refId="fundAcqHostReceiveFmt"/>
<refFormat name="preSendJournalFmt" refId="fundAcqPreSendJournalFmt"/>
<refFormat name="postReceiveJournalFmt" refId="fundAcqPostReceiveJournalFmt"/>
</processor>
<flow id="genericServerFlow">
<state id="initial" type="initial">
<entryActions>
<startAct id="startAct"/>
</entryActions>
<transitions>
<transition id="startAct.start" targetState="journalEntry">
</transition>
</transitions>
</state>
<state id="journalEntry" type="step">
<entryActions>
<journalEntry id="journalEntryStep">
</journalEntry>
</entryActions>
<transitions>
<transition id="journalEntryStep.ok" targetState="hostComms">
</transition>
<transition id="journalEntryStep.error" targetState="finalNotOK">
</transition>
</transitions>
</state>
<state id="hostComms" type="step">>
<entryActions>
<hostComms id="hostCommsStep">
</hostComms>
</entryActions>
<transitions>
<transition id="hostComms.ok" targetState="journalUpdate">
</transition>
<transition id="hostComms.error" targetState="finalNotOK">
</transition>
</transitions>
</state>
<state id="journalUpdate" type="step">
<entryActions>
<journalUpdate id="journalUpdateStep">
</journalUpdate>
</entryActions>
<transitions>
<transition id="journalUpdateStep.ok" targetState="finalOK">
</transition>
<transition id="journalUpdateStep.error" targetState="finalNotOK">
</transition>
</transitions>
</state>
<state id="finalNotOK" type="final" typeIdInfo="notOK">
</state>
<state id="finalOK" type="final" typeIdInfo="OK">
</state>
</flow>