Change Notice

Doc-To-Help Standard Manual

 

 

 

 

 

 

 

 


 

Program and manual copyright © 1981-2009 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.

 

 

 

 

 

 

 

I

 

Robelle Solutions Technology Inc.

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

 

Phone:   604.501.2001

Fax:        604.501.2003

 

E-mail:   sales@robelle.com

E-mail:   support@robelle.com

Web:      www.robelle.com

 

 


Contents

Introducing Suprtool Version 5.2                                                                          5

Overview.................................................................................................................................................... 5

Highlights in Suprtool 5.2....................................................................................................................... 5

Highlights in Suprtool 5.1.02.................................................................................................................. 6

Highlights in Suprtool 5.0....................................................................................................................... 7

Known Problems.................................................................................................................................... 10

Itanium vs PA_RISC............................................................................................................................ 10

Compatibility......................................................................................................................................... 12

Itanium Compatibility.......................................................................................................................... 13

CPU Serial Number (uname)............................................................................................................... 14

Documentation...................................................................................................................................... 14

Installation                                                                                                                 15

Overview................................................................................................................................................. 15

Installation Instructions....................................................................................................................... 15

Installation Assistance.......................................................................................................................... 15

Enhancements in Version 5.1.05                                                                         16

Introduction............................................................................................................................................ 16

ZonedFix................................................................................................................................................. 16

PassShift.................................................................................................................................................. 16

Itanium.................................................................................................................................................... 16

Enhancements in Version 5.1.01                                                                         17

Introduction............................................................................................................................................ 17

Debug Information............................................................................................................................... 17

$stddate($days(a))................................................................................................................................ 17

Z type TPI-keys..................................................................................................................................... 17

J type TPI-keys...................................................................................................................................... 18

Userlabels................................................................................................................................................ 18

Outcounts................................................................................................................................................ 18

VarsubDebug.......................................................................................................................................... 18

VarsubCompat...................................................................................................................................... 19

IF $lookup.............................................................................................................................................. 19

Multiple Literal Compares................................................................................................................... 20

Enhancements in Version 5.0                                                                              21

Set ItemLock <fieldname>.................................................................................................................. 21

Dynamic Load Warnings..................................................................................................................... 21

Set VarsubCompat On | Off................................................................................................................ 21

Dynamic Loading.................................................................................................................................. 22

External SD file...................................................................................................................................... 22

High Performance Writes..................................................................................................................... 22

Dynamic Loading Version................................................................................................................... 22

Set RealMap On | Off........................................................................................................................... 23

Suprtool2................................................................................................................................................. 23

Symbolic Links and running Supramxw........................................................................................... 23

Total $File $List..................................................................................................................................... 24

Oracle Integers....................................................................................................................................... 24

$Clean Function and Clean Command............................................................................................ 25

Oracle Dynamic Load.......................................................................................................................... 25

Eloquence Dynamic Load................................................................................................................... 25

Oracle Connections............................................................................................................................... 26

Table Command................................................................................................................................... 26

Output=input.......................................................................................................................................... 26

Bugs Fixed                                                                                                                27

Bugs Fixed In Suprtool 5.2.................................................................................................................. 27

Bugs Fixed In Suprtool 5.1.02............................................................................................................. 27

Bugs Fixed In Suprtool 5.1.01............................................................................................................. 27

Bugs Fixed In Suprtool 5.1.................................................................................................................. 27

Bugs Fixed In Suprtool 5.0.15............................................................................................................. 28

Bugs Fixed In Suprtool 5.0.14............................................................................................................. 28

Bugs Fixed In Suprtool 5.0.13............................................................................................................. 28

Bugs Fixed In Suprtool 5.0.12............................................................................................................. 28

Bugs Fixed In Suprtool 5.0.11............................................................................................................. 28

Bugs Fixed In Suprtool 5.0.10............................................................................................................. 29

Bugs Fixed In Suprtool 5.0.................................................................................................................. 29

 


 

 

Introducing Suprtool Version 5.2

Use Suprtool/AMXW to read, select, and sort data from Oracle, Allbase and Eloquence databases and data files with fixed-length records. Suprtool/AMXW is designed to be similar to Suprtool for MPE while providing necessary HP-UX features.

Suprlink/AMXW provides high-speed data-file linking based on a sort key. Use STExport to convert fields in a self-describing input file into an output file that can be imported into different applications.

Suprtool 5.1.03 and Suprtool 5.1.04 were internally released only as part of our Alpha version and Beta versions of the new Native Itanium versions of our products.

 

·         STExport now has Set ZonedFix On, this setting can be used to zero out any zoned fields that were unable to be converted from zoned to byte and typically have a "?" in the result. This is often caused by hidden characters or bad data.

·         Suprtool now has Set Oracle PassShift On (default) or Off to turn off the upshift of a password. This is to accomodate Oracle 11 which will allow for case-sensitive passwords.

·         The Add command in Suprtool for HP-UX would cause a subsequent task to fail in some cases.

·         The Add command in Suprtool for HP-UX would fail if the target was a small record.

·         Suprtool, STExport, Suprlink and Suprcall are all available as a Native Itanium binaries

·         The Base command would not pass the database name to be parsed if it was preceded by a command without any parameters. (Itanium Build 2)

