Suprtool 6.6 for HP e3000:

Change Notice

Doc-To-Help Standard Manual

 

 

 

 

 

 

 

by Robelle Solutions Technology Inc.

 

 


 

Program and manual copyright © 1981-2024 Robelle Solutions Technology Inc.

 

Permission is granted to reprint this document (but not for profit), provided that copyright notice is given.

 

Qedit and Suprtool are trademarks of Robelle Solutions Technology Inc. Oracle is a trademark of Oracle Corporation, Redwood City, California, USA. Other product and company names mentioned herein may be the trademarks of their respective owners.

 

 

 

 

 

 

 

 

Robelle Solutions Technology Inc.

Suite 372, 7360 137 Street
Surrey, BC Canada V3W 1A3

 

Phone:   604.501.2001

Support: 289.480.1060

 

E-mail:   sales@robelle.com

E-mail:   support@robelle.com

Web:      www.robelle.com

 

 


Contents

Table of Contents

Introducing Suprtool Version 6.6  5

Introduction. 5

Highlights in Suprtool 6.6. 5

Highlights in Suprtool 6.5. 5

Highlights in Suprtool 6.4. 5

Highlights in Suprtool 6.3. 6

Highlights in Suprtool 6.2. 7

Highlights in Suprtool 6.1. 7

Highlights in Suprtool 6.0. 8

Known Problems. 8

Compatibility. 8

CPU Serial Number and CPU Name (HPSUSAN & HPCPUNAME) 9

Documentation. 9

Installation   10

Overview.. 10

Installation Instructions. 10

Installation Assistance. 10

Enhancements in Version 6.6  11

Introduction. 11

STExport 11

INDENT.. 11

Header and Tail 12

$CHANGE Function. 13

Enhancements in Version 6.5  14

Introduction. 14

Enhancements in Version 6.4  15

Introduction. 15

Rport 15

Enhancements in Version 6.3  16

Introduction. 16

Set SDItemNoExt 16

Enhancements in Version 6.2  17

Introduction. 17

Rport Set Pagelen. 17

Rport Subtotal 17

Rport Set Maxlen. 17

Rport Comma. 17

Rport Hide. 18

System Commands. 18

$Month($stddate()) 18

Enhancements in Version 6.1.10  19

Introduction. 19

Rport 19

$BOM and $EOM... 21

String Function Checks. 21

Sdlinux for Linux. 22

Set Limits Override On | Off. 23

Enhancements in Version 6.1  24

$Length. 24

$LENGTH (Works on Byte-type and numeric fields) 24

If Usage: 24

Extract Usage: 24

$ROBELLE variable. 24

Set EditSignNeutral 24

STEXPORT.. 25

SUPRLINK.. 25

Enhancements in Version 6.0  26

$List NoSameTo. 26

BackwardChain. 26

Extents. 26

SET INITNUMEXTENT number 26

SET MAXNUMEXTENT number 26

SET SORTEXTMEM ON.. 27

SET SORTMEMADDR number 27

$INRECNUM... 27

$LEADZEROZ.. 28

$LEADZEROB.. 28

You can clean it up with the following: 29

$JUSTIFYL.. 29

$JUSTIFYR.. 30

$RESPACE.. 30

Bugs Fixed   32

Bugs Fixed in Suprtool 5.7.11. 32

Bugs Fixed in Suprtool 5.7.10. 32

 


Introducing Suprtool Version 6.6

Introduction

Suprtool provides fast access to your data on the HP e3000. With Suprtool, you can perform many necessary DP functions easily, with just a few simple commands. At Robelle we are constantly working on your enhancement requests so that we can include them every year when we release an updated version of Suprtool.

Highlights in Suprtool 6.6

·                  STExport/UX/Open now supports Extended SD information.

·                  STexport has improved buffer handling, and the amount of overhead has been significantly reduced.

·                  Stexport has new features in the Json command. Namely, Indent and Header and Trailer options to add data to the output file.

·                  The Oracle Add command parsing has been improved. It would fail if there were more than 62000 tables in the given database/ownername.

·                  The $CHANGE function has been improved to update data directly in the case of an UPDATE.

Highlights in Suprtool 6.5

·                  A new function in Suprtool called $change, can change one string to another, in a byte type field.

Highlights in Suprtool 6.4

·                  Rport spacing and alignment has been improved for subtotal and total lines. (All Platforms)

·                  Rport spacing of detail lines has been improved to allow for a space after each byte field. (All Platforms)

·                  Suprtool has a new command called set sdinbypass on, allows the reclen, lf syntax on an input file if it is self-describing. This was done to allow some customers to not have to change scripts. (Linux Only)

