Pocket Map Node

The pocket map node requires several fields be set appropriately before it attempts a lookup in the pocket map table; two of these fields come from the client application on the initialize message and the remaining two are supplied by upstream payment validation rule nodes during the decision message.

If the ibmNprControlDoc field has been set to true, no lookup is attempted and the item goes to the reject pocket.

The value of the ibmNprRecordId field is used as the final part of the key and a lookup is attempted. If that fails, a second attempt is made with a value of ‘-1’ instead.

When the pocket map table record is successfully located, the ibmNprPocket value is changed along with the other payload fields.

When there is a validation error and before routing it to the system reject pocket, the pocket type field is checked. If it is marked as an enhanced reject pocket or an alternate reject pocket, it uses the pocket as read from the table.

Table Record Layout

The pocket map node table record layout is shown in Table 1.
Table 1. Pocket Map Node Table Record Layout
Field Type Field Name Data Type Length Notes
Key ibmSortType byte 4 Refer to Initialize
Key ibmIntPass char 1 Refer to Initialize
Key ibmIntPocket1 char 2 Refer to Initialize
Key ibmIntPocket2 char 2 Refer to Initialize
Key ibmIntPartnerId char 10 Refer to Initialize
Start Key ibmIntRecIdLow byte 2 Comes from the routing transit node lookup
End Key ibmIntRecIdHigh byte 2  
         
Payload ibmNprPocket byte 2  
ibmNprEndpoint char 8  
ibmNprOnUsFlag char 1  
ibmIntPocketType char 1
  • E – Enhanced Reject pocket
  • K – Kill Pocket
  • R – Alternate Reject pocket
  • U – Unencoded pocket
  • X – Rehandle pocket

Fields that can Change

No fields can change other than the payload fields from a successful lookup.

Results

The pocket map node results are:
Table 2. Pocket Map Node Results
If Condition Results Notes
ibmSortType Not set FAILURE Without doing the lookup
ibmIntPass Not set FAILURE Without doing the lookup
ibmIntPocket1 Not set FAILURE Without doing the lookup
ibmIntPocket2 Not set FAILURE Without doing the lookup
ibmIntPocket3 Not set FAILURE Without doing the lookup
ibmIntPartnerId Not set FAILURE Without doing the lookup
Lookup Fails   Sets ibmIntRecId to -1 and tries again
Lookup Fails FAILURE  
Lookup Succeeds SUCCESS  

Initialize

The pocket map node requires that the ibmSortType field be set. It is one of the key fields required in the lookup process. If this field is not provided by the client application, a workflow exception is shown and the initialize message fails.

The pass pocket history (ibmPassPktHist) is also provided by the client application, but it is an optional field. The format of this character field is p-aa-bb-cc-dd, where p is the pass number, aa is pocket 1, bb is pocket 2, cc is pocket 3, and dd is ignored. Also an acceptable format is paabbccdd. If this optional field is not supplied, 1–00–00–00–00 (pass 1) is used.

From this, ibmIntPass, ibmIntPocket1, ibmIntPocket2, and ibmIntPocket3 are set. Five of the seven key fields have now been established.

Process

The pocket map node does the following in sequence:
  1. Sets the ibmNprPocket value to 0 (assume reject pocket until a successful lookup resets it).
  2. Checks the value of the ibmNprControlDoc field. If it is true, sets the node’s response to success and goes to step 11.
  3. If the ibmIntPartnerId field is not set for this item, sets the node’s response to failure and goes to step 11.
  4. Uses ibmNprRecordId as a key in the Record ID low and high range.
  5. Performs the lookup in the pocket map table.
  6. If the user exit is present, calls its preProcess routine.
  7. If the record is not found, makes a second attempt with ‘-1’ as a key in the Record ID low and high range.
  8. If the record is still not found, sets the node’s response to failure and goes to step 11.
  9. If the record is found, reads the payload fields into DecisionRequest and sets the node’s response to success.
  10. Checks the Validation Error value. If it is true, and the ibmIntPocketType is not an E or an R, sets the node’s response to failure.
  11. If the user exit is present, calls its buildClientResponse routine.
  12. Returns to the workflow controller.