Change Notice
Doc-To-Help Standard Manual
by Robelle Solutions Technology Inc.
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,
Robelle Solutions Technology Inc.
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
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.
· 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
· 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,
>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,
>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/.
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
http://www.robelle.com/disaster/
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.
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,
>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”
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
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]
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)