.

 

·         The $edit function would replace a numeric with a colon if the edit mask had a different number of decimal places than the item had and the last number  to be rounded was a nine..

·         Suprtool chain command now handles J2 TPI keys in Master datasets.

·         Suprtools Table command would fail with Error: Sorted file is not in the correct sequence, in some cases.

·         Open Oracle could not parse a machine name with a “.” in the name.

·         Open Oracle now correctly parses three tokens in the Open command.

·         Total $file did not work properly in Suprtool for AMXW.

·         KSAM input files were not opened with ;shr;lock.

·         STExport did not handle files with 256 fields in an SD file.

·         Suprtool for AMXW would not close the previously opened database when a new base command was issued with database name.

·         Suprtool can now execute the if and extract expression $stddate($days(a) + 10) in one task.

·         Suprtool for AMXW would abort when trying to get file system error messages from AMXW intrinsics.

·         Suprtool now supports stand alone zoned decimal TPI-keys.

·         Suprtool for AMXW build version had a conflict with the  Dateline intrinsic.

·         Suprlink and STExport had an issue detecting the AMXW shell with some versions of AMXW.

·         Suprtool, STExport and Suprlink all set the outcount variables by default just like they do on MPE.

·         Set UserLabels on now works in Suprtool for AMXW just like it does in the MPE version.

·         Set Filecode 0 will work if Set UserLabels is set to off.

·         Reset Output would not properly reset the output filename in HP-UX and AMXW versions of Suprtool.

·         Set stat on did not look at the correct flag when being parsed.

·         Suprtool would fail with Fgetinfo failure when output is to stdlist (out *) and a sort is specified.

·         Suprtool for AMXW would use the file size stored in the SD label as opposed to the actual physical file size that AMXW uses.

·         Suprtool would not abort nor return an error message when the AMXW FPOINT intrinsic would fail when trying to append to an output file greater than 2Gb. Suprtool now aborts with an error message and Speedware has fixed FPOINT to work with files > 2Gb.

·         If the data item used in data portion of  a $lookup function was 8 bytes or greater in length, type display or byte, the if command would fail with an arithmetic stack error.

·         Set VarsubCompat did not work in STExport and the default was set to on.

·         Set VarsubDebug has been added to print the line after variable substitution has occurred.

·         Suprlink and STExport can now be run with –cv argument to turn on the VarsubCompat Flag.

·         Error handling has been improved when creating or opening large files in STExport and Suprlink. (AMXW only)

·         STExport XML command did not convert compound items (2)..(n) properly.

·         Multiple literal compares now work  in the if command.

·         If $lookup can now return the data portion loaded into a table to use in a comparison.

·         Suprtool for HP-UX would fail  with a DBGET failure on a directed read if fastread was on and if the record number specified did not have a record in the slot previous to the start record number.

·         Suprtool2 would fail to detect the ROBSUPR variable even if set in some cases.

·         Suprtool would not get the proper records size and foptions from FOPEN/FGETINFO of SUPRLIST under AMXW.

 

·         Suprtool2 would abort with Signal 11 if the ROBSUPR variable was not set and thousands of invocations of Suprtool, thru the Suprtool2 interface. (5.0)

·         Set RealMap has been added to control if Suprtool for HP-UX maps Real Numbers to Ieee. The default is to do the mapping.

·         Suprtool for AMXW was using word lengths instead of byte lengths for FREADs. AMXW always returned the correct number of bytes, but Suprtool has been fixed to request the correct length. ( Fixed in 5.0 Build 3)

·         STExport now supports SD file items that are considered R type. It will map them to IEEE automatically. Previously STExport would fail when trying to support R type items.

·         STExport now creates the variable length output files using the AMXW G-option on output. This means that variable length output files are now readable by non-AMXW utilities and files Exported to other platforms will be more readily readable.

·         The $split function would abort on some systems if the $split character was the last character in the string. (4.9.06)

·         The Base command would fail in the Suprtool for AMXW dynamic load version if Eloquence was not loaded on the system. (4.9.06)

·         Suprtool for AMXW would not reset the filecode to zero if the input source was self-describing and the output file was prn, display or ascii. (4.9.06)

·         Suprtool for AMXW had calls to it’s internal timer call information disabled which made progress messages have incorrect wall time statistics. (4.9.05)

·         Suprtool, STExport and Suprlink for AMXW did not properly handle duplicate filenames for permanent and temporary files. (4.9.05)

·         Suprtool for AMXW, dynamic Image loading version did not properly startup in some cases, specifically when trying to detect if it could use the Fastread option or not. (4.9.05)

 

·         Suprtool for AMXW did not support input filename(2/), where Suprtool starts to read at a particular record number until this version. (4.9.04)

·         Suprtool for AMXW now supports the Numrecs command to control the size of the output file. (4.9.04)

·         Suprtool for AMXW does variable substition in the same manner as the HP-UX version. Suprtool for AMXW first tries to resolve variables set on HP-UX and are available as an environment variable. Then any command that uses a “!” MPE variable, will be resolved next. (4.9.04)

·         Stexport Output command would fail as the byte size was assumed to be words, incorrectly. (4.9.04)

