IF - network-level logic test statement


[name] IF {CURSOR=(row,col)}
          {EVENT=event}
          {LOC=location}
          {LOCTEXT={cntr|(data)|integer}}
          [,AREA=area]
          [,COND={EQ|GE|GT|LE|LT|NE}]
          [,DATASAVE=(area,loc,leng)]
          [,DELAY=CANCEL]
          [,ELSE=action]
          [,LENG=value]
          [,LOCLENG=value]
          [,LOG=(data)]
          [,RESP=NO]
          [,SCAN={YES|value}]
          [,SCANCNTR=cntr]
          [,SNASCOPE={ALL|LOC|REQ|RSP}]
          [,TEXT={RESP|cntr|(data)|'xx'|integer}]
          [,THEN=action]
          [,TYPE=type]
          [,UTBL=name]
          [,UTBLCNTR=cntr]
          [,WHEN={IN|OUT}]

Function

The network level IF statements specify comparisons to be made on data sent or received by WSim or on terminal or device counter values, switch settings, cursor positions, or data areas. This statement performs the following functions:
  • Test for event completion
  • Set switches
  • Override normal SNA responses
  • Cancel current delays
  • Save and log data
  • Alter message generation paths based on comparison results.
The network level IF statement is optional, but you can code it up to 256 times. If used, the IF statement is active during the entire network simulation. The IF statements are evaluated in the order specified prior to any of the active message generation level IF statements.
Notes:
  • Network-level IF statements are not evaluated for CPI-C simulations. If they are specified, WSim ignores them when simulating CPI-C transaction programs. For combined networks, they are evaluated for all resources except CPI-C transaction programs.
  • See Conditions logic test not evaluated for more information on conditions under which a logic test is not evaluated.

Where

name
Function: Specifies the name to be used for this statement.

Format: From one to eight characters.

Default: None. This field is optional.

Note: The first three characters of this name, if coded, appear in INFO messages on loglists.
CURSOR=(row,col)
Function: Specifies the cursor position to be compared with the current cursor position. It references the usable area screen as the operator would see it.
Note: The logic test will not be evaluated if the device is not a display device.

Format: Two values, each of which can be either an integer between 1 and 255 or a counter specification whose value is within this range specifying the row and column positions, respectively.

Default: None. You must code either the CURSOR, EVENT, LOC, or LOCTEXT operand.

Note: If you code the CURSOR operand, do not code the AREA, COND, EVENT, LENG, LOC, LOCLENG, LOCTEXT, SCAN, SCANCNTR, TEXT, UTBL, and UTBLCNTR operands.
EVENT=event
Function: Specifies the name of a wait or post event which is to be tested.

Format: For the EVENT operand, you can code one of the following options:

name Specifies the name of the event to be tested for completion, where name is one to eight alphanumeric characters.
N±value Specifies the event name to be referenced at an offset from the start of the network user area (+value) or back from the end of the network user area (-value).
U±value Specifies the event name to be referenced at an offset from the start of the device user area (+value) or back from the end of the device user area (-value).
Ns+value Specifies an event name to be referenced at an offset from the start of the network save area.
s+value Specifies an event name to be referenced at an offset from the start of the device save area.
Where:
value
Can be any integer from 0 to 32766 or a counter specification whose value is within this range. Zero is the offset to the first byte of the field for positive offsets (+value) and the offset to the last byte of the field for negative offsets (-value).
s
Is a savearea number from 1 to 4095.
name
Can be from one to eight alphanumeric characters or a user area or save area.

Default: None. You must code either the CURSOR, EVENT, LOC, or LOCTEXT operand.

Note: If you code the EVENT operand, do not code the AREA, COND, CURSOR, LENG, LOC, LOCLENG, LOCTEXT, SCAN, SCANCNTR, TEXT, UTBL, and UTBLCNTR operands.
LOC=location
Function: Specifies the starting location of the data that is to be compared.
Note: If you code the LOC operand, do not code the EVENT, CURSOR, or LOCTEXT operands.
Format: For the LOC operand, you can code one of the following options:

value

Ns+value

TSWn|TSWm|...

TSEQ

