User Control Record User Exit

The user control record user exit is provided to enable users to insert their own user documents in the X9.37 file before it is transmitted to the host. Such documents might include deposit tickets, additional addenda records, or items. The Transaction Server calls the user exit every time it encounters a control or item record. The Transaction Server also calls the user exit for type 68 records that are not item addendum records. If you want one or more records to be inserted at the current location, the user exit passes back a list of byte arrays containing the data to be put in the file. You can specify whether to insert the data before or after the current record. You can also specify whether to give the new record its own unique ISN.

The user control record user exit must implement the com.ibm.icpcs.gatewayserver.user.UserControlRecordInterface interface. This interface has several get and set methods, along with the getUserControlRecordList method. For more information, see getUserControlRecordList method. As a convenience to the user, in addition to this interface, a class that implements all of the get and set methods is provided. By extending the com.ibm.icpcs.gatewayserver.user.UserControlRecordList class, only the getUserControlRecordList method must be implemented in their class.
Note: As new requirements are addressed, the UserControlRecordInterface might be updated in future releases. By extending the UserControlRecordList class, the user exit is shielded from having to implement any new methods as these interface changes are released.
When the Transaction Server processes an extraction, it calls the following method or methods for each record type it encounters:
File Header Record (Type01)
setFileHdrRec() and setfileCtrRec()
Cash Letter Header Record (Type10)
setCashLetterHdrRec(), setCashLetterCtrRec(), and setPresentment()
Bundle Header Record (Type20)
setBundleHdrRec(), setBundleCtrRec(), and setSegment()
Open Batch Record
setOpenBatchRec() and setCloseBatchRec()
Store Transaction Record
setTransactionRec()
Table 1 contains a list of all available methods.
Table 1. User Control Record Interface Methods
Methods The Transaction Server calls this method...
setFileHdrRec (ICLFileRecord type01) When it encounters an ICL file header record (type 01)
setFileCtrRec (ICLFileRecord type99) When it encounters an ICL file control record (type 99)
setCashLetterHdrRec (ICLCashLetterRecord type10) When it encounters an ICL cash letter header record (type 10)
setCashLetterCtrRec (ICLCashLetterRecord type90) When it encounters an ICL cash letter control record (type 90)
setPresentment (PresentmentData presentment) When it begins processing for a cash letter in order to relay the presentment details to the user exit and having a null value when the presentment goes out of context
setBundleHdrRec (ICLBundleRecord type20) When it encounters an ICL bundle header record (type 20)
setBundleCtrRec (ICLBundleRecord type70) When it encounters an ICL bundle control record (type 70)
setSegment (SegmentData segment) When it begins processing for a bundle to relay the segment details to the user exit and with a null value when the segment goes out of context
setInsertLocation (int f) To set the insert location of the current user document
setItemDetails (ItemDetailsInterface itemDetails) To relay the item details to the user exit. The user should extract the necessary information from the received item details interface during this method invocation. Do not save the item details interface instance as it is not guaranteed to be valid after this call completes. There is no corresponding getter method for this information.
setOpenBatchRec (RCapBatchRecord openBatch) With an open batch (ICL) record at the beginning of the batch (ICL)
setCloseBatchRec (RCapBatchRecord closeBatch) With a close batch (ICL) record at the beginning of the batch (ICL)
setTransactionRec (RCapTransactionRecord transaction) With a transaction record at the beginning of the transaction
setPayDirRecvTimeStamp (String payDirRecvTimeStamp) To set the received time stamp
getFileHdrRec ( ) To retrieve the current file header record
getFileCtrRec ( ) To retrieve the current file control record
getCycleId ( ) To retrieve the cycle ID being used for processing of the current file
getCycleDate ( ) To retrieve the cycle date being used for processing of the current file
getEntryNum ( ) To retrieve the entry number being used for processing of the current file
getSortType ( ) To retrieve the sort type being used for processing of the current file
getBankNum ( ) To retrieve the bank number being used for processing of the current file
getCashLetterHdrRec ( ) To retrieve the current cash letter header record
getCashLetterCtrRec ( ) To retrieve the current cash letter control record
getPresentment ( ) To retrieve the current presentment instance. A null value may be received if the presentment is not in context.
getBundleHdrRec ( ) To retrieve the current bundle header record
getBundleCtrRec ( ) To retrieve the current bundle control record
getSegment ( ) To retrieve the current segment instance. A null value may be received if the segment is not in context.
getInsertLocation ( ) To retrieve the current user document insert location
getOpenBatchRec ( ) To retrieve the current open batch (ICL) record
getCloseBatchRec ( ) To retrieve the current close batch (ICL) record
getTransactionRec ( ) To retrieve the current transaction record
getPayDirRecvTimeStamp ( ) To retrieve the file received time stamp
getUserControlRecordList (String recordType, Vector records) During extraction processing to allow the user to insert a user control document either before or after the current record. The user should call setInsertLocation() to set the insertion location before returning.