·         The latest AMXW version of Suprtool2 would interfere with some Cobol programs if they attempted to open a KSAM file. (4.9.04)

·         STExport did not support temp file creation in the AMXW version. (4.9.04)

·         STExport would core abort when trying to input a file did not exist. (4.9.04)

·         STExport did not produce Variable length files by default as it did on MPE. (4.9.04)

·         Suprtool would occasionally fail with mmap errors on HP-UX when using the Table command. (4.9.04)

·         Output, erase was not working properly in STExport and Suprlink. (4.9.04)

·         Files that had a size in words would not get linked properly in Suprlink and the Table file might assume an incorrect size. (4.9.04)

·         Suprtool for AMXW would behave poorly with set fastread on and if the dataset it was reading had no records in it. (4.9.04)

·         Suprtool for AMXW would fail with a dbstatus 17, No current record found when doing an update or delete operation with Set Fastread on and Set Lock 0. (4.9.04)

·         Suprtool for AMXW would  not close the currently open database when the BASE command was entered by itself. (4.9.04)

·         Suprtool did not print out progress messages when run in batch in an AMXW job. This was solved by calling AMXW’s print intrinsic. (4.9.04)

·         Progress messages were intersperesed with List command output. (4.9.04)

·         Number of records are now being printed when doing a form of a self-describing file. (4.9.04)

·         Set AMXW Perfwrite ON increases performance of writing to an output file by  up to 10 times. (4.9.04)

·         When numrecs is > number of records read, sometimes the file is padded with blank records. (4.9.04)

·         Output,erase on a file with a shorter record would write a series of nulls. (4.9.04)

·         Sort with output,erase on a smaller file did not erase all records. (4.9.04)

·         Suprtool now shows error when there is no room to append records, this is to be more “MPE” like. (4.9.04)

·         Suprtool now can use two methods when dynamically loading Oracle, Eloquence and Image routines in the respective versions of Suprtool. (4.9.04)

·         Suprtool for HP-UX now supports Item Level locking with the Set Itemlock command. (4.9.04)

·         Oracle load warning messages are no longer printed by default. (4.9.04)

·         The Base command on it’s own did not close the current database like it did on MPE. (4.9.04)

·         Suprtool would abort if an invalid password was specified in some configurations of  Eloquence and if used with other Image replacement libraries. (4.9.04)

·         Suprtool for HP-UX would not set the return code variable $?, if it failed with some syntax errors. (4.9.03)

·         Suprtool had some debug messages were left over in the Table module. (4.9.03)

·         Suprtool would have a stack overflow when the input source was an Oracle table, the if command was used and no records were selected. (4.9.03)

·         Suprcall for AMXW would not build a tempfile even if the Build command was specified in the Suprtool task. (4.9.03)

·         Suprcall would not always print the stdlist if the print-state was set to ER. (4.9.03)

·         Suprcall now returns an error status if Suprtool run has an error, in both the AMXW version and the regular HP-UX version. (4.9.03)

·         A stack overflow error would occur when sorting with two sort keys and the input source was an Oracle Table. (4.9.02)

·         Suprtool would output 100 blank records when reading an empty Eloquence dataset with set fastread on. (4.9.02)

·         Suprtool2 fixed to work better with certain cobol compilers and compiler options. (4.9.02)

·         Command lines that were not terminated with a null are now handled correctly in Suprtool2. (4.9.02)

·         Print state and execution of print of stdout now works properly in all cases in Suprtool2. (4.9.02)

·         Tmpnam call would occasionally abort on Itanium due to ineffective space allocation in Suprtool2. (4.9.02)

·         The Total command now supports the $file and $list options. (4.9.01)

·         Output=input now writes out the sort information if the file involved is self-describing. (4.9.01)

If you have any questions or concerns or feedback on this or any other issue, please feel free to e-mail me at: neil@robelle.com

There are two types of machines that HP has that run HP-UX, the older machines are based on the PA_RISC chip and the new machines that use the Itanium (and Itanium 2 chips). There are also program files that are specific to each chip. PA_RISC programs can run on both PA_RISC and Itanium machines, however, Itanium programs can only run on Itanium machines.

Any program that runs on Itanium must utilize libraries that match its own program type. Therefore if a PA_RISC program runs on Itanium and looks for a library, it must find/load the PA_RISC version of the libraries that it needs and conversely an Itanium program must load the libraries specific to its type.

How to Tell what Machine I am on?

There are many ways to tell what kind of machine you are on, here are a couple:

uname -m

getconf MACHINE_MODEL

In each case the Itanium machine will typically say ia64 somewhere in the result of the above two commands. PA_RISC machines typically say "9000" somewhere in the string.

What is the Program File Type?

Since there are two types of machines there are also at least two types of program files. Suprtool is primarily either PA_RISC 1.1 or ELF-32 / IA64 which is also known as Itanium. To determine the type of program file you can use the file command:

Itanium

file suprtool

suprtool:       ELF-32 executable object file - IA64

PA_RISC

file suprtool

suprtool:       PA-RISC1.1 executable dynamically linked -not stripped

The PA_RISC binary can run on both platforms but you need to have PA_RISC libraries for Eloquence or Oracle if you are using the Oracle module. An Itanium binary will not run on a PA_RISC machine and will fail with "cannot execute".

