Syntax for input to the Builder
The syntax in the sequential data sets used as input for the Builder is similar, but not identical, to that allowed by CICSPlex® SM.
- The only statements you can supply are:
- CREATE statements for TRANGRPs and DTRINGRPs.
- REMOVE statements for TRANGRPs.
- TEXT statements and line comments. A line comment is a line that starts with an asterisk (*) in column 1.
- HEADER statements for the Builder, but not for a CICSPlex SM statement.
- Block comments delimited by '/*' and '*/' are not recognized.
- Transaction group names of up to 11 characters are allowed. CICSPlex SM allows only 8 characters.
- A CREATE TRANGRP statement must have exactly one NAME, one AFFINITY, and one AFFLIFE value. MATCH and STATE values are optional and ignore; they are overridden by the values on the PARM statement or the default. A DESC value is optional and ignored. Any other keywords are reported as errors.
- A CREATE DTRINGRP statement must have exactly one TRANGRP and one TRANID value. Any other keywords are reported as errors.
- REMOVE TRANGRP statements are optional and are ignored by the Builder. However, if a REMOVE TRANGRP statement appears in an input data set, it must have exactly one NAME value. Any other keywords are reported as errors.
- CONTEXT statements in the input data set are optional and are ignored by the Builder. They are overridden by the CONTEXT operand of the PARM statement, if specified, or the default.
- A HEADER statement requires no keyword. APPLID, SAVEDATE, and SAVETIME are all optional, and, if specified, their values are not validated. The HEADER statement must end in a semi-colon (;) and not span lines. Each input data set must start with a HEADER statement. See HEADER statements.
- If a line comment contains the characters HEADER anywhere in it, it is not treated as a comment and is parsed like any ordinary line in case it is a HEADER statement. Otherwise comment lines are thrown away.
- The only valid values for AFFINITY are GLOBAL, LUNAME, USERID, BAPPL , and LINK3270. NONE is not allowed.
- Keywords and values, including surrounding brackets, must not be split across input lines.
- Nested brackets are not allowed within values.
- The Builder is case-sensitive, both for keywords and their values. Keywords must be in uppercase.
Any syntax error causes an error message to be issued. Logic errors are also possible; for example, CREATE DTRINGRP before CREATE TRANGRP can cause error messages to be issued.
Any such errors do not cause the Builder to terminate immediately, but normally cause a skip to either the next keyword or the next statement, depending on the error. The Builder terminates with a return code of 8 when EOF is finally reached. An error report lists all errors encountered. For each error, the line containing the error is produced, with up to four preceding lines for the same statement to put the error in context, and the error message. The input syntax is shown in Figure 1.
input_statement = {create_statement |
remove_statement |
header_statement |
context_statement |
comment}
create_statement = CREATE
{create_trangrp |
create_dtringrp}
;
create_trangrp = TRANGRP
NAME (Trangroup)
AFFINITY ({GLOBAL|LUNAME|USERID})
AFFLIFE ({PERMANENT|SYSTEM|LOGON|SIGNON|PCONV})
[DESC (string)]
[MATCH ({LUNAME|USERID})]
[STATE ({ACTIVE|DORMANT})]
create_dtringrp = DTRINGRP
TRANGRP (Trangroup)
TRANID (tranid)
remove_statement = REMOVE
TRANGRP
NAME (Trangroup)
;
context_statement = CONTEXT
[plexname]
;
header_statement = HEADER
[APPLID (applid)]
[SAVEDATE (date)]
[SAVETIME (time)]
;
comment = '*'
[string |
header_statement]