Logo
Dnote

Flex Inquiry Notes

Mar 2023 630.01 Update for MCP 63

Remove deleted density mnemonics

Oct 2022 620.14 (X=)= :1 Fix

Patterns in the Usercode now work for :1 searches.

Sep 2022 620.13 Protect against fault if more that 255 volumes needed

A load which needed more than 255 volumes would cause an invalid index fault.

Jun 2022 620.12 FIX LOAD TO ... :lin,reo

A 530 release caused the REO option to be ignored in a LOAD TO command. Adding :BR to the load command will suppress the reporting of 'NO VALID BACKUP' messages. They will still be logged. If running online it is recomended TO USE ?ro msg to prevent messages from disturbing the screen. A bug which caused attempts to load files from the wrong backups is now fixed. When running in batch a LOAD .. TO command would never overwrite existing files. The AUTORM OPTION will now cause files to be overwritten.

Mar 2022 620.11 Improvements to the flex LOAD command

After a load Flex could not touch/check stream files. If there were more than 15000 files on a CDIMAGE the load was corrupted. If backserail(0) = backupserial(1) flex will no longer try to load from the second backup. Files unavailable after the load are now reported in more detail.

Feb 2022 620.10 Fix REONLY option

The REO abbreviation for the REONLY was accepted but REONLY was not.

Feb 2022 620.09 Allows reload from multivolume backups.

Flex is now able to reload files from multivolume cdimages.

Jul 2021 620.08 Set taskvalue of batch flex if aborted

If The Abort statement is used, in a DO file, for a batch run of OBJECT/FLEX the taskvalue of Flex will be set to 1.

Apr 2021 620.07 Update for MCP 62

Fixes the MYSELF(INPUTPARM) attribute to return the original parameter passed to Flex. Ex. R FLEX ("DO MY/DO/FILE"); Myself(InputParam) will now return "DO MY/DO/FILE"

Mar 2021 620.06 fix endofpage errors

When entering rules and options from a DO file it was possibe for flex to fault with an endofpage error.

A RULES SAVE ALL command would sometimes add a spurious character to the end of a line ending in BIGFILE *

Rules Save All used to add a RULES MASTER command to the end of the file. This is now suppressed to prevent a seurity error when executing the saved file.

'set to none' instead of 'set to 1'

Mar 2021 620.05 Minor improvement to bigfile confirmation

The confirmation message when setting bigfile to * will now report 'set to none' insted of 'set to 1'

Mar 2021 620.04 Allow RULES OP GLOBAL to specify default values

Default values for some family rules options may now be set in Global Rules. For options KEYEDIO and HISTORY prefixing the option with * in the Rules Op commanad indiscates that the Global option should be used. Setting the segment limit for Bigfile to * has a similar effect.

 Ex
 RULES OP FAM SPARE
            Rules Block for Family SPARE
    Block created            12:58:59.0, 25/07/19
    Block amended            12:10:43.3, 02/03/21
    Block accessed           12:18:59.5, 09/03/21
    Current Opal Version     61.999.01
    Last Backup time         12:36:37.9, 03/03/21
    KeyedIO                  Default(Will be backed up)
    Bigfile Threshold        Default( 30000 segments)
    Default Reporting Mode   Email to Manager
    Rules Status             Family rules exist, Opal version 620.01
    Limits Availmin          0 percent
    History                  Default (will be Reported)
RULES OP FAM SPARE -KEYEDIO

#Entering FAMILY options for SPARE

#Option KEYEDIO off for family SPARE

            Rules Block for Family SPARE
    Block created            12:58:59.0, 25/07/19
    Block amended            12:21:37.8, 09/03/21
    Block accessed           12:21:37.8, 09/03/21
    Current Opal Version     61.999.01
    Last Backup time         12:36:37.9, 03/03/21
    KeyedIO                  Will not be backed up
    Bigfile Threshold        Default( 30000 segments)
    Default Reporting Mode   Email to Manager
    Rules Status             Family rules exist, Opal version 620.01
    Limits Availmin          0 percent
    History                  Default (will be Reported)

