When a transaction is attached from a 3270 display, CICS® expects to find the transaction ID
in the first modified field in the 3270 data stream. The order in which Web
clients transmit form data is not always predictable, so CICS uses a mapping
between the name of the form field and the corresponding position on the 3270
screen:
- For transactions that do not use BMS maps, the mapping uses the field
name directly, as the name reflects the position of the field on the 3270
screen.
- For transactions that use BMS maps, the field names do not always reflect
the positions on the 3270 screen, and an indirect mapping is used. The mapping
makes use of the hidden variables DFH_NEXTTRANSID.n.
When an HTML template is created from a BMS map, up to five variables are
created. The value of each variable is the name of an input field, in sequence
of 3270 buffer position.
When CICS receives an HTTP request, it examines
each DFH_NEXTTRANSID field in turn, to determine the name
of the input field to which it refers, and whether the HTTP request contains
a value for the field. If it does, then it is because the end user has modified
it, and it is therefore assumed to contain the transaction ID of the next
transaction.
When a screen is constructed by merging the output from
several BMS and non-BMS SEND commands, there are situations in which input
fields are suppressed (see How the footing section is chosen for more
information). So that CICS can correctly identify the transaction ID in the
3270 data stream, you must ensure that input fields which may contain the
transaction ID are not suppressed in the merged HTML page.