value

s+value

SWn

DSEQ

D+value

(row,col)

SWn&SWm&..

NCn

TH+value

NSWn

SWn|SWm|...

LCn

RH+value

NSWn&NSWm&..

NSWn&TSWm&SWn&..

TCn

RU+value

NSWn|NSWm|...

NSWn|TSWm|SWn|...

DCn

value

TSWn

NSEQ

 

value

TSWn&TSWm&..

LSEQ

 
value can be an integer from 0 to 32766 or a counter specification whose value is within this range. Zero is the offset to the first byte of the field for positive offsets (+value) and the offset to the last byte of the field for negative offsets (-value).
Option Description
B±value For +value, begin testing an offset from the start of data in the device buffer. (For display devices, the device buffer is the screen image buffer.) For non-display devices and -value, begin testing at an offset back from the end of the data in the device buffer. For display devices and -value, begin testing at an offset back from the end of the screen image buffer.
C±value Begin testing at an offset from the cursor for +value, or at an offset back from the cursor for -value. Normally, use this location only with display devices.
D+value Begin testing at an offset from the start of the incoming or outgoing data stream. This includes the transmission header and the request header.
TH+value Begin testing at an offset from the start of the transmission header.
RH+value Begin testing at an offset from the start of the request header, if present.
RU+value Begin testing at an offset from the start of the request unit.
N±value Begin testing at an offset from the start (+value) or back from the end (-value) of the network user area defined by the NETUSER operand.
U±value Begin testing at an offset from the start (+value) or back from the end (-value) of the device user area defined by the USERAREA operand.
Ns+value Begin testing at an offset from the start of the network save area specified by s, where s is an integer from 1 to 4095.
s+value Begin testing at an offset from the start of the device save area specified by s, where s is an integer from 1 to 4095.
(row,col) Indicates that the test is to be made at the specified row and column of the screen image of a display device, where row and col may each be an integer from 1 to 255 or a counter specification whose value is within this range. If specified for a non-display device type, the test will not be evaluated.

You can use any available counter or switch for a comparison. You can test up to 4095 switches where n and m represent switch numbers and can be from 1 to 4095.

Note: You can also specify a combination of network, terminal and device level switches (for example, TSW5│SW3│NSW7│NSW28). However, you cannot mix the & and │ operators in the same LOC operand specification. Also, when one of the counter operands is coded, the corresponding value of the TEXT operand must be specified as numeric data or another counter.

Default: None. You must code either the CURSOR, EVENT, LOC, or LOCTEXT operand.

Notes:
  • If, when a logic test is to be evaluated, the specified data location is not valid (for example, the location is outside the buffer or user area or not within the data transferred), the logic test is not evaluated and no action is taken unless the operand LOCLENG is coded.
  • When multiple partitions are defined for a 3270 device, buffer or cursor offsets (B+, B-, C+, C-) will reference the data in the presentation space of the currently active partition. The combination (row,col) value will reference the display as you would see it, which could include data from more than one partition. The logic test will be performed against the presentation space data of the partition that owns the area of the display referenced by the (row,col) specification.
  • For VTAMAPPL LUs, TSW, TSEQ, LSEQ, TCn, and LCn will reference a single set of switches and counters allocated to each VTAMAPPL.
  • See Data locations for device-specific information concerning this operand. See Counters and switches for valid counter and switch specifications.
LOCTEXT={cntr|(data)|integer}
Function: Specifies the value that is to be used in the comparison.
Note: If you code the LOCTEXT operand, do not code the AREA, CURSOR, EVENT, LENG, LOC, or LOCLENG operands.
Format: For the LOCTEXT operand, you can enter one of the following values:
cntr
The counter to be used in the comparison. The valid values for cntr are NSEQ, LSEQ, TSEQ, DSEQ, NCn, LCn, TCn, and DCn, where n is an integer from 1 to 4095. These counters are explained under the LOC operand on this statement. The LOCTEXT operand can specify a counter value only if the TEXT operand specifies a counter or integer value.
(data)
The data coded within the text delimiter specified on the MSGTXT statement is to be used as the comparison data. The data field options can be used to specify the data (see Data field options).