Feb 2021 620.03 Update rules mod timestamp for rule save

The Rule modification timestamp as shown in rules op fam is now updated if a RULE SAVE FAM command is performed.

Feb 2021 620.02 Add keyeio option to rules save all

The keyedIO rules option is now save in a RULES SAVE ALL command. The Modified timestamp for a rules block is now correctly maintained.

Feb 2021 620.01 Add RULES OP KEYEDIO

A new Rules Family Option KEYEDIO has been added. If this option is set then keyedio files will be backed up, even though they have a filekind of DBDATA.

May 2020 610.06 Add CDIMAGE family to LISTVL HTML report

The ListVL report has been updated for CDIMAGE volumes. The family backed up on the volume is now reported. In the HTML report it is listed in a new column headed 'Family'. In the printed report the family is reported where the volume name was and the volume name listed on a new line. Ex [CI0053] PACK/ CD Image (17) Created: .....

          CI0053F2019246A
Apr 2020 610.05 New modifiers for the LC command

The modifiers Err Wrn and Dbg have been added to the LC command. The optional modifiers, apart from Close, are case sensitive and will create a log entry with that category. If omitted the category will be Lgc as before. The special modifier Close will close the current Flex log and start a new one.

Apr 2020 610.04 Set taskvalue to to on some :file commands

If an error occured in a Files ...:FILE command when running in batch it could be useful to know that in the parent job. Flex will now set the taskvalue to 2 in such situations. Ex in the case where a line like: %No files in directory .... in the output file, taskvalue will be set to 2.

Apr 2020 610.03 Improved syntax of generated HTML in LISTVL HTML

Although the previous HTML code would work with most browsers, this change brings it into line with current standards.

Apr 2020 610.02 Correct usage report for NULLFILES

The usage report incorrectly counted files with a filekind of NULLFILE as resident

Mar 2020 610.01 Update for mcp 61

Update for MCP 61

Sep 2019 600.07 Allow rules enter line to wrap in do files

A RULES enter line may now span more than one line if the first line is terminated by the continuation character (\)

Sep 2019 600.06 Ask for confirmation to quit from option 3 of install

In the stage 3 of the Install process entering Q when asked to type anything to proceed would cause the current level to be quit. Q will now be treated like any other character in this situation. If QUIT is enterred in error the install process ends meaning all skipped volumes will need to be processed again on a subsequent run. To minimise this risk a confirmation is now requested for the quit command.

Sep 2019 600.05 Improve the Install command

The Install previously would ask questions about shares for every family. It now asks if space conditions are to be enforced and will only ask detailed questions if yes is answered.

Sep 2019 600.04 Better handling of PDT BU serial number list

The serialnumber list following the PDT BU <kind> command may now be deliminated by space or comma. PDT BU PK CI0000 CI0001,CI0002 is now valid.

Mar 2019 600.03 Add option suffix for loads

A new option has been added to improve the loading of old generations.

LOAD <filename> GENERATION= <n> :Suffix will load the requestd file adding a suffix of the form yyyyymmdd_hhmmss_SV. yyyyymmdd_hhmmss is formed from the timestamp of the file.

Since LOAD VIA <filename> does not allow the specificication of generation, The USERINFO of the file is used to specify generation. Ex WFL MODIFY LOAD/LIST(USERINFO=6) followed by LOAD VIA LOAD/LIST:SUFFIX

Would load generation 6 of each file in LOAD/LIST adding a timestamp based suffix

Mar 2019 600.02 Better error measages whe a DO aborts

When a DO aborts with an invalid command, the bad command is not reported in the error message. Some unrequired debug code has been removed.

Mar 2019 600.01 Fix a bug where a sel ? did not display the first

Sel ? now correctly show the first line. Some preparation for handling dates beyond 2035.

Feb 2017 590.01 Avoid problems when command is longer than 1 line

The first line of the last page of a FILES command would be overwritten if the command was longer than one line.

