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
| 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 |
|
Fields that can Change
No fields can change other than the payload fields from a successful lookup.
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
- Sets the ibmNprPocket value to 0 (assume reject pocket until a successful lookup resets it).
- Checks the value of the ibmNprControlDoc field. If it is true, sets the node’s response to success and goes to step 11.
- If the ibmIntPartnerId field is not set for this item, sets the node’s response to failure and goes to step 11.
- Uses ibmNprRecordId as a key in the Record ID low and high range.
- Performs the lookup in the pocket map table.
- If the user exit is present, calls its preProcess routine.
- If the record is not found, makes a second attempt with ‘-1’ as a key in the Record ID low and high range.
- If the record is still not found, sets the node’s response to failure and goes to step 11.
- If the record is found, reads the payload fields into DecisionRequest and sets the node’s response to success.
- 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.
- If the user exit is present, calls its buildClientResponse routine.
- Returns to the workflow controller.