·                  Input files with Bigendian data are converted to Little endian about three times faster in all cases. (Linux Only)

·                  Suprtool when running with set ffisbe on and set endianint BE on a sort operation with extract commands would see suprtool incorrectly convert the data from LE to BE twice. (Linux Only Fixed in 6.3.50 Build 6)

·                  Suprtool when there was an input source of an SQL table and sorting a field with an extract of fields, and set ffisbe on and set endianint, log and Ieee to BE would incorrectly convert the data to Big Endian on the Input side. (Linux Only. Fixed in 6.3.50 Build 6)

·                  An input of a non-sd file with defines and extracts would assume for BigEndian to Little Endian as a Self-Describing File. (Linux Only. 6.3.50 Build 2)

·                  A subsequent Suprtool task with large key sorts would fail when the previous step was a step that accessed an Oracle database and the Oracle database was still open. (Linux Only. Suprtool 6.3.01 Build 2)

·                  Suprtool no longer requires that you need to extract a field from a Flat file (ffisbe on) or Self-Describing file in order for comands like if, sort, dup none keys total field, and total, to correctly convert the data from Big Endian to Little Endian. (Linux Only. 6.3.01 Build 14)

·                  Suprtool / Open didn’t handle double logical numbers over 2 billion when converting to ascii in the list command. (Linux Only. Fixed in 6.3 Build 2)

·                  Sorting with certain files would not allocate enough memory space to complete the sort. (Linux Only. Fixed in 6.3 Build 5)

·                  An if $lookup would not work all times with certain data fields if the data field was Big Endian. (Linux Only. Fixed in 6.3 Build 5)

·                  A Chain with multiple values specified in line with byte or logical field types would fail. (Linux Only)

·                  Output,ascii and Stexport, conversion of double integers with decimal places would incorrectly convert, numbers where the value was less than the number of decimal places. (Linux Only.)

·                  Output, ascii and Stexport would incorrectly handle single logical conversions for some values. (Linux Only)

·                  Output,ascii would incorrectly pad uneven byte output files with a null on the first record. (Build 14)

·                  Output,ascii of a packed field would default to outputting a sign on all fields, when the MPE and HP-UX versions would default to no sign unless negative. (Fixed in 6.3.50 Build 4)

 

Highlights in Suprtool 6.3

·                  STExport Heading fieldnames limit has been increased to14336 bytes.

·                  The Suprtool suite of products has had more 2027 mitigation work done to prepare for the end of 20271231.

·                  Suprtool would incorrectly do a conversion on input of a file with Big Endian data if there was an extract of a constant into an integer field (Linux Only)

·                  Non-MPE versions of Suprtool didn’t update the Item information, decimals and date like the MPE version.  When an extract command wasn’t entered but an Item command referenced a specific field. You can turn this on with set sditemnoext on, but the default is off to have it be compatible with all versions of Suprtool/Open and HP-UX. You can put it in your suprmgr file, to enable it globally.

·                  Suprtool would incorrectly think it could sort a file in memory, as opposed to using sort scratch files in an extremely rare case. (Linux)

·                  Suprtool / Open didn’t handle double logical numbers over 2 billion when converting to ascii in the list command. (Linux Only Fixed in Build 2)

 

Highlights in Suprtool 6.2

·                  Set Pagelen Command has been added to Rport.

·                  The subtotal feature of Rport will now break on multiple sort levels in the Self-Describing file.

·                  Rport has a new command called Hide which is intended to not report on a field in an SD file.

·                  Rport has a new command called Comma, which will place appropriate commas in an ascii field that was converted from a numeric field.

·                  There is a new setting in RPORT that is called set maxlen on, which calculates the maximum size that a field can be, including commas and dollar signs.

·                  Suprtool/Open now defaults to /bin/bash when a users shell is not found in the user information.

·                  The $eom/$bom function wouldn’t work properly when $stddate was nested in a $month function and the to month had 31 days.

·                  Sdlinux version is available for Linux to convert the .sd file for use on Linux is now available on Linux. You can now directly copy a data file and sdfile from HP-UX and convert it for use on Linux.

·                  Two new sub-functions of $BOM and $ EOM are now available in the $stddate and $month functions. The $BOM function returns the starting day of the month and the $EOM returns the last date of the month for a given month.

·                  String functions in Suprtool now have better length and bounds checking of the 4095-byte string limit.

·                  Rport a new simple report writer has been added to the Suprtool suite of products.

·                  Set Limits Override has been added to the Suprtool for MPE version. (6.1.01)

Highlights in Suprtool 6.1

·                  Suprtool has a new function called $length that will return a double integer value of the length of a byte and/or numeric field.

