Chapter 11:  System Fields

There are over 160 system fields available.  Some system fields values can be changed by the user while others cannot (read-only).  Caution should be taken if modifying system fields.  Only data type is checked during entry.

Some of the current information that system fields can provide are: date; time; ACCENT R version; files that are in use; number of records in the master, transaction, auxiliary, or destination Data Set that were affected by processing.  The values in these system fields are provided by the system and are not modifiable by the user.

Some system fields can be used to control ACCENT R parameters.  The ACCENT R message system can be accessed and values set.  Output reports can be formatted.  The degree of value comparison can be adjusted.

Other system fields can store values as part of data processing.  The values can be numeric, integer, string, or date data types.  Each can have up to 25 occurrences.

DESCRIPTIONS OF SYSTEM FIELDS

Several of the system fields take subscripts to identify the report to which they apply, or to identify occurrences in an array.  Others take suffixes to identify the Data Set (DS) to which they apply.  The identifiers allowed are detailed in the individual discussions below.

For convenience and efficiency, references to the first occurrence of a subscript system field need not have the subscript expressed.  Thus the following two statements reference the same field:

SET 5 TO @INTEGER
SET 5 TO @INTEGER(1)

Any system field can be changed that has a default value shown in the following discussion. ACCENT R system fields consist of:

  1. Date and Time Fields

Date and time fields access some part of system information about current date or time (except @TIME_ZONE and @MONTH_NAME, which are constant).  By default, the values placed in these fields represent the time and date at the beginning of a command; that is, after a carriage return is entered at the command level (* prompt).  The automatic updating at command level can be suppressed by the DISABLE CALENDAR UPDATING command.  During Process Module (PM) execution, these fields can be updated by the SETUP CALENDAR statement.

  1. Record Information Fields

Record Information Fields contain information about the DS currently being processed.  These system fields count records of a certain type that have been processed by the current Command or Process Module.  These fields are listed at the end of this chapter.

If more than one DS is being processed, these fields should be suffixed as follows to identify the DS to which they apply:

            :M   master DS

            :T    transaction DS

:designator   the given auxiliary DS

Those system fields that can take a DS identifier are shown with the suffix [:id].

The record information fields can all be accessed during processing to find their current value.  They can also be accessed after processing is finished, but before control leaves the current PM.  After the PM is completed, only the fields that apply to master and transaction DS's are available for access.

The fields for auxiliary DS's can be modified, but those for master and transaction cannot.

  1. Report Control Fields

Report Control Fields are used in creating reports.  These fields can be set within a PM and are reset to their default value at the beginning of any PM that creates a report.  If more than one report is being created in a PM, several of these system fields must then have a report identifying number between 1 and 10, corresponding to a related report number.  System fields that can take report identifiers are shown with the suffix [(x)].

  1. System Control Fields

System Control Fields control ACCENT R parameters, test system messages, or obtain status information.

  1. User Storage Fields

User Storage Field are used to store temporary information.  Five system fields are available for use.  They are, @DATETIME, @INTEGER, @NUMBER, @STRING, and @VDATE.  They can be changed only by explicit assignment with the SET TO command, a SET clause, or an assignment statement within a PM.  These fields are set to their default values when ACCENT R is called.  Any values assigned to them remain until a new value is assigned or until ACCENT R is exited.

The following is a description of every system field, in alphabetical order.

@ABORT_CM   CHAR   40

This modifiable field may contain the name of a Command Module (CM).  The CM is executed when an abort occurs in a CM or System File (SF).  ERROR ABORT must be ENABLED for control to switch to the abort CM.  An error message is displayed before control is passed to the abort CM.  The CM named in @ABORT_CM must be in the current DBL for the switch to occur.  ACCENT R checks the syntax of a name set to @ABORT_CM, but does no other checking.  If there is no name in @ABORT_CM (defaults to blanks), control returns to the terminal.

@ACCENT_NAME   CHAR   16

This read-only field contains the exec file name that started the current ACCENT R version.  Example:

*TYPE @ACCENT_NAME
NIS:ACCV1127.EXE

@ACCENT_VERSION   CHAR   4

This read-only field contains the version number of ACCENT R.  The information is a subset of @ACCENT_NAME.  Example:

*TYPE @ACCENT_VERSION
1127

@ACCESS_PRIV   REAL   10

This modifiable field contains a modifiable access privilege code.  Fractions and negative numbers can be set as the privilege code.  The default value is zero.

@ADDRESS[:id]   INT   8

This read-only field contains the byte address of the current record.  This field is often used with the Process Module (PM) statement GET ADDRESS from designator.  The default value is zero.  Master Data Set ID is "M" and Transaction Data Set is "T".  Auxiliary Data Set ID's are as assigned in the RELATE Statements in the PM Control Section.

@AUX   CHAR   5

This modifiable field contains the key to the last message caused by an operation on an auxiliary Data Set (DS).  Possible values are: INTER, EXIST, QUOTA, OPEN, CLOSE, TYPE, BUSY, NREDY, MULT, MODEL, FOR, LOCK, DUP, VALID, MISSI, DELET, CHG, LOCKF, SIZE, FIND, and CHANG.  @AUX_MESSAGE will contain the AUX message appropriate to the condition set.

@AUX_MESSAGE   CHAR   200

This field contains the AUX message explaining the condition set in @AUX.

@AUX_PREFIX   CHAR   20

This modifiable field contains the string to be prefixed onto auxiliary messages. The default is a percentage sign (%).  This field makes it possible to abort or otherwise control batch jobs in case of auxiliary messages.  An audible alert may be given by using @BELL or add blank lines for readability.

@BELL   CHAR   1

This read-only field contains the terminal bell code:  (Control-G).  Type @BELL returns a blank.

@BOTTOM_MARGIN[(1:10)]   INT   3

This modifiable field contains the number of lines to be left blank at the bottom of each report page.  The value stored must be greater than or equal to zero.  The default value is zero.  Example:

*SET 5 TO @BOTTOM_MARGIN (2)

This refers to REPORT 2 in the PM.

@BS   CHAR   1

This read-only field contains the backspace character.  Type @BS returns a blank.

@BUSY_OWNER   CHAR   40