When comparing for specified data, enter hexadecimal data within the text delimiters by enclosing the digits within single quotes. Two digits compose one hexadecimal character. For example, LOCTEXT=(ABC) will generate a comparison for the three characters ABC. LOCTEXT=('AB'CD) is a comparison for three bytes including one hexadecimal character of AB and two EBCDIC characters of CD. A maximum of 32767 characters will be used for comparison.

To enter a single quote, text delimiter (TXTDLM), or data field option control character (CONCHAR) as data, enter two of the characters. You can also continue the data on the next statement.

integer
A 1- to 10-digit integer ranging from 0 to 2147483647 is to be used for the comparison. This format is valid when the TEXT operand specifies a counter or integer value.

Default: None. You must code either the CURSOR, EVENT, LOC, or LOCTEXT operand.

Note: When LOCTEXT is coded, the THEN or ELSE action on an IF statement is always executed as long as the IF meets the criteria set by the SNASCOPE, TYPE, and WHEN operands. The string data comparison allows for unequal or null strings, with the shorter string being padded with blanks, unless SCAN is also coded. In this case, the LOCTEXT data is scanned and substrings within it equal to the length of the TEXT data are compared to the TEXT data.
AREA={area}
Function: Specifies a user area or save area location that contains the text value for which the comparison is to be made.
Format: For the AREA operand, you can code one of the following options. value can be any integer from 0 to 32766 or a counter specification whose value is within this range. Zero is the offset to the first byte of the field for positive offsets (+value) and the offset to the last byte of the field for negative offsets (-value). For save area references, s can be an integer from 1 to 4095.
N±value The text is contained in the network user area where value is the offset from the beginning of the network user area to the text or from the end of the network user area back to the text.
U±value The text is contained in the device user area where value is the offset from the beginning of the device user area to the text or from the end of the device user area back to the text.
Ns+value The text is contained in a network save area, where s is the number of the network save area and value is the offset from the beginning of the network save area to the text.
s+value The text is contained in a device save area, where s is the number of the device save area and value is the offset from the beginning of the device save area to the text.

Default: None. The AREA, TEXT, or UTBL operand is required, except when you specify the LOC operand for switch testing or specify the EVENT operand. If you code the AREA operand, the LENG operand may also be coded. This operand cannot be coded if the LOC operand specifies a sequence or index counter, or if the TEXT or LOCTEXT operand is coded.

COND={EQ|GE|GT|LE|LT|NE}
Function: Specifies the condition for which the comparison is to be made. The data field identified by the LOC or LOCTEXT operand is compared to the data specified in the TEXT or AREA operands, and the condition is set. If the condition specified by the COND operand is met, the THEN action is taken. If the condition specified by the COND operand is not met, the ELSE action is taken.
Note: This option is not valid for a logic test that tests switches, performs a test under mask, tests an event, or tests a cursor position.
Format: For the COND operand, you can code one of the following options:
EQ
The two fields are equal.
GE
The LOC data is greater than or equal to the TEXT or AREA data or the LOCTEXT data is greater than or equal to the TEXT data.
GT
The LOC data is greater than the TEXT or AREA data or the LOCTEXT data is greater than the TEXT data.
LE
The LOC data is less than or equal to the TEXT or AREA data or the LOCTEXT data is less than or equal to the TEXT data.
LT
The LOC data is less than the TEXT or AREA data or the LOCTEXT data is less than the TEXT data.
NE
The two fields are not equal.

Default: EQ

DATASAVE=(area,loc,leng)
Function: Specifies data to be saved in a save area when the logic test is made, and the THEN action is taken. Each time data is saved in a save area, the length of that data is also saved to be used when the data is recalled.

If the data to be saved is longer than the save area, the data will be truncated. If the data is shorter than what is specified by the leng parameter, only the available data will be saved. If the specified save area is not defined in the network definition, no data will be saved, and an informational message will be written to the log data set.