·                  Suprtool has a new option called Set EditSignNeutral which tells the $edit function to treat Neutral zoned and packed fields to be positive and treated as such by the $edit function.

·                  Suprlink now supports 8192 bytes on both the input file and the link file.

·                  Suprlink now supports 16384 bytes on the output file in Suprlink

·                  Stexport now supports 8192 bytes on both the input file and output files.

Highlights in Suprtool 6.0

·                  The List command now has a NOSAMETO option to turn off the SAMETO feature.

·                  Set Backwardchain On, will cause the Chain command to do a backward chained read.

·                  Suprtool has some new Set Commands such as, InitNumExtent, MaxNumExtent, SortExtMem and SortMemAddr, which can be used to reduce the number of Extents used in some files and internal sort files.

·                  STExport has a new set command called Set Excel Leadzero On which tells the Excel command to add leading zeroes to the fields specified in the Excel Preserve command.

·                  Suprtool has a new function available to the if/extract commands called $inrecnum, which expects a double integer result.

·                  Suprtool has a new function called $leadzeroz, which will add leading zeroes to a display field and will optionally justify the field.

·                  Suprtool has a four new string handling functions, specifically, $justifyl, $justifyr, $leadzerob and $respace.

 

Known Problems

Set Itemlock does not work in one particular case.

Compatibility

Suprtool/iX is compatible with MPE V, MPE XL, and MPE/iX, including MPE/iX 6.5, 7.0 and MPE/iX 7.5.

Suprtools default prefetch value has been changed from 2 to zero.

 Ksam64 files were not assumed to be Self-describing like CM KSAM and KSAMXL files when it was the input file and had labels.

 A warning will print if a non-regular SD file is loaded into a Table with the data option.

An error will print if an extract command attempts to reference data when loaded from table that in turn was loaded when using a non-regular SD file, such as KSAM/XL, KSAM64 and CM KSAM.

 

CPU Serial Number and CPU Name (HPSUSAN & HPCPUNAME)

Suprtool and its associated products run only on CPUs whose serial numbers have been encoded ("showvar hpsusan" on MPE/iX). They also may be encoded with your HPCPUNAME values. If it fails to run and you get an "invalid HPCPUNAME" or "invalid HPSUSAN" error message, contact Robelle for assistance.

Documentation

The user manual contains the full description of all the Suprtool suite of products including Dbedit, Suprlink, STExport and Suprtool2, as well as usage tips and commands for each. The manuals are up to date with all the latest changes. To see only the changes in the latest version, see the "What's New" section of the manual, or see the change notice.

You can download our manuals and change notices in various formats, and you can  order printed (hardcopy) manuals from our web site at:

 http://www.robelle.com/library/manuals/

 


 

Installation

Overview

We have two types of Installations, Tape and Download. We provide links to the Installation instructions on our web site for each type of Install.

Installation Instructions

All Robelle software is installed via download from our website. If you downloaded the Suprtool production release from our web site, then the instructions can be found here for the ftp download method:

http://www.robelle.com/downloads/install-stprod-ftp.html

and here for the WRQ download method:

http://www.robelle.com/downloads/install-stprod-wrq.html

Installation Assistance

If you have any questions about the upgrade process or run into any problems, please call us. Technical support is available on weekdays from 8 a.m. to 4 p.m. Pacific time at 289.480.1060 or you can e-mail your question to support@robelle.com.


 

Enhancements in Version 6.6

 

Introduction

Suprtool is constantly being updated with new features. The following section describes the new enhancements to Suprtool since Suprtool 6.5

STExport

STExport, HP-UX and Open versions now supports extended SD information. STExport will use the SD information if the input self-describing file was created with Set SDExtname On with Suprtool, and Set Sdextname is set to on inside STExport.

STExport, all versions, has improved buffer handling and the amount over overhead has been significantly reduced.

STExport, has three new features in the JSON command. Specifically, INDENT, HEADER and TRAILER.

INDENT

The Indent command allows you to specify an integer, in which STExport will indent the data portion of the JSON output the number of spaces specified.

The Indent option does not impact the Header or Tail lines or the Object Lines.

 

The commands:

   $in jsonin.stexptst

   $json oneperline indent 12

   $json Object "This is a test"

   $out *

   $xeq

Will produce data that looks as such:

   {"This is a test":

            [{"CHAR-FIELD":"11111",

            "INT-FIELD":1111,

            "DBL-FIELD":11111,

            "PACKED-FIELD":11111,

            "PACKED*-FIELD":11111,

            "QUAD-FIELD":11111,

            "ID-FIELD":1,

            "LOGICAL-FIELD":1111,

            "DBLLOG-FIELD":11111,

            "ZONED-FIELD":11111

            }]

   }

 