This modifiable field provides more information in a PM when a data set record is found to be in use by another user.  It will be set to the following:

PID=pid.number USER user.name

If the HUSH option is used to suppress the normal "busy" messages, the PM could be programmed to inform the user, in a more friendly message, as to who had the record locked.

@CALMONTH   CHAR   3

This read-only field contains the three-letter abbreviation for the current month.  Example:

*TYPE @CALMONTH
Sep

@CENTURY   INT   8   OCCURS 100

This modifiable field occurs 100 times, representing each year of the century.  It is initialized to the century "2000" for years 00 through 10 and "1900" for years 11 through 99.

The field is set up so you may change these values at any time.  @CENTURY  is used whenever a date is being process that did no have a century included such as any field with the type DATE or values passed to @CAL.

@CDATE   CHAR   8

This read-only field contains the current date with two-digit year in form set by ENABLE DATE command.  The default format is MM/DD/YY.  @CDATE returns the same value as @DATE.  Example:

*TYPE @CDATE
09/04/91

@CFDATE   CHAR   10

This read only field outputs the full date in the form mm/dd/yyyy.

@CF_NAME[:id]   CHAR   40

This read-only field contains the name of the Control File  (CF) that is currently in use.  @CF_NAME is not available in the PM Debug utility.  The default value is blanks.

@CLEAR_FILE  CHAR  3

This modifiable field can have ACCENT R remove files before creating them so multiple versions of the file will not be created.  It is initialized to "NO".  If you wanted the files removed before creating new ones, set the value "YES" to this field.

@CLR_DATE  CHAR  1

This modifiable field is used to print blanks when using @DATSTR with a format string if the date is nodate or invalid.  The initial value of @CLR_DATE is "N".  When it is set to "N" it will operate as before.  If it is set to "Y" then the format will be filled with blanks if the date is invalid or is nodate.

@CM_DBL   CHAR   40

This read-only field contains the name of the Data Base Library (DBL) that the current Command Module (CM) is in or blanks is no CM is being executed.  This can be used in a PM to determine if the PM was called from a CM.  The default value is blanks.  Example:

*USE DS ABC IN DBL @CM.DBL

@CM_NAME   CHAR   40

This read-only field contains the name of the current Command Module (CM) or the one last executed.  Example:

*TYPE @CM_NAME, "IS NOW EXECUTING."

@COMMAND   CHAR   150

This modifiable field contains any user-assigned string value.  When ACCENT R is invoked, @COMMAND contains the account and name used to start ACCENT, in addition to any information on the command lines.  This is useful for passing information from the command line to a Command Module (CM), Process Module (PM), or the BEGIN.ACC file.  Example:

First, ACCENT R is invoked and "test" is entered on the same line that is used to start ACCENT R.  After ACCENT R has started, @COMMAND is used to see the extra text stored from the command line.

$ACCENT TEST
*TYPE @COMMAND
SYS$SYSDEVICE:[ACC1169]ACC69.EXE TEST

@COMMAND is useful for selecting a special mode when starting an application.  For instance, the string "Accent/Debug" could be entered so that PM DEBUG is ENABLEd for troubleshooting when starting the application.  As another example, enter the string "Accent/Command" and have the BEGIN.ACC file leave control at the command prompt instead of starting the application.

@COMMAND_LINE   CHAR   4095

This read-only field contains the current ACCENT R command line (whatever was entered or expanded at the command level prompt).  @COMMAND_LINE is only useful in a Process Module (PM).  Using TYPE to display this field at the command prompt will only echo what was just entered.

@CONNECTED   CHAR   40

This read-only field contains the directory name to which the user is connected.  Example:

*TYPE @CONNECTED
SYS$USER:[MGR]

@COPYRIGHT   CHAR   40

This read-only field contains the copyright text for ACCENT R.  This is part of the @VERSION text.  Example:

*TYPE @COPYRIGHT
Copyright 2000 by NIS, Inc.

@CPU_SERIAL   INT   5

This read-only field contains the serial number of the CPU.  The default value is zero.

@CPU_TYPE   CHAR   10

This read-only field contains a string representing the CPU type.  The possible CPU types include VAX 6000, 8000, 9000 series; MICRO VAX 2000, 3000, 4000 series; VAX Station 2000, 8000 series.  Example:

*TYPE @CPU_TYPE
VAX/4000-100

@CR   CHAR   2

This read-only field contains the ASCII characters carriage return and line feed.  This is used in an output clause to force a new line.  Type @CR prints a blank line.

@CTIME   CHAR   5

This read-only field contains the current time in form HH:MM.  It is similar to @TIME which does not have a colon in its format.  Example:

*TYPE @CTIME
10:50

@CURRENCY_SIGN   CHAR   1

This modifiable field contains a character used as a dollar sign in print formats.  Print formats themselves must contain a dollar sign; the @CURRENCY_SIGN value is only used in output.  Any ASCII character whose decimal code is between 33 and 126 inclusive may be placed in this field.  The default value is the dollar sign ($).  To produce a British pound sign as the currency sign, a terminal with that character must be used.  The VT 200 and VT 300 series can be set into the U.K. mode by physically setting the terminal or by using TRANSMIT to set the terminal mode.  See example under @DECIMAL_POINT.

@CVSW   CHAR   3

This modifiable field controls the printing of the Computed Value fields with the EXTRACT command and the SHOW clause.  It is initialized to "YES" meaning "print the computed field".  If set to any other value it will not print the CV fields.  The option NO CV specified in the SHOW clause will override the setting of "YES" in @CVSW.

@DATE   DATE   6

This read-only field contains the current date with two-digit year in binary form.  It is displayed in the form set by the ENABLE DATE command.  The default format is MM/DD/YY.  Example:

*TYPE @DATE - 3 EMONTHS
06/30/91

@DATETIME DATETIME   OCCURS   25

This modifiable field contains a stored system date (MM/DD/YYYY) and time.  (Time currently does not display.)  This field is defined in an array with 25 elements.  The binary value of the DEC date and time specification must be stored in it.  This may be done with the SET command using a binary global storage field or a previously set @DATETIME array field.  The default display is asterisks when no date is stored in @DATETIME.  The time is rounded to the nearest second.