Of  course we've made provision to identify if you are running the ia version of Suprtool in the banner and verify command with the ia after the UX :

SUPRTOOL/UXia/Copyright Robelle Solutions Technology Inc. 1981-2009.

(Version 5.2 Internal)  MON, JUN  8, 2009, 11:26 AM  Type H for help.

PA_RISC Loading

Suprtool by default looks in the libraries in any of the directories named in SHLIB_PATH.  For example to insure that Suprtool resolves the library loads you can set the  SHLIB_PATH system wide in your /etc/profile file in the following manner:

 export SHLIB_PATH=/opt/eloquence6/lib/pa11_32:/opt/oracle/lib

If you do not have the SHLIB_PATH variable set to a value where the libraries can be found, Suprtool will then try to load from their default names locations.  For Eloquence the default location is :/opt/eloquence6/lib/pa11_32.

The Oracle interface will first try to load libclntsh.so and then attempt to load libclntsh.sl from $ORACLE_HOME/lib32/libclntsh.sl.

Itanium Loading

You can change Suprtool to pay attention to LD_LIBRARY_PATH and use dlopen to load libraries, you can set the environment variable:

export ROBELLE_DYN_LOAD =Y.

It is generally advisable to use DLOPEN or the ROBELLE_DYN_LOAD option when using the Itanium version. The PA_RISC version of Suprtool can use  either type of loading, the default or the dlopen method invoked with ROBELLE_DYN_LOAD.

Running the PA_RISC version on Itanium:

You can of course run the PA_RISC version of Suprtool, however, given that the PA_RISC version requires SHLIB_PATH to point to PA_RISC libraries may go against the configuration necessary for other programs that may need SHLIB_PATH to point to Native Itanium libraries.

The solution to this is fairly simple, you can create a command file that runs suprtool for you let's say /opt/robelle/cmd/suprtool, you of course need to insure your path variable has /opt/robelle/cmd before /opt/robelle/bin:

You can then have the following commands in the /opt/robelle/cmd/suprtool command file:

export SAVED_SHLIB_PATH=$SHLIB_PATH

export SHLIB_PATH=/opt/oracle/pa_risc/lib:/opt/eloquence/lib/pa11_32

/opt/robelle/bin/suprtool $@

export SHLIB_PATH=$SAVED_SHLIB

Essentially all it does save the current SHLIB_PATH setting, sets it to point to PA_RISC libraries, runs suprtool and then resets the library back.

Suprtool for Itanium

Now that you know all about PA_RISC and Itanium you do need to be aware of what Suprtool forItanium is in terms of new code and risk for potential issues. Suprtool for Itanium is completelyin C code. This does not mean that it is all new C code however, the majority of the Suprtool code is still based on SPL, but is converted to C, using Allegros SPLASH compiler.

So while the C code is new it is based on the original SPLash code, however, given differences betweenC and SPLash not all code can be automatically converted in some cases. We worked closely with Allegro to find ways to have the source code work and address the various issues that came up, the entire time Allegro improved the SPLash to C converter.

So while we are based on the original Suprtool we do have new code paths in the Native Itanium version and other potential issues where the C code might not work in exactly the same manner as the SPLash code.

Having said that we have tested this against our test suites, and improved and added a large number of tests to our HP-UX test suites. We also began Alpha testing 18 months ago and have been beta testing for the last six months with our two best VAR customers.

 

Suprtool for AMXW would use the file size stored in the SD label as opposed to the actual physical file size that AMXW uses. 

::FILE FILE80;REC=-80,,F,ASCII
::supramxw
SUPRTOOL/AMXW/Copyright Robelle Solutions Technology Inc.1981-2007.
(Version 5.0)  TUE, JAN 08, 20082:42 PM  Type H for help.
>I STFILE
>DEF ABCXYZ,1,11
>EXT ABCXYZ
>O FILE80,LINK
>X
IN=26, OUT=26. CPU-Sec=1. Wall-Sec=1.

 

>FO FILE80
File: FILE80     (SD Version B.00.00)  No linefeeds
Entry:                     Offset
    ABCXYZ               X11     1
Limit: 1023  EOF: 26  Entry Length: 11  Blocking: 1
>E
::LISTF FILE80,2

 

ACCOUNT=  AMXWQA      GROUP=  FDE

 

FILENAME  CODE  ------------LOGICAL RECORD-----------  ----SPACE----
                SIZE  TYP        EOF      LIMIT R/B    SECTORS #X MX

 

FILE80    1084   82B  FA          26       1023   1          9  1  *

 

So what happens is if an output link file is created with a file equation making the file bigger, any subsequent files that are created from the resulting output file are actually made smaller as you can see below.

 


::supramxw
SUPRTOOL/AMXW/Copyright Robelle Solutions Technology Inc.1981-2007.
(Version 5.0)  TUE, JAN 08, 20082:42 PM  Type H for help.

>i FILE80
>O FILE80A
>X
Warning:  Using Output FILE80A,Link
IN=26, OUT=26. CPU-Sec=1. Wall-Sec=1.

>E
::LISTF FILE80A,2

ACCOUNT=  AMXWQA      GROUP=  FDE

 