Header and Tail

 

The  Header  and Tail options of the JSON command, allow you to maintain two files, whereby the  contents of the files are added to the Json stream, at the beginning and end of the output file.

The header and tail files are created to be fixed length files with a record size of 256 bytes.

The options of the Header and Tail command are as follows:

    JSON HEADER CREATE <filename>

    JSON HEADER ADD "This is a string"

    JSON HEADER DELETE <filename>

    JSON HEADER SETFNAME <filename>

 

There four options for the Header and Tail commands tell STExport to do  the  following:

 Create <filename>

 The create action opens the specified file name, if the file exists, it will erase the contents of the file.

 ADD “string”

Allows you to add lines to the specified Header or Tail file, by specifying a string to add the the Head or Tail file.

 Delete <filename>

Deletes the specified filename, for either the Header or Tail File specified.

SetFname

Sets the name of the header or Tail file and confirms that it exists.

Examples

The following STExport code shows using the new features and the impact on the Output.

 

   input jsonin

   JSON oneperline indent 12 header create file24h tail create file24t

   JSON TAIL ADD "        }"

   JSON TAIL ADD "}"

   JSON HEADER ADD '{'

   JSON HEADER ADD '  "Recreation_Membership_File": {'

   JSON HEADER ADD '       "description": "Recusers_File_Ver_1",'

   JSON HEADER ADD '       "fileType": "ACTIVITIES",'

   JSON HEADER ADD '       "DataType": "Membership",'

   JSON HEADER ADD '       "fullFileMember": "Y",'

   JSON HEADER ADD '       "MemberActivity":'

   output file24a

   exit

 

would produce the following:

 

   {

    "Recreation_Membership_File": {

         "description": "Recusers_File_Ver_1",

         "fileType": "ACTIVITIES",

         "DataType": "Membership",

         "fullFileMember": "Y",

         "MemberActivity":

              [{"CHAR-FIELD":"11111",

              "INT-FIELD":1111,

              "DBL-FIELD":11111,

              "PACKED-FIELD":11111,

              "PACKED*-FIELD":11111,

              "QUAD-FIELD":11111,

              "ID-FIELD":1,

              "LOGICAL-FIELD":1111,

              "DBLLOG-FIELD":11111,

              "ZONED-FIELD":11111

              }]

          }

   }

 

 

$CHANGE Function

 

The $CHANGE function has been improved to update data directly in the case of an UPDATE.

 

 


 

 

Enhancements in Version 6.5

 

Introduction

Suprtool is constantly being updated with new features. The following section describes the new enhancements to Suprtool since Suprtool 6.4

Suprtools $change function returns a string that was changed by the $change function which, takes three parameters. The first is the field, that contains the data you want to change, the from string and the to string, which is to be enclosed in quotes.

Sample Extract Usage:

extract Name=$change(name,"Neal","Neil")

In the example above the first string of Neal, is the from string, and the to string is Neil.

If you need to change a phrase with a double quote then you can enclosed the strings in a single quote:

extract xml_input=$change(xml_input,’”LP”’,’LP’)

The primary use of the $change function is to update fields using the extract command, however, you can use it in the if command, however, the field you are changing will appear in the output file as the changed record. Note the examples below:

if $change(name,"Neal","Neil")="Neil"

if ("Neil"=$change(name,"Neal","Neil"))

A reminder that if you start the if equation with the constant string first, you need to encase the complete equation in brackets.

Enhancements in Version 6.4

 

Introduction

Suprtool is constantly being updated with new features. The following section describes the new enhancements to Suprtool since Suprtool 6.3

Rport

Rport has had the spacing re-vamped for Header, Detail, Subtotal and Total lines. The spacing has been improved to insure that fields are easier to  read and align properly.


 

 

Enhancements in Version 6.3

 

Introduction

Suprtool is constantly being updated with new features. The following section describes the new enhancements to Suprtool since Suprtool 6.2

Set SDItemNoExt

Non-MPE versions of Suprtool didn’t update the Item information, decimals and date like the MPE version does, when an extract command wasn’t entered. You can turn this off with set sditemnoext off, but the default is on to have it behave in the same manner as the MPE version.

Stexport

 

2027


 

Enhancements in Version 6.2

 

Introduction

Suprtool is constantly being updated with new features. The following section describes the new enhancements to Suprtool since Suprtool 6.1.10.

Rport Set Pagelen

Rport will Page Break by default at 24 lines, you can set a Page Break to any integer value greater than 10. When Rport reaches the number of lines for a page the Titles and headings are re-printed and Rport continues on printing, detail and subtotal lines.

 

