Banner
 
 

Flex Inquiry Software Changes

 
540.23 Zip Commands
Fri, July 16 2010

                       MZIP Commands
                             +-- + --+
         +-----------<-------+-- , --+-<----+
MZip --+-+-+---- <directory> -----------+---+--+------------------+---| GZip --| |---- <pattern> -------------| |- <where clause> -| UZip --| |---- <filename> ------------| UNZip -|

These commands access a fast compression function, using the LZ77 algorithm. MZIP compresses files and their attributes in a format suited to the MCP system. GZIP compresses the data in byte stream files (and loses the file attributes), but the resulting file can be expanded using gunzip on almost any other system. UNZIP (or UZ) expands a file compressed by MZIP or GZIP. But, as yet (07/2010), it cannot expand most files created by gzip on other systems.

To get the output file name, add /MZ for MZIP, ".gz" for GZIP, and /UZ for UZIP. However, if the file already ends in ".gz" or /MZ, MZIP and GZIP will not process that file, while UNZIP will strip off the ending. If the output file title already belongs to a resident file, the action is skipped, unless the AutoRm option is set, when the resident file is replaced.

These commands can also be Actions in :ACT commands.

MZIP and GZIP have 2 specific options to control how they work. ZipMore or ZM controls how much effort goes into the compression in MZip and GZip. If it is OFF, the compression is done with as little CPU time as possible. If ON, about 50% more CPU is used to improve the compression, typically ending with 10% smaller compressed file size. ZM ON files normally UNZIP more quickly than ZM OFF ones.

ZM can also take an integer value, though this is not saved between sessions. The only current assigned meaning is for ZM 2 in MZip. This value will often add a further 50% CPU time over ZM 1, and drop the final compressed file size a further 7%.

All these % figures are data dependent and each file will behave somewhat differently. However, a file with ZM 2 compression will normally need about double the time to UNZIP, vs ZM 1.

The MemSz option is essentially a debug option to override the memory size used by MZIP and GZIP.

It is normally (Default), in which case MZIP/GZIP look at the system to determine how much memory to use, but can be set to (Big), (Med), and (Small) corresponding to 16MW, 1 MW, and 64kW respectively. Add at least 25% if ZipMore in set. MemSz is not kept between sessions.

The HEXLATE option has been re-named the XLATE option. It acts as before in LIST and WRITE, but in MZIP and GZIP, it does an EBCDIC to ASCII translation, and in UNZIP, an ASCII to EBCDIC one.

The output of the OPtion command has been re-arranged. Now the values of the NR, R, and REO options, are summarised in a new portmanteau option, SELRES.

540.22 Deimp :NOZIP
Thu, July 8 2010

The option NOZIP has been deimplemented. It had a small effect on certain jobs in the INSTALL module. These now act as if NOZIP is set. It was used in BACKUP to mean SYNTAX. Using :SYNTAX now has the same function. In LOAD, it was used as a debugging tool to save the LOADJOB generated. This can now be done with :SAVE.

540.21 Restore APPEND functionality
Thu, July 8 2010

The APPEND colon option now works correctly after being slightly broken by the change described by DNote 540.20.

540.20 Options Cleanup
Tue, July 6 2010

This cleans up some inconsistencies in option handling. Flex will now allow options that have no meaning with a command, but will still restrict those that are misleading or harmful. SEARCH, as on the options report, can now be set explicitly. The DEBUG options, can no longer be saved between sessions.

The SECURE commmand can once again be used with lower case.

This patch reduces the lines in FLEX by about 500.

540.20
Fri, May 28 2010

 

540.19 Internal change allowing for step_dir in include/m
Wed, May 19 2010

Adjust include from include/meta

540.18 InDepth
Wed, April 7 2010

Internal Change.

540.17 Remove options TTY and TD830
Fri, April 2 2010

As far as we are aware flex will only be run on terminal emulators. The options used with old 'hard wired' terminals have been removed.

Flex is now more rigorous in checking for spurious input between a valid command and the : options.

Flex Help has been updated to include the WHERE clause.

540.16 Allow FIND...:FILE
Wed, March 17 2010

The FInd,Append and Byte options now work with the FIND command.

540.15 Improve 'IN' container error handling for PD
Fri, March 12 2010

The handling and reporting of errors for 'IN' files searches has been improved to provide more information about the failure. In particular, failed Supervisor PD searches did not always get an error returned in a timely manner.

540.15 Improve 'IN' container error handling for PD
Fri, March 12 2010

The handling and reporting of errors for 'IN' files searches has been improved to provide more information about the failure. In particular, failed Supervisor PD searches did not always get an error returned in a timely manner.

540.14 Fix quoted directory handling
Mon, March 1 2010

FLEX wildcard searching did not work correctly for files whose top level directory or name was a quoted string e.g. (TEST)"example", (TEST)"example"/FILE.

540.13 Allow a DO <opal string> in a DO file
Sun, February 28 2010

A DO <file name> command is not permitted with a DO File. This restriction has been partly relaxed by a new feature allowing DO <opal string> within a DO file. The DO <opal string> is only permitted within a DO file. The expected use is to generate flex commands within a REPORT and then be able to execute them.

540.12 Correct FILE searching with usercode patterns
Fri, February 26 2010

Directory searching using wildcard usercode patterns now works again correctly after being inadvertently disabled by FLEX 540.10.

540.11 Correct FILES directory handling
Fri, February 26 2010

The change described by DNote 540.10 caused some wild-carded FILES requests to fail with a '#Bad directory..' error. This problem has been fixed.

540.10 Allow quoted file search/fix REP DO vs. SAVE
Tue, February 23 2010

Previously, FLEX did not correctly handle all wild-card file patterns with quoted strings, discarding files that should have matched. Also, any patterns with a single quote or '.' would give a command error. FLEX now permits the use of these characters in patterns.

For example, the following FILES command will now work correctly:

  FILES ="DEV.HTM"=               -  Now finds matching files
  FILES ="DEV.=                   -  No command error now
  FILES =.=                       -  No command error now

540.09 Restore status line
Fri, February 19 2010

Version 540.06 caused status line messages to be suppressed. Status line messages have been restored.

540.08 Fix invalid op fault when running in batch
Thu, February 18 2010

Version 540.06 introduced a bug which could cause flex to fault with an invalid operator error when run in Batch or called from Supervisor.

This problem has been corrected.

540.07 Internal change only
Wed, February 17 2010

Fixes unsaved FLEX/DP/WHERE

540.06 Improve LISTVL HTML
Wed, February 17 2010

The LISTVL HTML report would create a corrupted HTML file if a volume which was not in the volume library was encountered. This has been corrected.

540.05 New WHERE modifier
Wed, February 17 2010

The WHERE modifier can be used to invoke an 'inline selection. The text following WHERE should be valid SELECT code. A WHERE clause will be used in preference to an active SELECT. The where clause can be used after a directory list and before any colon options. Since currently the SECURE command does not accept a directory list the WHERE clause cannot be used with SECURE. This will be addressed in a subsequent release.

Ex FILES TEST WHERE SYMBOLFILE FILES = WHERE AGE=0:Flat REMOVE = WHERE CODEFILE and AGE >365 :FL

540.04 Use SAVEPRINTFILE instead of SAVEBACKUPFILE
Thu, January 28 2010

FLEX will no longer use the SAVEBACKUPFILE file attribute since it will be deimplemented in MCP 54.1/13.0. FLEX now uses the recommended replacement SAVEPRINTFILE.

540.03 Support new INPUTPARAM attribute
Thu, January 21 2010

INPUTPARAM Returns the text of the most recent command.

Ex REP HEAD INPUTPARAM Followed by FILES =BoB= ON DEV:FL Would return FILES =BoB= ON DEV:FL followed by the list of files

540.02 Fix SEG ARRAY at 90444600 for bad FILES command
Wed, December 23 2009

Previously, FLEX would fault with a SEG ARRAY error at 90444600 when processing a FILES command which had a long, incorrect file specification. This was usually caused by accidentally transmitting a large amount of screen data after the FILES command.

540.01 Better errors passed to Supervisor
Wed, December 16 2009

When called by Supervisor via the PD context, errors which would normally be reported by a Display and could be easily missed by a Supervisor user, are now correctly passed to Supervisor.

Ex.

/(pd:title) (*)= IN *METALOGIC/MAGUS

FLEX Error: Invalid Container or Image

previously the fooling would have been the result

/(pd:title) (*)= IN *METALOGIC/MAGUS

FLEX Error: #No files in directory (*)=

530.41 Allow FAMILY statement in batch files
Fri, July 10 2009

The FAMILY statement is now permitted again in batch DO files. Previously, the error '##Option PRINT incompatible with FAMILY statement' would have been returned causing the batch file to fail.

530.40 Improved LISTVL command
Wed, June 17 2009

The LISTVL command has been improved. The original number of files copied to a volume are now reported in square brackets after the number of backup references.

A new modifier 'HTML' can now be used with a normal LISTVL or a LISTVL <familyname>.

Ex LISTVL HTML LISTVL DEV HTML

If the HTML modifier is used the report is generated as an HTML table which can be sorted by clicking on a column heading. Only volumes in use as backup are reported.

If the Metalogic mail library is available and the UserData entry for the user running flex has an email specification , the report will be emailed as an attachment.

530.39 Load At <kind>
Tue, May 26 2009

Load x At <hostname> will no longer sometimes get the <kind> wrong for a Load At without a unit number.

530.38 Allow quoted quotes in REP FOOT
Fri, March 20 2009

Previously an expression using a double quote inside single quotes would give a syntax error in a rep foot report. This has been corrected.

530.37 AT <hostname> Loads and Searches
Wed, March 11 2009

Using CopyWrite, Flex has an undocumented extension to FILES for PUs to search on other hosts. The syntax requires "AT <hostname>" be placed after the normal title/pattern specifier. Most of the problems with the implementation are now resolved and it has been expanded beyond FILES and USAGE to allow LOAD, e.g.

F = CD 50 AT HISHOST USAGE (FRED)= AT SOURCES, (JIM)= ON BKMT(MT) AT TAPESYS:BR LOAD OLD/BONES IN (SHAFT)CDIMAGE ON IMAGEPK AT DRHOST, NEWR/=

If the CopyWrite option is used on a LOAD AT, a special form of COPY is used so that if there is a conflict, the file is only overwritten if the incoming one has a later timestamp. This makes it easy to keep a host up-to-date with file changes.

Note that ISO/JOLIET CDs, and non-CopyWrite containers, are currently not accessible using "AT", and that wildcards are disallowed on the family name.

DESTROY is now a preferred synonym for ZAP.

530.36 Provide better RULES MANAGER information
Thu, March 5 2009

The RULES MANAGER command has been improved to allow better control of the setting of primary and alternate Rules Manager usercodes and accesscodes. Changing or setting a Rules Manager requires the usercode and accesscode to be valid in the USERDATAFILE and passwords must be supplied if applicable. All Rules Manager usercodes must be marked as privileged (PU).

The command 'RULES MANAGER ?' will show current Rules Manager details if run by a FLEX usercode that is PU or SECADMIN. A typical response might be:

    RULES MANAGER ?
    -- Rules Management details --
    Master Usercode:      FLEX
    Master Accesscode:    RULES
    Alternate Usercode:   Not Set
    Alternate Accesscode: Not Set
   #

Further details and syntax can now be seen using the HELP RULES MANAGER command in FLEX Inquiry.