*SET @DTVAL(28-AUG-2000 12:34:56.789) TO @DATETIME
TYPE @DTSTR @DATETIME
28-AUG-2000 12:34:57:000

or (assuming the system date is the same as the string)

*SET @DATE TO @DATETIME
*TYPE @DATETIME
08/28/1997

@DAY   INT   2

This read-only field contains the current day of the month.  Example:

*TYPE @DAY
4

@DBL_DELETED_SPACE   INT   10

This read-only system field contains the number of deleted characters in the current DBL.  It can be used to decide when to re-claim the deleted space.  This can be done with the command "FORM DBL" without exiting ACCENT R.

@DBL_NAME   CHAR   40

This read-only field contains the name of the Data Base Library (DBL) declared by the last USE DBL command.  This is the current DBL.  This field's value is blanks if no DBL is declared.

@DEBUG_PM_NAME   CHAR   80

This modifiable field contains the name of the PM to be debugged with the PM DEBUG Utility.  The DEBUG utility will start whenever the PM is executed.

@DECIMAL_POINT   CHAR   1

This modifiable field contains the value used to control the use of periods and commas in output of a numeric print picture.  The only values that may be placed in @DECIMAL_POINT are a period (.) and a comma (,).  If the value in @DECIMAL_POINT is a period, numeric punctuation occurs per the standard in the United States.  If the value is a comma, the output standard is European, whereby groups of thousands in the integer part of a number are delimited by periods, and the delimiter between the integer and fractional parts is a comma.  The default value is a period.  Example:

100 PICTURE 1 IS "$$$,$$$,$$$.DD"
200 "$" TO @CURRENCT_SIGN
300 "." TO @DECIMAL_POINT
400 TYPE 12345.67 @ 1
(Results) $12,345.67

(assuming the same picture format)

100 "L" TO @CURRENCT_SIGN
200 "," TO @DECIMAL_POINT
300 TYPE 12345.67 @ 1
(Results) L12.345,67

@DEFAULT   CHAR   39

This read-only field contains the name of the directory or sub-directory from which ACCENT R was last run. @DEFAULT has the same data as @CONNECTED.  Example:

*TYPE @DEFAULT
SYS$USER:[MGR]

@DEL   CHAR   1

This read-only field contains the ASCII code for Delete.

@DELETED_RECORDS[:id]   INT   8

This read_only field contains the number of deleted records for each Data Set that is opened.  It is updated each time the opened DS has a record deleted using the DELETE command or in a PM, the number of records deleted to any RELATEd Data Sets.  When the DS is closed the DBL entry is updated unless the DBL is declared for "READ ONLY".

*TYPE @DELETED_RECORDS

@DELIM   CHAR   1

This modifiable field contains the character used to separate field values input through the ACCEPT statement or the ENTER  command.  Value must not be equal to the value in @LIT.  The default value is a comma (,).

@DI_ENTRY_ADDR   INT   10

This read-only system field contains the character address of the index key data for the most recently accessed Data Index (DI).  It may be used to directly access the key field.  The default value is zero.

@DI_LEVEL   INT   10

This read-only system field contains the level number of the current DI entry.  It is used to do analysis of index validation.  The default value is zero.

@DI_NAME[:id]   CHAR   40

