Block move bean

Multiple items can be moved in the FTM database with a single request by using the block move bean.

The payload class name for the block move bean is com.ibm.paydir.ima.txacc.app.bridge.payment.BlockMoveBean.

The block move bean collects one or more payment IDs to be moved at once to a specified position in the balance order of the batch (ICL). By default, the block move bean moves the transactions to the end of the balance order of the batch (ICL). If a move after payment ID is specified, the transaction block is then placed between the given payment ID and the one immediately following it in the balance order of the current batch (ICL).

When queried, the block move bean returns ACTION_BLOCK_MOVE as its action code. Querying it for the payment ID returns the move after payment ID. This ID is zero (0) when one is not specified. Both of the payment ID methods (for example, setPaymentId and setMoveAfter) affect the move after payment ID value.

The caller can use the mutator methods that are shown in the following table to configure the block move bean.
Table 1. ACTION_BLOCK_MOVE request
Method name Takes data type Description
setMoveAfter PaymentId/Long Specifies that the block of transactions are to be moved after a specific transaction in the batch (ICL).
setPaymentId PaymentId/Long Behaves the same as the setMoveAfter mutator method.
add PaymentInsertBean Adds the specified payment ID to the list of transactions to be moved.
Call the add method multiple times to add several payment IDs to a block of transactions to be moved. The moved transactions are placed in the batch (ICL) in the same balance order as they are added to the block move bean. The block move bean is useful for collecting a large set of transactions to be moved in a single message, which the Transaction Server processes at once. It can also be used to move a single transaction to a specified position in the balance order of the batch (ICL).
Note: If a move after payment ID is specified, the moved transactions are evenly distributed between the existing transactions as found in the batch (ICL). Each transaction can also be moved individually in its own block move. The balance order has side effects depending on the method used.
For example, consider moving three transactions, A, B, and C, to be after a transaction, X, which is currently at balance order 602.00. In the example, let transaction Y be the transaction immediately following transaction X and have its balance order at 603.00. Moving the transactions in a single block move using the move after transaction specified as transaction X, the insertion order in the following table results.
Table 2. Balance order - Single block move
Payment Balance order
X 602.0000
A 602.2500
B 602.5000
C 602.7500
Y 603.0000
However, if the moves are specified in three separate block move requests, each specifying transaction X as the move after point, then only the first move would go between transaction X and Y while the subsequent inserts would go between X and the previously inserted transaction. This reverses the insertion order as shown in the following table.
Table 3. Balance order - Separate block move
Payment Balance order
X 602.0000
C 602.1250
B 602.2500
A 602.5000
Y 603.0000
It is important to:
  • note the balance ordering that results from how the block move beans are used.
  • verify whether the resulting balance order of the batch (ICL) conforms to all of the requirements.