530.35 BLPACK MT Problem
Wed, February 18 2009

Fixes a problem using BL/PACK tapes.

530.34 :FAST with MT/CD/IN
Mon, February 16 2009

The FAST option now applies to searches on MT/CD or IN containers. This can be much faster than the non-FAST call, but it only looks at the Directory, not at the headers, which means only the title related attributes are available (and LicenseKey).

Note that the tape directory on a tape that has been Appended only shows the files of the first COPY.

Using :FAST on a container with CopyWrite allows access to more types of directory, including PKZIP and TAR containers.

Some directory list anomalies have been resolved.

530.33 Fix for myself(pagesize) in rep foot
Mon, February 16 2009

In certain rare circumstances the MYSELF(PageSize) and MYSELF(Width) attributes would not work in a Report Foot. This has been corrected.

530.32 Max Do parameter size increased to 65535
Fri, February 13 2009

The maximum size of a parameter passed to a Flex DO file has been increased from 255 to 65535.

530.31 Allow start command in batch
Fri, February 13 2009

The Flex START command may now be used in an offline DO file. Parameters may now be supplied directly to the Start command.

530.30 Add a new variant of the Report command
Wed, February 11 2009

A new variant on the Report command has been introduced: REPORT DO.

It is defined in the same way as the other reports but the code is executed immediately. Its main use is expected to be in DO files to set up variable to be used in a selection expression but can also be to interrogate system or PD attributes. Although flex file attributes may be used they will always return nul values since the code is not run against any file.

EX.

REP DO    
BEGIN    
   IF #TYPE# = "FULL" THEN
      #DT :=0
   ELSE    
      #DT:=#LASTDT.PERM ;
   #LastDt.Perm:=TODAY
END
A valid selection could then be
SELECT ALTERDAY > #TS
The following could be used to return the date of the most recent run.
REP DO "Last backup",DateToText(#LastDt.Perm,ddmmyy)   

530.29 LOAD IN <container>, Overwrite LOADs
Fri, February 6 2009

LOAD can now load from wrapped containers, and, with CopyWrite present, it can also load from non-Library/Maintenance CDs or CD Image files.

e.g. LOAD (*)= IN WRAPPED/CONT

     LOAD =".txt" ON ISO_CD@#### (CD)
     LOAD (SS)S/= IN *PIFLEXBACKUP090122/DAILY
     LOAD (SS=)S= IN (XX)ANY/CONTAINER ON ANYCD(CD)

If a LOAD is not explicitly or implicitly recovering non-resident files, it will now ask whether resident files with the same name as files being loaded should be overwritten or not:

  #Loaded Files may OVERWRITE Resident Ones
  #Enter 'OVER' to OVERWRITE, anything else to preserve

If the response is OVER, any name conflicts will result in the resident file being removed. The response must be 'OVER' in a LOAD:FLAT without a 'TO' clause unless an ALT FLAT is active.

Because of this new feature, LOAD is now significantly faster for many large recoveries.

Until now, FLEX used CopyWrite only if there was no alternative. The COPYWrite option will now be applied to FILES and LOAD commands. This will allow access to BL/PACK tapes, containers on ISO CDs, etc.

An error in the FIND command has been corrected.

530.28 Load MT/CD/LMD
Tue, January 27 2009

Flex will now return the volume information for MT, CD, or LIBMAINTDIR searches in the first Backup Reference. These can be seen using the :CAT report.

This also allows use of the LOAD command, e.g.

LOAD (BRI)B/T= CD 50 LOAD (BRI)OBJECT/= ON FLEX= (MT) LOAD (=)= IN *LIBMAINTDIR/USERSTUFF/20090122/G00123

530.27 More consistent scanning with usercode patterns
Tue, January 27 2009

(Change in OPAL/BINDLIB) For most usercode directories an = after a stand alone usercode is assumed.

Ex. FILES (ABC) is treated as FILES (ABC)= (*)

    FILES (*) is trated as FILES (*)=

If a usercode pattern other than (*) or (=) was used this was not the case.

A standalone usercode pattern will now assume an = after the usercode.

Ex.

  FILES (=B) will be treated as (=B)=

530.26 Usage Improvements
Tue, January 20 2009

The Usage command will now allow :Resident and :REO options. The :-Brief report for :REO will not report Generation information. Also generations after the highest one found are not reported.

The full Usage report has also been enhanced to show the title of the largest file and to give totals of space wastage. The 3 categories of wastage are: "Mis-aligned Blocks" - caused by blocksize not being a

                                    multiple of 180 bytes.
             "End Block" - caused when the last block is not full.
             "Uncrunched" - the space released if all were crunched.

Also the :ATT and LF (but not LF:ATT), will now indicate mis-aligned block wastage by "+nn" after the "BlkSz".

LFILES also report total wastage.

530.25 Load:FLat
Fri, January 16 2009

Flex Inquiry was used for all recovery situations, except a lost family member when a flat directory was still available. That case used FamilyManager, which entailed multiple inconveniences. By allowing Load:Flat, the capability is now in Flex Inquiry.

Example:

To recover all recoverable files on a pack where index 2 has crashed:

Load (*)= on FAM:FL #2

Unlike other loads, a :Flat Load without a 'TO <dest>' part, will overwrite the resident file, so a confirmation is asked for.

Note that a Load:Flat or a Load:Fast will normally be slower than other Loads because Flex has to find backup info for each file one by one.

530.24 Fix Find Command
Tue, January 13 2009

The FIND command was never finished and differed markedly from its documentation. It now works as one would expect, and in addition has new capabilities, as in the Find option, e.g. Hex, Whole Word, and case-independent searches.

530.23 Whole Word/Case/Record Find Op
Fri, January 9 2009

The FIND Option can now be case insensitive (with single quotes), will respect the text field of symbol files (if whole word) and uses about 20% less CPU for the same search.

530.22 :FIND Option
Tue, December 23 2008

The :FIND option filters the files found depending on the presence of the target in the data content of the file.

Syntax:

FIND --+-------+--+--------+---+-- " -- <target> -- " --+--------|

       +-- ^ --|  +-- LIT -+   +-- ' -- <target> -- ' --+
                  +-- 8 ---+
                  +-- 7 ---+
                  +-- 48 --+

If "^" is present, the file returned do not have the target, otherwise the ones with the target are returned. "LIT" and "8" are equivalent, and indicate a literal FIND. "7" means search for the literal target in ASCII. "48" means search for the literal target in Hex. Note that the search is still a byte search, so there must be an even number of hexades. If no specifier is given, the Find is like a CANDE token FIND, with the important difference that in CANDE, the file is divided into records, whereas here, the file is considered to be a long string of characters between the beginning of the first segment to the end of the last one. For example if an identifier is at the beginning of a record and the end of the last record is an alphanumeric character, a token find will not signal it, whereas CANDE would.

The file search used must be on a disk and return a header. That excludes :FAST and :LIN, and searches in containers, tapes, and CDs. Use the CopyWrite FIND construct for these searches. Also no MAINT ALT FLAT can be used in a :FLAT search. The search used involves low-level IO and so is shockingly fast and does not update the file's timestamps. The IO time is charged to the directory search and not the FLEX task.

530.21 Reinstate :Byte and :Redir
Tue, December 9 2008

Version 530.19 broke the :byte and :redir options. The :FIle option would overwrite existing files even if the AUTORM option was not set.

The original functionality has been restored.

530.20 Fix Backup Error Msgs & Optimize
Fri, December 5 2008

Fix confusing lack of errors in BACKUP.

Remove some over-large Defines. Approx 3% reduction in source, object, and working-set sizes, and compile times.

530.19 Optimize Internal Qs
Mon, December 1 2008

The internal queues were very restrictive in core usage. They will now use more. Large BACKUP commands will now run many times faster as a result.

Some option handling has been rationalised, saving about 100 cards.

530.18 Allow plus sign as directory separator.
Wed, November 26 2008

A list of directories passed to a Flex command may now be separated by '+' as well as ','.

This makes it possible to pass a list of directories as a parameter to a Flex do file.

Ex. DO DO/FILECOPY(A/=+B/=,JOBID,TRue)

530.17 Expand and Optimise Backup
Mon, November 24 2008

The BACK command now uses a direct call on Library/Maintenance and avoids WFL, which allows a much larger number of files (100x) and and reduces overheads and source lines (-20).

A new option, CopyWrite, forces a BACK command to use CopyWrite. The Compare default is now ignored.

The OP screen has been re-arranged.

530.16 Correction for change 530.15
Wed, November 19 2008

The change in 530.15 introduced a bug when processing BEGIN END blocks in REPORTs REPORT FOOTs and REPORT HEADs. This has been corrected.

530.15 Fix bug with indented commands in do files
Tue, November 18 2008

Version 530.08 introduced a bug when parsing a REPORT, REPORT HEAD, REPORT FOOT or SELECT command from a DO file. If the command was indented by more than one character and the following expression was on the same line then it would always fail syntax.

This problem has been corrected.

530.14 Fix LOAD for non-LMD Disk Farms
Thu, November 13 2008

Previously, the LOAD of an archived file from a Disk Farm that did not have an associated LibMaintDir file would not have succeeded because FLEX did not use the hostname from the Archive record to identify the network location of the Farm. This problem has been fixed.

530.13 Fix DO of RULES ENTER problems
Wed, October 1 2008

The required mechanism to re-enter a RULES SAVE file of FLEX rules is to use the DO command. However a DO of such a file would fail because of recent changes in the handling of general DO files that now do not need the continuation character '\'. This problem caused RULES INLINE commands to be incorrectly handled and is now resolved.

The DEFAULT TAPE command will now accept tape density mnemonic values greater than 20 (current MCP limit is 34).

530.12 Various Option related changes
Fri, September 5 2008

Setting the Archive option using the OP command will now correctly use the archive instead of the catalog for subsequent Files commands.

Setting options which are mutually exclusive to other options will now ensure the conflicting options are reset.

Ex. NR with REO and RES. FAST with FLAT and LINEAR

The screen shown in response to the OP command has be redesigned in an attempt to make it clearer. Options which cannot be set using the OP command but can only be used after a : in a command are listed under Colon Options.

530.11 Fix the Next command
Tue, September 2 2008

The NEXT command which allows stepping backwards and forwards through multiple pages of a Files command now works again. It is only valid if none of the options :FLAT,LIN or FAST are specified.

A command entered while in the middle of a multi page response is now correctly processed.

A bug where a multi page HELP ATT would not break has been fixed.

An MCP bug which could cause Flex to fault when directing output to a file on early versions of MCP 51 and 5.2 has been detoured.

530.10 Allow redirection of output to PCs
Wed, August 20 2008

A new output option REDIRECT has been added which allows output from a Files command to be written to a PC server.

Ex.

 FILES =:FL,Redirect:MYSERVER/PRIMARY/METALOGIC/"FILES.TXT"
 Or
 FILES=:FL,Redirect:"10.0.0.4"/PRIMARY/METALOGIC/"FILES.TXT"

The usercode and password used to access a server is controlled by the MAKECREDENTIALS Utility. It must be run from the usercode to be used to run Flex.

The MAKECREDENTIALS utility provides a method of encrypting credentials, eliminating the need to specify explicit credentials as part of the IOHSTRING attribute, and creates a credentials file for each system for which the user has remote access. The MAKECREDENTIALS utility can also be used to create a default credentials file.

MAKECREDENTIALS is a simple command mode utility that expects the following login credentials for a network host:

<host>
<username>
<password>
<user domain> (optional)

These four pieces of information correspond to the IOHSTRING keywords as follows:

SERVER = <host>
CREDENTIALS = <username>/ <password>
USERDOMAIN = <user domain>

Examples
The following example shows how the MAKECREDENTIALS utility is run from the CANDE terminal emulator for a host of MYSERVER (10.0.0.10), a username of OPS, and a password of frog:

U *SYSTEM/NXSERVICES/MAKECREDENTIALS MYSERVER OPS"frog"

or if the IP address is to be used:

U *SYSTEM/NXSERVICES/MAKECREDENTIALS 10.0.0.10 OPS "frog"

Note that if the password on the PC is not all uppercase then the password must be quoted.

Using a prefix of *UNC/ on an output filename has the same effect as Redirect.

So
FILES =:FL,Redirect:MYSERVER/PRIMARY/METALOGIC/"FILES.TXT"

is equivalent to

FILES =:FL,FILE *UNC/MYSERVER/PRIMARY/METALOGIC/"FILES.TXT"

If any of the directories specified in the file name do not exist, Flex will attempt to create them. The ability to create them will depend on the privileges of the user code specified in the Credentials file.

A word of warning. A credentials file created under one usercode will not work if copied to another usercode.

A new option AutoRM has been added for use with the Files,Byte,Append and Redirect options. Setting AutoRM allow a file specified in a Files option to be overwritten, whereas normal operation will return an error if the specified file already exists.

Ex.

FILES=:FL,Redirect:"10.0.0.4"/PRIMARY/METALOGIC/"FILES.TXT",AutoRM

or

FILES=:FL,AutoRM,File FLEX/OUTPUT

530.09 STD command only listed one report
Wed, July 30 2008

A change introduced in Flex 510.31 caused only the first report to be listed in the STD command. The full list is now reported.

Files in the directory METALOGIC/FLEX/DEFAULTREPORTS under the usecode used to run Flex are now also listed correctly.

530.08 Don't upcase strings in delimited by '
Fri, July 25 2008

In Report, Head, Or Foot code, all text not inside " " characters were being upcased. This could cause problems for strings delimited by ' instead of "".

Begin is now allowed after FOOT or HEAD. Previously it was only allowed after REP FOOT or REP HEAD.

REP HEAD(TITLE,NOT "/") is now correctly parsed.

530.07 Fix '\' handling problems and paging issues
Sat, July 12 2008

The changes described in FLEX DNote 530.03 caused several problems with the handling of the optional '\' line terminator in Flex DO files. If a '\' appeared in line character position 80 or did not have a space in front of the terminator, compilation of that REPORT or SELECT would fail. These problems have now been fixed.

Several issues with the execution of DO files from remote sessions have been addressed. FLEX will now not wait at a page break when the SETL option is set and long REPORTs or SELECTS are being compiled; FLEX will also better page screen output when a FILES command is executed from a DO file; previously incorrect messages would have been displayed on the screen and paging would be erratic. This behaviour has been improved.

The maximum size of an individual REPORT or SELECT compiled from a DO file has been significantly increased from the previous limit of 8000 characters.

530.06 Support for DFHIMAGE attributes
Thu, June 12 2008

This change supports the new DFHIMAGE attribute for both FLEX and SUPERVISOR, as described in OPAL DNote 530.19.

530.05 Control WFL report usage
Fri, May 2 2008

The usage of the WFL function inside a REPORT BEGIN..END block has now been restricted when used from an interactive session. If a WFL function is triggered by a FILES command then, once the FILES request is complete, the REPORT will be disabled to prevent accidental invocation in further FILES commands in the same session. The REPORT can be easily re-enabled by using the REP + command.

This change does not affect the usage of WFL in REPORT HEAD or REPORT HEAD; normal non-remote batch DO files are also unaffected.

530.04 Correct DO abort behaviour and multi-line printing
Thu, April 10 2008

Printed lines longer than 132 characters generated by any REPORT statement used to be truncated. This behaviour has been changed; FLEX will now automatically split printed REPORT strings into 132-character chunks.

FLEX DO files will now automatically abort if syntax errors are detected in a SELECT or REPORT; previously FLEX would unconditionally continue to process the DO, despite the errors, with indeterminate results.

Further, the syntax error reporting for FLEX DO file compilation of SELECT or REPORT statements has been improved. The OPAL compiler will now write the failing line of source followed by the syntax error to the screen or print file. This is best shown by the example DO file below:

  00000100 REP BEGIN
  00000200        SHOW(TESTING); ILLEGAL;
  00000300        $A:="A";
  00000400        #Z:=214; ZZ;
  00000500     END;
  00000700 FILE ABC:PRINT
  00000800 QUIT

This DO will generate several syntax errors when compiled; on older FLEX versions, executing this DO will produce the following:

  #Compiling REPORT
              *Primary expected - TESTING
          *END expected - Z
           *Unrecognised construct - :=
  #three syntax errors found in REPORT compilation
  #
  #Scanning directory ABC

  ##Found 0 files [from 0 files]
  #Directory: ABC ON DEV
  #
  #ET=0.4 PT=0.1 IO=0.0

The syntax errors may not be easy to align with source lines in the DO file and, despite errors compiling the REPORT, the DO continues.

The above behaviour has now changed when compiled with the latest FLEX:

  #Compiling REPORT
         SHOW(TESTING);
              *Primary expected - TESTING
         #Z:=214; ZZ;
          *END expected - Z
           *Unrecognised construct - :=
  #three syntax errors found in REPORT compilation
  #
  #DO aborted by error at (00000700)

Source lines are now displayed and the DO is aborted because of syntax.

530.03 Allow use of "\" in scripts
Thu, April 10 2008

The \ character is optionally used to denote line termination in a FLEX DO file. However, using this character inside quoted strings within a DO script is valid, FLEX would incorrectly assume that the line was terminating inside the string causing syntax errors. This problem has been fixed.

530.02 Usage on =:Fl
Fri, February 22 2008

In some cases, the Family Substitution was not being removed in a Usage command, causing puzzling results when a family pattern was used.

Object/Flex will again not be TADS capable.

530.01 Better handling of multiple directories with :Flat
Tue, January 29 2008

Version 520.24 fixed a problem when scanning multiple directories when one or more directories had a Family but no usercode specified. Unfortunately it caused problems when scanning multiple directories with Usercodes and Families specified.

An unusual problem existed when scanning two directories where the usercode of the second directory matched the first level of the first directory. Ex FILES BOB/=,(BOB)DIR/= The second directory would be ignored.

The optimisation of multiple directories has been improved.

FILES A/= on DEV, B/= ON DISK,A/= ON DEV will now correctly scan DEV once. Previously a change of family in the middle of the list would break the optimisation causing the files returned from DEV to be duplicated.

520.29 Internal change
Mon, December 3 2007

Use new INCLUDE/META

520.28 Unwanted Fam Substitutions
Fri, November 16 2007

Flex will no longer do family substitution if an explicit ON part is used with an IN qualifier or a MAINT ALT file.

For Example:

FAM DISK = DEV ONLY F (*)= IN WRAPFIL ON DISK

will no longer search in WRAPFIL ON DEV.

520.27 Fix External Srch Msg
Wed, November 7 2007

Fixes an error message for searches not compatible with :ACT

520.26 FIND vs TOUCH
Wed, October 24 2007

The FIND command will no longer change the UseTime of the files it searches.

If Accounting ODT command is set to other than the default value of Identified, and no other setting overrides it, Flex Inquiry will now create FILEOPEN and FILECLOSE Log records.

520.25 No search mis-match for Supervisor PD
Mon, October 22 2007

Flex will perform any search from a Supervisor PD request, irrespective of what attributes are requested.

520.24 Fix FILES directory list handling
Fri, October 19 2007

If a FILES command used multiple directories with one or more 'ON <family>' specifications in a list, then a FLEX :FLAT run would not return the correct set of matching files. For example:

   FILE ABC/=, DEF/= ON DEV:FL

Would not return any files from the directories ABC or DEF.

   FILE GHI/= ON DEV, JKL/=:FL

Would only return files from the directory JKL. In both these cases, it has been observed that FLEX might randomly return one or more files if the directory was large enough. The :LIN and :FA modifiers were also affected by this problem.

This problem is now fixed; it should be noted that a non-FLAT request would always be correct.

520.23 Support for LASTDIR attribute
Tue, October 16 2007

This change support the new attribute LastDIr as described in Opal/GSTableGen note 520.52.

A files command on a directory which does not exist returns a message like '#No files in directory NODIR ON DEV'. If the output was directed to a Job file this message would cause a syntax error in the created job file. For output to file such messages are now prefixed by % which prevents the syntax error.

Example DO file using LastDir

WFL REMOVE WFL/FLEX/REMOVE

SELECT DAYS(TODAY,ACCESSDAY) > 365

REPORT HEAD "BEGIN JOB WFL/FLEX/REMOVE;",/,

   "REMOVE ",#Cnt.Store(0),#Segs.Store(0)

REPORT IF #Cnt.Sum(1) = 1 THEN " " ELSE ",",FILENAME,

   #Segs.Store(#Segs+Segments)

REPORT FOOT If Not LastDir Then Empty Else

   If #Cnt=0 Then
      #("BEGIN JOB WFL/FLEX/NOREMOVE;",/,
        'DISPLAY "No files selected to remove";',/,
        "END JOB")
   Else
   #(';DISPLAY "',#Cnt," files ",#Segs,' segments removed;"',/,
     "END JOB")

