Duplicate Detect user exit

The Duplicate Detect user exit is provided to allow the user the opportunity to modify the data being sent to the Duplicate Detect engine before it is sent. By default, the Gateway populates the field data to match the Duplicate Detect reference implementation for payments. The following fields are created in the Duplicate Detect request object and sent to the Duplicate Detect engine.

Table 1. Duplicate Detect user exit fields
Field name Field value
AMOUNT ICLItemRecord.getAmount()
PROCESS_CONTROL ICLItemRecord.getProcessControl()
ACCOUNT ICLItemRecord.getAccount()
FIELD_4 ICLItemRecord.getField4()
ROUTING_TRANSIT ICLItemRecord.getRoutingNumber()
EXT_PROC_CODE ICLItemRecord.getExtProcCode()
AUX_ONUS ICLItemRecord.getAuxOnUs()
CHANNEL "ICL"
SOURCE_COMP "GWY"
COLLECTION_TYPE ICLCashLetterRecord.getCollectionTypeIndicator()
SOURCE ICLCashLetterRecord.getOriginRoutingNumber()
ITEM_SEQ_SORTER ICLItemRecord.getItemSorter()
ITEM_SEQ_NUM ICLItemRecord.getItemSequenceNum()
BUS_DATE ICLBundleRecord.getBusinessDate()

The user exit provides the opportunity to change any of the above fields (names or values). The user can add additional fields or delete any of the fields that were populated by the Gateway. The Gateway can be set for a particular item not to be sent to the Duplicate Detect engine.

The Duplicate Detect user exit is a Java™ class implementing the com.ibm.icpcs.gatewayserver.user.UserDupDetectInterface class. The interface has several getter and setter methods, along with the modifyDupRecordForIncomingItem and modifyDupRecordForOutgoingItem methods. As a convenience to the user, a class that implements all the getter and setter methods is provided. Users must extend the com.ibm.icpcs.gatewayserver.user.UserDupDetect class to ensure future compatibility. Users only have to implement the modifyDupRecordForIncomingItem and modifyDupRecordForOutgoingItem methods in their class.

During transmission processing, Gateway Server calls methods based on the record type being processed.

For file header records (Type01), Gateway Server calls:
  • setFileHdrRec()
  • setFileCtrRec()
For cash letter header records (Type10), Gateway Server calls:
  • setCashLetterHdrRec()
  • setCashLetterCtrRec()
For bundle header records (Type20), Gateway Server calls:
  • setBundleHdrRec()
  • setBundleCtrRec()
As each outgoing item is processed, the Gateway Server calls the modifyDupRecordForOutgoingItem method. It has the following parameters:
RecordData
The Duplicate Detect API data structure that contains the fields that were populated by the Gateway Server. Use the various methods on this object to get a field with a specific name and modify its name or value. The user can add new fields to the record or delete existing fields.
ICLItemRecord
The ICLItemRecord is passed so the user has access to all of the item level fields.
a Vector
This parameter contains all of the supporting addenda records for the item.

The sample class, which is in the SampleDupDetect.java file in the samples directory, extends the UserDupDetect class. This user exit also requires that the izhapi.jar file be placed in the class path so that it can be found when the user exit is compiled. This class is activated by specifying the Java class name in the duplicateDetectUserClass property in the izxconfig.properties file.