Rport Subtotal

 

Rport will follow all levels of sort specified in the Self-Describing file, and will produce a subtotal line when each level break is made.

 

Rport Set Maxlen

Rport will by default calculate the maximum size of a field, including, commas, decimals and dollar signs. The previous version just took into account, decimals. This is on by default, you can just use the old calculation by adding set maxlen off to your rportmgr file.

Rport Comma

Rport has a new command called comma, where you can specify a fieldname or list of fieldnames to tell Rport to add commas to a given numeric field, when it is reported on and converted to ascii. The same rules will apply for a given fields subtotal and total field. This command can only be entered after the input command.

Rport Hide

Rport has a new command called Hide which when given a fieldname will remove that field from the report. The report will be adjusted accordingly and also the Hide command must be entered after the input command.

System Commands

If the user id isn’t found or a shell name isn’t returned the Open version of Suprtool suite of products will assume a shell of /bin/bash.

 

$Month($stddate())

The combination of nested $stddate within $month would handle months with 31 days incorrectly if the from date was a month with less that 31 days and the to month was a month with 31 days.

 

 


 

Enhancements in Version 6.1.10

 

Introduction

Suprtool is constantly being updated with new features. The following section describes the new enhancements to Suprtool since Suprtool 6.1

Rport

All versions of Suprtool, MPE, HP-UX (PA-Risc and Itanium), and Suprtool / Open have a new component called Rport, which is a simple report writer.

 

The code below represents one of the more complicated reports and shows some of the attributes that you can control. Rport works off of self-describing files and is available on MPE, HP-UX (PA-Risc and Itanium) and on all Linux platforms that Suprtool/Open runs on.

 

The Title command divides the lines into quadrants, primarily, left, center and right and two lines are supported. The heading column option prints the Heading information specified in each column. You can also specify Heading Fieldnames, where Rport will divide the field name into each column, and you can do your own layout for each Heading Line:

 

head 1 Add " CharIntege     Double      Packed     Packed*                Quad"

head 1 Add "    IdLogica      DblLog Zoned"

head 2 add "Field Field      Field       Field       Field               Field"

head 2 add " Field Field       Field Field"

 

The Size command tells Rport the maximum size of the column for the data. By default, Rport picks the maximum size that a field will be when converted to Ascii, as shown in the following table:

Field Format

Output Size

I1, J1

6 bytes

I2, J2

11 bytes

I3, J3

16 bytes

I4, J4

20 bytes

K1

5 bytes

K2

10 bytes

E2

12 bytes

E4

23 bytes

R2

12 bytes

Zn

n+1 bytes

Pn

n bytes

 

The integer specified beside the fieldname is the length for the field to use for the report. If the data overflows the field will be filled with asterisks. The Subtotal and Total commands are pretty self-explanatory.

in file1.rporttst

title line 1 left RPNAME "SampReport"

title line 1 center RPCOMPANY "Robelle Solutions"

title line 1 right rppageno tag "Page No : "

title line 2 left rpdate tag "Date : "

title line 2 right rpruntime tag "Run Time : "

head 1 col "Char"

head 2 col "Field"

head 1 col "Integer"

head 2 col "Field"

head 1 col "Double"

head 2 col "Field"

head 1 col "Packed"

head 2 col "Field"

head 1 col "Packed*"

head 2 col "Field"

head 1 col "Quad"

head 2 col "Field"

head 1 col "Id"

head 2 col "Field"

head 1 col "Logical"

head 2 col "Field"

head 1 col "DblLog"

head 2 col "Field"

head 1 col "Zoned"

head 2 col "Field"

size int-field 8

size dbl-field 8

size packed-field 7

size packed*-field 7

size quad-field 7

size logical-field 7

size dbllog-field 7

size zoned-field 8

subtotal int-field dbl-field packed-field packed*-field quad-field id-field

subtotal logical-field dbllog-field zoned-field

total int-field dbl-field packed-field packed*-field quad-field id-field

total logical-field dbllog-field zoned-field

out REPORT01

xeq

 

The above code creates the following report. The report shows that it can handle most data types (the field names are the data types)  and provides a simple layout and automatically aligns the subtotals and the total lines. The subtotaling works off the sorted field, (in this case char-field) and prints a subtotal line each time the char-field changes.

 

SampReport                          Robelle Solutions                         Page No : 1

Date : 20191024                                                          Run Time : 12:45

 Char   Integer    Double   Packed  Packed*     Quad    Id   Logical     DblLog     Zoned

Field     Field     Field    Field    Field    Field Field     Field      Field     Field