FILES TIDY/=,OBJECT/TIDY/= :FILE WFL/FLEX/REMOVE WFL STARTJOB WFL/FLEX/REMOVE

520.22 PD Object Length
Wed, October 3 2007

This change is to take advantage of the updated PD Object format.

:FLAT searches from Supervisor will now be sorted by default.

OBJECT/FLEX will no longer be TADS-capable, halving the code file size.

520.21 Ignore Bad Dir in List
Fri, August 24 2007

A Supervisor PD context OPAL with a list, which includes a file/dir that is not present, will no longer stop processing at that point.

520.20 Reinstate PDEF check for LISTVL
Tue, August 14 2007

The change applied by FLEX DNote 520.09 caused the PDEF destination check performed during a LISTVL run to be inadvertently removed. This caused all LISTVL reports ot be poorly formatted with report headers appearing every two lines. This behaviour has been corrected.

520.19 Fix INVALID INDEX using SECURE
Tue, July 31 2007

When using the SECURE command on a file or directory to change the files SECURITYTYPE to GUARDED, FLEX would fault with an INVALID INDEX @ 17455450 if the selected file was already GUARDED. This problem, which is now fixed, did not affect any other aspects of the SECURE command.

520.18 Correct SELECT fault handling
Tue, July 17 2007

The changes decribed in DNotes 520.01 and 520.02 did not correctly force script termination after a SELECT fault. This oversight has been corrected.

520.17 Extra Message if Supervisor DO Limit
Sat, July 14 2007

Avoid an extra message if a PD context call hits a Supervisor limit.

Fix case where Select expression was not reloaded.

520.16 Allow AT HostName in PD Context Calls
Wed, July 11 2007

PD Context now allows AT HostName syntax.

520.15 Maintain :FLAT FamilyName
Wed, July 11 2007

Fixes a bug in PD context calls with FAMILYNAME and :FLAT

520.14 MORE PD FIXES
Fri, July 6 2007

