Statement syntax: Difference between revisions
mNo edit summary |
|||
Line 552: | Line 552: | ||
where <var class="term">outbound-options</var> are:</p> | where <var class="term">outbound-options</var> are:</p> | ||
<ul style="font-family: Consolas,monospace"> | <ul style="font-family: Consolas,monospace"> | ||
<li>[AT DESTINATION] [WITH] [USERID <span class="squareb">{</span>%variable <span class="squareb">|</span> 'string'<span class="squareb">}</span>] | <li>[AT DESTINATION] [WITH] [USERID <span class="squareb">{</span><i>%variable</i> <span class="squareb">|</span> '<i>string</i>'<span class="squareb">}</span>] | ||
<li>[PASSWORD <span class="squareb">{</span>%variable <span class="squareb">|</span> 'string'<span class="squareb">}</span>] | <li>[PASSWORD <span class="squareb">{</span><i>%variable</i> <span class="squareb">|</span> '<i>string</i>'<span class="squareb">}</span>] | ||
<li>[<span class="squareb">{</span>ACCOUNT <span class="squareb">|</span> PROFILE <span class="squareb">{</span>%variable <span class="squareb">|</span> 'string'<span class="squareb">}</span>] | <li>[<span class="squareb">{</span>ACCOUNT <span class="squareb">|</span> PROFILE <span class="squareb">{</span>%<i>%variable</i> <span class="squareb">|</span> '<i>string</i>'<span class="squareb">}</span>] | ||
<li>[INITIAL <span class="squareb">{</span>DATA 'string' <span class="squareb">|</span> DATA %variable <span class="squareb">|</span> IMAGE imagename] ...] | <li>[INITIAL <span class="squareb">{</span>DATA '<i>string</i>' <span class="squareb">|</span> DATA <i>%variable</i> <span class="squareb">|</span> IMAGE <i>imagename</i>] ...] | ||
</ul> | </ul> | ||
Line 565: | Line 565: | ||
<ul style="font-family: Consolas,monospace"> | <ul style="font-family: Consolas,monospace"> | ||
<li>ACCEPT [INITIAL <span class="squareb">{</span>DATA %variable <span class="squareb">|</span> IMAGE image<span class="squareb">}</span> ...] </li> | <li>ACCEPT [INITIAL <span class="squareb">{</span>DATA <i>%variable</i> <span class="squareb">|</span> IMAGE <i>image</i><span class="squareb">}</span> ...] </li> | ||
</ul> | </ul> | ||
Line 642: | Line 642: | ||
<div style="margin-left: 20px; background-color: #fBfBfB;"> | <div style="margin-left: 20px; background-color: #fBfBfB;"> | ||
<p> | <p> | ||
where options must be one or more of the following:</p> | where <var class="term">options</var> must be one or more of the following:</p> | ||
<ul style="font-family: Consolas,monospace"> | <ul style="font-family: Consolas,monospace"> | ||
<li>STATE %variable | <li>STATE <i>%variable</i> | ||
<li>PROCESSGROUP %variable | <li>PROCESSGROUP <i>%variable</i> | ||
<li>REMOTEID %variable | <li>REMOTEID <i>%variable</i> | ||
<li>SYNCLEVEL %variable | <li>SYNCLEVEL <i>%variable</i> | ||
<li>MODENAME %variable | <li>MODENAME <i>%variable</i> | ||
</ul> | </ul> | ||
Line 825: | Line 825: | ||
where <var class="term">key</var> is:</p> | where <var class="term">key</var> is:</p> | ||
<ul style="font-family: Consolas,monospace"> | <ul style="font-family: Consolas,monospace"> | ||
<li>key = fieldname <br> | <li><i>key</i> = <i>fieldname</i> <br> | ||
[VALUE <span class="squareb">{</span>[ASCENDING <span class="squareb">|</span> DESCENDING] <br> | [VALUE <span class="squareb">{</span>[ASCENDING <span class="squareb">|</span> DESCENDING] <br> | ||
[CHARACTER <span class="squareb">|</span> NUMERICAL] <span class="squareb">|</span> RIGHT-ADJUSTED]<span class="squareb">}</span> ...] </li> | [CHARACTER <span class="squareb">|</span> NUMERICAL] <span class="squareb">|</span> RIGHT-ADJUSTED]<span class="squareb">}</span> ...] </li> | ||
Line 843: | Line 843: | ||
where <var class="term">key</var> is:</p> | where <var class="term">key</var> is:</p> | ||
<ul style="font-family: Consolas,monospace"> | <ul style="font-family: Consolas,monospace"> | ||
<li>key = fieldname <br> | <li><i>key</i> = <i>fieldname</i> <br> | ||
[VALUE <span class="squareb">{</span>[ASCENDING <span class="squareb">|</span> DESCENDING] <br> | [VALUE <span class="squareb">{</span>[ASCENDING <span class="squareb">|</span> DESCENDING] <br> | ||
[CHARACTER <span class="squareb">|</span> NUMERICAL] <span class="squareb">|</span> [RIGHT-ADJUSTED]<span class="squareb">}</span> ...] </li> | [CHARACTER <span class="squareb">|</span> NUMERICAL] <span class="squareb">|</span> [RIGHT-ADJUSTED]<span class="squareb">}</span> ...] </li> | ||
Line 889: | Line 889: | ||
where <var class="term">formal-parameter</var> is one of the following:</p> | where <var class="term">formal-parameter</var> is one of the following:</p> | ||
<ul style="font-family: Consolas,monospace"> | <ul style="font-family: Consolas,monospace"> | ||
<li>%variable [IS STRING [LEN n] [DP <span class="squareb">{</span>n <span class="squareb">|</span> *<span class="squareb">}</span>] [ARRAY (*[,*[,*]]) [NO FS]] <br> | <li><i>%variable</i> [IS STRING [LEN <i>n</i>] [DP <span class="squareb">{</span><i>n</i> <span class="squareb">|</span> *<span class="squareb">}</span>] [ARRAY (*[,*[,*]]) [NO FS]] <br> | ||
<span class="squareb">|</span> IS <span class="squareb">{</span>FIXED [DP n] <span class="squareb">|</span> FLOAT<span class="squareb">}</span> [ARRAY (*[,*[,*]])]] | <span class="squareb">|</span> IS <span class="squareb">{</span>FIXED [DP <i>n</i>] <span class="squareb">|</span> FLOAT<span class="squareb">}</span> [ARRAY (*[,*[,*]])]] | ||
<li>LIST listname [IN [FILE <span class="squareb">|</span> [PERM <span class="squareb">|</span> TEMP] GROUP] name] | <li>LIST <i>listname</i> [IN [FILE <span class="squareb">|</span> [PERM <span class="squareb">|</span> TEMP] GROUP] <i>name</i>] | ||
</ul> | </ul> | ||
</div> | </div> |
Revision as of 17:36, 11 January 2014
Overview
This topic summarizes User Language syntax and conventions, many of which are also discussed throughout this manual.
The statements are listed in alphabetical order. Later sections in this topic provide other User Language syntax information.
All of the User Language statements listed can be used between a BEGIN (or MORE) command and an END (or END MORE) statement.
All system control commands are presented in the List of Model 204 commands.
Notation conventions
This page uses the following syntax notation conventions:
Syntax notation | Indicates that... |
---|---|
Single asterisk (*) | Statements can be preceded by an IN clause, if there is no reference to a previous set (label or list). See IN clause syntax for more discussion. |
Two asterisks (**) | Construct can appear only within a record loop. |
Plus sign (+) | Construct requires the optional Horizon feature. |
Two plus signs (++) | Construct requires the optional User Language to Database 2 feature. |
C | The syntax applies to a Model 204 command as well as a User Language statement, except any %variable options or clauses.
Model 204 commands are listed alphabetically and documented in List of Model 204 commands. |
Lowercase italic | Constructs are replaced with variable information. |
- A field name (%%) variable can be used anywhere fieldname appears. The %%variable can contain its own subscript, separate from the field name subscript.
Note: The subscript of an array element must be specified before a field name subscript.
- The lowercase constructs — retrieval-conditions, print-specifications, expression, subscript, attribute, and type — are discussed separately following the syntax summaries, beginning with Value specification syntax.
User Language statements
(**)ADD fieldname = {value | (expression)} ADD lob-name=BUFFER,position,length[RESERVE n [BYTES]]
ARRAY [arrayname] OCCURS {n | UNKNOWN} DEPENDING ON {itemname | %variable} [AFTER {itemname | arrayname} | AT {position | itemname | imagename1 | arrayname}]
AUDIT print-specifications
AUDIT ALL FIELDGROUP INFORMATION [CTOFIELDS]
{AUDIT ALL INFORMATION | AAI}
(C)BACKOUT
BYPASS [PENDING STATEMENT]
CALL {label | subname [([expression | %variable | [LIST] listname] [,...])]}
(**)CHANGE fieldname [(subscript)] [= value1 | (expression)] TO (value2 | (expression)) CHANGE lob-fieldname,position1,length TO BUFFER,position2,length[RESERVE n [BYTES]]
CLEAR {[[ALL | TEMP | LISTFDST | POSITION] [GLOBAL]] OBJECTS | GLOBALS | GLOBAL {IMAGE | SCREEN | MENU | LIST | FOUNDSET | POSITION [PERM | TEMP]} {'objectname' | %variable}}
(*)CLEAR LIST listname
CLEAR ON {ATTENTION | ERROR | FIELD CONSTRAINT CONFLICT | FIND CONFLICT | RECORD LOCKING CONFLICT | MISSING FILE | MISSING MEMBER}
CLEAR TAG {screenname | %screenname:inputname}
CLOSE {DATASET {ext-filename | %variable} | [EXTERNAL] {ext-filename | TERMINAL | %variable}}
(+C)CLOSE PROCESS {cid | processname | %variable} [SYNCLEVEL | FLUSH | %variable]
CLOSE PROCESS {cid | processname | %variable} [SYNCLEVEL | CONFIRM | FLUSH | ERROR | %variable]
COMMIT [RELEASE]
(+)CONFIRM {cid | processname | %variable} REQSEND %variable
(+)CONFIRMED {cid | processname | %variable}
CONTINUE
(**)COUNT OCCURRENCES OF fieldname
COUNT RECORDS {IN label | ON [LIST] listname}
[DECLARE] declaration
where declaration is one of the following:
- LABEL labelname [GLOBAL | COMMON]
- LIST listname [IN [FILE | [PERM | TEMP] GROUP]] name] [GLOBAL | COMMON]
- IMAGE imagename[AT {itemname | imagename1 | arrayname}
| GLOBAL [PERMANENT | TEMPORARY]
| [PERMANENT | TEMPORARY] GLOBAL | COMMON] - MENU menuname [GLOBAL [PERMANENT | TEMPORARY]
| [PERMANENT | TEMPORARY] GLOBAL | COMMON] - SCREEN screenname [GLOBAL [PERMANENT | TEMPORARY]
| [PERMANENT | TEMPORARY] GLOBAL | COMMON] - %variable [IS] {FIXED [DP n] | FLOAT} [ARRAY (d1 [,d2 [,d3]])]
[INITIAL(numeric-expression)] [STATIC] [COMMON] - %variable [IS] STRING [LEN n] [DP {n | *}] [ARRAY (d1 [,d2[,d3]])]
[NO FIELD SAVE] [COMMON]
[INITIAL('EBCDIC-string' | expression)] [STATIC] - SUBROUTINE subname [(type [INPUT | OUTPUT | INPUT OUTPUT] [,...])]
where type is one of the following:
- Scalar %variable of the following format:
- {STRING [LEN] n [DP {n | *}] | [FIXED [DP n] | FLOAT]}
- Array %variable of the following format:
- {STRING [LEN n] [DP [n | *}] [ARRAY (* [,*[,*]]) [NO FIELD SAVE]]
| [FIXED [DP n] | FLOAT] [ARRAY (* [,*[,*]])]}
- {STRING [LEN n] [DP [n | *}] [ARRAY (* [,*[,*]]) [NO FIELD SAVE]]
- A list of records of the following format:
- [LIST] [IN {FILE | [PERM | TEMP] GROUP} name]
DEFAULT CURSOR [READ | REREAD | PRINT] {ITEMID n | itemname | ROW n COLUMN m}
DEFAULT {TITLE | PROMPT | INPUT [DEBLANK | NODEBLANK] [PAD WITH 'c'] [LEN m [DP [k | *}]] [UPCASE | NOCASE] | [TAG [attributes] [WITH 'c']} [[READ] attributes] [REREAD attributes] [PRINT attributes]
DEFAULT SKIP n POSITIONS[S] [INITIAL {NULL | character | BLANK}]
DEFAULT [TYPE] {STRING | BINARY | PACKED | ZONED | FLOAT | EFORMAT} {LEN {n | UNKNOWN} | BITS n | DIGITS n} [DP {k | *}] [BP n] [SIGNED | UNSIGNED] [PAD {BLANK | character | NULL}] [STRIP | NOSTRIP] [JUSTIFY {LEFT | RIGHT}] [INITIAL {BLANK | ZERO | NULL | literal}]
(**)DELETE fieldname [(subscript)] [= value |(expression)]
(**)DELETE EACH fieldname
(**)DELETE RECORD
DELETE [ALL] RECORDS {IN label | ON [LIST] listname}
END BLOCK label
END {FIND | IF | FOR | ON | REPEAT | STORE | SUBROUTINE} [label]
END {ARRAY | IMAGE | MENU | SCREEN}
END [MORE | NORUN | USE]...
END UPDATE
FILE RECORDS {IN label | ON [LIST] listname} UNDER fieldname = {value | (expression)}
(*)FIND [AND RESERVE] [ALL] RECORDS [IN label | ON [LIST] listname] [FOR WHICH | WITH] retrieval-conditions
(*)FIND [ALL] VALUES OF fieldname [FROM {value1 | (expression1)}] [TO {value2 | (expression2)}] [[NOT] LIKE 'pattern']
(*)FIND AND PRINT COUNT [retrieval-conditions]
(*){FIND WITHOUT LOCKS | FDWOL} [ALL] RECORDS [IN label | ON [LIST] listname] [FOR WHICH | WITH] retrieval-conditions
FLUSH PROCESS {cid | processname | %variable}
(**)FOR {EACH | k} {OCCURRENCE | OCCURRENCES} OF fieldname
(*)FOR {EACH | k} {RECORD | RECORDS} [IN label | ON [LIST] listname] IN [ASCENDING | DESCENDING] [SORTKEY] ORDER [BY [EACH] fieldname] [FROM {value1 | (expression1)}] [TO {value2 | (expression2)}] [BY {%variable | literal}] [OPTIMIZING FNV] [{WHERE | WITH} retrieval-conditions]
(*)FOR {EACH | k} {VALUE | VALUES} OF fieldname [FROM {value1 | (expression1)}] [TO {value2 | (expression2)}] [[NOT] LIKE pattern] [IN [ASCENDING | DESCENDING] [CHARACTER | NUMERICAL] [RIGHT-ADJUSTED] ORDER]
FOR {EACH | k} {VALUE | VALUES} IN label
(*)FOR RECORD NUMBER {value | (expression)}
FOR RECORD NUMBER {value | IN label} [OPTIMIZING FNV]
FOR %variable FROM expression1 {TO expression2 [BY expression3] | [BY expression3] TO expression2}
Note: The BY clause, when omitted, defaults to a value of 1.
IDENTIFY {[IMAGE] imagename | %imagename:itemname LEN {n | %variable} | %imagename:arrayname OCCURS {n | %variable}}
(C)IF expression THEN statements [ELSE statements | ELSEIF expression THEN statements]
[DECLARE] IMAGE imagename [GLOBAL [PERMANENT | TEMPORARY] | [PERMANENT | TEMPORARY] GLOBAL | COMMON [AT [itemname | imagename1 | arrayname}]]
(*)INCLUDE procedurename
INPUT inputname [AT [COLUMN] n] [TO [COLUMN] m | [LEN m] DP {k | *}]] [UPCASE | NOCASE] [DEFAULT 'value'] [DEBLANK | NODEBLANK] [PAD WITH 'c'] [REQUIRED | ALPHA | ALPHANUM | MUSTFILL | ONEOF literal [, literal]... | [NUMERIC] [RANGE lo [TO] hi [AND lo [TO] hi] ...] | VERIFY 'characters']... [[READ] attributes] [REREAD attributes] [PRINT attributes] {TAG [attributes] [WITH 'c']] [ITEMID n]
INSERT fieldname [(subscript)] = {value | (expression)}
(+)INVITE {cid | processname | %variable} [SYNCLEVEL | FLUSH | CONFIRM]
itemname IS [TYPE] {STRING | BINARY | PACKED | ZONED | FLOAT | EFORMAT} {LEN {n | UNKNOWN} | BITS n | DIGITS n | TO position} [DP {k | *}] [BP n] [SIGNED | UNSIGNED] [PAD {BLANK | character | NULL}] [STRIP | NOSTRIP] [ALIGN] [JUSTIFY {LEFT | RIGHT}] [INITIAL {BLANK | ZERO | NULL | value}] [AFTER {itemname | arrayname} | AT {position | itemname | imagename1 | arrayname}] [OCCURS {n [DEPENDING ON {itemname | %variable}] | UNKNOWN}]
JUMP TO label
JUMP TO (label1 [, label2] ...) expression
LOOP END
MAX PFKEY n
[DECLARE] MENU menuname [GLOBAL [PERMANENT | TEMPORARY] | [PERMANENT | TEMPORARY] GLOBAL | COMMON]
MODIFY {%menuname:itemname | %screenname:itemname} [TO] attributes [[FOR] {ALL | READ | REREAD | TAB | PRINT}]
MODIFY BUFFER [SIZE=n | %variable [PRESERVE | NOPRESERVE]] [FILL [X'nn'] | CLEAR]
(C)NEW PAGE
(**)NOTE {fieldname [(subscript)]}
NOTE 'string'
ON {ATTENTION | ERROR | FIELD CONSTRAINT CONFLICT | FIND CONFLICT | MISSING FILE | MISSING MEMBER | RECORD LOCKING CONFLICT} statements
OPEN {[DATASET | EXTERNAL] {ext-filename | %variable} | [EXTERNAL] {TERMINAL | %variable}} FOR {INPUT [OUTPUT] | OUTPUT [INPUT] | INOUT} [PASSWORD {value | %variable}]
(C)OPEN [C] [[PERM | TEMP] GROUP | FILE] {name [AT {location | %variable | =}] | %variable} [PASSWORD {value | %variable}]
OPEN PROCESS {processname | %variable} [CID {name | %variable}]
(+)OPEN PROCESS {processname | %variable} [CID {name | %variable}] {outbound-options | inbound-options}
where outbound-options are:
- [AT DESTINATION] [WITH] [USERID {%variable | 'string'}]
- [PASSWORD {%variable | 'string'}]
- [{ACCOUNT | PROFILE {%%variable | 'string'}]
- [INITIAL {DATA 'string' | DATA %variable | IMAGE imagename] ...]
and inbound-options are:
- ACCEPT [INITIAL {DATA %variable | IMAGE image} ...]
PAUSE [n | %variable]
(**)PLACE RECORD ON [LIST] listname
PLACE RECORDS {IN label | ON [LIST] listname1} ON [LIST] listname2
POSITION {FOUNDSET foundsortset_name | LIST list_name} [AT] position_name
Note: Use this form of the POSITION statement with FOR loop processing; see POSITION statement.
POSITION {ext-filename | %variable} AT KEY operator{value | %variable}
Note: Use this form of the POSITION statement with external file processing using images; see POSITION statement.
PREPARE {[IMAGE] imagename | [MENU] menuname | [SCREEN] screenname}
PRINT print-specifications
(**){PAI | PRINT ALL INFORMATION} INTO array1, array2 [, array3] [FROM start] [COUNT ct]
PRINT [MENU] menuname [ALERT] [TITLE {'text' | %variable} [AT [COLUMN] n] [TO [COLUMN] m | LEN m] [attributes]]
PRINT SCREEN screenname [ALERT] [[WITH] CURSOR] [TITLE {'text' | %variable} [AT [COLUMN] n] [TO [COLUMN] m | LEN m] [attributes]]
PROMPT {'text' | promptname} [AT [COLUMN] n] [TO [COLUMN] m | LEN m] [DP {k | *}]] [DEFAULT 'value'] [[READ] attributes] [REREAD attributes] [PRINT attributes] [ITEMID n]
(+)QUERY PROCESS {cid | processname | %variable} options
where options must be one or more of the following:
- STATE %variable
- PROCESSGROUP %variable
- REMOTEID %variable
- SYNCLEVEL %variable
- MODENAME %variable
READ [IMAGE] imagename FROM {ext-filename | TERMINAL | %variable} [PROMPT {'text' | %variable}] [NEXT | KEY operator {value | %variable}]
READ [IMAGE] imagename FROM BUFFER [POSITION={%pvariable | n}] [MAXLEN={%lvariable | n}]
READ [MENU] menuname [ALERT] [TITLE ['text' | %variable} [AT [COLUMN] n] [TO [COLUMN] m | LEN m] [attributes]]
READ [SCREEN] screenname [ALERT] [NO REREAD] [ [WITH] CURSOR] [TITLE {'text' | %variable} [AT [COLUMN] n] [TO [COLUMN] m | LEN m] [attributes]]
RECEIVE {IMAGE imagename | %variable} FROM {cid | processname | %variable} [RESULT %variable]
(+)RECEIVE {IMAGE imagename | %variable} FROM {cid | processname | %variable} RESULT %variable
RELEASE ALL RECORDS
RELEASE POSITION {ext-filename | %variable}
RELEASE RECORDS {IN label | ON [LIST] listname}
(**)REMEMBER [GLOBAL] position_name [IN foundsortset_name | ON list_name]
(**)REMOVE RECORD FROM [LIST] listname
REMOVE RECORDS {IN label | ON [LIST] listname} FROM [LIST] listname2
REPEAT [FOREVER | n TIMES | WHILE expression]
REREAD [SCREEN] screenname [ALERT] [[WITH] CURSOR] [TITLE {'text' | %variable} [AT [COLUMN] n] [TO [COLUMN] m | LEN m] [attributes]]
RESET {HEADER | TRAILER} m
RETRY [PENDING STATEMENT]
RETURN
[DECLARE] SCREEN screenname [GLOBAL [PERMANENT | TEMPORARY] | [PERMANENT | TEMPORARY] GLOBAL | COMMON]
SEND {IMAGE imagename | 'string' | %variable} TO {cid | processname | %variable} [REQSEND %variable] [FLUSH]
(+)SEND {IMAGE imagename | 'string' | %variable} TO {cid | processname | %variable} [FLUSH | CONFIRM] [REQSEND %variable]
(+)SEND ERROR TO {cid | processname | %variable} REQSEND %variable
SET {HEADER | TRAILER} m print-specifications
SIGNAL PROCESS {cid | [processname | %variable} {nnn | %variable}
(+)SIGNAL PROCESS {cid | [processname | %variable}
SKIP n LINE[S]
[itemname IS] SKIP n POSITION[S] [INITIAL {NULL | character | BLANK}]
SORT [k] RECORDS {IN label | ON [LIST] listname} BY key [AND key] ...
where key is:
- key = fieldname
[VALUE {[ASCENDING | DESCENDING]
[CHARACTER | NUMERICAL] | RIGHT-ADJUSTED]} ...]
SORT [k] RECORD KEYS {IN label | ON [LIST] listname} BY key [AND key] ...
where key is:
- key = fieldname
[VALUE {[ASCENDING | DESCENDING]
[CHARACTER | NUMERICAL] | [RIGHT-ADJUSTED]} ...]
SORT VALUE IN label [IN [ASCENDING | DESCENDING] [CHARACTER | NUMERICAL] | [RIGHT-ADJUSTED] ORDER]
STOP [IF COUNT IN label EXCEEDS n]
(*)STORE RECORD [sort or hash key value] fieldname1=[value1 | (expression1)] [fieldname2=(expression)] ... [THEN CONTINUE statement statement ...] END STORE
SUBROUTINE
SUBROUTINE subname [(formal-parameter [INPUT | OUTPUT | INPUT OUTPUT] [,...])]
where formal-parameter is one of the following:
- %variable [IS STRING [LEN n] [DP {n | *}] [ARRAY (*[,*[,*]]) [NO FS]]
| IS {FIXED [DP n] | FLOAT} [ARRAY (*[,*[,*]])]] - LIST listname [IN [FILE | [PERM | TEMP] GROUP] name]
TAG %screenname:inputname [attributes] [WITH 'c']
(+)TEST [FOR] {ANY RECEIPT RETURN %variable | RECEIPT {cid | processname | %variable}}
TITLE {'text' | promptname} [AT [COLUMN] n] [TO [COLUMN] m | [LEN m] [DP {k | *}]] [DEFAULT 'value'] [[READ] attributes] [REREAD attributes] [PRINT attributes]
TRANSFER [CONTROL] TO PROCESS {processname | %variable} [WITH] [USERID {string | '%variable'}] [PASSWORD {variable | 'string'}] [ACCOUNT {%variable | 'string'}] [PASSING {IMAGE imagename | 'string' | %variable}]
UPDATE RECORD
VARIABLES ARE {FIXED [DP n] | FLOAT | STRING [LEN n] [DP {n | *}] | UNDEFINED}
[DECLARE] %variable [IS] {FIXED [DP n] | FLOAT} [ARRAY (d1[,d2[,d3]])] [COMMON]
[DECLARE] %variable [IS] STRING [LEN n] [DP {n | *}] [ARRAY (d1[,d2[d3]])] [NO FIELD SAVE] [COMMON] %variable [(subscript)] = expression
(+)WAIT [{n | %variable} SEC[S]] [FOR] {ANY RECEIPT RETURN %variable | RECEIPT {cid | processname | %variable}}
WRITE [IMAGE] imagename ON {seq-filename | TERMINAL | %variable}
WRITE IMAGE imagename ON BUFFER [POSITION=%pvariable | n] [MAXLEN={%lvariable | n}]