May 2016 580.03 Supports Supervisor change 580.18

This change supports the Supervisor change 580.18

Oct 2015 580.02 Enhanced LOG command

If the response to a LOG command is truncated, due to the record limit, the record limit is now reported along with the date and time of the last record scanned.

A new 'time spec' option MORE has been added which allows a new log command to continue from where the previous one stopped.

Ex.

LOG MSG + will stop after 500 entries have been found. LOG MSG MORE will continue from the minute where the previous command stopped.

Feb 2015 580.01 Allow for page numbers bigger than 999

Page numbers on printed reports which were show in 3 digit scientific notation. Pages 1000 to 14999 were show as 1E3. Large page numbers are now reported correctly.

Sep 2014 570.02 Better reporting of errors with online do files

If a Flex batch run encounters an error in a DO file the taskvalue of Flex is now set to 1. This enables Jobs to detect such a failure using the <TAskid>(TASKVALUE)=1 test.

When performing a DO file from an online run of Flex messages will no longer overwrite each other. Thus error messages will now be seen.

Mar 2014 570.01 Reinstate :APPEND,BYTE .......

Version 540.20 inadvertently disabled the :APPEND,BYTE <file title> option. It is now reinstated.

Jul 2013 560.08 Fixes some minor screen display problems

:ACT,BR will now handle long titles correctly. A SEL which selects no files coupled with a REP SORT and a REP FOOt will now correctly display the REP FOOT. One line REPorts now list correctly.

Jul 2013 560.07 :ACT,BR

:ACT,BR puts an action field in front of the file in a normal files report, hence allowing more than twice the files per screen.

Jul 2013 560.06 Avoid aggressive spam filters in LISTVL HTML

A space was missed in the From header in the email generated by the LISTVL HTML command. This could cause aggressive spam filters to give the message a high spam score. The space has been restored.

May 2013 560.05 Add 'other reels' column to LISTVL HTML report

Adds an 'Other Reels' column to the LISTVL HTML report which reports the serial numbers of all reels of a multi reel volume.

Apr 2013 560.04 Fix missing first line

Fixes a bug introduce by Version 560.03 , where the first line of the last page of the response to a Files command would be overwritten.

Apr 2013 560.03 Correct problems with online DO

If a DO was started from an online run of flex there could could be problems if any syntax errors occurred.

If the response to a syntax error was longer than one screen then the DO would not abort as it should.

The audit option is now defined to LOG user input.

Feb 2013 560.02 Respect granulated privileges

If Flex is run from a usercode with GSDIRECTORY privilege then :Flat , :Fast and :Find are allowed on any directory.

If the READ privilege is set then any file may be listed.

If The REMOVE privilege is set then any file may be removed.

If the CHANGESEC privilege is set then any file may have its security changed.

Feb 2013 560.01 Correct Usage layout problem on large screens

The usage report was badly formatted on screens with more than 38 lines. Usage now reports megabytes (1,000,000 bytes) instead of segments and uses thousands separators. This change also contains some preparatory code to support an upcoming feature to use granulated privilege.

Nov 2012 550.04 Internal change to support improved help

Internal change.

Oct 2012 550.03 Better handling of QUIT statement

If the QUIT statement was used within a REP BEGIN block within a DO file or Inline DO then the DO was incorrectly Aborted.

Aug 2012 550.02 Fix LOAD for appended tapes

This change fixes several bugs related to loading from an appended tape. It was possible for the last few files which should be loaded to be missed and for the load to fail with an invalid index. It was possible for the generated Copy job to fail syntax. If multiple families were backed up on an appended tape and the load requested multiple families then some files could be copied to the wrong destination.

Jun 2012 550.01 Protect against string protect fault in HELP LOG

If the first command entered in flex run was HELP LOG then Flex would fault with a string protect error.

Both the LOG command and LOG help now show: 'PUSH SPCFY for more, XMT to break' in the status line.

The final page of HELP LOG is no longer overwritten.

