User's Reference > General > About this Section > New Features in Reality

Comment on this topic

Documentation Comments

Use this form to comment on this topic. You can also provide any general observations about the Online Documentation, or request that additional information be added in a future release.

Reality V15.0 ()

New Features (Release Information) (M6862RN+NewFeatures.htm)

To

Reality

Version

Topic

Submitted by

Company

Location

Email address

Comment

 

 

New Features in Reality V15.0

Reality V15.0 contains a large number of new features since the release of V14.0, such as full 64-bit support, outgoing web services, updated ODBC support, item time stamps and so on. Other important changes are listed under the broad heading of 'MultiValue'. Compatibility, including many features that are of immediate benefit to all Reality users – like the use of case insensitive searches while selecting and then editing data items. So be sure to review the following list of new features introduced by V15.0.

Some of the new features have come from the user feedback that we receive during the life of a release, so please continue to use the 'Comment on this topic' links at the top of each topic in the Online Documentation, or visit the Reality website at www.northgate-is.com/reality, in order to help us to improve your Reality.

Full 64-bit Support Across all Platforms

Significant changes have been made to deliver optimal performance and extended datum sizes across all platforms. For Microsoft Windows, continued 32-bit compatibility ensures that Reality remains useable on legacy laptops and low end servers.

Outgoing Web Services

Reality's new outgoing web services feature enables DataBasic programmers to call third-party web services over HTTP.

SQL for Reality

Reality SQL/ODBC  now complies with ODBC version 2.5 and the ODBC Applications Programming Interface (API) Level 2.

Indexes

Item Time Stamp

In the same way that it is possible to determine the date on which an item was last updated, Reality now allows you to determine the time of day when the item was last updated. This time is expressed as the number of milliseconds since midnight, although currently the granularity is 1000 milliseconds (that is, one second).

Time stamps are available for items read from standard Reality files, local or remote, and for items read from directory view files. When the item is remote the remote Reality must be release V15 or later. Non-zero time stamps are immediately available on directory view items which already exist, but are available on items in standard Reality files only when they are updated or created. Time stamps for items read from other types of file, such as (make) special files, are zero.

SYSTEM(111) returns the time when the most recently read item was last updated.

Time stamp values can be used as operands in algebraic (A code) and mathematical (F code) English conversion codes.

File Save and Restore

From V15.0, items that are saved from the local database by using the SAVE verb (or a derivative) include the item time stamp. When these saves are restored to the same release of Reality or later, the time stamps are applied to the restored items.

When a file which has been saved from an older version of Reality is restored, where the items do not include time stamps a time stamp of zero is applied to the restored items.

Items saved using T-DUMP do not include time stamps; T-DUMP save format is dictated by the SMA standard which does not include meta-data such as date and time stamps. Items restored using T-LOAD have a time stamp of zero applied.

Configurable 2-Digit Date Window

Reality has always allowed dates to be entered into the system with a one- or two-digit year, but until now it has always used a fixed date window of 1930-2029 (so that, for example, 11 means 2011 rather than 1911).

With this release, this date window is configurable, either at the database level by means of the IDateWindow database configuration parameter, or at the user level by means of the IDATE-WINDOW TCL command.

Memory Mapped I/O

Memory mapped I/O has been introduced in Reality for Windows, and may produce performance gains. If necessary it can be suppressed using the new environment variable, REALUSEMMAP.

MultiValue Compatibility

Reality V15.0 has been further enhanced to improve compatibility with other MultiValue systems. In addition, the following features simplify migration to Reality from other MultiValue systems.

MultiValue Compatible Databases

The mkdbase host command has an interactive menu interface which allows you to choose a MultiValue emulation (Reality, mvEnterprise, mvBase or D3) for a new database. This automatically enables data, keyword and item-id case-insensitivity if appropriate, sets the frame size to an appropriate value, and changes the default user operating environment to be compatible with the selected emulation (To find out which predefined environments are available and in which a particular option is set, use SSM option 4 (Define Environment Settings) or the DEFINE-ENVIRONMENT TCL command.).

The VendorEmulation database configuration parameter specifies the MultiValue emulation. If set in the master database configuration file, it sets the default value for this mkdbase menu option. The SYSTEM(102) function (DataBasic and Proc) returns the currently selected emulation.

Case-insensitivity

Data Case-insensitivity

This can only be used if enabled both for the database with the DataCaseControl database configuration parameter and for a particular user with the DATA.CC environment option. Once enabled, it is possible to select or deselect it with either the CASE TCL command or the DataBasic CASING statement. If data case-insensitivity is enabled at both levels, it is initially selected for that user.

Features made case-insensitive

If data case-insensitivity is enabled, the following features become case-insensitive:

The SYSTEM(101) function (DataBasic and Proc) returns the current state of data case-insensitivity. In D3 mode (set with the $OPTIONS statement) the SYSTEM(28) function returns the current case-insensitivity setting for DataBasic.