11111     11.11    111.11  +111.11  +111.11   111.11     1     11.11     111.11    111.11

          11.11    111.11  +111.11  +111.11   111.11     1     11.11     111.11    111.11

22222     22.22    222.22  +222.22  +222.22   222.22     1     22.22     222.22    222.22

22222     22.22    222.22  +222.22  +222.22   222.22     2     22.22     222.22    222.22

          44.44    444.44  +444.44  +444.44   444.44     3     44.44     444.44    444.44

33333     33.33    333.33  +333.33  +333.33   333.33     1     33.33     333.33    333.33

33333     33.33    333.33  +333.33  +333.33   333.33     2     33.33     333.33    333.33

33333     33.33    333.33  +333.33  +333.33   333.33     3     33.33     333.33    333.33

          99.99    999.99  +999.99  +999.99   999.99     6     99.99     999.99    999.99

44444     44.44    444.44  +444.44  +444.44   444.44     1     44.44     444.44    444.44

44444     44.44    444.44  +444.44  +444.44   444.44     2     44.44     444.44    444.44

44444     44.44    444.44  +444.44  +444.44   444.44     3     44.44     444.44    444.44

44444     44.44    444.44  +444.44  +444.44   444.44     4     44.44     444.44    444.44

         177.76   1777.76 +1777.76 +1777.76  1777.76    10    177.76    1777.76   1777.76

55555     55.55    555.55  +555.55  +555.55   555.55     1     55.55     555.55    555.55

55555     55.55    555.55  +555.55  +555.55   555.55     2     55.55     555.55    555.55

55555     55.55    555.55  +555.55  +555.55   555.55     3     55.55     555.55    555.55

55555     55.55    555.55  +555.55  +555.55   555.55     4     55.55     555.55    555.55

55555     55.55    555.55  +555.55  +555.55   555.55     5     55.55     555.55    555.55

         277.75   2777.75 +2777.75 +2777.75  2777.75    15    277.75    2777.75   2777.75

         611.05   6111.05 +6111.05 +6111.05  6111.05    35    611.05    6111.05   6111.05

$BOM and $EOM

Suprtool has two new subfunctions called $BOM and $EOM which are now available in the $stddate and $month functions. The $bom returns the beginning of the month date, “01” and the $eom, returns the end of the month for the given date.

For Example, the $stddate function will return the converted curdate, with either the beginning of the month for the day or the end of the month for the given curdate.

in file131

item curdate,date,ddmmyyyy

ext curdate

ext curbom=$stddate(curdate,$bom)

ext cureom=$stddate(curdate,$eom)

You can also use $stddate to convert a date that is already in ccyymmdd format to the beginning of the month or the end of the month respectively.

You can also use $bom and $eom as part of the $month function even if the date is not in ccyymmdd format.

Item curdate,date,ddmmyyyy

ext curdate

ext curbom=$month($stddate(curdate),+6,$bom)

ext cureom=$month($stddate(curdate),+6,$eom)

String Function Checks

Some of the String functions in Suprtool did not have proper length checks in place to insure that an overflow wouldn’t occur for specific functions. The length for most string fields to be checked is 4095 bytes. Suprtool will now throw a more generalized error of:

Error: Field in function is greater than 4095 bytes

 

If a function is longer than the 4095, the field is potentially corrupted and/or truncated.

Sdlinux for Linux

SDLinux is a utility that will convert the Self-Describing information, such that Suprtool/Open can read the file. Specifically, it is meant to convert the .sd file from an HP-UX system to be read on Linux natively.

Sdlinux, will change the sd version field which tells Suprtool/Open the endianness of the sd file.

 

SD Version

Endianness

Extended Names

B.00.00

BIG (HP-UX) LITTLE(LINUX)

NO

B.00.01

BIG (HP-UX) LITTLE(LINUX)

YES

B.00.02

BIG

NO

B.00.03

BIG

YES

 

The sdlinux utility has four options, -f, -r, -h and –d. Only one option can be specified at any given time:

 

Option

SD Version

Integer Field

-f

B.00.00 becomes B.00.02 and

B.00.01 becomes B.00.03

Any integer/logical field gets flagged as BE.

-r

B.00.02 becomes B.00.00 and

B.00.03 becomes B.00.01

Any integer/ logical field gets the Endianness flag turned off.

-h

B.00.02 becomes B.00.00 and

B.00.03 becomes B.00.01

No effect.

-d

No effect.

Any integer/logical field gets the Endianness flag turned off.

The sdlinux utility gets run with the above options and a filename for an argument as in:

./sdlinux ‘-ffilename

./sdlinux ‘-rfilename