This read-only field contains the current Data Index (DI) name, displayed without trailing spaces.  The default value is blanks when there is no DI in use.  @DI_NAME contains the name of the master index.  Other values for [:id's] are only available in a PM.

@DI_NODE_ADDR   INT   10

This read-only system field contains the character address of the current index node being processed.  It is used to do analysis of index validation.  The default value is zero.

@DI_RECORD_ADDR   INT   10

This read-only system field contains the character address of the Data Set (DS) record associated with the current index entry.  It is used to directly access the DS record.  The default value is zero.

@DOMAIN_NAME[:id]   CHAR   40

This read-only field contains the current domain name, displayed without trailing spaces.  The default value is blanks when there is no domain in use.

@DT_DEC   DATETIME

This read only field makes the Digital 64 bit Date/Time available to the user.  This field stores the current date and time down to the 100th of a second.  Its field type is DT.

@DS_MESSSAGE   CHAR   60

This modifiable field is used for Simultaneous Update.  The default message is "Waiting for {N} in use by PID {H} user {S}..."

@DS_NAME[:id]   CHAR   40

This read-only field contains the current Data Set (DS) name, displayed without trailing spaces.  The default value is blanks when there is no DS in use.  @DS_NAME contains the name of the master data set.  @DS_NAME: T contains the name of the transaction data set.

@DS_WAIT   INT   10

This modifiable field is used for Simultaneous Update.  The default value is 300.  The amount of time ACCENT R will wait for a Data Set to become available before returning with "BUSY" or aborting the operation.

@DUPLICATE   CHAR   1

This modifiable field contains the character used to duplicate the field values entered for last record.  The default value is the equal sign (=).  This system field is used in the ENTER and CHANGE command.

@EDITOR   CHAR   79

This modifiable field specifies the external editor to be used.  An external editor can be used to create or edit files such as Schema Definitions, (SD), Data Indexes (DI), Command Modules (CM), Process Modules (PM), or System Files (SF) with DEFINE, EDIT or MODIFY.  The ACCENT R editor (TED) is called by default if an external editor is not specified.

After editing is complete, give the external editor commands to save the file and exit.  After editing a SF, control is returned to ACCENT R's command level.  After editing an ACCENT R Data Base Library (DBL) object (such as a SD, DI, CM, or PM), control is returned to the subcommand level of the ACCENT R editor (TED).

For an ACCENT R DBL object, the SAVE or HOLD subcommand must be given to save the object in the DBL even if it has been saved with the external editor.  If the object will not SAVE without errors, give the HOLD command to save the text of the object and then give the STOP command to return to the ACCENT R command level.

HOLD or SAVE will reassign line numbers to the file starting from 1 with increments of 1.

An external editor can only be called within a file using the EDIT command.  Example:

*SET "EVE" TO @EDITOR

EVE is an equated command that starts the external editor that will be used.

@END_INPUT   CHAR   3

This modifiable field contains the string used to signal the end of input during record entry.  The default value is triple asterisks (***).  The @LEN value for this field varies with the length of the value stored in it (up to three characters).

@END_OCCURS   CHAR   1

This modifiable field contains the character used to signal that the last value has been entered for an occurs field.  The default value is an asterisk (*).

@END_RECORD   CHAR   2

This modifiable field contains the string used to signal the end of a record.  The default value is double asterisks (**).

@EOF[:id]   CHAR   3

This read-only field indicates when ACCENT R encounters the end of the Data Set (DS).  The value is initially blanks when the ACCENT R session first begins.

The value is set to NO during the processing of a DS within a Process Module (PM) or when a DS is USEd at command level.  If @EOF is set with USE; the value will remain NO even if the DS is undeclared with USE NO.

The value is set to YES when the end of the DS is found during processing in a Process Module (PM).  The value is reset to blanks when the PM is completed.

This field is often used with the ON statement in the TOTALS section of a PM to specify the end of data set.  Value is set to NO when processing a DS.  Example:

00120 EXIT PROCESS IF @EOF:AUX3 = 'YES'

@EPS   FLOAT   13

This modifiable field is used in comparisons to check if numbers are very nearly equal.  For example: If @ABS (A/B-1) <@EPS is true if the results is a very small number.  In the case of floating point numbers, it is difficult for numbers to be exactly equal.  This field allows you to set the size of the difference that is considered equal.  See also ENABLE, EXACT and COMPARE.

@ERR[:id]   INT   5

This read-only field contains the current error number.  Default value is zero (non-error status).  Any other value means that an error has occurred while processing the specified Data Set (DS).  Example:

EXIT PROCESS IF @ERR:M NE 0

@ERROR_FILE   CHAR   40

This modifiable field contains the name of the file that has ACCENT R error messages.  The default value is NIS:ACCENT.MSG.

@ERROR_NUMBER   INT   5

This modifiable field contains the error number of the latest error to occur.  The default value is zero.  Once set to a non-zero value it will not be changed until you reset it to zero.

@ERROR_PREFIX   CHAR   20

This modifiable field contains the string to be prefixed onto error messages.  The default value is blanks.

This field makes it possible to abort or otherwise control batch jobs in case of error messages.  An audible alert can be given by using @BELL or add blank lines for readability.  Example:

SET "?"+@BELL TO @ERROR_ PREFIX

@ESC   CHAR   1

This read-only field contains the ASCII Escape character.  Type @ASC @ESC prints a 27.

@ETIME   CHAR   8

This read-only field contains the current time on the 24-hour clock, in form HH:MM:SS.  Example for 3:18 PM:

*Type @ETIME
15:18:23

@EXE_SHOW   CHAR   3

This modifiable field controls the execution of PERFORM routines (BEFORE and AFTER) for SHOW fields in a screen layout.  This field can be set to "YES" (default) or "NO" to prevent routine execution.

*Type @EXE_SHOW
YES

@FDATE   CHAR   12

This read-only field contains the current date with month a three-letter abbreviation in form MMM DD, YYYY.  The form is unaffected by the ENABLE DATE command.

*TYPE @FDATE
Sep 4, 2000

@FF   CHAR   1

This read-only field contains the ASCII character for form feed.  Type @ASC @FF prints a 12.

@FIND_PROMPT   CHAR   20

This modifiable field contains the prompt character when a find subset is active.  The default value is "F*".

@FOOTING_SIZE[(x)]   INT   3

This modifiable field contains the number of lines reserved for footing text on a report page for report x.  The value stored must be zero or greater.  The default value is zero.

@FTIME   CHAR   8

This read-only field contains the current time in form HH:MM AM or HH:MM PM.  Example:

*TYPE @FTIME
9:52 AM

@GS_NAME(1:10)   CHAR   40

This read-only field contains the name of current Global Storage (GS) or the last GS used.  The default value is blanks.

This field has an array of 10 elements that contain the names of the current GS's or the names of those GS's previously used.

In the example, two GS's are declared with the names ADVTS and PERSON.

*USE GS ADVTS, PERSON
*TYPE @GS_NAME (1)
ADVTS
*TYPE @GS_NAME(2)<
PERSON

ADVTS is released and blanks are moved to @GS_NAME (1).

*USE NO GS ADVTS

TEMP is declared and its name is placed in the first available entry which is @GS_NAME (1).

*USE GS TEMP
*TYPE @GS_NAME(1)
TEMP

Examine all the entries in @GS_NAME to determine which GS's are active.

GS's that are declared with the same name will occupy the same position.  A GS will supersede another of the same name when it is declared.

At the command level or in a Command Module (CM).  If more than one declared Global Storage (GS) has the same field name, ACCENT R looks for the first GS name in @GS_NAME that has a field with that name when the field name is referenced.

Assume both GS's have a field called %ID.  In the first GS (TEMP), %ID has an integer value of 100 and in the second GS (PERSON), %ID has a value of 200 .

If referencing %ID, the content of %ID is 100 because TEMP is the first GS name in @GS_NAME that has that field.  If TEMP is released, the value of %ID will be 200 (from PERSON).  If a new GS is declared with the field  %ID, it is placed in the first array element and its value will be taken.

Designators are used for referencing fields from a specific GS when multiple GS's are RELATEd in a Process Module (PM).  This eliminates the concern for GS declaration order.

@HLI_TRACE   INT   1

This modifiable field is used by the Host Language Interface to enable the tracing of ACCENT R calls within a HLI program.  Setting the value to "1" turns on tracing.

@HOUR   INT   2

This read-only field contains the current hour. The value range is zero to 23.  Example:

*TYPE @HOUR
12

@INTEGER[(1:25)]   INT   10

This modifiable field contains any user-assigned integer.  This field has an array of 25 elements.  The default value is zero.

@INTERRUPTS   INT   5

This modifiable field contains a count of control C's typed by the user since ACCENT was entered.  The default value is zero.  This field is useful when interrupts have been DISABLED.

@INTERRUPTS_CM   CHAR   40

This modifiable field contains the name of a Command Module (CM) that is to execute when a Control-C is typed while executing a Process Module (PM), CM, System File (SF), or during interactive command entry.  The named CM will not execute if DISABLE INTERRUPTS is in effect, ENABLE INTERRUPTS EXIT is in effect, at edit level, or at a command level prompt.  ACCENT R checks the syntax of a name set to @INTERRUPTS_CM but does no other checking.  If the name stored in @INTERRUPTS_CM is not the name of a CM in the current Data Base Library (DBL), Control-C causes ACCENT R to issue a message that the attempt to execute @INTERRUPTS_CM failed.

The default value is blanks.  The @LEN value for this field varies with the length of the value stored in it (up to 40 characters).

@JOB_NUMBER   INT   4

This read-only field contains the number of the current job.  This information is the same as @PID (process identification number).  Example:

*TYPE @JOB_NUMBER
5588

@JOURNAL   CHAR   3

This modifiable field contains a YES or NO value enabling or disabling the creation of a journal file entry each time you change or create any DBL item with the DEFINE or MODIFY/EDIT commands.

@LEFT_MARGIN(1:10)   INT   10

This modifiable field specifies the number of spaces in the left margin of a report.  It is used to allow space for binding or hole punches.  @LEFT_MARGIN has an array of 10 elements but may be specified without a subscript for Report 1.  The default value is zero.

@LF   CHAR   1

This read-only field contains the ASCII character for the line feed.  Type @LF returns a blank.

@LICENSE_TYPE   CHAR   1

This read-only field contains the abbreviation (initial) of user's authorized license type for ACCENT R.

D = DB-MACH2 license

P = perpetual license

R = runtime-only license

T = trial, demonstration license

U = user-limited license

Example:

*TYPE @LICENSE_TYPE
P

@LINE[(1:10)]   INT   3

This read-only field contains the current line number of a report page.  The default value is zero.

@LINES   INT   3

This modifiable field contains the number of lines on each report page.  Value must be zero or greater.  The default value is 66.

@LIT   CHAR   1

This modifiable field contains the character used before an ACCENT R signal character or string to cause it to be accepted literally as data. @LIT inhibits the usual function of the signal.  The default value is the backslash (\).  The @LIT character must not be the same as the one in @DELIM.  For example, if you wanted to enter ** as a value in a field using the ENTER command, you would enter it as \**.

@LOG_FILE   CHAR   39

This read-only field contains the name of the log file currently in use.  If a log file is not in use, @LOG_FILE is filled with blanks.

@LOG_ONLY   CHAR   3

This read-only field contains either YES or NO.  It contains a YES if the clause LOG ONLY was specified when the last USE SF command was executed.

An application needs to use a log file must first stop the current one if one exists.  It must check to see if a log file is already open and then close it.  With @LOG_ONLY, the application can also check to see if the ONLY clause was specified when the log file was USEd.  The application then saves the name of the current log file (@LOG_ONLY) and whether it was initialized with ONLY.

*SET @LOG_FILE TO %SAVE_LOG_NAME
*SET @LOG_ONLY TO %LOG_IND

<Execute application> then in a CM executed the following:

IF %SAVE_LOG_NAME#'' AND %LOG_IND = 'YES'
USE SF $%SAVE_LOG_NAME LOG ONLY
ORIF %SAVE_LOG_NAME# '' AND %LOG_IND = 'NO'
USE SF $%SAVE_LOG_NAME LOG
CONTINUE

After the application has completed execution, it restores the log file with the ONLY option, if appropriate.

@LP_10   CHAR   8

This system field sets 80-column mode - 10 characters per inch (CPI) for the local printer.

NOTE:  The @LP series of system fields are used with PRINT and TYPE statements to facilitate the use of the local printer.

@LP_12   CHAR   8

This system field sets 96 column mode - 12 CPI for the local printer.

@LP_17   CHAR   8

This system field sets 132 column mode - 17 CPI for the local printer.

@LP_6_LINES   CHAR   8

This system field enables 6 lines per inch for the local printer.

@LP_8_LINES   CHAR   8

This system field enables 8 lines per inch. for the local printer.

@LP_BI_DIR   CHAR   8

This system field enables bi-directional printing for the local printer.

@LP_BOLD_OFF   CHAR   8

This system field disables bold printing for the local printer.

@LP_BOLD_ON   CHAR   8

This system field enables bold printing for the local printer.

@LP_BS   CHAR   8

This system field causes the local printer to backspace on print line.

@LP_CLEAR_TABS   CHAR   8

This system field clears tab positions for the local printer.

@LP_CLEAR_WIDE   CHAR   8

This system field disables doublewide printing for the local printer.

@LP_OFF   CHAR   8

This system field closes the printer port for the local printer.

@LP_ON   CHAR   8

This system field opens the printer port for the local printer.

@LP_RLF   CHAR   8

This system field reverses linefeed for the local printer.

@LP_SET_TABS   CHAR   8

This system field sets printer tabs for the local printer (see printer manual).

@LP_SET_WIDE   CHAR   40

This system field enables doublewide printing for the local printer.

@LP_UL_OFF   CHAR   8

This system field disables underlining for the local printer.

@LP_UL_ON   CHAR   8

This system field enables underlining for the local printer.

@MATCHED[(:M;T)]   INT   8

This read-only field contains the count of records in the master or transaction Data Set (DS) that are classified as matched.  The default value is zero.  Example:

TYPE "PM HAS UPDATED",@MATCHED:M,"RECORDS IN THE MASTER SET;"

@MINUTE   INT   2

This read-only field contains the current minute.  The value range is zero to 59.  Example:

*TYPE @MINUTE
21

@MODIFY_LOCK   CHAR   8

this modifiable field contains the values "YES" or "NO" used in DBL object locking.  When this field is set to "YES" (locked) any other user attempting to modify the object will receive the message "This object is locked by another user and cannot be modified.".

*SET "YES" to @MODIFY_LOCK

@MONTH   INT   2

This read-only field contains the current month.  The value range is 1 to 12.  Example:

*TYPE @MONTH
9

@MONTH_NAME(1:12)   CHAR   12

This modifiable field contains an array of the months of the year.  The months of the year are initially in English but can be modified to support most Germanic and Romanic languages.  The @LEN value for this field varies with the length of the value stored in it (up to 12 characters).  Example:

*TYPE @MONTH_NAME(9)
September

@NEW_RECORDS [:id]   INT   8

This read-only field contains the count of new records entered to the given Data Set (DS) by the current command.  The default value is zero.  It is the number of records entered using the ENTER or changed commands or in a PM, the number of records added to any RELATEd Data Set.

@NIS_EXPANSION   CHAR   40

This read-only field contains the SYS$PARSE expansion of the "NIS:" logical name.

*TYPE @NIS_EXPANSION
SYS4$DRA0:[ACCENTV1179]

@NODATE   DATE   10

This read-only field contains the null date value for comparison.  Asterisks are stored in @NODATE.

@NODE_NAME   CHAR   15

This read-only field contains the OpenVMS node name of the system that ACCENT R is running on.  Example:

*TYPE @NODE_NAME
SYS4

@NUL   CHAR   1

This read-only field contains the value of ASCII zero.  Type @ASC @NUL prints a zero.

@NULL_CHAR   CHAR   1

This read-only field contains the ASCII null character.

@NUMBER[(1:25)]   FLOAT   10

This modifiable field contains any user-assigned numeric value.  The default value is zero.  This field has an array of 25 elements.

@OMITTED[:id]   INT   8

This read-only field contains the count of records deleted from the given Data Set (DS) by the current command.  The default value is zero.

@OPER   CHAR   5

This read-only field indicates the type of operation currently taking place in a Process Module (PM).  It is called by the CHANGE command.  Values of CHANGE, ENTER, and DELETE correspond to the operations change, enter, and delete, respectively. The default value is blanks.

@ORACLE_USER   CHAR   40

This read-only field contains the user's login name in the system.  The default value is blanks.

@OUPUT_NODATE   C   10

This modifiable field contains a character string that represents a null date.  The default value is 8 or 10 asterisks.

@PAGE[1:10]   INT   3

This modifiable field contains the current report page number.  This field has an array of 10 elements.  After the field is set, it will be incremented normally by ACCENT R.  This feature is useful when restarting a report that has failed.  The default value is zero.  Example:

TYPE "NOW WORKING ON PAGE"@PAGE(5),"OF REPORT 5."

@PAGE_DIVIDER[(1:10)]   CHAR   4

This modifiable field contains the character string to be printed between report pages.  The default is a null string.  Example:

"****" to @PAGE.DIVIDER(5)

@PID   INT   10

This read-only field contains the Process ID of the ACCENT R process.  A process ID is automatically assigned when a job or task is logged on to an OpenVMS system.  Provides the same information as @JOB_NUMBER.  Example:

*TYPE @PID
5588

@PM_DBL   CHAR   40

This read-only field contains the Data Base Library (DBL) name from which the current Process Module (PM) is being executed.  When no PM is executing, this field is blank.

@PM_NAME   CHAR   40

This read-only field contains the name of the current Process Module (PM) or the last PM executed.  When no PM is executing, this field is blank.

@PPOS[(1:10)]   INT   3

This read-only field contains the current print position within a line on the report page.  The default value is zero.

@PROMPT   CHAR   20

This modifiable field contains the ACCENT R prompt sign.  The default is an asterisk (*).

@QS_SECTION_NAME   CHAR   15

This read-only field contains the name of the ACCENT R Global section (also the shared global section) in use by ACCENT R's QuickStart option.  This field provides the same information as @TURBO_DBL_SECTION_NAME.  The default value is blanks.

@QUALIFIED [:id]   INT   8

This read-only field contains the count of records that satisfy any conditional in the current command.  The default value is zero.

@QUEUE_QUOTA   INT   10

This read-only field is used for Simultaneous Update.  The default value is 800.

@QUEUE_STATUS   CHAR   11

This read-only field is used for Simultaneous Update.  The @LEN value for this field varies with the length of the value stored in it.  The default value is "System_Wide."

@RANDOMIZE   REAL

This modifiable field contains a number entered by the user.  The default value is -1.  It is used with @RANDOM functions to control the starting point for a random number sequence.  If @RANDOMIZE is set to zero, the internal clock is used to obtain the initial value in the sequence.  If it is set to any number greater than zero, that number is used to obtain the initial value in the sequence.  If it is set to any negative number, the sequence is reset to ACCENT R's standard sequence.

@RECORD [:id]   INT   8

This read-only field contains the number of records read.  It may include records deleted in place.  In the TOTALS section of a Process Module (PM) for the specified Data Set, @RECORD contains the number of the first record of the next subtotals group.  The default value is zero.

@RECORD_MESSAGE   CHAR   60

This modifiable field is used with Simultaneous Update.  The default value is "Waiting for record {N} in use by PID {H} user {S}...".  Where N is the record number, H is the PID in HEX, and S is the user name of the user with the record locked.

@RECORD_SIZE[:id]   INT   5

This read-only field contains the length, in bytes, of the current record.  Until you read the first record, @RECORD_SIZE is zero (0).  May not be used with the FIELD statement of a FILL layout in SMF and it may not be used in the PM DEBUG Utility.

@RECORDS [:id]   INT   8

This read-only field contains the count of records in the Data Set (DS), as stored in the Data Base Library (DBL).  When a DS is created by the ATTACH option, @RECORDS is zero.  It can be updated by issuing the command COUNT.  If the DBL file has monitor-level read-only protection, this field cannot be updated.  The default value is zero.

@RECORD_WAIT   INT   10

This modifiable field is used with Simultaneous Update.  The default value is 300.

@RMS_RECORD_NO   INT   7

This modifiable field contains the record number that was last read from the current RMS file.  The default value is zero.

@RN [:id]   CHAR   40

This read-only field contains the record name of the current record.  It is used in the SHOWING clause [SAVE clause] or a Process Module (PM) to access the record name.  This will be printed without trailing spaces.  The default value is blanks.  Example:

EXTRACT IF @RN:M = 'DEPENDENT'

@ROWID   CHAR   15

This modifiable field is used by the Oracle interface and contains the address of the row after execution of an SQL SELECT or SQL FETCH statement.

@RUB   CHAR   1

This read-only field contains the ASCII character for rub-out (delete).  Type @ASC @RUB prints 127.

@SAVE_EDIT_FILE

This modifiable field allows the user to not have the ###EDT,TMP file deleted after editing.  This allow the user to keep better control of changes made to a DBL item.  It is initialized to "NO", which will cause the files to be deleted.  To save the file, set "yes" to @SAVE_EDIT_FILE.

@SECOND   INT   2

This read-only field contains the current second.  The range of values is zero to 59.  Example:

*TYPE @SECOND 48

@SEPARATOR   CHAR   1

This modifiable field contains the character placed between fields displayed by the EXTRACT command or the SHOWING clause.  The default value is a space.  If @NUL (or @CHR 0) is placed into this field, no space will appear between fields.  This is useful for producing output with, say, commas between field data, or no space if one wishes to LOAD or ATTACH the output into ACCENT R.

@SF_NAME   CHAR   40

This read-only field contains the name of the presently executing System File (SF).  The default value is blanks.

@SID   INT   8

This read-only field contains an ACCENT R generated system identification number.  Example:

*TYPE @SID
20461694

@SQL_CODE (or) @SQLCODE   INT   7

This read-only field contains a status code that is returned by the server during SQL record statement execution.  The default value is zero.  (Code values are:  0 = successful processing;  100 = no record available; negative number = error)

@SQL_DELETE   INT   7

This read-only field contains the number of records deleted by the SQL DELETE statement.  The default value is zero.

@SQL_INSERT   INT   7

This read-only field contains the number of records inserted by the SQL INSERT statement.  The default value is zero.

@SQL_UPDATE   INT   7

This read-only field contains the number of records modified by the SQL UPDATE statement.  The default value is zero.

@STRING[(1:25)]   CHAR   20

This modifiable field contains any user-assigned string value.  This field has an array of 25 elements.  The default value is blanks.

@SYSTEM_NAME   CHAR   50

This read-only field contains a duplicate of the log on message.  Example:

*TYPE @SYSTEM_NAME
VAX/VMS V5.3 on node SYS4

@SYSTEM_TYPE   CHAR   10

This read-only field identifies the computer type.  Example:

*TYPE @SYSTEM_TYPE
VAX/VMS

@SYSTEM_VERSION   CHAR   8

This read-only field contains the operating system version number.  Example:

*TYPE @SYSTEM_VERSION
V5.5-2

@TAB   CHAR   1

This read-only field contains the ASCII character for the horizontal tab.  Type @ASC @TAB will print 9.

@TERM_LINE   INT   4

This modifiable field determines the length of a line to be accepted from the terminal.  The default value is 525 characters.  This can be set to any value between 25 and 4095 inclusive.  This allows the use of longer command lines without using a continuation indicator or fear of commands being truncated during execution. If @TERM_LINE is set to a length shorter than an line of an object; the last line image will not be available for editing.  If objects are stored with lines longer than 525 characters, @TERM_LINE must be adjusted or those objects cannot be listed or modified.

@TERMINAL   CHAR   16

This read-only field contains the OpenVMS terminal line identifier.  This same identifier is seen after a DCL SHOW TERMINAL command.  Example:

*TYPE @TERMINAL
_TXD2:

@TERMINAL_BAUD   INT   5

This modifiable field controls the terminal's baud rate.  Baud rate is the number of bits-per-second at which it is transmitting and receiving characters.  Character rate is usually the baud rate/10.  The default value is the current baud rate when the ACCENT R session is started.

If a new value is stored into this field, the terminal itself must have its baud rate changed to the same value.  Any value that the system will recognize as valid will pass the implicit validation clause; these values are typically 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1790, 2400, 4800, and 9600.

This field is provided primarily for information, since device control operations often require special handling based on the baud rate.  Caution is advised for network users: changing the baud rate MAY render the user's network connection unusable.  In addition, remote and host baud rates may not be the same, determine suitability of network performance before implementing a control device application.

@TERMINAL_INDEX   INT   3

This modifiable field contains the terminal-type number as known by the computer.  This will be a value from 0 to n, where n is the highest index implemented on a specific system.  Setting a valid value to this field will change the type as known by the system and any associated default characteristics of that terminal type, such as tabbing and forms control.

@TERMINAL_LENGTH   INT   3

This modifiable field contains the terminal's page size, beyond which the system may do paging as appropriate for the terminal type.  Any value that doesn't fail the implicit validation clause (GE 0 and LE system maximum) may be stored.  Example:

*TYPE @TERMINAL_LENGTH 
24

@TERMINAL_SOURCE   CHAR   6

This read-only field contains one of four strings, ONLINE, PSEUDO, BATCH, or DETACH, which signifies the state of the terminal controlling the current job.  Example:

*TYPE @TERMINAL_SOURCE 
ONLINE

@TERMINAL_WIDTH   INT   3

This modifiable field contains the terminal's carriage width, beyond which the system will fold output.  Any value that does not fail the implicit validation clause, (GE 25, and LE system. maximum), may be stored.  Example:

*TYPE @TERMINAL_WIDTH 
80

@TIME   INT   4

This read-only field contains the current time on a 24-hour clock.  The format is HHMM.  Example:

*TYPE @TIME
1328

@TIME_ZONE   INT   3

This modifiable field contains the time zone number (ranging from -12 to +12) which represents zones east and west of Greenwich, England.  This field is used with the Universal Date and Time functions.  The default value is zero.

@TOF   CHAR   1

This modifiable field contains the character to be used for TOP OF FORM.  The default value is 12 (Control - L).  Care should be used in placing a value in @TOF, since that value, if it appears in any output, will generate a form feed.

@TOF_NUMBER   BIT   7

This modifiable field contains the decimal value of @TOF character. To change @TOF character use assignment statements.  The default value is 12 decimal, 14 octal, and is the ASCII form feed.  Care should be used in placing a value in @TOF_NUMBER, since that value, if it appears in any output, will generate a form feed.

@TOKEN   CHAR   1

This read-only field contains the break character resulting from the System Functions @BREAK, @SPAN, and @EXTRACT.  The default value is a blank.

@TOKEN_POS   INT   5

The modifiable field contains the position of the last break character resulting from the function @EXTRACT.  If the search is successful, @TOKEN_POS contains the position of the break character found.  If not, it contains the position of the end of the string being searched.  The default value is zero.

@TOP_MARGIN [:id]   INT   3

This modifiable field contains the number of lines to be left blank at top of each report page.  The value stored must be zero or greater.  The default value is zero.  See also @BOTTOM_MARGIN.

@TURBO_DBL_SECTION_NAME   CHAR   15

This read-only field contains the same information as @QS_SECTION_NAME.  The default value is blanks.

@UNIQUE_ID   CHAR   3

This modifiable field contains a string which is substituted for "###" in any file name just before it is opened.  This substitution ensures unique file names on disk to prevent conflicts between users' jobs that may access the same file directory.

The default value is the base-34 string representation of the user's OpenVMS top-level process identification number.

In order to know what the base-34 string is before ACCENT R is invoked (for example - for use with job specific startup files ###ACC.TMP), a "job number" routine (GETJOB) was developed.  The routine returns ACCENT R's base-34 string representation of the OpenVMS top level Process ID.  The user can then properly name the job specific files.

The base-34 string uses the numbers 0-9 and letters A through Z (with the exception of D and E, which cause parsing problems during dynamic command expansion).  Its contents can be changed to any other three-character string, such as the user's initials.  Example:

*TYPE @PID
4634
*TYPE @UNIQUE_ID
40A
*SET "XYZ" to @UNIQUE_ID
*TYPE @UNIQUE_ID
XYZ

@UNMATCHED[:id]   INT   8

This read-only field contains the count of master or transaction records classified as unmatched.  The default value is zero.

@UNQUALIFIED[:id]   INT   8

This read-only field contains the count of records that do not pass conditional expression(s) in the current command.  The default value is zero.  Example:

IF @UNQUALIFIED:T>0
TYPE "NOTICE!",@UNQUALIFIED:T,"TRANSACTIONS WERE NOT VALID."
ELSE
TYPE "ALL TRANSACTIONS WERE USED."
 

@USER (or) @USER_NAME

This read-only field contains the name of the user running ACCENT R.  Example:

*TYPE @USER
MGR

@VDATE[(1:25)]   FULL-DATE

This modifiable field contains any user-assigned full date value.  The default value is asterisks.

@VERSION   CHAR   60

This read-only field contains the complete ACCENT R start-up message, including the version number.  Example:

*TYPE @VERSION 
ACCENT R, VAX/VMS Version 11.79 Copyright 2000 by NIS, Inc.

@VERSION_NUMBER   REAL   5

This read-only field contains the ACCENT R version number.  Example:

*TYPE @VERSION_NUMBER
11.79

@VT   CHAR   1

This read-only field contains the ASCII character for the vertical tab (control-K).  Type @ASC @VT prints 11.

@WAIT_MESSAGE   CHAR   40

This modifiable field contains the text that is displayed if a Data Set (DS) is busy and cannot be opened.  This message displays periodically during the period set to @WAIT_SECONDS.  The name of the DS that causes @WAIT_MESSAGE to display can be displayed by inserting {N} in the text of the message string.  Only an upper case N may be specified between {}.  The default message is "Waiting for {N}...".  This field is used with Simultaneous Update.  Example:

*SET "!!{N} IS BUSY!!" TO &
@WAIT_MESSAGE
USE DS BOOKS
*ENTER NEW WITH PROMPTS 
!! DS FILE BOOKS.DS IS BUSY!!

@WAIT_SECONDS   INT   5

This modifiable field contains the total number of seconds that ACCENT R will wait for a busy Data Set.  Value must be equal or greater than zero.  The default value is 30.  ACCENT R will try to open the Data Set or access records every five seconds during this period, and will periodically display the string set to @WAIT_MESSAGE.  This field is used with Simultaneous Update.

@WARNING_PREFIX   CHAR   20

This modifiable field contains the string to be prefixed onto warning messages. The default value is "%".  This field makes it possible to abort or otherwise control batch jobs in case of warning messages.  An audible alert can also be given by using @BELL or add blank lines for readability.  Example:

*SET @CR+@CR+"!!!!" TO @WARNING_PREFIX

@WARNINGS   CHAR   5

This read-only field contains the key to the last warning message generated by ACCENT R.  The default value is blanks.  Appendix A lists the @WARNINGS values and the corresponding messages.  Example:

START
ACCEPT @INTEGER
SET @INTEGER * VAL:D TO NUM1:D HUSH
LEAVE IF @WARNINGS NE "OVERF"
TYPE "VALUE TOO LARGE. ENTER AGAIN."
REPEAT

@WARNING_MESSAGE   CHAR   300

This modifiable field contains the latest value of the last warning message printed.

@WEEKDAY   CHAR   10

This read-only field contains the name of the day of the week from @WEEKDAY_NAME (1:7).  Example:

*TYPE @WEEKDAY
Wednesday

@WEEKDAY_NAME(1:7)   CHAR   10

This modifiable field contains a list of the days of the week.  The days of the week are initially in English, but can be changed to support most Germanic and Romanic Languages.  (Occurs 7 times)  Example:

*TYPE @WEEKDAY_NAME(4)
Wednesday

@YEAR   INT   4

This read-only field contains the current year in four digits.  Example:

*TYPE @YEAR
2000

@YR   INT   2

This read-only field contains the current year in two digits.  Example:

*TYPE @YR
00

Record Fields

Several of the system fields can be grouped into a category called Record Fields.  Record Fields are not treated the same way within ACCENT R as the other System Fields:

The Record Fields are:

@ADDRESS

@CF_NAME

@DELETED_RECORDS

@DI_NAME

@DOMAIN_NAME

@DS_NAME

@EOF

@ERR

@MATCHED

@NEW_RECORDS

@OMITTED

@QUALIFIED

@RECORD

@RECORD_SIZE

@RECORDS

@RN

@UNMATCHED

@UNQUALIFIED

In a PM these fields are identified by :M for the master data (:M is the default identifier).  The transaction identifier is :T.  The identifier for auxiliary data sets is the value assigned to it in the Relate Statement as designator.