Dec 2011 540.46 Improve LISTVL HTML

The LISTVL HTML report will now highlight any volume with warnings.

Nov 2011 540.45 Add Rules Email options to INSTALL

When using the Install command to set up rules the options to report by email are now included.

Nov 2011 540.44 Fix Station Options

When a new FLEXSOPTIONSFORME file was created, the Station Name was not stored, so changed options were not retained across Flex sessions.

Nov 2011 540.43 Fix SELECT FROM

Version 540.39 introduced a bug which caused Flex to fail with an invalid index if SELECT FROM <filename> was used. This has been corrected.

Changes to the MCP entrypoint SYSTEMSTATUS caused Volume adds from the INSTALL command to be ignored and 'INLINE LOADS' to be ignored. These MCP changes have been detoured.

Some cosmetic changes to the screens for the Install command have been made.

Nov 2011 540.42 Find and DFH

When a FIND uses FLAT, the UNSORTED option is set, to avoid sorting large disk file headers. The results of the FIND can be sorted using the SORT modifier or REPORT SORT.

Nov 2011 540.41 Fix Sort vs Not Found

Flex will now finish a sorted search if no files are found.

Oct 2011 540.40 Raw

Send warning when a very long OPAL string is truncated.

Oct 2011 540.39 Search Sorts

The results from a directory search may now be sorted using an OPAL report. This can be specified in-line using a SORT modifier or can be specified like a header using the new variant command, REPORT SORT.

The string segments in the report are truncated to 128 chars if no length is explicitly given. The total length is truncated to 512 chars. The report is executed once per eligible file and the result is used as a string key. That key determines the order the files are returned. E.g.

F =CAT= WHERE SEGMENTS > 99 SORT - SEGMENTS:FL REP SORT TITLEID 64,,TIMESTAMP

The syntax of the SORT clause is:

SORT ------------ <OPAL string> --------|


            

where - denotes sorting down. To turn off a REP SORT, use REP SORT OFF.

Note that if there is a WHERE clause in a command, it must precede the SORT clause.

Jul 2011 540.38 CZ

Internal Change.

Jul 2011 540.37 Resolve RULES confusion

To maintain rules for the system directory (i.e. no usercode) Flex uses the 'special' usercode SYSTEM-NODE.

Ex. RULES LIST FAM DEV USER SYSTEM-NODE.

The use of USER * was not specifically prevented but would never have the intended effect.

USER * is now a synonym for user SYSTEN-NODE in Rules commands.

Jun 2011 540.36 Fix LOAD from Disk Farm problems

When initiated via a FAMILYMANAGER LOAD rule, LOAD would not have worked correctly when recovering files from Disk Farms. Also, each LOAD job would have been considered by Flex to have failed WFL syntax yet it actually ran successfully. Further, Flex was meant to retain a copy of any failed LOAD jobs for later inspection but this mechanism did not work. These problems have been resolved.

Apr 2011 540.35 LOgging improvements/Fix STRING PROTECT at 9056900

FLEX will no longer fault with a STRING PROTECT at 90569000 when logging a DO file with parameters split over multiple lines.

Various improvements have been made to the FLEX logging system; these include the deblanking of long command entries to reduce log entry size and more selective command logging. File removed/destroyed messages are now not written to the log, just the summary information generated by REMOVE or DESTROY.

Apr 2011 540.34 Fix long LOG command bug and EOJ logging

FLEX would have died with STRINGPROTECT error at 90644000 if a LOG command exceeded 1800 characters: this problem has been fixed. Flex EOJs are now logged correctly showing normal/O-DS/abnormal termination.

Apr 2011 540.33 First command after an 'Inline Do' is now processed

If a DO file contained an 'Inline Do' then the command in the DO file after the Inline Do was ignored.

Ex. DO "REP AGE 5,,FILENAMEID" FILES = WHERE AGE=0:fl

In the above example the REP would have been done but not the Files command. The problem could be detoured by adding a dummy command after the DO.