The change applied in SUPERVISOR DNote 520.99 for limited PD DO or DISPLAY requests did not fix the case for GETSTATUS file searches using a wild card pattern. Although the request worked correctly, FLEX would still generate many extraneous "Send_Ary Exceeded Do/Eval Limit" messages. This behaviour has been corrected.

520.13 Allow SUPERVISOR PD contexts early termination
Wed, July 4 2007

For standalone SUPERVISOR PD DO requests that use a DO limit modifier, SUPERVISOR would not stop processing the DO when the limit was reached if the FLEX search type was :FLAT. This problem caused FLEX to generate multiple extraneous 'Bad Send_Ary Call' display messages only terminating when the list of files in the selected directory was exhausted. This problem is now fixed.

520.12 Update DEFAULTS for new tape densities
Fri, June 29 2007

The DEFAULTS command screen has been updated to remove a superfluous question regarding lower case printing and to recognise new densities (such as FMTLTO3) for FLEX tape creation.

520.11 Allow DO files without continuation characters
Fri, June 29 2007

FLEX can now handle DO files without the need for the '\' continuation character for grouping multi-line REPORT or SELECT scripts. FLEX enables this feature by searching for command words at the beginning of each new line. FLEX will continue to handle existing DO files that use '\' terminators but may generally be regarded as noise.

Some ambiguities where FLEX keywords collide with OPAL functions and attributes have been addressed but other collisions are possible. In such cases, using the '\' terminator on a previous line in the DO file will always force FLEX to regard the following line to be part of the SELECT or REPORT.

520.10 Fix 2nd search problem
Fri, June 29 2007

Correction of problem caused by the PD context patch.

520.09 Flex in Supervisor
Mon, June 25 2007

FLEX Inquiry will now act as a server for a PD context OPAL running in Supervisor. This allows Supervisor to access the full search abilities of FLEX.

300 lines of FLEX source, dedicated to handling SPO files and disabled since 1985, has been deleted. The SPO option is no longer recognised.

520.08 FILEKIND Improvements
Mon, June 11 2007

FLEX will now use the improved FILEKIND handling. This fixes many small problems with inappropriate handling of certain FILEKINDs and will make the handling of them more automatic in future. The change reduces start up time and core usage (by 300 words).

REMOVE can now be used with the :FLAT option.

USAGE will no longer family substitute if the target family is used explicitly. It now follows current practice for other commands.

Commands with intrinsic reports and no SELECT will save a little time by no longer inserting TERM information in the PD object.

520.07 Disable report headings if MAIL destination
Thu, May 24 2007

With similarity to SUPERVISOR printing, FLEX will now automatically disable the printing of headings (and footers) from reports that have a PrintS destination that starts with 'MAIL'. This behaviour applies to LISTVL, LFILES, FILES and also OPAL reports. The change allows much tidier prints to be viewed by the email recipient.

In addition, a variety of minor report and formatting errors have addressed in the standard LISTVBL report.

520.06 Allow disabled user rules from RULES ENTER
Thu, May 24 2007

Previously, if a disabled user RULE OP was saved into the symbolic file created by a RULES SAVE ALL command, a subsequent DO of the saved file would have faulted processing the disabled RULE OP. This problem has been fixed; all disabled user RULES OP settings are now preceded by an initial RULES OP ENABLE command which establishes the rules block and permits the disable to be applied.

Also, Flex rules compiled into the rules base using a DO command can generate a lot of rapidly scrolling screen output, making error resolution very difficult since no other diagnostics are produced. This is particularly true if the DO file had multiple rules such as that generated by a RULES SAVE ALL.

Now, when a DO file is executed that has RULES commands included, FLEX will automatically write all RULE action and compilation messages into a local print file for subsequent printing.

520.05 RULES SAVE and LOCASE option
Wed, May 2 2007

The RULES OP modifier LOCASE has now been deimplemented by FLEX change 520.03 but a RULES SAVE command was still including the options in decompiled RULES files. This caused such RULES OP commands to subsequently fail when a saved file was entered by a DO. This behaviour has been corrected; LOCASE will now be omitted from any future RULES SAVE files.

In addition, any RULES OP settings that use MANAGEREMAIL or USEREMAIL reporting will now be included in the reporting specification for RULES SAVE files. Previously, these settings were omitted.

520.04 Fix for Remove:ACT on default family
Tue, April 17 2007

Version 150.39 introduced a bug where a Remove command from within a files :act command would fail, if no family had been specified. If your default family was DEV then for FILES = ON DEV:ACT removes would be fine but would fail for FILES =:ACT. This problem has been corrected

520.03 Report Rules Opal version
Fri, March 2 2007

Report the current Opal version and The Opal version used to compile the Rule in a RULE OP command.

FamilyManager reports can now be directed to email. For sites without Supervisor,the Metalogic Mail Library can be configured via Marc if the Mail directive is set up.

  The Marc command DIRECTIVE MAIL = *METALOGIC/MAILLIB/DIRECTIVE sets
  up the Directive.
  Once set up MAIL becomes a valid Marc command.
  Ex. MAIL STATUS
      MAIL HELP
Two new Rules Options have been added:
MANAGEREMAIL  - Sends User reports in the form of HTML email                   
                 messages to the Rules Manager.  If the Rules Manager           
                 usercode has an email entry in the UserData file               
                 then that address is used otherwise the Usercode of            
                 the rules manager is used as the address.  If                  
                 set as a family option then the  FamilManager                  
                 summary report is sent as email instead of being               
                 printed.                                                       
 USEREMAIL     - Sends User reports as an HTML email to the User.  If           
                 the user has an email entry in the Userdata file               
                 then that address will be used otherwise the                   
                 Usercode is used as the address.                            

										

										A major revision has been made to the RULES TEST command.
										

The RULES TEST command allows the user to simulate the effect that FLEX FAMILYMANAGER will have when the user's rules are applied to his files. A report is sent to the terminal describing where the results of the test can be found. Valid Options: RULES TEST RULES TEST USER <usercode> RULE TEST FAM <familyname> Use of the USER construct Or FAM contruct is restricted to the <Rules Manager>.

The ordinary user needs only enter RULES TEST to run a simulation for his files.

After a RULES TEST command, the user must use the <RULES CONFIRM> command to actually activate any User specified rules.

RULES TEST FAM <familyname> reports in different ways depending on the reporting option set for the Family. See RULE OP ? FAM <familyname> If MANAGEREMAIL or USEREMAIL is set then all user reports and the summary report is emailed to the Rules Manager. Otherwies all user reports are written to disk under the rules manager usercode on family being tested. The summary is printed.

520.02 Correct errant SELECT and FILES behaviour
Thu, February 22 2007

The change described in DNote 520.01 caused erratic behaviour with file SELECT operations and non-FLAT FILE requests. These problems have been resolved.

520.01 Force script termination after failure
Tue, February 20 2007

FLEX scripts will now gracefully abort after any OPAL failure is detected whilst executing a REPORT or SELECT. Previously, FLEX would have continued to process the next selected file which would then caused the same fault to potentially appear many times. Such errors would include CONCATENATED STRING TOO LONG, DIVIDE BY ZERO etc.

510.43 Use correct family for :ACTION
Mon, February 5 2007

When processing commands such as FILES = ON DISK:ACT where family substitution was in effect, FLEX would fail to perform requested actions, such as REMOVE or ZAP, for those files found on DISK. This problem was caused by FLEX not removing family substitution before applying the action and in effect only looked on the primary disk. This problem is now fixed.

510.42 Fix ListVL Backup Counts
Tue, January 9 2007

This fixes the backup counts in LISTVL, altered by Dnote 510.31.

510.41 Disallow UNSEQ option for FILES
Tue, November 7 2006

The UNSEQ option has been disabled for the FILES command; this allows an inconsistency with the UNSORTED modifier to be resolved.

510.40 Remove [NR] from FILES:n reports
Thu, October 19 2006

The report generated by a FILES:n command, where n=directory level, will now always show file and directory entries correctly and no longer append '[NR]' where an entry is a directory only.

510.39 Allow full zap from :ACT,FLAT
Thu, October 19 2006

Due to recent changes, any ZAP command applied by a FILES:FLAT,ACT command would only remove the file and not purge any associated catalog entries. Previous FLEX behaviour has been restored to allow full ZAPs to occur when using :FLAT. A minor problem during :ACT handling caused the information message for the processing of a single file to be lost has been fixed.

510.38 Better full disk recovery
Wed, October 18 2006

Several problems have been corrected which could occur when recovering a complete disk family.

A seg array error could occur if more than 13 source volumes were required.

If the long filename option was set and files with more than 12 levels were to be restored the restore job would fail with syntax.

It was hard to identify Jobs which had failed syntax. Any failed Reload Jobs are now saved in the directory JOB/RELOAD of the user doing the load.

Loads started using the :linear option would not find CDImage containers.

510.37 Restore headings in USAGE:FILE
Tue, September 19 2006

Recent changes to FLEX caused report headings to be suppressed from a USAGE analysis when the :FILE or :APPEND modifiers were used. Both :PRINTER and the usual screen reports were unaffected. This problem is now fixed.

510.36 :FAST Report even if :ARC set
Thu, August 17 2006

FLEX will no longer try to use the :ARC report id :FAST is set.

510.35 Allow Loads from Entries with 4 Backups
Tue, August 8 2006

Archive Entries can have up to 4 backups. LOAD can now handle this. The ancient (1978) procedure that optimizes the volumes to use in the LOAD has been moved from FLEXLIB to FLEX. In some cases where files are backed up on one volume only, some unnecessary mounts are avoided. No extra memory is needed, but very large loads may use a little extra CPU time.

The ARChive option has been implemented. It gives the :CAT report, but forces the Archive to be used. It is valid for FIL,BACK,LOAD,ZAP,PURGE. For ZAP and PURGE, :ARC only purges the Archive, not the Catalog. :CAT purges only the Catalog, and if neither is given, BOTH are purged. Of course, the Catalog can only be purged if MCP Cataloging is set.

The :CAT reports have been updated to look better if data are missing.

510.34 :Linear on Live Archives
Sun, July 23 2006

In a :LIN search with no MAINT ALT CAT set, FLEX has until now looked for a *SYSTEM/CATALOG on the DL CATALOG family. Now, if the MCP Cataloging option is reset, (or, for testing, if a SEL or REP uses the ARCHIVED attribute as in SEL NOT ARCHIVED), FLEX will now search the *SYSTEM/ARCHIVE/= files on the DL CATALOG family. Even archives not INUSE are searched as this is effectively the same as searching the files of a non-mounted family in a Catalog.

PDT CD/MT <unitno>, broken for many releases, is now fixed.

510.33 Enhanced :CAT Reports
Wed, July 19 2006

The :CAT and :ATT,CAT reports have been re-written.

The reports are now suitable for use with the Archive, giving extra information and Backup entries. When CopyWrite Disk Farms are used they return the HostName. The :ATT,CAT report has all the abilities of both the latest :CAT and :ATT reports.

The :CAT report now works properly for :LINEAR and so the separate :LINEAR,CAT report has been suppressed.

510.32 Fix LOAD X #n
Tue, July 11 2006

The LOAD <fn> #<gen>, broken by Flex Dnote 510.18 has now been restored.

510.31 Support New SameIds and LF
Sat, July 8 2006