FILENAME  CODE  ------------LOGICAL RECORD-----------  ----SPACE----
                SIZE  TYP        EOF      LIMIT R/B    SECTORS #X MX

 

FILE80A   1084   11B  FA          26       1023   1          2  1  *

 

 Suprtool for AMXW now honours the physical record size and the FILE80A file will now have a record size of 80.

The HP-UX and AMXW versions of AMXW no longer have Set varsubcompat on as the default.  The default is now off and can be turned on with the set command or the –cv option.

Previously, Suprtool would treat an “R” type field in an Eloquence database as an R type while the data inside Eloquence is  stored and treated as IEEE therefore incorrect results would occur with coercions and arithmetic operations. Suprtool now by default maps all Real and Long fields to their respective IEEE fields. You can change Suprtool back to the previous behaviour  with Set RealMap Off.

A form command will still show the fields as being “R2” or “R4”, but internally Suprtool will treat as IEEE, which is how Eloquence stores and treats the numbers.

Consequently STExport will now support items in SD files that are condidered R type, however it correctly will map them to IEEE.

Suprtool/UX 5.0 is now compatible with,all versions of HP-UX 11.2x, as well as Oracle version 8 and higher.

Suprtool/UX version 4.8.02 and lower is compatible with HP-UX 9.0 and higher and Oracle 7.

Fastread option is now set to On for Suprtool for HP-UX the regular version. The Dynamic loading version of Suprtool has a  default value of off to start.

Suprtool 5.2 is necessary for use with Oracle 11 and case sensitive passwords.

There are a couple of differences in the Itanium version of Suprtool, which you need to be aware of.

The DBEdit module is not available in the Itanium versions of Suprtool. This module is invoked by the EDIT command.

The layout for the Verify command is slightly different then the PA-RISC versions of Suprtool.

This program runs only on CPUs whose serial numbers have been encoded (the "uname" on HP-UX). If it fails to run and you get an "invalid HPSUSAN" error message, contact Robelle for assistance, via support@robelle.com or the support number at 1-800-453-8970.

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.

You can download our manuals and Change Notices in various formats and order printed (hardcopy) manuals from our web site at:

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


Installation

The following instructions describe the installation process of a new Suprtool release. The new version overwrites an existing version of Suprtool on your HP-UX system.

There are typically two main types of installations. You can find the Suprtool for AMXW regular install instructions here:

http://www.robelle.com/downloads/install-amxwprod.html

You can find the Suprtool for AMXW build on your system instructions on the link below. You will need this install if you are going to require the KSAM option, Dynamic Image loading or Omnidex support, or intend to run on Itanium:

http://www.robelle.com/downloads/install-amxwbuildprod.html

If you have any questions 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 1.800.453.8970. Technical support can also be obtained via e-mail at: support@robelle.com  If your new version of software will not run, you can page someone from technical support by calling the 1.800 number, or you can typically easily run extend with the disaster option to tide you over until business hours. Instructions for this are available at:

http://www.robelle.com/disaster/

Enhancements in Version 5.1.05

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

STExport now has Set ZonedFix On, this setting can be used to zero out any zoned fields that were unable to be converted from zoned to byte and typically have a "?" in the result. This is often caused by hidden characters or bad data.

Suprtool now has the command Set Oracle PassShift Off which turns off the default behaviour of upshifting Oracle passwords. This is to accomodate Oracle 11 which allows case sensitive passwords.

Suprtool, STExport and Suprlink are now available as Native Itanium. This represents a complete conversion of all Suprtool code to the C language. This version has many of the same components, with the exception of Dbedit. This conversion allows us to port to other platforms such as AIX and other big endian platforms. If you are interested in a particular platform please contact neil@robelle.com.

 

 


Enhancements in Version 5.1.01

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

Suprtool will now print out the entire table data structure information if a failure occurs when trying to close the mapped table space.

 

Suprtool now allows for the $days function to be nested in the $stddate function.

ext a=$stddate($days(a) + 1)

list

xeq

>IN TEST.GROUP.ACCOUNT (0) >OUT $NULL (0)

A               = 20080319

Suprtool now supports stand-alone Zoned-decimal TPI-keys, for Omnidex, Superdex and Eloquence. Previously Suprtool only supported byte type keys. Suprtool now supports stand-alone “Z” type keys, Suprtools form command will show the keys that it can support via the chain command.

setjcw sicognos 1

form d-inventory

 

Database: STORE.SUPRTPIS.GREEN  TPI: SUPERDEX (010566) 4.2.11.2

 

    D-INVENTORY      Detail                  Set# 4

       Entry:                     Offset

          BIN-NO               J1      1

          LAST-SHIP-DATE       J2      3

          ON-HAND-QTY          J2      7

          PRODUCT-NO           Z8     11  (M-PRODUCT)

                                          <<TPI>>

          SUPPLIER-NO          Z8     19  (!M-SUPPLIER)

          UNIT-COST            P8     27

          ITEM-DESC1           X20    31  <<TPI>>

          ITEM-DESC2           X20    51

          ITEM-DESC3           X20    71

          ITEM-DESC4           X20    91

    Capacity: 464 (8)  Entries: 13  Highwater: 13  Bytes: 110

 

    Additional Third-Party Indexes:

          SI-PRODUCT-NO        Z8     B

          SI-ITEM-DESC1        X20    B

          SI-ITEM-DESC1234     X80    B

          SHAD                 X10    B

 

 