Note: This operand is valid only if the THEN operand is coded on the same IF statement.
Format: For the DATASAVE operand, code the following three values (enclosed in parentheses and separated by commas):
area
Specifies which of the save areas is to be used for data retention, where area is either a device save area s, or a network save area Ns, where s is an integer from 1 to 4095.
loc
Specifies the location of the data to be saved. You can enter B+value, C+value, D+value, TH+value, RH+value, or RU+value, where value can be an integer from 0 to 32766 or a counter specification whose value is within this range. B, C, D, TH, RH, and RU are the same as previously defined under the LOC operand.
leng
Specifies the amount of data to be saved in bytes, where leng is an integer from 1 to 32767 or a counter specification whose value is within this range.

Default: None. This operand is optional.

DELAY=CANCEL
Function: Specifies that the current active delay is to be canceled.
Note: This operand is valid only if a THEN operand is also specified on the same IF statement. The delay is canceled only when the THEN action specified on the IF statement is taken.

Format: CANCEL

Default: None. This operand is optional.

ELSE=action
Function: Specifies the action to be taken if the specified condition was not met, the tested switches were off, or the tested event was not complete.
Note: If the ELSE operand is omitted and the condition is not met, no action is taken (all indicators and message generation paths are left as they were before the IF statement was encountered).

Format: You can code one of the following options:

Bname-label

CONT

NSW(ON)

SW(ON)

Bname

WAIT

NSW(OFF)

SW(OFF)

B-label

DLYCNCL

NSWn(ON)

SWn(ON)

Cname-label

QUIESCE

NSWn(OFF)

SWn(OFF)

Cname

RELEASE

   

C-label

 

TSW(ON)

WAIT(event)

Ename-label

RETURN

TSW(OFF)

POST(event)

Ename

IGNORE

TSWn(ON)

RESET(event)

E-label

ABORT

TSWn(OFF)

SIGNAL(event)

 

 

 

QSIGNAL(event)

VERIFY[-(data)]

     
Note: For a description of these actions, see the THEN operand.

Default: None. You must code either the THEN or ELSE operand.

LENG=value
Function: Specifies the length of the text in the user area or save area specified by the AREA operand.

Format: value can be an integer from 1 to 32767 or a counter specification whose value is within this range.

Default: The amount of data remaining in the area starting from the offset specification. This operand is not allowed if you code the LOCTEXT or TEXT operand.

LOCLENG=value
Function: Specifies a length to be associated with the LOC operand data.
Note: When LOCLENG is coded, the THEN or ELSE action on an IF statement is always executed as long as the IF meets the criteria set by the SNASCOPE, TYPE, and WHEN operands. The string data comparison allows for unequal or null strings with the shorter string being padded with blanks. The LOCLENG operand cannot be coded with the CURSOR, EVENT, LOCTEXT, SCAN, or SCANCNTR operands or used with a test under mask condition.
Format: For the LOCLENG operand, you can code one of the following values:
*
Specifies that the length of the LOC operand data is all the data available in the specified area.
integer
Specifies that the length of the LOC operand data is the integer value (1-32767) specified.
cntr
Specifies that the length of the LOC data is the counter specification value (0-32767) specified.

Default: None.

LOG=(data)
Function: Specifies the data to be written in a LOG record to the log data set when the test is made.
Note: This operand is valid only if a THEN operand is specified.

Format: 1 to 50 bytes of EBCDIC data enclosed within the parentheses. To enter a single quote or a parenthesis as data, enter two of the characters. You cannot continue the data to another statement. Also, you cannot code data field options for this operand.

Default: None.

RESP=NO
Function: Specifies that if the THEN action is taken for this IF statement, WSim will not generate an automatic SNA response for this message. Instead, WSim will set up the TH and RH for the normal response and go to message generation to get the response data from the message generation deck. The largest response that can be built is 256 bytes long. A response will always be sent after returning from message generation.
Note: This operand is valid only if a THEN operand is also specified on the same IF statement.

Format: NO

Default: None. This operand is optional. If not coded, WSim automatically builds the SNA response.