Ex. DO "REP AGE 5,,FILENAMEID" Sel - FILES = WHERE AGE=0:fl

Inline Dos now work as expected and intended.

Mar 2011 540.32 Implement FLEX logging

As with other Metalogic software, logging has been implemented for the FLEX suite. Most messages, errors, commands and warnings are now unconditionally logged into a file called *METALOGIC/FLEX/LOG and all FLEX software uses this system.

Logging is performed for all FLEX runs though only non-interactive batch (DO) runs are more complete. Errors and warnings for the file system in particular are now retained in these logs. Where files are removed, released or destroyed by a run of FLEX Utility then these entries will be logged too. It is likely that the FLEX content that is logged will be changed over the next few FLEX changes.

11:23:20 Job:Flex(27000):BOJ Flex UTILITY 54.999.32 running
11:22:17 Job:Flex(26990):EOJ Flex UTILITY run complete
11:22:15 Wfl:Flex(26990):RUN OBJECT/XFER/LIST/SORT
11:22:11 Wfl:Flex(26990):COPY XFER/LIST/SAVE AS XFER/LIST/OLD
11:22:11 Cmd:Flex(26990):DO XFER/FILECOPY
11:22:11 Msg:Flex(26990):User=IPP,Stn=174,Cmd=DO XFER/FILECOPY
11:22:11 Job:Flex(26990):BOJ Flex UTILITY 54.999.32 running

The LOG command syntax is identical to that provided for SUPERVISOR, MAILLIB and TRIM; full details on the implementation and syntax can be seen by using the HELP LOG command.

Mar 2011 540.31 Better screen file presentation for DO files

The screen information presented to the user during an interactive FLEX session that executed DO files would previously unexpectedly clear the screen at various times removing progress information from view. Although certain commands will still clear the screen e.g. FILES, actions such as SELECT and REPORT compilations are now better displayed.

Mar 2011 540.30 Fix REPORT FROM problems

Using the FROM modifier to compile external files for the REPORT and SELECT commands now works correctly again. Earlier FLEX releases dating back to 540.10 may have encountered various types of problems when REP FROM was executed from within a DO file that was a different FILEKIND or MAXRECSIZE e.g. the DO file was JOBSYMBOL and the REP FROM was a DATA file.

Mar 2011 540.29 Restore file familyname in LISTVL LOWUSE reports

Previously, printed LISTVL LOWUSE reports did not show the familyname part of the file title when printing the backup references for a tape. This problem is now fixed.

Headings in printed LISTVL reports have been improved to remove occurrences of corrupted footer lines and to correctly increment page numbers in those footers.

Jan 2011 540.28 Inhibit batch compile listings for :PRINT runs

Batch DO files that use the :PRINT output option and are executed from a non-remote origin will now not include any compiled script listings unless a script fails with syntax errors. Previously, the listings were unconditionally generated before the print output.

Nov 2010 540.27 Fix Residency Check in MZip

MZip will not correctly check the residency of the output file if AUTORM is reset.

Nov 2010 540.26 Fix INVALID OP with OP MATRIX command

The change described by DNote 540.20 caused the OP MATRIX command to fault with an INVALID OPERATOR at 30817000. The command, intended to show option compatibility, now works again correctly.

Sep 2010 540.25 Fix zip command paging

When using the MZIP/GZIP subset of commands on-line for a directory or wild-card selection, FLEX would not process any further files after the first page break. This behaviour has been corrected.

Sep 2010 540.24 Rationalise NOTES and DEBUG options

Internal Metalogic change.

Jul 2010 540.23 Zip Commands
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.

Jul 2010 540.22 Deimp :NOZIP

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.

Jul 2010 540.21 Restore APPEND functionality

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

Jul 2010 540.20 Options Cleanup

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 command can once again be used with lower case.

This patch reduces the lines in FLEX by about 500.

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

Adjust include from include/meta

Apr 2010 540.18 InDepth

Internal Change.

Apr 2010 540.17 Remove options TTY and TD830

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.

