Workflow

The workflow has the following nodes:
StartOfWorkflow
Execution of the workflow begins with this node.
NachaContextNode and NachaContentNode
The context and content validation nodes validate each record in a transmission.
FwdPaymentMethodOutNode and CurrencyOutNode
These nodes are executed for the transaction records. FwdPaymentMethodOutNode is only run if ibmNprStandardNameOut and ibmNprMessageTypeNameOut are not yet set.
BankCodeVerificationNode
This eSort node validates that the destination bank code is in the bank code table. This node always returns successfully.
AccountValidationNode
This eSort node validates that the account number is in the large account table and corresponds to the transaction code. This node always returns successfully.
EndpointAssignFtmNode
This node assigns an endpoint based on the outbound message type field. If an endpoint is not assigned to a transaction, the node assigns a relevant error code to the transaction.
AccumAssignFtmNode and BillingNode
After these nodes are executed, the workflow is complete.
The XML workflow configuration is shown here:
<?xml version="1.0" ?>
<workflowDescriptor name="AchWorkflow">
  <nodes>
     <node name="StartOfWorkflow"/>
     <node name="NachaContextNode"/>
     <node name="NachaContentNode"/>
     <node name="NachaCollectorsNode"/>
     <node name="FwdPaymentMethodOutNode"/>
     <node name="CurrencyOutNode"/>
     <node name="BankCodeVerificationNode"/>
     <node name="AccountValidationNode"/>
     <node name="EndpointAssignFtmNode"/>
     <node name="EndpointAssignErrorFtmNode"/>
     <node name="AccumAssignFtmNode"/>
     <node name="BillingNode"/>
     <node name="EndOfWorkflow"/>
  </nodes>
  <connections>
    <connection srcName="StartOfWorkflow"            dstName="NachaContextNode"/>
    <connection srcName="StartOfWorkflow"            dstName="EndOfWorkflow"/>
    <connection srcName="NachaContextNode"           dstName="NachaContentNode"/>
    <connection srcName="NachaContentNode"           dstName="NachaCollectorsNode"/>
    <connection srcName="NachaCollectorsNode"        dstName="FwdPaymentMethodOutNode">
       <paymentCheck field="ibmValIsItem"             operator="EQ" value="Y" and="true"/>
       <paymentCheck field="ibmNprStandardNameOut"        operator="NotCurrent"/>
       <paymentCheck field="ibmValIsItem"             operator="EQ" value="Y" and="true"/>
       <paymentCheck field="ibmNprMessageTypeNameOut"     operator="NotCurrent"/>
    </connection>
    <connection srcName="NachaCollectorsNode"        dstName="CurrencyOutNode">
       <paymentCheck field="ibmValIsItem"             operator="EQ" value="Y"/>
    </connection>
    <connection srcName="NachaCollectorsNode"        dstName="EndOfWorkflow"/>
    <connection srcName="FwdPaymentMethodOutNode"    dstName="CurrencyOutNode"/>
    <connection srcName="CurrencyOutNode"            dstName="BankCodeVerificationNode"/>
    <connection srcName="BankCodeVerificationNode"   dstName="AccountValidationNode"/>
    <connection srcName="AccountValidationNode"      dstName="EndpointAssignFtmNode"/>
    <connection srcName="EndpointAssignFtmNode"      dstName="EndpointAssignErrorFtmNode"
                results="FAILURE"/>
    <connection srcName="EndpointAssignFtmNode"      dstName="AccumAssignFtmNode"/>
    <connection srcName="EndpointAssignErrorFtmNode" dstName="EndOfWorkflow"/>
    <connection srcName="AccumAssignFtmNode"         dstName="BillingNode"/>
    <connection srcName="BillingNode"                dstName="EndOfWorkflow"/>
  </connections>
</workflowDescriptor>