FLEX has a report for the LF command using no PD= attributes. This means it is much faster and works for all FLAT calls such as :FLAT, MT/CD <unitno>, IN <container> etc. Some new info has been added to reflect attributes that have become available since the first LFILES report was written. However, 3 atts (i.e. PPB, Cataloged, Archived) are no longer reported. An updated version of the old report is accessible from an LF:ATT, and is also used with :LINEAR or from the ACTion screen.

To support the new Flex Format and LF, FLEX uses the changed SameIds format and fixes a bug in USAGE.

If :ATT is set, FLEX will no longer check the attributes used are all compatible with the search method. This allows user reports to use SearchType and Valid to choose which attributes to display.

510.30 New Directory Object
Mon, June 26 2006

Flex will now request faster keyed searches on Cataloging systems and will give warnings for more invalid searches.

Maint Merge Files will now require a * if a merge of a system directory is required.

510.29 Fix up CREATION and SITE info during MERGE VL
Tue, June 13 2006

The MAINT MERGE VL process will now update the creation date, savefactor and site creation details of any new, merged volume with settings from the specified alternate catalog. Previously, MAINT MERGE did not assign these values, leaving them as UNKNOWN or zero.

510.28 Reinstate FAM keyword for RULES commands
Thu, June 8 2006

The FAM modifier for the RULES command is now permitted as the minimum abbreviation for the FAMILY keyword. This was unintentionally blocked by the change described by DNote 510.23.

510.27 Fix Maint Merge Files after Dir Lists
Tue, June 6 2006

Version 510.15 introduced a bug in the "Maint Merge Files" command. This problem has now been corrected.

510.26 Detect REP BEGIN blocks from external file
Fri, May 12 2006

FLEX will now recognise the use of BEGIN blocks with REPORT from external files or the current worksource. FLEX will scan the file looking for the first valid keyword as 'BEGIN' and will compile the script accordingly. For example:

Worksource TEST/SCRIPT:

00000100 % This is a test 
00000200 BEGIN 
00000300 SHOW(TITLE); 
00000400 END;

This file may be compiled as a worksource with the REP command or, externally:

REP FROM TEST/SCRIPT

510.25 Implement BACKup Command
Fri, April 28 2006

- BACKup -+---------------------------------------------------------+>>>
          |-- TO <familyname> --+---------------------------+-+-----|
                                |-- ( -- <att list > -- ) --| |- , -|
                                +---------<---------- , ----<-------+

										
>>> ------+-+-- <directory> ---------------|----------|
          |-- <pattern> -------------------|
          |-- <file name> -----------------|

										

BACKUP is used to make copies of files resident on PACK families to other destinations. After it has selected the files it generates a LIBRARY/MAINTENANCE ADD command to move the files. If no TO clause is specified, FLEXBACKYYDDD is assumed, where YYDDD is the current 5-digit Julian day. If the option TWObkup is set, two destinations are used, by adding Y and Z to the usual volume name. If the option CATalog is set, an ADD&BACKUP is done, unless the system option Cataloging is reset, in which case an ARCHIVE FULL is used.

Examples:

  BACKUP XYZ/=              - Copy the resident files in XYZ/= to a tape
                              named, say, FLEXBACK06123.
  BACK TO C(CD),Y/=:TWO,CAT - Copy Y/= with ADD&BACKUP to 2 CDs CY & CZ

Some cleanup of parsing and obsolete undocumented options has reduced the FLEX source by over 600 cards.

510.24 Fix I/O ERROR:UNKNOWN ERROR after SPLIT
Mon, April 24 2006

Usage of the SPLIT command after generating a printed report could produce an I/O ERROR:UNKNOWN ERROR fault when the next print action was effected. This problem is now fixed.

The change applied by DNote 510.23 caused the USER command to be inadvertently disabled (only 'USERCO' or greater was accepted). The USER synonym is now available again.

510.23 Implement PURGE command
Tue, April 11 2006

The PURGE command can be used wherever the ZAP command can be used, with the effect of doing a CATALOG PURGE. But unlike ZAP, it does not REMOVE the resident entry. The obscure PGONLY option will be removed in a future release.

This change considerable simplified the FLEX source, which is now over 200 lines shorter.

510.22 Support for OPAL QUIT, EXIT and ABORT
Fri, March 24 2006

OPAL code REPORT BEGIN blocks now supports several new to control script execution. These statements are QUIT, EXIT and ABORT and their semantics are shown below:

    --+--- ABORT ------ ( <OPAL string> ) -------------+--------|
      |                                                |
      +--- EXIT ---------------------------------------+
      |                                                |
      +--- QUIT ---------------------------------------+
The ABORT command is similar to the SUPERVISOR version in that the current script execution is aborted; if this is a DO then the usual interruption handling will be invoked and no further files will be processed. If the ABORT is executed inside a DO file, then no further activities will be executed. The text held in <OPAL string will be displayed as the scripts aborts:
   #29066 FLEXLIB:ABORT:too many files
   #DO interrupted at line 00000620 of DO file ...
The EXIT statement allows the current REPORT code to be exited early, passing control to the next file; this is identical to the EXIT statement in SUPERVISOR ODTSEQUENCEs.

The QUIT statement is different in that the current scripted function, such as a FILES command, is gracefully terminated but later activities in the script will be processed normally.

510.21 Improve LOAD TO Attribute List Checking
Thu, March 23 2006

Destination attributes in a LOAD are now checked to catch most errors before passing them to WFL. Some problems with long and unusual lists have been corrected.

510.20 Protect DEBUG option mask bits
Thu, March 23 2006

Setting invalid mask bits in the OP DEBUG option would cause an INVALID OPERATOR @ 30381000. This option, intended for Metalogic usage only, is now protected from illegal mask values.

510.19 Load Destination Attributes
Sat, March 18 2006

This minor change allows an attribute list after the Familyname in the LOAD TO case. e.g. LOAD TO A(KIND=CD) X/Y

The list has to be a valid WFL <destination volume attribute list> in a COPY statement. Because of the possibility of ambiguity (e.g. is "KIND=CD" as usercode pattern?), an optional comma can be placed after the ")", e.g. LOAD TO Y(TAPE), X

If there are multiple source volumes, the list will be added to the ADD destination in each job.

510.18 Load and LF :Act
Wed, March 15 2006

The LOAD and LFiles commands can now have the :ACT option. As with REL this pre-loads the corresponding command into the action field. In the case of LOAD, :ACT allows the LOAD TO <family> variant. FLEX will also now correctly display errors for the whole search. This change was implemented by forcing LOAD to use the same directory list handling as the other commands. This improves maintainability and reduces the source by 120 lines.

510.17 Implement SPLIT command for session printing
Tue, February 28 2006

A new FLEX command, called SPLIT (or SPL), has been implemented. When used, this causes FLEX's current LINE file (used for report printing) to be closed and released to the Print System as a print request.

510.16 Support OPAL REPORT blocks in FLEX
Tue, February 28 2006

FLEX Utility now has a major functionality change in the way that REPORT Opal scripts can be defined. REPORTS were intended to generate simple or complex strings for file, print or screen output and are identical to SUPERVISOR DISPLay programs.

This behaviour has changed; FLEX will now permit REPORTS to be alternatively composed into OPAL blocks, similar to SUPERVISOR ODTSequences, so that they can use statements. The use of blocks is controlled by the key word BEGIN and is permitted for normal REPORTs, HEAD and FOOT.

    -- REPORT ---+----------+--+----------- <Opal string> --------+---|
                 |          |  |                                  |
                 +-- FOOT --+  +-- BEGIN -- <Opal block> -- END --+
                 |          |
                 +-- HEAD --+
The definition of an <OPAL block> is identical to that of ODTSEQUENCE in SUPERVISOR. The usual OPAL block constructs such as BEGIN, END, IF, THEN, WHILE, DO, and CASE are all available.

The use of BEGIN to create OPAL blocks is currently mandatory. Due to the complexities of OPAL variable assignments, it is not yet possible to unconditionally create OPAL block code for the traditional OPAL string scripts.

As with ODTSEQUENCEs, statements in an <OPAL block> must be terminated by a semi-colon (;).