./sdlinux ‘-hfilename

./sdlinux ‘-dfilename

 

The filename specified just needs to be the data file name not the sd filename. Regardless, sdlinux will figure out what to do if the .sd extension is in the filename argument.

 

Set Limits Override On | Off

Set Limits OverRide tells Suprtool for MPE to ignore any subsequent Set Limits TableSize command. This was added since the new MPE table size is now 2 GB and works well without any limit. It was also added as Suprtool 4.4 and lower did not calculate the Set Limits Tablesize limit properly. So, if a user had Set Limits Tablesize 25, Suprtool would allow for a table greater than that old limit, while the new version of the table would stop with "Table Full" as prescribed by the command.

 

Overriding the TableSize, allows for customers to set in a global suprmgr file and not have to search thru code to remove the specific command.

Enhancements in Version 6.1

 

$Length

Suprtool has a new function called $length which returns a double integer number that is the length of a given byte or numeric field. For byte type fields Suprtool starts at the right most byte position to look for any non-space character and calculates the length of the data. For numeric fields Suprtool will convert the number to display and starting on the left will search for any non-zero character to establish the length.

Below is an excerpt from the manual, that describes how it can be used:

$LENGTH (Works on Byte-type and numeric fields)

Purpose of the $length function is to return the length of the specified byte field as if the field has had the $rtrim function applied or the position of the rightmost non-space character.

If Usage:

if $length(NAME) >= 15

Extract Usage:

Define LenField,1,4,double

extract LenField=$length(byte-field)

 

$ROBELLE variable

The $ROBELLE variable on HP-UX and Open platforms has been expanded to 55 characters for the $ROBELLE directory name when you are installing outside of /opt/robelle. You use the $robelle variable to tell suprtool and all of the programs that come with suprtool where to find where it is installed.

Set EditSignNeutral

The $edit function converts data from numeric to byte and applies an edit mask to format the data. Neutral data is not considered to be signed so if you have neutral data, a positive sign will not be applied to the edit mask. With Set EditSignNeutral turned on, Suprtool will consider the Neutral data to be positive and therefore print out the “+” or “DR”, depending on the edit-mask used.

Set EditSignNeutral On

 

STEXPORT

STExport now supports 8196 bytes on the input, and the output file.

SUPRLINK

Suprlink now supports 8196 bytes on the input file, link file and 16384 bytes on the output file.


 

Enhancements in Version 6.0

 

$List NoSameTo

The List command now has a NOSAMETO option to turn off the SAMETO feature.

BackwardChain

The Set command, BackWardChain when turned on will tell the Chain command to do a Backward Chained read.

 

Extents

Suprtool for MPE, now has features designed to help control and reduce the number of extents used in Output files and some internal files.

 

SET INITNUMEXTENT number       

 

Set  InitNumExtent, when specified with a number between 1 and 32 and will use that number on the creation of the Output  file,  in  the Initial Extents parameter.

This can help with extent allocation depending on your systems disc space and fragmentation. Keep in mind if you set InitNumExtent to 1,  and  MaxNumExtent  is also  set to 1, all of the disc space required for the output file will attempt to be allocated at once.

When a value between 1..32 is  specified  for  InitNumExtent,  and InitExtents is turned on, the InitExtents flag will be turned off.

 

SET MAXNUMEXTENT number

 

Set MaxNumExtent Set MaxNumExtent, when specified  with  a  number between  1  and  32,  will  use that number on the creation of the Output file.

This can help with extent allocation depending on your system disc space and fragmentation.

Keep  in  mind  if you set InitNumExtent to 1, and MaxNumExtent is also set to 1, all of the disc space required for the output  file will attempt to be allocated at once.

It  is  also  important to note that if MaxNumExtent is set to any value  between  1..32,  and  the  InitExtents  flag  is  on,   the InitExtents flag will be turned off.

 

SET SORTEXTMEM ON

 

Set  SortExtMem, when turned on reduces some of the space used for memory mapped file used for sorting.  The algorithm for the amount of  space  used  is  the flimit of the file plus 10 million bytes.

You can increase the  adder,  by  entering  a  number  between  10 million and 2billion with the set SortMemAddr command.

Turning  this  option  on  may  cause  errors indicating that sort overflowed or hit a bounds condition.  You can increase the amount of space again by using set SortMemAddr command.

 

SET SORTMEMADDR number

 

Set  SortMemAddr  accepts a number between 10 million and 2billion which will add space to a memory mapped file used during the  sort process  and  is to be used with Set SortExtMem, when it is turned on and the default adder value is not enough to prevent  a  Bounds condition.

$INRECNUM