Suprtool now supports J-type TPI-keys, for Omnidex, Superdex and Eloquence. Previously Suprtool only supported byte type keys. Suprtool now supports stand-alone “J” type keys, Suprtools form command will show the keys that it can support via the chain command.

Set UserLabels On | Off had no effect in Suprtool for AMXW. It now works just like it does on MPE.

Suprtool, STExport and Suprlink set their respective outcount variables on AMXW just as they do in MPE, in addition if the products are run with the –oc option, the traditional files of .stoutcount, .sxoutcount and .sloutcount are updated with the number of records written to the output file.

 

Suprtool, STExport and Suprlink now have a setting called Set VarsubDebug on which will print out the line after the variable substitution has occurred. This setting only works if Set Varsub is on and Set varsubdebug is on.

 

setvar outfile &

:"/GREEN/SUPRTEST/filename90123456789012345678901234567890123456789012345678901"

:run suprtool.pub.robelle

SUPRTOOL/iX/Copyright Robelle Solutions Technology Inc. 1981-2007.

(Version 5.0.11 Internal)  TUE, OCT 30, 2007,  2:58 PM  Type H for he

>set varsub on

>set varsubdebug on

>in file1sd.suprtest

vd:in file1sd.suprtest

>output !outfile,link,temp

vd:output /GREEN/SUPRTEST/filename90123456789012345678901234567890123

vd:2345678901,link,temp

 

The output is formatted into 74 byte chunks and printed with a preceding “vd:” so the “substituted” line is clear.

STExport and Suprlink can now be run with the –cv option which will turn on the varsubcompat flag without having to use the set command.

 

Suprtools IF command is now able to use the “data” loaded into a Table. The $lookup function will return the data value from the table to compare against another field or literal.

In file1sd

Table mytable,char-field,data,tabfile,data(id-field)

If $lookup(mytable,char-field,id-field) = int-field

So what Suprtool will do in this case is read a record, lookup the record in the table and retrieve the data item in the table. If Suprtool does NOT find an entry in the table, a zero will be returned if the data type is numeric and spaces will be returned if it is a byte type.

So using the case above, if no entry is found in the table, zero is returned, and if int-field is equal to zero, then the record will qualify.

If you don’t want to have any values returned from the table lookup, you just preface the if with a standard lookup.

>get    ord-details

>table  cust-table, cust-no, file, custlist,data(state-code)

>if     $lookup(cust-table,cust-no) and &

        $lookup(cust-table, cust-no, state-code) = state-code

>output orders

>xeq

When using $lookup to return data, the $lookup must always be on then left side of the expression. If not Suprtool will stop with an error:

>if id-field=$lookup(mytable,char-field,id-field)

Error:  $lookup in this context (data comparison) must be on left side

Suprtool can now do multiple literal comparisons, previously Suprtool was only able to compare two sets of literals.

If “a” = “a” and “b” = “b”

If “a” <> “b” and “b” <> “c”

 

 


 

 

 

Enhancements in Version 5.0

 

Suprtool now supports Item Level locking thru the Set ItemLock <fieldname> command. The set command must be specified after the Base and Get/Chain command has been specified.

However, some users worked around this issue by doing the following:

 !run suprtool.pub.robelle

 base order,1,;

 get dline

 set itemlock item-num

 del

 out save,link

 exit

                                                                Item Level locking is only effective for Deletes and Updates.

When loading Oracle libraries Suprtool would report warnings on startup if it failed to load the Oracle libraries. Suprtool by default no longer prints these warnings. To check if your libraries were loaded you can run Suprtool with the –lw option:

 ./suprtool -lw

 

The Set VarsubCompat flag has been added to Suprtool for HP-UX to have variable substitution be more flexible. On MPE variable substitution would pass the name of the variable thru to be parsed even if the variable was not set. On HP-UX the default behaviour was to return spaces if the environment variable was not set.  This is still the default behaviour, however if you set varsubcompat on,  Suprtool will return the environment variable name similar to how MPE works with unresolved variables.

 

In the last few versions of Suprtool we have used two different methods of dynamically loading the Oracle routines. Starting with this version of Suprtool, you can now vary how Suprtool chooses to dynamically load the routines. By default, Suprtool will use shl_load and findsym to load the Oracle and Eloquence routines.

You can force Suprtool to dlopen and dlsym if you set the environment variable ROBELLE_DYN_LOAD to any value. This does not impact the version of Suprtool that loads the Image replacement intrinsics used by the ROBELLELIB_IMAGE as this version will always use findsym.

Suprtool version 4.9.03 used dlopen in some cases and this did not always work in terms of loading the Oracle libraries. This enhancement is to provide control over the method for loading the libraries while reverting back to shl_load which works better and the new methods allows for greater flexibility.

Suprtool for AMXW now has an option to create the external self-describing file as well as updating the “label” information that AMXW keeps track of. This was done to help some other applications work in conjunction with AMXW and Suprtool. The setting you need to use is:

  Set AMXW Externalsd on

The default for this setting is off.