New OPAL statements, some familiar to SUPERVISOR users, are now permitted from a REPORT BEGIN block; these include the following:

   ----+--- DISPLAY --+------- (<OPAL string> -------------------|
       |              |
       +--- ODT ------+
       |              |
       +--- SHOW -----+
       |              |
       +--- WFL ------+

The ODT, DISPLAY and SHOW statements are identical to their SUPERVISOR equivalents. SHOW displays string contents back to the originating station; the DISPLAY command forces a display message of the string to be generated. ODT passes the string contents to the MCP using the DCKEYIN function; it is only available to Privileged or SecAdmin usercodes.

The WFL statement allows WFL-only commands to be locally processed (i.e using the current session attributes such as USERCODE and FAMILY) and, when associated with a REPORT, will act on each file returned by a SELECT. Because of this, the WFL statement should be used with care.

PRINT has not been implemented as printing behaviour is controlled with the usual FLEX options and command modifiers. If OP+PRINT is set or the :PR modifier is used, all SHOW statements will be printed.

In addition, several SUPERVISOR-only OPAL functions are now available for use in FLEX. These include the KEYIN and MAIL functions which function identically to the SUPERVISOR variants.

Some examples: the simple report 'REP TITLE' is identical to:

    REP BEGIN
           SHOW(TITLE);
        END;

To REMOVE files as they are reported using the WFL function:

    SELECT DAYS(TODAY,CREATEDAY) Gtr 7
    REPORT BEGIN
              WFL("REMOVE ",FILENAME);        % acts on current file
           END;

Variables are fully supported in REPORT BEGIN blocks; assignments are permitted as statements as in SUPERVISOR and string or real values stored by assignments are not passed back to FLEX for display.

To analyze the contents of the selected file, searching for a target string:

    SELECT SYMBOLFILE
    REPORT BEGIN
              $T:= TITLE;
              $TEXT:= $$T.READ(NOSEQ);       % Read file without seq num
              While $LINE:=$TEXT.SPLIT(/) Do
                 If $LINE Eqw "=SEARCHTEXT=" Then
                 Begin
                    SHOW("Text found in ",$T);
                    SHOW($LINE);
                 End;
              End;
    FILES MYFILES/= ON =:FL

The above script is a very simple example of a CANDE FIND, operating on the selected MYFILES directory on all pack families.

To email a selected file as an attachment from a FLEX DO:

    REPORT BEGIN
              $TEXT:="^ATTACH "&TITLE;
              If #RES:=MAIL("To:support@metalog.com;Subj:Req File",
                            $TEXT) Lss 0 And #RES Neq -999 Then
                 SHOW("Mail failure: ",#RES);
           END

Both REP HEAD and REP FOOT can use OPAL blocks in the same way. Existing FLEX DO files and FAMILTYMANAGER rules are unaffected by this change. Note that the FAMILYMANAGER rules mechanisms will not be enhanced to use this new feature.

510.15 Optimize File List Searches
Tue, February 21 2006

If 2 directories in a list can be found in the same search, they will now be combined if that speeds up the search. For example: F X,Y:FL will now involve only 1 scan of the flat directory, not 2 as before.

510.14 Re-instate F ON DISK
Wed, February 8 2006

510.11 made searches on DISK incorrectly following FAM substitution. This change returns to a search on the real DISK.

510.13 Fix First Page Continuation in :ACT
Tue, February 7 2006

Family Lists caused :ACT to miscount lines and led to the first page continuation occurring before the footer was sent. This problem is now fixed.

510.12 Clearer Errors and USAGE Fixes
Thu, February 2 2006

The enhancements to USAGE broke its use with Wildcards. It now works, and has a better formatted :BR report.

Some incompatible options have better error messages, e.g. :LIN,ACT

510.11 Change Family Default in File List
Thu, January 26 2006

If a directory has no <ON part>, its family defaults to DISK, and from there to the 'FAMILY DISK=' substitution. So a list like:

Files X, Y ON ZPK

meant Files X ON DISK, Y ON ZPK

This has been changed. An omitted family defaults first to the family of a subsequent member of the list. Only if there is no explicit family afterwards, will it default to DISK.

So the example now means

Files X, Y ON ZPK == Files X ON ZPK, Y ON ZPK

This also applies to containers, units, etc:

Files X, Y MT 27 == Files X MT 27, Y MT 27 Files X, Y IN ZZ == Files X IN ZZ, Y IN ZZ

But unchanged is:

Files X ON ZPK, Y == Files X ON ZPK, Y ON DISK

510.10 Usable File Lists
Thu, January 19 2006

FLEX has long allowed some commands to process a list of directories:-

Files X,Y REM R/=,S/= LOAD L,M/=

In the LOAD case, this list is combined and processed, but for the others, the list was equivalent to multiple commands on single items:-

Files X,Y == Files X then Files Y

FLEX now combines the searches. In the Files command, the results are returned together. If :ACT is set, or for ZAP/REL/REM, there is only one authorisation step. USAGE also combines the results, however if :BRief is set, each item on the list is broken out.

510.09 Clarify search statistics when using :LINEAR
Thu, January 19 2006

FLEX will now report the number of catalog entries (if relevant), found during a :LINEAR search, that satisfied the SELECT criterion in the statistics footing at the end of a FILES report. Previously the number of generation zero files was always shown; this was confusing since it would often not match the number of SELECTS that returned TRUE.

510.08 Correctly fold long filenames
Wed, January 11 2006

When using the :FILE option flex attempts to split long filenames across multiple records. If a single level of a filename was longer than 80 characters the filename was corrupted.

This change corrects the problem.

510.07 Use Archive if no Catalog info
Fri, October 28 2005

If Cataloging is not set, Flex will now try to use the Archive to get the equivalent information. Only the first 2 Backup References will be returned. This change principally affects LOAD except when :LINEAR, and Files (such as in :CAT).

For sites not running Cataloging, LOAD :FAST allows for better recovery if a family is lost. First, do a COPYCAT of the SYSTEM/ACCESS, then RC a pack with the same name, run FLex, and set MAINT ALT CAT to the the old SYSTEM/ACCESS. Finally do LOAD:FAST, This is much better than an ARCHIVE RESTORE because only the files that were resident when the family was lost will be re-loaded, and Flex will better optimize the tape loads.

510.06 F:FA for high speed Title searching
Fri, September 30 2005

The FA(ST) option is available to allow users with the necessary privilege to search the File Access STructure. Use MAINT ALT CAT to specify a non-active Catalog/Access. This search is much faster for searching whole families or the entire system, but only SEARCHTYPE and the attributes of the file name are available.

510.05 Suppress headings in reports if MAIL destination
Tue, September 27 2005

If a FLEX session uses a print file DESTINATION identity beginning with the text 'MAIL', then FLEX will suppress the headings from various printed reports. This allows OPAL reports, FILES reports etc. to be generated in an email-friendly format to be without extraneous report headings.

510.04 INTRINSIC REPORTS
Thu, July 14 2005

The default output from the FILE command no longer uses an OPAL report. This saves about 5 ms per file reported and obviates the need for 2 files in the FLEX/LIBRARY/REPORT directory. The :BRIEF option is now valid for the FILE command and gives a report with only the TITLE. The FTV command will no longer ignore syntax errors in the input files.

510.03 PROTECT COLONS INSIDE COMMENTS
Fri, May 20 2005

Previously, if a ':' was used inside comment text following certain commands such as SELECT e.g.

SELECT FILEKIND=DCALGOLCODE % 10:00

Then the SELECT would fail with:

Option LEVEL incompatible with SELECT

This problem has been fixed; FLEX will now ensure that special characters such as ':' are ignored after the % comment delimiter.

510.02 FIX PDT LD WITH :PRINT OR :FILE
Wed, March 23 2005

If the :print or :File option was used with the PDT LD command, it was almost certain that Flex would fail with a 'SEG ARRAY' error. This problem has been corrected.

The ListVL LOWUSE command will now report the size of volumes in megabytes for statistics files converted by Mergetape.

510.01 CHANGE USES OF FEET FOR TAPE TO MEGABYTES
Wed, March 16 2005

In line with changes to FamilyManager and MergeTape, FLEX will now report MegaBytes and not Feet in the DEFAULT screens.

500.10 EXTEND PARAMETER SYNTAX FOR *SYSTEM/OPAL
Wed, February 23 2005

The Opal compiler *SYSTEM/OPAL can now compile Flex Do files but to be able to correctly compile Do files with parameters, it needs examples of valid parameters. These examples are provided in the Parameters heading.

Ex. PARAMETERS(FAM=A,MAXDAYS=10,MAXSEGS)

These assigned values will then be used in the compiled script to replace individual parameters. If no default is provided, SYSTEM/OPAL considers the parameter as numeric. Note that, in the current implementation, all default values must be shorter in length than the original parameter name to avoid complex substitution issues.

Flex now respects this syntax but note that the supplied values are not used as defaults when the DO file is run.

A problem which occurred when using a parameter in a quoted string which, after substitution, was split across two lines, has been corrected.

500.09 FIX OPTIONS I/O ERROR End OF FILE
Thu, December 23 2004

FLEX will now protect against I/O ERROR END OF FILE failures on the FLEXSOPTIONSFORME file, typically if the file was open through a H/L. If FLEX now detects a file in this state, a new FLEXSOPTIONSFORME file will be created from the old file which is then purged.

500.08 OPTION FOR LIBMAINTDIR FILES WHEN COPYING TO TAPE
Thu, November 18 2004

The DEFAULT command screens now allow for LIBMAINTDIR files to be made when MergeTape or FamilyManager make tapes. There are 3 settings:

0 (Auto) - Make LIBMAINTDIR files if the density can have a drive which is LOCATECAPABLE. This is the default.
1 - Always make a LIBMAINTDIR.
2 - Never make a LIBMAINTDIR.

If a tape has a LIBMAINTDIR, and is mounted on a LOCATECAPABLE drive, COPY can use direct positioning to speed up file access. A LIBMAINTDIR file is also needed to enable a subsequent LIBMAINTAPPEND=TOEND copy.

500.07 ALLOW FILENO ADD IN DISK FARM IF CONFLICTS
Wed, July 14 2004

LOADs from Disk Farms will now use the "'#<file no.>'" syntax to resolve conflicts.

The response to a PV command will no longer indicate PK in the heading if it is not a real PACK. The device mnemonics are:

       CD = CD ROM
       CI = CD Image
       DF = Disk Farm

500.06 USE LIBMAINTDIR IN FLEX LOAD
Fri, July 9 2004

LOAD will now use a LIBMAINTDIR if available. The info in the LIBMAINTDIR will override the FLEX Verify option for the COPY. Also if the tape is not one made by FLEX, or if it has been appended to, FLEX will check where the correct files are, and, if necessary, use the '#<file no.>' syntax to access them.

A bug in handling tape RESOURCE specs has been fixed and obsolete TAPE7 and TAPE9 resources are no longer calculated.

500.05 SECURE ENHANCEMENTS
Fri, June 4 2004

The behaviour of the SECURE command has now been considerably enhanced. Previously, attempting to secure files with FILEKINDs of CATALOG, KEYSFILE or SYSTEMDIRFILE would give a SECURITY VIOLATION message without indicating which file had failed. Now FLEX will not attempt to change these files but give the warning messages:

#FLEX cannot SECURE SYSTEMDIRFILE or CATALOG: *SYSTEMDIRECTORY/001
#FLEX cannot SECURE KEYSFILE: *SYSTEM/KEYSFILE

Also, FLEX will now more accurately verify if a GUARDFILE name, provided by the GUARDED or CONTROLLED modifier, is already assigned to the file. As MCP, FLEX will automatically assign the usercode and/or family if they are missing. Previously, FLEX would always fail the check if either usercode or family was missing thus causing FLEX to reassign the GUARDFILE.

For example, if FLEX is running under the user META on family DEV:

SECURE TEST/= GUARDED MYGUARD/TESTFILES

This command would secure files in the TEST directory with the GUARDFILE name:

(META)MYGUARD/TESTFILES ON DEV

On older versions of FLEX, repeating the above SECURE command would have caused FLEX to re-assign the GUARDED attribute because the internal file title check would have not matched.

FLEX will now generate the usual MCP 'SECURITY CHANGED' message when changing a file security whereas before, FLEX used to open the file internally and change its security attributes directly. This allows the security changes messages to be easily tracked and reduce the amount of logging to the SUMLOG (no file open/close records).

500.04 CORRECT LISTVL BACKUP REFS OVERFLOW
Thu, May 13 2004

The LISTVL command will now show the correct number of backup refs for any volume that has more than 4096 references.

500.03 FIX A BUG WHEN ENTERING A REPORT FROM A DO FILE
Tue, May 11 2004

When entering a Report command from a DO file it was possible to get unexpected syntax errors. The problem could happen in the rest of the line of the Report command was blank and the next line started with blanks. This problem has been corrected.

500.02 HANDLE FIX SECURE OF INVALID KEYEDIOII FILES
Wed, April 14 2004

Previously FLEX would P-DS when trying to change the security of an invalid KEYEDIOII data or key file using the SECURE command. This was caused by the KEYEDIOII library rejecting the request by Flex to open the file. This problem has now been fixed.

500.01 LD FOR NAMES IN A LIBMAINTDIR
Fri, March 12 2004

PDT can now take the parameter LD to access the names in a LIBMAINTDIR.
The new syntax is:

-- PDT -+---------- <volume name> ---------------------------------+-|
    |---------- <device> --- <unit number> --------------------|
    |--- BU --- <device> --- <serial number list> -------------|
    |                                     |
    +--- LD -+-------------- <serial number> ------------------|
          |       |                       |
          |- <device> -+                         |
          |                               |
          +- IN --- <file title> ---------------------------+

<device> ::= MT | CD | PK

The 'IN' form takes the full title of the LIBMAINTDIR must be given. Note that 'F <pattern> in <file title>' is another way of looking at the contents of a LIBMAINTDIR. When <serial number> is used, FLEX tries to find the name using the Volume Library, Volume Directory, or TRIM, one or more of which must be present. If <device> is omitted, FLEX assumes first MT, and failing that PK/CD.

Examples:
  PDT LD C00023
  PDT LD IN (PROD)LIBMAINTDIR/DBBKUP/20040312/C00023 ON DLPK

Some cleanup was done for other PDT forms and their reports all now have a heading at the terminal.

A small robustness patch was added to HELP GEN to avoid a potential infinite loop.

490.09 ALLOW ISO CD FILES WITH MAINT ALT FLAT COMMAND
Wed, February 11 2004

In the cause of standardisation, the MAINT ALT FLAT command will now allow a (CD) suffix to indicate that the file is on a Unisys format ISO CD. Also :ATT can now be used with :LIN.

'Enter HELP and XMT for Instructions' is displayed at the top right

490.08 NODISK
Fri, January 16 2004

Flex would hang requiring DISK if the UserData FAMILY was absent and there was no family DISK on the system. In this case Flex will use its task family, or if this is unspecified, the family of the Flex codefile.

490.07 NO LONGER PREFILL :ACT SCREEN WITH 'HELP'
Tue, December 2 2003

This change removes the irritation of the first field of a :ACT screen being pre-filled with the word 'HELP'.

The first time in a session the :ACT option is used a message 'Enter HELP and XMT foor Instructions' is displayed at the top right of the screen.

490.06 SUPPRESS DEFAULTS MODIFY SCREEN
Tue, November 25 2003

Previously, during interactive FLEX sessions only, the DEFAULTS screen form would be unconditionally presented when a DEFAULT command was processed by a DO file or generated by the a Rules Base initialisation from the Flex INSTALL menu. These screens would require user confirmation for every DEFAULT command and would, in the case of the INSTALL variant, take significant time to complete.

This behaviour has now been disabled; the form will only appear for simple use of the DEFAULT command during an interactive FLEX session.

490.05 REMOVE WARNING FOR VARIABLE USAGE IN PARAMETER DO
Tue, November 25 2003

If a parameter passed to a DO was subsequently used to reference a real OPAL variable (likely to be the PERMANENT or CONFIG variety), such as:

	PARAMETER(VARNAME, DIRECTORY)
	REP FOOT ##VARNAME#.PERM:= #FILECOUNT

Then FLEX would give the following warning message when handling the ##VARNAME#.PERM expression:

	#Possible Unmatched Parameter name at line 00000300 
If the first parameter VARNAME held the value MYCONFIG then, the parameter expression ##VARNAME#.PERM would represent a permanent variable access such as #MYCONFIG.PERM. This is a legal expression and FLEX will not display the above warning message in such circumstances in the future.

Also, FLEX would give the error 'Invalid DEVICE spec' if an 'ON' part was used with a parameterised DO file e.g.

 DO FLEX/DO ON DEV (TEST/=) 

This problem has now been fixed.

490.04 NOFTAM
Wed, November 19 2003

The FTAM protocol identifier is no longer used to select CopyWrite when reloading files from a Disk Farm.

490.03 LOADMSG
Wed, October 29 2003

Add message for LOAD from Disk Farm.

490.02 ADD :BYTE OPTION
Fri, August 22 2003

In order to be able to create files easily transferable to PCs, a new output option BYTE has been added. This is similar to the FILE option but instead of creating a job symbol file with a limit of 80 characters per line a bytestream file is created with effectively an unlimited line length. The Bytestream file has an extmode of Ascii and can be read by a PC via an NXServices

An expected use of BYTE would be to create comma separated files to be imported into an Excel spreadsheet.

Ex.
REP USER ",", FILENAMEID ",", FAMILYNAME ",", ALTERDATE
FILES (*)=:BYTE "EXTRACT.TXT"

Note that using a .TXT suffix makes it easier to open the file from the PC.

The LIST command has been extended to be able to list Bytestream files. By default each record is prefixed by a size digit record number and is truncated to the screen width. Resetting the Truncate option either using the OP command or as a colon option will list every record completely.

Ex.
L "EXTRACT.TXT":-TR

The Record numbers can be suppressed using the :UNsequenced option.

Ex.
L "EXTRACT.TXT":UN
or
L "EXTRACT.TXT":UN,-TR

The range option in the List command uses record numbers rather than sequence numbers for Bytestream files.

Ex.
L "EXTRACT.TXT" 9-19:-TR

would list records 9-19.

This change also corrects a bug in the List command where a range was ignored if and colon options were used.

490.01 UPDATE VERSION FOR MCP 49.1
Mon, August 18 2003

Internal version change for MCP 49.1.

480.13FIX QUOTED FILE HANDLING
Tue, July 1 2003

FLEX was not correctly handling certain long, quoted filenames when output was directed to a file for use as a WFL job. If the name was greater than 80 characters, it may not have been split in the correct place if any of the deeper levels had quoted names with spaces embedded. This problem is now fixed.

480.12 ALLOW LOAD FROM DISKFARM
Mon, June 16 2003

This change extends Flex to be able to reload files which have been backed up to a Copywrite disk farm.

The Default tape density now lists all valid Density mnemonics.

Flex DO files now accept spaces and parens i.e. () in parameters.

480.11 ALLOW EMBEDDED QUOTED CONTINUATION CHARACTERS
Thu, May 8 2003

Previously, it was not possible to process a FLEX DO file which held any continuation characters embedded within strings in the file e.g.

REPORT HEAD "REPORT TITLE 40,,CREATIONDATE,, \"

Typically, the \ character would only be needed for generating a second DO file, but the above line in a DO file would fail with "Missing quote".

Now, FLEX will automatically check for the presence of any \ character with a quote immediately following it. If the string is found then FLEX will not consider this as a line continuation and will proceed to scan for the next occurrence.

480.10 FIX USAGE WILDCARD AND LEVEL INCONSISTENCIES
Tue, April 29 2003

If the USAGE command was used with a level option and a wildcard pattern, such as 'USAGE (*)=:1', the command would fail with the message 'The level option and wildcard patterns are incompatible'. This restriction has been removed.

480.09 CDOVERFLOW
Wed, April 16 2003

Flex did not recover files to DISK from CD Images on a named Family.

480.08 CDOVERFLOW
Fri, February 21 2003

The Title of a CD Container could be incorrect when building the Job to reload a file.

480.07 FAMILY PROBLEM WITH FLEX CDIMAGE LOAD
Wed, February 19 2003

If a LOAD of a non-resident file from a CD image was initiated by Flex and the CD images were held on DISK, it was possible for the LOAD to fail with a NO FAMILY FOUND result, depending on the family substitution of the user. This problem is now fixed.

480.06 NEW DIRECTORY FOR CD IMAGES
Thu, January 30 2003

This change supports the change made in Familymanager Dnote 480.05.

480.05 ALLOW FILES..:ACT ON =
Mon, December 16 2002

Previously the FILES:ACT command did not return the Familyname of the file. This meant that FILES ...:ACT ON = was not practical. This deficiency has been corrected.

A related problem where the ZAP command would only work for files on the default family has also been corrected.

480.04 SUPPORT FOR OPAL VARIABLES
Mon, October 21 2002

This change supports the introduction of variables in Opal, as described in Opal Dnote 480.14.

480.03 FIX PROBLEM WHEN USING *.. DIRECTORIES
Mon, June 24 2002

There was a problem when using *... directories in a list. Any wild card used in the usercode of a directory which appeared after a *.. directory in a list would only match non usercoded files.
Ex.
FILES *=/BOB,(=)=/BOB
would not give the expected results but
FILES (=)=/BOB,*=/BOB
would work correctly.

This change also corrects a problem when using the # wildcard pattern. The # is also used to delimit parameters and the use of ## in a wild card pattern was incorrectly reported as parameter error. Now, if no parameters are specified in a DO file the use of ## wildcards is the same as before the implementation of Parameters. If parameters are specified and a ## is encountered, a warning is given of a possible missnamed parameter.

Errors reported in DO files, where the input was from as card deck, always reported the sequence number of the error as 00000000. The sequence number is now reported as a relative card number.

i.e. 00000001,00000002,00000003 etc.

480.02 NO PAGE SKIP ON FILES WHEN SWITCHING USER
Thu, June 6 2002

Previously, when processing a FILES:PRINT command without a:FLAT modifier, the printed report would have a page skip after each switch of directory. A similar report with :FLAT did not show the same behaviour. This problem is now resolved.

480.01 CHANGE VERSION TO 48
Wed, March 13 2002

This patch only changes the version to 48. Version 470.17 is still valid for MCP 48.

470.17 IMPROVE LIST/WRITE AND SEQ RANGES
Fri, January 18 2002

The LIST and WRITE commands have undocumented sequence range modifiers. e.g. LIST 100-500 or LIST 800-2000,2300-END. Up to 14 range pairs can be specified. However, only the first sequence range would work and plus a LIST of any file whose name started with a number, followed by letters or numbers would not be recognised. Both these problems have been fixed and the on-line help now includes sequence range info.

470.16 FIX SEG ARRAY USING 'FROM' FILENAME
Fri, January 18 2002

The changes implemented by patch 470.15 inadvertently highlighted an existing problem where Flex was not correctly handling any SElECT or REPORT that used the FROM modifier to load an external file. This might have caused any SAVE command to incorrectly write information to the saved file. When encountering this situation, with the changes applied by 470.15, FLEX may have faulted with a SEG ARRAY error.

This fault has now been fixed.

470.15 PARAMETERS FOR FLEX 'DO' FILES
Fri, January 11 2002

This change allows parameters to be passed to FLEX 'DO' files. The implementation is similar to that provided by CANDE and is illustrated by the following example DO file:-

     PARAMETER (DIRNAM,SOURCEFAM,TAPENAME)                                      
     REPORT FOOT "FROM #SOURCEFAM#(PACK) TO #TAPENAME#",/,"END JOB"             
     REPORT HEAD "BEGIN JOB SAVE/#TAPENAME#;",/,"COPY"                          
     REPORT IF MYSELF(ENTRIES)=1 THEN EMPTY ELSE GETSTR("OLD"),\                
            STORE("OLD",(IF SUM("FCNT",1) > 1 THEN "," ELSE EMPTY)),\           
            STORE("OLD",&FILENAME)                                              
     SELECT "#DIRNAM#" ISIN TITLE                                               
     FILE ON #SOURCEFAM#:FLAT,FILE WFL/#TAPENAME#

The parameter names are defined within parentheses on the first line and in this example are DIRNAM, SOURCEFAM and TAPENAME. The parameters are referenced by enclosing the name within #'s eg. #SOURCEFAM#. When the DO file is invoked references to parameter names will be replaced by the parameter values supplied.

A DO file that expects parameters is invoked by following the DO file name by a list of parameter values enclosed in parentheses. For example if the above example was called MY/DO/FILE it could be invoked as follows:-

     DO MY/DO/FILE (METALOGIC,PACK,METADUMP)
 

This would result in METALOGIC being assigned to the parameter DIRNAM, PACK to SOURCEFAM and METADUMP to TAPENAME.

This initial implementation does not support the assignment of DEFAULT values to parameters.

470.14 FIX ERRONEOUS DISPLAY AFTER FILE OPTION
Fri, January 11 2002

If the output from a FILE command was directed to a file using the <file option> the next message displayed by FLEX could contain an erroneous character. This has now been corrected.

470.13 FIX SEG ARRAY IF 132 CHARACTER INPUT
Thu, December 13 2001

Previously, FLEX Inquiry could fault with a SEG ARRAY error if certain command input (esp. SELECT or REPORT) was exactly 132 characters in length, including any trailing spaces. The problem could be readily detoured by adjusting the input length by one character. This fault is now fixed.

470.12 FILES AT
Mon, December 10 2001

Implement Files AT <hostname> and Usage AT <hostname> by calling the CopyWrite entrypoint FetchForeignHeaders. This command provides Flex access to Disk Farms on remote hosts.

470.11 SUPPRESS STD REPORTS
Thu, November 1 2001

The directory *METALOGIC/FLEX/DEFAULTREPORTS is used to hold both the reports used by flex internally and reports listed in the STD command. The internal reports should not be listed in the STD command. ACTFLAT used for the command FILES ...:ACT,FLAT and ATTFLAT used for the command FILES ....:ATT,FLAT were listed in the STD list or reports. This is no longer the case.

With this release the STD reports have been refined. Some of the original reports are now obsolete. A new STD report CLEANSTD will remove the obsolete reports (Enter STD CLEANSTD). Another new STD to report HELP give a brief description of the other STD reports (enter STD HELP).

470.10 PROTECT AGAINST SEG ARAY ERROR ON SAVE
Date: Tue, October 23 2001

When running on screens wider than 80 characters, it was possible for Flex to terminate with a seg aray error when executing a SAVE command.

470.09 HANDLE LONG FILE NAMES IN MAINT MERGE
Date: Tue, October 16 2001

FLEX will now correctly handle long file names on system with CATLOGING and the SYSOPS LONGFILENAMES set if encountered during a MAINT MERGE operation.

470.08 SUPPORT LONGFILENAMES CATALOG
Date: Wed, October 10 2001

FLEX INQUIRY now supports the LISTVL and INSTALL CATALOG commands on cataloging systems with SYSOPS LONGFILENAMES set, as discussed in FLEX LIBRARY Dnote 470.08.

470.06 SAVE IMPROVEMENTS AND 80 COLUMN TERMINALS
Date: Fri, April 20 2001

The SAVE command has been enhanced to allow an optional 'AS' before the file namme; previously the 'AS' would have been assigned to the title. In addition, saved state files are now crunched.

On 80-column terminals, depending on the emulator, the status line shown at the end of a REP or SEL interrogation was not appearing on a new line. This problem is also fixed

470.05 FIX FOR EMBEDDED WFL DATA DECKS
Date: Wed, March 21 2001

A previous change (see 440.02) to protect Flex from slow Tape management systems resulted in Flex being unable to detect WFL DATA decks - Flex would report that the Batch Input file was not available. This problem has now been corrected.

In addition, Flex will now terminate after generating a warning message if it is running in Batch mode and is unable to open a specified DATA file.

470.04 IMPROVED SLECTE/REPORT HANDLING ON LARGE SCREENS
Date: Fri, November 17 2000

The interactive interrogation of active SELECT and REPORT expressions using SEL ? and REP ? have been much improved. Both these commands will now display the original content of the SELECT or REPORT from the home position of the terminal, allowing easy modifications.

e.g. a SEL ? might return

  SEL FILEKIND NEQ {BACKUPPRINTER,LOG,SYSTEMDIRFILE,CATALOG} AND 
     NOT TITLE INCL "DIAGNOSTICS" AND 
     FILEID(FILENAME,1) NEQ {"PDUMP","SUMLOG","GOODDISK","METALOGIC",
                             "METANOTES","PATCHNOTES","PATCHESFOR", 
                             "PUBLIC","ENVOY","NJEDB","SNAPS", 
                             "ATLAS","SYMBOL", 
                             "TRACE","SUPERVISOR","FLEXREPORTSFORME"} 
  #Current SELECT is enabled

FLEX will also better use the attributes of larger screens lengths and widths; using the whole screen to return the expression, using truncation if necessary.

This patch also fixes the corruption and loss of data when using the SAVE command from terminals running with large term specifications. Where appropriate, line wrapping will be used to protect expressions with individual lines greater than 80 characters. Also, if a DO file failed syntax when run from an online Flex session, the internal TD830 was reset.

This problem, which then caused all user input to be treated as TTY input, is now fixed.

470.03 ALLOW RELOAD FROM COPYWRTIE IMAGE
Date: Thu, October 26 2000

This change allows Flex to reload files backed up to CopyWrite Image files.

470.01 FIX LISTVL FOR COPYWRITE IMAGES
Date: Thu, September 7 2000

The LISTVL report for volumes which were Copywrite CD images, or CDs reported each file backed up twice. This change corrects the problem.

460.06 FILE EQUATION IN COMMANDS IN BATCH
Date: Thu, July 27 2000

In order to be able to pass parameters to Flex do files a limited File Equation facility has been provided. In Batch mode any single level filename used in a Files like command (FILES,REMOVE,RELEASE,ZAP, FORGET) may be file equated. The file equation is only used if there is no Usercode or * prefix.

Ex.

With a Flex DO file Of TEST/DO: 
 REP FROM TEST/REP 
 SEL FROM TEST/SEL
 FILES X :FILE WFL/TEST 

In a job you could then use:

 RUN OBJECT/FLEX("DO TEST/DO");FILE X = BOB ON MERGE                    
 FILE X (TITLE=#("*BD/" & STRING(MYJOB(JOBNUMBER),7) & "ON DISK"));

This would scan all *bd files created by this job. If the DO file had REMOVE X/= all *BD files created by the job and matching the selecion in TEST/SEL would be removed. Note that in order to remove a directory the /= is required.

You can test the behaviour of file equations when running Flex online by setting SW2.

Ex.

 U FLEX;FILE X= MY/DIRECTORY ON TEST;SW2 

A FILES X command would then scan MY/DIRECTORY ON TEST.
FILES X/= would also scan MY/DIRECTORY ON TEST.
FILES =X= would ignore the file equation and scan for any file with X in the title.

460.05 HELP TEXTBOOK IMPROVEMENTS
Date: Mon, July 3 2000

Various formatting improvements have been made to the Flex Help file, *METALOGIC/FLEX/TEXTBOOK. Several internal amendments have been applied to procedures used to maintain the Help file.

460.04 REMOVE INTERNAL 'STEP_DIR' USE LIBRARY
Date: Mon, June 26 2000

This is an internal Metalogic amendment - no functional changes.

460.03 YET MORE FLEX DIRECTORY ATTS
Date: Fri, January 28 2000

Implements the more disciplined masking needed by GSTABLEGEN 460.09. New :ATT and :ATT,CAT reports have been introduced which give more info in less space. The :ATT report is usable with :FLAT or MT/CD searches. The report for :LIN,CAT now gives the SECURITYTYPE.

HELP ATT now gives info about the ATTribute option.

460.02 SUPPORT MORE EFFICIENT INUSE ATTRIBUTE
Date: Fri, December 31 1999

This change allows more selective access to the INUSE attribute, which is expensive to process during :FLAT. Candidates for REM, REL, or ZAP are no longer retained if a BRK is done during the "Now Scanning .." phase.

460.01 ALLOW COPY INSTEAD OF RESTORE WITH MUTI REEL
Date: Fri, December 17 1999

There appears to be a problem with the Unisys RESTORE command on some MCPs where trying to copy from the second or subsequent reel of a multi family multi reel backup. Setting the config variable FLEX_NORESREEL2=TRUE cause COPY to be used instead of RESTORE. This means that if two files with the same title exist on the tape then it is possible that the wrong one will be loaded. This option should only be used until the MCP bug is fixed.

To set the option enter U META/INSTALL FLEX_NORESREEL2=TRUE

To Reset the option enter U META/INSTALL -FLEX_NORESREEL2

450.10 FIX PV FOR NUMERIC SN TAPES
Date: Thu, December 2 1999

The PV command now correctly returns STATS info for numeric serials.

450.09 ALLOW INPUT GTR 1920 CHARS
Date: Mon, November 15 1999

FLEX will now permit input greater than 1920 characters from a terminal that has TERM settings up to 47 lines, 96 characters wide. Previously, FLEX would have truncated the input.

450.08 MAINTAIN CANDE TERM AFTER USER COMMAND
Date: Wed, November 3 1999

FLEX will now remember the CANDE TERM values after a USER command.

450.07 DISABLE ODT/KEY COMMANDS OPTION
Date: Sun, October 24 1999

The use of ODT and KEY commands from any privileged usercode can now be disabled by setting the config option, FLEXU_NOKEYIN to TRUE. This can be enforced by the INSTALL utility:

     U META/INSTALL FLEXU_NOKEYIN=TRUE

If set, any KEY or ODT command by a PU will return the error message:

     #ODT commands not permitted

450.06 ALLOW LFIL&BIG SCREENS IN :ACT
Date: Tue, October 12 1999

The ACTION screens will now use the full page size. The authorisation screen now presents (PAGE_SZ - 11) files, rather than the 10 it used to present.

The LF action item is now implemented.

Default actions are now displayed for 1 or 2 character FILENAMEs and error lines will no longer contain end of line detritus.

450.05 NO AUTOMATIC MA APL
Date: Thu, October 7 1999

FLEX will no longer do an automatic MA APL of its code file.

450.04 ALLOW NON 24X80 SCREEN SIZES
Date: Wed, September 1 1999

FLEX will now handle screen sizes other than 24x80 up to 8192 chars. The dimensions are read from the CANDE TERM values.

Reports that have multiple lines per file will now repeat the first line for any file that is split across a page boundary.

The LFILES report has been replaced. It now contains much more info, particularly about code files. LFILES is now compatible with :FLAT. See HELP LF for details of the contents of the new report.

F and LF are now the minimum abbreviations of FILES and LFILES.

FLEX now supports the code form of the standard reports in FLEXLIB. The FLEX/LIBRARY/REPORT files used in FTV can now be 80 character records and can be split between the usercode and * directories.

450.03 ALLOW INFINITE FEET OF TAPE
Date: Tue, April 13 1999

This change allows zero to be specified as the length of an output tape. If zero is specified an infinite length of tape is assumed. This means that multi reel volumes may be created.

450.02 FIX LOAD FROM ACTION SCREEN
Date: Tue, April 6 1999

When a LOAD command was used from the Action screen and the tape containing the file to be loaded also contained files from another family, the load would fail. The generated job failed with the syntax error 'ORIGIN' CLAUSE REQUIRED.

The LOAD command now works correctly.

450.01 IMPROVE LAYOUT OF USAGE REPORT
Date: Tue, March 2 1999

The USAGE report, in particular with :BRIEF, was reporting segments values greater than 10,000,000 as exponent values e.g. 1.18E+8. The report layout has now been changed to handle much 12-digit values for segment totals and 7-digit for file counts.

440.06 FILE/USAGE ON MT/CD/Images. LIST ON ISO CDS.
Date: Thu, February 25 1999

The syntax of the FILE and USAGE commands has been enhanced to allow searches on Library Maintenance tapes, CopyWrite Images, and both ISO and Library Maintenance CDs. Tapes and CDs can be also specified by unit number. The syntax is:

diagram

Using the (MT) modifier, or MT <unitno> FLEX looks for a Library Maintenance tape and then reads down the tape to extract the file information. The attributes available are the same as in a FLAT search. This is quite different from the TAPE family, which is available on Cataloging systems and gives the catalog info for non-Library Maintenance tapes.

Using the (CD) modifier or CD <unitno>, FLEX looks for a CD. If it is a Library Maintenance CD, it is treated in the same way as a tape. If it is an ISO CD, FLEX uses the MCP GETSTATUS procedure. The valid attributes on ISO CDs are limited.

The IN modifier locates a container for the file search. Currently the container must be a CopyWrite Image file on disk or ISO CD. The attributes available are the same as in a FLAT search.

An <input title> has the format:

diagram

FILES returns the info unsorted for containers or Library Maintenance formats. On ISO CDs it returns files in ISO directory order.

Two new Directory attributes have been added to facilitate the new searches. SEARCHTYPE, returns a mnemonic of the search method being used. ORIGIN is only valid on a Library Maintenance tape and returns the disk family that the file originally came from.

LIST has been enhanced to allow access to files on ISO CDs. The syntax now uses an <input title>