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.