TCL Commands

The SEARCH, ESEARCH and SSEARCH commands now accept additional options to control data case-insensitivity.

Line Editor

The editor commands that search for strings (DE, L , R, SP and TR) can now operate in both case-sensitive and -insensitive modes. The required mode can be specified when starting the editor (the default is the current data case setting) and changed while editing with new CI, CS and = commands. See Search Strings for more details.

Screen Editor

The screen editor commands that search for strings (L and S) can now operate in both case-sensitive and -insensitive modes. The required mode can be specified when starting the editor (the default is the current data case setting) and changed while editing with the new = command.

ME Development Editor

The ME editor commands that search for strings (/, L and R) can now operate in both case-sensitive and -insensitive modes. The required mode can be specified when starting ME (the default is the current data case setting) and changed while editing with new CI, CS and = commands.

Keyword Case-insensitivity

This can only be used if enabled both for the database with the KeyCaseControl database configuration parameter and for a particular user with the KEY.CC environment option. If enabled, the following features become case-insensitive as regards keywords:

The following features are always available and do not have to be enabled:

Item-id Case-insensitivity

This is enabled by selecting the appropriate option from the mkdbase menu when creating a database. To set the default to case-insensitive, either set the IIDCaseControl database configuration parameter in the master configuration file or set the REALCASEINSENSITIVE host environment variable.

Note: You can change an existing database to be item-id case-insensitive when you rebuild it by using mkdbase with the -r and -c options.

The following item-id case-insensitivity features are also available:

For information about how item-id case-insensitivity affects Reality, refer to Case Sensitivity.

Indexes

SQL for Reality

Although Reality files can now be case-insensitive as regards item-ids, SQL for Reality currently remains case-sensitive. The SQLM command has been enhanced to ignore case-insensitive files (and display an error message to that effect) when creating or regenerating SQL tables. A new option (W) allows you to force SQLM to convert case-insensitive files, but its use is not recommended because SQL access to Reality files is always case-sensitive.

DataBasic Environment Control

This allows the run-time behaviour of a DataBasic program or subroutine to be determined by a combination of two factors:

Each combination of compiler version and MultiValue compatibility mode sets a unique combination of compatibility switches that control individual DataBasic features. These allow Reality V15 to work in a similar way to both earlier versions and other MultiValue systems, so that existing applications can run with the minimum of modification.

Logon Programs

TCL Macros

TCL macros provide an alternative to Proc for simple batch tasks. Four types of macro are available:

N-type macro These allow the execution of a sequence of TCL commands. Any input required from the user must be appended as values to the command concerned. When run, TCL options supplied on the command line are applied to the first command in the macro.

M-type macro This is similar to an N-type macro, but presents each command to the user for editing before execution.

S-type sentence This is similar to an N-type macro, but supports different item formats for compatibility with other MultiValue systems.

TCL menu This type of macro presents a list of options to the user and runs the TCL command associated with the selected option.

The following macro-only commands are provided:

DISPLAY statement

This displays a message to the user. The message can include literal text, the output of one or more TCL commands and various control sequences. An option allows the user to specify which MultiValue video codes are used (to simplify migration).

PROMPT statement

This displays a message to the user in the same way as the DISPLAY statement, but then waits for the user to enter C (continue) or Q (quit). If Q is entered, none of the subsequent commands are executed.

COMMENT statement

This is similar to the DISPLAY statement, but uses a different syntax.

REM statement This allows remarks to be inserted into macros. All text which follows, up to the end of the line, is ignored.

Macros are items in the MD of an account. The user can create them with any of the Reality editors, or by using the .C TCL Stacker command to save commands from the stack as an S-type sentence. If a different type of macro is required, the user must use one of the editors to modify the saved item.

Macros of any type can be run from the TCL command line. In addition, an S-type macro can be loaded onto the TCL stack using the .X TCL Stacker command command and the commands it contains executed from there. This is intended primarily for executing macros that were saved from the stack; any secondary input is ignored.

Other MultiValue Features

MultiValue Environments

TCL

The information displayed by the WHO command and user exit U50BB depends on the selected MultiValue environment; for details, see MultiValue Compatibility.

English

Proc

DataBasic

Databasic and Proc

Other Enhancements and Changes

Supported Platforms

The latest version of Reality adds support for:

Removal of Windows-specific SQL Maintenance

The WinSQLM client component has been discontinued.

Partial D-pointers

If a File or Account definition item has less than 10 attributes, default values are used for the alignment and item-id column width (attributes 9 and 10).

mkdbase

TIPH Licences

A TIPH licence similar to the current Despooler licence is now available.

TCL

Global TCL Commands

When a TCL command is run, the verb was previously searched for in the MD of the current account and then, if not found, in the file specified as the user's "Alternate Verbs File" (set in the user's security profile). This feature adds a third location - the MD of the GLOBAL.MD account.