Note: This operand is ignored for non-SNA terminals. However, the THEN action will be performed for all terminal types. Therefore, code this operand only on logic tests evaluated for SNA terminals and devices.
SCAN={YES|value}
Function: Specifies whether the data is to be scanned sequentially for the data specified in the AREA, TEXT, or UTBL operand. When scanning is specified, the data is searched starting at the location specified in the LOC operand or at the beginning of the text specified by the LOCTEXT operand. The data is scanned and compared with the character string as specified by the AREA or TEXT operand for LOC or the TEXT operand for LOCTEXT. If data that meets the comparison condition is found before the specified number of positions have been scanned, the THEN action is taken. Otherwise, the ELSE action is taken.
Note: Due to possible performance degradation, use this option with care.
Format: For the SCAN operand, you can code one of the following values:
YES
Specifies that scanning continues until the condition is met or the end of the data is reached.
value
Specifies that scanning continues until the condition is met, the number of positions specified by value has been scanned, or the end of data is reached. value can be any integer from 1 to 32767 or a counter specification whose value is within this range.

Default: None. If this operand is omitted, no scanning is performed. The LOCLENG operand cannot be coded with the SCAN operand.

SCANCNTR=cntr
Function: Specifies a counter to be set to the offset of text data that caused the logic test condition to be met. If text is being compared and the IF condition is met, the specified counter is assigned the value of the offset into the save area, user area, buffer, or data stream which satisfies the condition if the LOC operand was coded or the value of the offset into the LOCTEXT data if the LOCTEXT operand was coded. If the IF condition was not met, the value of the counter is unchanged.
Note: If you code this operand, do not code the CURSOR, EVENT, or LOCLENG operands. Also, do not code the SCANCNTR operand if the LOC operand specifies a switch or counter to be tested or the LOCTEXT operand specifies an integer or counter to be tested. If SCANCNTR and UTBLCNTR are both coded and the same counter is specified on both operands, the SCANCNTR operand will take precedence if a match is found.

Format: The value coded for cntr can be any of the counter specifications as defined by the TEXT operand.

Default: None. This operand is optional.

SNASCOPE={ALL|LOC|REQ|RSP}
Function: Specifies which SNA flows to test for the data specified in the AREA, TEXT, or UTBL operand.
Format: For the SNASCOPE operand, you can enter one of the following values:
ALL
Specifies that logic testing is to performed on both SNA request and response flows.
LOC
Specifies that logic testing is to be performed based on the LOC or LOCTEXT operand specification. See Data locations for more information.
REQ
Specifies that logic testing is to be performed on the SNA request flows only.
RSP
Specifies that logic testing is to be performed on the SNA response flows only.

Default: LOC

Note: This operand is ignored for non-SNA devices.
TEXT={RESP|cntr|(data)|'xx'|integer}
Function: Specifies the text value for which the test is to be made.
Format: For the TEXT operand, you can code one of the following options:
RESP
The data to be used in the comparison was specified using the RESP operand on the previous TEXT statement. If no RESP was coded on the previous TEXT statement, a null value is used for the logic test.
cntr
The value of a counter is to be used in the comparison. The valid values for cntr are NSEQ, LSEQ, TSEQ, DSEQ, NCn, LCn, TCn, and DCn, where n is an integer from 1 to 4095. These values are explained under the LOC operand on this statement. The TEXT operand can specify a counter value only if the LOC operand specifies a counter value or the LOCTEXT operand specifies a counter or integer value.
(data)
The data coded within the parentheses is to be used as the comparison data. When comparing with specified data, you can enter hexadecimal data within the parentheses by enclosing the digits within single quotes.

Two digits compose one hexadecimal character. For example, TEXT=(ABC) will generate a comparison for the three characters ABC. TEXT=('AB'CD) is a comparison for three bytes including one hexadecimal character of AB and two EBCDIC characters of CD. A maximum of 32767 characters will be used for comparison. To enter a single quote, parenthesis, or dollar sign ($) as data, enter two of the characters. You can also continue the data on the next statement.

For information on the data field options that you can use, see Data field options.

'xx'
A test under mask on a byte of the data is executed using the mask specified by two hexadecimal digits within single quotes. The bits of the mask correspond one for one with the bits of the byte of data. A mask indicates that the corresponding bits in the byte of data are tested. If all bits tested are set to one, the THEN action is taken. Otherwise, the ELSE action is taken.
integer
A 1- to 10-digit integer ranging from 0 to 2147483647 is to be used in the comparison. This format is valid when the LOC operand specifies a counter or the LOCTEXT operand specifies a counter or integer value. The value will be compared to this text numeric value.