Mar 2010 540.16 Allow FIND...:FILE

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

Mar 2010 540.15 Improve 'IN' container error handling for PD

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.

Mar 2010 540.14 Fix quoted directory handling

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.

Feb 2010 540.13 Allow a DO <opal string> in a DO file

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.

Feb 2010 540.12 Correct FILE searching with usercode patterns

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

Feb 2010 540.11 Correct FILES directory handling

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.

Feb 2010 540.10 Allow quoted file search/fix REP DO vs. SAVE

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

Feb 2010 540.09 Restore status line

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

Feb 2010 540.08 Fix invalid op fault when running in batch

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.

Feb 2010 540.07 Internal change only

Fixes unsaved FLEX/DP/WHERE

Feb 2010 540.06 Improve LISTVL HTML

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.

Feb 2010 540.05 New WHERE modifier

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

Jan 2010 540.04 Use SAVEPRINTFILE instead of SAVEBACKUPFILE

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.

Jan 2010 540.03 Support new INPUTPARAM attribute

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

Dec 2009 540.02 Fix SEG ARRAY at 90444600 for bad FILES command

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.

Dec 2009 540.01 Better errors passed to Supervisor

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 (*)=

Jul 2009 530.41 Allow FAMILY statement in batch files

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.

Jun 2009 530.40 Improved LISTVL command

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.

May 2009 530.39 Load At <kind>

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

Mar 2009 530.38 Allow quoted quotes in REP FOOT

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

Mar 2009 530.37 AT <hostname> Loads and Searches

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.

Mar 2009 530.36 Provide better RULES MANAGER information

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.

Feb 2009 530.35 BLPACK MT Problem

Fixes a problem using BL/PACK tapes.

Feb 2009 530.34 :FAST with MT/CD/IN

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.

Feb 2009 530.33 Fix for myself(pagesize) in rep foot

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

Feb 2009 530.32 Max Do parameter size increased to 65535

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

Feb 2009 530.31 Allow start command in batch

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

Feb 2009 530.30 Add a new variant of the Report command

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)   

Feb 2009 530.29 LOAD IN <container>, Overwrite LOADs

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.

Jan 2009 530.28 Load MT/CD/LMD

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

Jan 2009 530.27 More consistent scanning with usercode patterns

(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)=

Jan 2009 530.26 Usage Improvements

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.

Jan 2009 530.25 Load:FLat

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.

Jan 2009 530.24 Fix Find Command

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.

Jan 2009 530.23 Whole Word/Case/Record Find Op

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.

Dec 2008 530.22 :FIND Option

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.

Dec 2008 530.21 Reinstate :Byte and :Redir

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.

Dec 2008 530.20 Fix Backup Error Msgs & Optimize

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.

Dec 2008 530.19 Optimize Internal Qs

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.

Nov 2008 530.18 Allow plus sign as directory separator.

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)

Nov 2008 530.17 Expand and Optimise Backup

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.

Nov 2008 530.16 Correction for change 530.15

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

Nov 2008 530.15 Fix bug with indented commands in do files

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.

Nov 2008 530.14 Fix LOAD for non-LMD Disk Farms

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.

Oct 2008 530.13 Fix DO of RULES ENTER problems

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).

Sep 2008 530.12 Various Option related changes

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.

Sep 2008 530.11 Fix the Next command

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.

Aug 2008 530.10 Allow redirection of output to PCs

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

Jul 2008 530.09 STD command only listed one report

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.

Jul 2008 530.08 Don't upcase strings in delimited by '

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.

Jul 2008 530.07 Fix '\' handling problems and paging issues

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.

Jun 2008 530.06 Support for DFHIMAGE attributes

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

May 2008 530.05 Control WFL report usage

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.

Apr 2008 530.04 Correct DO abort behaviour and multi-line printing

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.

Apr 2008 530.03 Allow use of "\" in scripts

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.

Feb 2008 530.02 Usage on =:Fl

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.

Jan 2008 530.01 Better handling of multiple directories with :Flat

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.