An additional feature of this allows the user to bypass the local MD and the alternate file, and force selection of the global command. This is done by prefixing the command name with a tilde (~). By using this, the user could write a macro with the same name as a global command, but call the global version from with that macro.

A new environment option (INHIBIT~) allows the user to disable the latter feature, so that local commands with names beginning with tildes can still be run.

DataBasic

COMPARE Statement

This new statement allows you to compare two dynamic arrays.

PERFORM Statement

The performed command can now be a dynamic array that includes responses to input prompts generated by the command.

Conditional Compilation

$IFDEF and $IFNDEF constructs allow the programmer to mark sections of code for inclusion or exclusion depending on whether a symbol has been defined (using the EQUATE statement or a new $DEFINE compiler directive). The $UNDEFINE statement allows you to undefine a symbol that was previously defined with $DEFINE.

Note: When you select a MultiValue compatibility mode with the $OPTIONS statement, an appropriate conditional compilation symbol is automatically defined.

The $TRUE, $T, $FALSE and $Fconditional compilation symbols provided by mvEnterprise are also supported.

EQUATE Statement

The EQUATE statement will now accept the LITERALLY keyword, used with a value enclosed in quotes. This allows the substituted value to contain spaces and multiple statements (separated by semicolons).

ACCESS Function

A new element (34) has been added to the ACCESS function. When this is used in a dictionary subroutine, ACCESS returns a string containing the next conversion code, if any. This makes it possible for DataBasic to emulate certain historic types of user exit.

Dynamic Array Functions

The following new functions are introduced:

File Information Functions

Two new DataBasic functions return information about a specified Reality file:

Named Common Sections

Two new TCL commands are available:

NC.LISTThis displays a list of the named common areas that have been defined and their current states.

NC.RESETThis resets one or more named common areas.

In addition, when you log to a different account, any open files referenced by variables in named common sections are closed.

Debugger

The debugger displays a runtime error message if a variable is referenced before it has been assigned a value. The form of the message now includes the variable name, and depends on whether the variable is a simple variable, a vector entry or an array entry.

Default Compiler

The default DataBasic compiler is a new version that supports all the new features described in this topic. Note that code generated by this compiler cannot be run on earlier versions of Reality.

History Enhancements

The DataBasic history feature provides a mechanism to log history data to allow reporting and analysis of the usage of DataBasic programs, subroutines and external user functions. You create a separate HISTORY data section in your source files, and this section is used by the system to log the history usage of the code whenever it is complied and catalogued.

When any local source item is compiled and catalogued, a history log item with the same DataBasic program name is automatically written to the HISTORY data section of the source file (if such a section exists). Any previous history item is overwritten. The log item comprises the attributes shown in the following table (compilation is logged in attributes 1-7, cataloguing is logged in attributes 8-14).

Attribute Description

1

Date of successful compilation (internal format)

2

Time of successful compilation (internal format)

3

PLID of successful compilation

4

ID of user requesting compilation

5

Account of successful compilation

6

Location of source (filename - including the data section, if appropriate)

7

Source item ID

8

Date of successful catalog (internal format)

9

Time of successful catalog (internal format)

10

PLID of successful catalog

11

ID of user requesting catalog

12

Account of successful catalog

13

Location of executable object (filename)

14

Executable item ID

The following dictionary definition items are supplied in the dictionary of the global POINTER-FILE. If cataloguing to the global POINTER-FILE then an item is created in the POINTER-FILE,HISTORY data section in addition to any in the source's HISTORY data section.

Note: By default, nothing is logged; the user has to enable compile/catalogue history logging (by adding the HISTORY data section).

Proc Error Messages

If a Proc is called from another Proc with the P command, the result might not be as expected; in particular, on completion of the called Proc, it will not return to the calling Proc. In this version, this problem can be harder to identify and solve, in that a Proc could call a TCL Macro which calls a Proc, etc., so error messages have been added to warn the user of this situation. On emulations, these are enabled by default; they can be enabled or disabled as required with the TRAP.EMBEDDED.PROC environment option.

Global POINTER-FILE

A new account will no longer contain a Q-pointer to the global POINTER-FILE, so it is no longer necessary to delete this before creating a local pointer file. Note however, that to access the global pointer file, you must include the account name (SYSFILES). For example:

LIST /SYSFILES/POINTER-FILE

Administration

Reality's command logging features (Audit and Support logs) have been enhanced to give the administrator greater control over what is logged and how the information is presented. For details, refer to the descriptions of the AutditTclLog, SupportTclLog, SizeTclLog and TimeTclLog database configuration parameters.

System Information

Two new commands, SYSINFO and WHAT, provide information about your Reality system that can be used for diagnostic purposes.

Installing Updates

Auto File Size

Dictionaries can now be marked for auto file size.

Documentation

Online Documentation

RealityV15.0Comment on this topic