Default: None. Either the TEXT, UTBL, or AREA operand is required for all tests, except when you code the LOC operand for switch testing or code the EVENT operand. You cannot code the TEXT operand if the LOC operand specifies switch testing, or you code the AREA or LENG operand.

THEN=action
Function: Specifies the action to be taken if the specified condition was met, the switches tested were on, or the tested event was complete.
Note: When the THEN operand is omitted and the test condition is met, no action is taken (all indicators and message generation paths are left as they were before the IF statement was encountered).

Format: For the THEN operand, you can code one of the following options:

Bname-label

CONT

NSW(ON)

SW(ON)

Bname

WAIT

NSW(OFF)

SW(OFF)

 

DLYCNCL

NSWn(ON)

SWn(ON)

Cname-label

QUIESCE

NSWn(OFF)

SWn(OFF)

Cname

RELEASE

   

 

 

TSW(ON)

WAIT(event)

Ename-label

RETURN

TSW(OFF)

POST(event)

Ename

IGNORE

TSWn(ON)

RESET(event)

 

ABORT

TSWn(OFF)

SIGNAL(event)

 

 

 

QSIGNAL(event)

VERIFY[-(data)]

     
The following list describes each of the options.
Option Description
ABORT Causes the current message generation deck to be stopped, any active logic tests to be deactivated, and the next message generation deck to be selected according to normal PATH selection rules.
B Indicates a branch to another location within the message generation decks and resets the WAIT indicator. name specifies the name of the message generation deck that is the branch target. name-label specifies a label in the named message generation deck.
C Indicates a call to another location within the message generation decks and resets the WAIT indicator. name specifies the name of the message generation deck that is the call target. name-label specifies a label in the named message generation deck.

Call differs from branch in that a return pointer is saved to allow message generation to return to the point of the call.

CONT Specifies that message generation is to continue in the current message generation deck.
DLYCNCL Cancels any active or pending intermessage delay.
E Specifies an immediate execution of the statements beginning at the specified message generation deck location. name specifies the name of the message generation deck that is the execute target. name-label specifies a label in the named message generation deck.

The statement types that can be executed with this action are BRANCH, CALC, CANCEL, DATASAVE, DEACT, EVENT, IF (other than WHEN=IMMED), LABEL, LOG, MONITOR, MSGTXT, ON, OPCMND, SET, SETSW, SETUTI, WTO, and WTOABRHD. Execution stops when any other statement type is encountered. This action is separate from, and does not affect, the normal message generation flow and does not reset the WAIT indicator. It takes place before the evaluation of any subsequent IF statements. It does not affect subsequent actions, and can itself be taken, regardless of whether or not any other action has already been taken.

IGNORE Specifies that no action is to take place. In addition, no other actions of the same class (such as CONT, RETURN, and WAIT) will take place for the message being tested, even if a subsequent logic test condition is met.
NSW(ON) Sets all network switches on up to the maximum number referenced.
NSW(OFF) Clears all network switches up to the maximum number referenced.
NSWn(ON) Sets on the indicated network switch, where n is an integer from 1 to 4095.
NSWn(OFF) Clears the indicated network switch, where n is an integer from 1 to 4095.
POST(event) Specifies that the named event is to be posted.
QSIGNAL(event) Specifies that the named event is to be signaled, but only for the device which issued the QSIGNAL.
QUIESCE Prohibits message generation until a release operation is performed. A quiesced device can receive messages and respond negatively to polls while not generating any data messages.
RELEASE Specifies that a quiesced device is to proceed in message generation.
RESET(event) Specifies that the named event is no longer to be considered posted.
RETURN Specifies a return to message generation after the point of the last call. If no CALL statements have been issued, a message trace (MTRC) record is written to the log data set, and the action is ignored.
SIGNAL(event) Specifies that the named event is to be signaled.
SW(ON) Sets all device switches on up to the maximum number referenced.
SW(OFF) Clears all device switches up to the maximum number referenced.
SWn(ON) Sets on the indicated switch for the device, where n is an integer from 1 to 4095.
SWn(OFF) Clears the indicated switch for the device, where n is an integer from 1 to 4095.
TSW(ON) Sets all terminal switches on up to the maximum number referenced.
TSW(OFF) Clears all terminal switches up to the maximum number referenced.
TSWn(ON) Sets on the indicated switch for the terminal, where n is an integer from 1 to 4095.
TSWn(OFF) Clears the indicated switch for the terminal, where n is an integer from 1 to 4095.
VERIFY[-(data)] Causes a VRFY log record to be logged to the log data set for this network. If data is coded, it will be included in the VRFY log record. The value for data can be one or more characters enclosed within parentheses. Although data may be longer than 50 characters, no more than 50 characters will be included in the VRFY record. To enter a single quote or parenthesis as data, enter two of the characters. You can continue the data and include any data field options.