While the External SD is written to in this case for the other Application Suprtool for AMXW will ignore the External SD file when reading these files.

Suprtool for AMXW now has an option to do multi-record writes to the output file, which has given as much as a 10 times performance increase.

Set AMXW PerfWrite On

The default for this setting is off. AMXW version 8.05.01 Build 13 or higher is required for this to work.

Suprtool for AMXW can now dynamically load any “IMAGE” library and use in Suprtool’s Base, Get, Update, Delete and Put commands and in the Dbedit Module.

This version looks exactly like Suprtool, however, when started without information on where the replacement “IMAGE” library is, will fail with a suitable error message:

Error : ROBELLELIB_IMAGE variable must be set to a valid IMAGE library for this version

In order to have Suprtool run and load a suitable library you just need to do a:

export ROBELLELIB_IMAGE=/name of IMAGE replacement library

Using the fully qualified filename of the Image replacement library that you are using. For example if you wanted to dynamically load Eloquence you would do:

export ROBELLELIB_IMAGE=/opt/eloquence6/lib/pa11_32/libimage3k.sl

Keep in mind that this is only relevant to the Image Dynamic Load version of Suprtool.

Previously, Suprtool would treat an “R” type field in an Eloquence database as an R type while the data inside Eloquence is  stored and treated as IEEE therefore incorrect results would occur with coercions and arithmetic operations. Suprtool now by default maps all Real and Long fields to their respective IEEE fields. You can change Suprtool back to the previous behaviour  with Set RealMap Off.

A form command will still show the fields as being “R2” or “R4”, but internally Suprtool will treat as IEEE, which is how Eloquence stores and treats the numbers.

Consequently STExport will now support items in SD files that are condidered R type, however it correctly will map them to IEEE.

Suprtool for AMXW requires it’s own version of Suprtool2 as Suprtool needs to use AMXW’s intrinsics in order for it to keep track of temp files. Suprtool2 is commonly used and linked in to Cobol programs which is used to send commands to Suprtool and launch them from inside your Cobol program.

Suprtool2 uses a variable to find the Suprtool for AMXW program and example would be:

export ROBSUPR=/opt/robelle/bin/suprtool

Suprtool2 comes in two forms either as a shared library or the .o file. Linking in of this library depends on your compiler, please refer to your compilers documentation on how to link in object code or the shared library.

For AMXW version 8.05.01 Build5 and greater you can install Suprtool for AMXW in a more MPE like manner, the below instructions rely on the fact that you have installed the software in the usual Robelle location of /opt/robelle/bin.

You can change the location of this installation, but the path cannot exceed 40 characters or so. You will need to create a 'group' and 'account' called PUB and ROBELLE - just like on the 3000.

You will then need to add a link to all of the suprtool object files.

There are 3 objects...supamxw, stexamxw and linkamxw.

 1.  Position yourself in the PUB.ROBELLE directory.

     cd $NLROOTDIR/ROBELLE/PUB

2. Make the links.  Make sure that your umask is set accordingly so that others will have access to these links...with read / execute access.

    ln -s /opt/robelle/bin/supramxw suprtool
    ln -s /opt/robelle/bin/linkamxw suprlink
    ln -s /opt/robelle/bin/stexamxw stexport
    ln -s /opt/robelle/bin/supramxw SUPRTOOL
    ln -s /opt/robelle/bin/linkamxw SUPRLINK
    ln -s /opt/robelle/bin/stexamxw STEXPORT

3.  Make sure that your HPPATH variable contains a refererence to PUB.ROBELLE.

    SETVAR HPPATH "!HPPATH,PUB.ROBELLE" 

You will be able to run suprtool through amxw using:

 suprtool

SUPRTOOL

RUN SUPRTOOL.PUB.ROBELLE

 

The Total command has been enhanced in version 4.9.01 to allow the $file and $list options.

  >in file1sd

  >tot int-field

  >total $file file82a

  >xeq

  >in file82a

You can also send the totals to a list file for simple reports:

  >in file1sd

  >tot int-field

  >list standard file file82a

  >total $file $list

  >xeq 

Suprtool by default maps certain numeric fields into packed-decimal data types when they have more than one decimal place:

Precision

Decimal Places

Suprtool Data-Type

None

Any

8-byte IEEE

1-4

Zero

2-byte Integer

5-9

Zero

4-byte Integer

1-9

Non-zero

Packed-decimal

10-27

Any

Packed-decimal

28-38

Any

8-byte IEEE

The setting:

Set Oracle Integer on

changes the Suprtool format from packed-decimal to Integer based on the size of the Number:

Precision

Decimal Places

Suprtool Data-Type

1-4

Any

2-byte Integer

5-9

Any

4-byte Integer

10-27

Any

8-byte Integer

The $Clean function in Suprtool and Clean command in STExport now have the ability to replace a character to be cleaned with null or nothing.  If you set the cleanchar as being:

   >Set Cleanchar “<null>”

Suprtool will remove the character specified in the clean command and effectively shift the text to the left and blank out the portion at the end.

We have further revised the Oracle Dynamic Load to do the following:

1)       Attempt to load libclntsh.sl using the dynamic path feature. See man dlopen for details.