The if / extract commands can now utilize a new function called $INRECNUM, which allows you to use the input record number in certain tasks. For example, the task below would find record number 11.

   In somefile

    If $inrecnum=11  

You can also, utilize the $inrecnum function in the extract command:

   In somefile

    Def recnum,1,4,double

    Ext recnum=$inrecnum 

The $inrecnum function was designed to find records especially in the instance where duplicate records are in a particular data source and cannot be isolated by any other means.

 

describes the new enhancements to Suprtool since Suprtool 5.9

$LEADZEROZ

The if / extract commands can now utilize a new function called $LEADZEROZ, which allows you to add leading zeroes to a specific display field. This was designed specifically for the extract command and fixing up data but can be used in the if command as well.

$NUMBER is capable of fixing up numbers, but the new $LEADZEROZ function is more lightweight and simply adds leading zeroes and has an option to justify right as shown below. The source data looks like this:

/PRINT LEADZERO

1

 2

  3

   4

    5

     6

      7

       8

      9

10

12

12345

220

You can format with the following:

 

>IN LEADZERO.SUPRTEST

>DEF A,1,12,DISPLAY

>EXT A=$LEADZEROZ(A,J)

>out *

>xeq

000000000001

000000000002

000000000003

000000000004

000000000005

000000000006

000000000007

000000000008

000000000009

000000000010

000000000012

000000012345

000000000220

IN=13, OUT=13. CPU-Sec=1. Wall-Sec=1.

The $LEADZEROZ function cannot fix issues like commas and decimal places in a display field, this can be handled by the $number function.

$LEADZEROB

The if / extract commands can now utilize a new function called $LEADZEROB, which allows you to add leading zeroes to a specific byte field. This was designed specifically for the extract command and fixing up data but can be used in the if command as well. The data looks like this:

/PRINT LEADZERO

1

 2

  3

   4

    5

     6

      7

       8

      9

10

12

12345

220

You can clean it up with the following:

>IN LEADZERO.SUPRTEST

>DEF A,1,12,byte

>EXT A=$LEADZEROB(A,J)

>out *

>xeq

000000000001

000000000002

000000000003

000000000004

000000000005

000000000006

000000000007

000000000008

000000000009

000000000010

000000000012

000000012345

000000000220

IN=13, OUT=13. CPU-Sec=1. Wall-Sec=1.

 

$JUSTIFYL

The if / extract commands can now utilize a new function called $JUSTIFYL, which allows you to left justify text to the left side of a field.

 

>in leadzero

>def b,1,12,byte

>ext b=$justifyl(b)

>out *

>xeq

1

2

3

4

5

6

7

8

9

10

12

12345

220

IN=13, OUT=13. CPU-Sec=1. Wall-Sec=1.

 

$JUSTIFYR

The if / extract commands can now utilize a new function called $JUSTIFYR, which allows you to right justify text to the right side of a field.

>in leadzero.suprtest

>def a,1,12,byte

>ext a=$justifyr(a)

>out *

>xeq

           1

           2

           3

           4

           5

           6

           7

           8

           9

          10

          12

       12345

         220

IN=13, OUT=13. CPU-Sec=1. Wall-Sec=1.

 

 

 

$RESPACE

The if / extract commands can now utilize a new function called $RESPACE, which allows you to fixup byte data that has multiple spaces in between text. For example, your data looks like this:

>in respace.suprtest

>def text,1,40

>ext text

>out *

>xeq

this  is  a  test

 this is a        test

this  is  a   test

this         is a test

this   is   a   test

this is a test

 please note this   is   a     test

this  is   a   test

this    is      a      test

this is a test

       this   is   a   test

 this is a test

this    is    a    test

this is a test

dummy   record

this is a  not   test

silly   record

IN=30, OUT=30. CPU-Sec=1. Wall-Sec=1.

It can easily be fixed up and converted to what is shown below:

 

>in respace.suprtest

>ext text=$respace(text,J)

>out *

>xeq

this is a test

this is a test

this is a test

this is a test

this is a test

this is a test

please note this is a test

this is a test

this is a test

this is a test

this is a test

this is a test

this is a test

this is a test

dummy record

this is a not test

silly record

IN=30, OUT=30. CPU-Sec=1. Wall-Sec=1.

 

 


 

Bugs Fixed

Bugs Fixed in Suprtool 5.7.11

Set CleanChar.  Set CleanChar to a single character, after a Set CleanChar “<null>” would not come into effect due to the special null flag not being reset. This was in both Suprtool and STExport.

Bugs Fixed in Suprtool 5.7.10

Table, Data and Hold. Suprtool would lose track of Table data field information, on tables held with the hold option in subsequent tasks.