The Loglist Utility (refer to WSim Utilities Guide) can format these VRFY log records into Verification Reports.

WAIT Prohibits message generation.

Default: None. You must code either the THEN or ELSE operand.

Notes:
  • When the THEN operand is omitted, the DATASAVE, DELAY, LOG, and RESP operands are not allowed on the IF statement.
  • When a BRANCH, CALL, RETURN, QUIESCE, RELEASE, or CONT action is taken, the WAIT condition is reset to OFF.
  • Resetting the WAIT condition with a CONT, BRANCH, CALL, QUIESCE, or RELEASE action does not reset the event wait condition.
  • See Creating WSim Scripts for more information on actions executed when multiple IF statements are coded.
  • The event name specified in WAIT(event), POST(event), SIGNAL(event), QSIGNAL(event), and RESET(event) can either be explicitly coded as a name (up to eight alphanumeric characters), or it can reference a save area or user area for the name. These are specified as:
    • value
    • Ns+value
    • value
    • s+value
    Reference the EVENT statement or EVENT operand for more information on these operand values.
TYPE=type
Function: Specifies the type of terminal for which this IF statement is to be evaluated.
Note: Terminal, device, and logical unit types contains definitions of the terminal and device types.

Format: For the TYPE operand, you can code one of the following terminal types:

LU0

LU1

LU2

LU3

LU4

LU6

LU62

FTP

LU7

TN3270

STCP

SUDP

TNNVT

TN3270E

TN3270P

TN5250

       
UTBL=name
Function: Specifies the number of the user table, as defined by a UTBL statement or name coded on the MSGUTBL statement, containing the entries to be compared with the data defined by the LOC or LOCTEXT operand.

Format: An integer from 0 to 255 or from one to eight alphanumeric characters with the first character being alphabetic.

Default: None. This operand is optional.

Note: If you code the UTBL operand, do not code the AREA, LENG, EVENT, and TEXT operands. Also, you cannot code the UTBL operand if the LOC operand specifies a switch or counter to be tested or the LOCTEXT operand specifies a counter or integer value to be tested.
UTBLCNTR=cntr
Function: Specifies a counter to be set to the index of the user table entry that caused the logic test condition to be met. If the logic test condition was not met, the value of the counter is unchanged.
Note: If you code the UTBLCNTR operand, do not code the AREA, EVENT, LENG, and TEXT operands. Also, you cannot code the UTBLCNTR operand if the LOC operand specifies a switch or counter to be tested or the LOCTEXT operand specifies a counter or integer value to be tested. If SCANCNTR and UTBLCNTR are both coded and the same counter is specified on both operands, the SCANCNTR operand will take precedence if a match is found.

Format: The value of cntr can be any of the counter specifications as defined by the TEXT operand.

Default: None. This operand is optional.

Note: The index of the first entry in a user table is zero.
WHEN={IN|OUT}
Function: Specifies when the logic test is to be evaluated.
Format: For the WHEN operand, you can code one of the following values:
IN
Specifies that the logic test will be evaluated when WSim receives the data.
OUT
Specifies that the logic test will be evaluated when WSim transmits the data.

Default: IN