2)       Manually load $ORACLE_HOME/lib32/libclntsh.sl

Suprtool now dynamically loads all of the Oracle routines that it needs at startup.  This is only done if you the Oracle interface is enabled. This insures that Suprtool is using calls only for your version of Oracle and provides a more stable environment.

If Suprtool fails to load the Oracle library, you will see the message:

  Warning: Your oracle library could not be loaded.

This means that any reference to Oracle calls will not function. If you do not have the Oracle option enabled in Suprtool you will not see the errors. It also may mean you need to add the path for the Oracle libraries either to your LD_LIBRARY_PATH or SHLIB_PATH variables. Suprtool will search for the library first in LD_LIBRARY_PATH and then SHLIB_PATH.

Previously, Suprtool would attempt to load the Eloquence libraries and report an error message if the libraries were not loaded. This is no longer the default behaviour. Suprtool will try to load the libraries function, however Suprtool will not report an error by default. To check if your libraries were loaded you can run Suprtool with the –lw option:

 ./suprtool -lw

Due to recent patches and changes in Oracle Security, older versions of Suprtool could not connect to some Oracle databases. We have therefore re-written all of the code to connect to databases to use more up to date OCI functions.

By default, Suprtool will now use this new method of connecting. This version also improves the parsing of the open command, allowing for 30 characters each for the username, password and dbname. This also allows for connection to databases on other servers.

   >Open Oracle username/password@dbname

Set Oracle OpenFix On. Set Oracle OpenFix forces Suprtool to use the olog call, when connecting to Oracle databases. This option should no longer be necessary, now that the default is to use the new connection method.

Set Oracle OpenOld On  Set Oracle OpenOld forces Suprtool to use the orlon call, when connecting to Oracle databases. This should only be used if connection to Oracle 7 databases.

 

The Table command is now capable of reading files greater than 4Gb.

Suprtool now supports the Output=input command, whereby Suprtool sorts a file onto itself. [4.9]

Suprtool now writes out the sort information when using output=input and the file is self-describing. [4.9.01]


 Bugs Fixed

 

SPECIAL. The if command would fail with and error if a field started with the SPECIAL keyword and if the field was on the right side of the equation.

BASE Command. The Base command would not parse the database name if it was preceded by a command that did not have any parameters and a previous database was open. (Itanium Build 2)

Edit Function. The $edit function would replace a numeric with a colon if the edit mask  had a different number of decimal places than the item had and the last number to be rounded was a nine..

 

Table Command. Suprtools Table command would fail with Error: Sorted file is not in the correct sequence, in some cases.

Chain command. Suprtool chain command now handles J2 TPI keys in Master datasets.

Open Command. Open Oracle could not parse a dbname@machine name with a “.” in the name.

Open Command. Open Oracle did not correctly parses three tokens in the Open command when each token was separated by spaces.

 

List Command. Suprtool would not get the proper records size and foptions from FOPEN/FGETINFO of SUPRLIST under AMXW. This would cause the List command to fold lines at column 80.

 

Total Command. Total $file did not work properly in Suprtool for AMXW.

Input Command.  KSAM input files were not opened with ;shr;lock.

STExport. STExport did not handle files with 256 fields in an SD file.

 

Base Command. Suprtool for AMXW would not close the previously open database if a database name was specified on the base command.

File System errors. Suprtool for AMXW would fail when attempting to get a file system error message from AMXW.

 

Dateline Intrinsic. Suprtool for AMXW build version had a conflict with Dateline intrinsic in a future version of AMXW.

AMXW Shell. Suprlink and STExport had an issue detecting the AMXW shell in some versions of AMXW.

Set Filecode. Set Filecode 0 will work if Set UserLabels is set to off.

Reset Output. Reset Output would not properly reset the output filename in HP-UX and AMXW versions of Suprtool.

Set Stat on. Set stat on did not look at the correct flag when being parsed.

Output to Stdlist. Suprtool would fail with Fgetinfo failure when output is to stdlist (out *) and sort is being utilized.

Record Size. Suprtool for AMXW would use the file size stored in the SD label as opposed to the actual physical file size that AMXW uses. See the compatibility section for more information.

Fpoint. Suprtool for AMXW did not properly error check on the FPOINT call when appending to an output file.

 

$lookup with data. If the data item used in data portion of  a $lookup function was 8 bytes or greater in length, type display or byte, the if command would fail with an arithmetic stack error.

VarsubCompat. Set VarsubCompat did not work in STExport and the default was set to on.

Error handling. Error handling has been improved when creating or reading large files in STExport and Suprlink.

 

Fastread. Suprtool for HP-UX would fail  with a DBGET failure on a directed read if fastread was on and if the record number specified did not have a record in the slot previous to the start record number.

XML. STExport did not properly convert compound items other than the first occurrence.

Suprtool2. Suprtool2 would fail to detect the ROBSUPR variable even if set in some cases.

Suprtool2 for HP-UX. Suprtool2 would abort with Signal 11 if the ROBSUPR variable was not set and thousands of invocations of Suprtool, thru the Suprtool2 interface. (5.0)

Real Numbers.  Suprtool for HP-UX would incorrectly treat “R” (real and long) fields as Real and Long when it should have treated and mapped them to Ieee. (5.0)