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...................................................................................................................................... 8
Itanium vs PA_RISC.............................................................................................................................. 8
Compatibility......................................................................................................................................... 10
Itanium
Compatibility.......................................................................................................................... 11
CPU Serial Number (uname)............................................................................................................... 11
Documentation...................................................................................................................................... 11
Installation 12
Overview................................................................................................................................................. 12
Installation Instructions....................................................................................................................... 12
Installation Assistance.......................................................................................................................... 12
Enhancements in
Version 5.2 13
Introduction............................................................................................................................................ 13
ZonedFix................................................................................................................................................. 13
PassShift.................................................................................................................................................. 13
List FormFeed........................................................................................................................................ 13
Itanium.................................................................................................................................................... 13
Enhancements in
Version 5.1.02 15
Introduction............................................................................................................................................ 15
Extended Names................................................................................................................................... 15
Set SDEXtname On |
Off..................................................................................................................... 15
Debug Information............................................................................................................................... 15
$stddate($days(a))................................................................................................................................ 16
TPI-keys.................................................................................................................................................. 16
Z type TPI-keys..................................................................................................................................... 17
ROBELLE_LP....................................................................................................................................... 17
VarsubDebug.......................................................................................................................................... 17
VarsubCompat...................................................................................................................................... 18
If $lookup............................................................................................................................................... 18
Multiple Literal
Compares................................................................................................................... 19
Enhancements in
Version 5.0 20
Base and Open
Commands................................................................................................................ 20
Set HPUXCmdErr
“<string>”.............................................................................................................. 20
Set SDEXtname On |
Off..................................................................................................................... 21
Set VarsubCompat
On | Off................................................................................................................ 21
Dynamic Loading.................................................................................................................................. 21
Set ItemLock
<fieldname>.................................................................................................................. 22
Dynamic Load
Warnings..................................................................................................................... 22
Set RealMap On |
Off........................................................................................................................... 22
Bugs Fixed 23
Bugs Fixed In
Suprtool 5.2.................................................................................................................. 23
Bugs Fixed In
Suprtool 5.1.02............................................................................................................. 23
Bugs Fixed In
Suprtool 5.1.01............................................................................................................. 23
Bugs Fixed In
Suprtool 5.0.15............................................................................................................. 23
Bugs Fixed In
Suprtool 5.0.14............................................................................................................. 23
Bugs Fixed In
Suprtool 5.0.12............................................................................................................. 24
Bugs Fixed In
Suprtool 5.0.11............................................................................................................. 24
Bugs Fixed In
Suprtool 5.0.10............................................................................................................. 24
Bugs Fixed In
Suprtool 5.0.................................................................................................................. 24
Use Suprtool/UX to read, select, and sort data from Oracle, Allbase and Eloquence databases and data files with fixed-length records. Suprtool/UX is designed to be similar to Suprtool for MPE while providing necessary HP-UX features.
Suprlink/UX 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.
·
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. (Itanium
Build 2)
·
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.
·
Suprtool now has the command
set list formfeed on, which will put a formfeed at the end of the file when
using the list command with the file option. This allows multiple reports to be
written to one file and have them line up on a page break.
· Suprtools $edit function now accepts the colon character as a delimiter character in order for edit masks for time fields.
· Suprtools if command would not allow a field name starting with SPECIAL if it was on the right side of the equation.
·
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 olon 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.
·
Suprlink had trouble with
linking two files with the new SD Extended information in some cases.
·
Open Oracle could not parse a
machine name with a “.” in the name.
· Suprtool chain command now handles J2 TPI keys in Master datasets.
· Open Oracle now correctly parses three tokens in the Open command.
·
Support for extended names in
Suprtool and Suprlink.
· STExport did not handle files with 256 fields in an SD file.
· Suprtool would not close the previous database when a base command is issued with a database name specified.
· Suprtool can now execute the if and extract expression $stddate($days(a) + 10) in one task.
· Suprtool now supports stand-alone Z type TPI keys or Eloquence indexes.
· Reset Output did not correctly re-initialize the Output file name.
· Set Stat on did not look at the current value properly when parsing.
· Suprtool now allows you to specify the “lp” program by setting the variable ROBELLE_LP.
· 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.
· 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 for HP-UX would abort with Signal 11 if the ROBSUPR variable was not set and thousands of invocations of Suprtool, thru the Suprtool2 interface. (5.0)
· Suprtool2 would write line feeds to the stdin file at 128 bytes if the command line write exceeded 128 bytes. (5.0)
· Suprtool would use the incorrect record size when writing out records directly from an Oracle table and with Set Oracle integer on or Set ifouroutput on.
· Set RealMap has been added to control if Suprtool for HP-UX maps Real Numbers to Ieee. The default is to do the mapping.
· 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.
· Set HPUXCMDERR allows user to configure which commands are not considered fatal errors when running in batch. (4.9.06)
· The $split function would abort on some systems if the $split character was the last character in the string. (4.9.06)
· Suprtool now checks that the respective libraries have been loaded for the Open command for Oracle, and the Base command for Eloquence. (4.9.06)
· Suprtool has had some groundwork done for a new enhancement for fieldnames up to 32 characters to be supported in SD files. (4.9.05)
· Suprtool for HP-UX version 4.9.04 had calls to it’s internal timer call information disabled which made progress messages display inaccurate wall time statistics. (4.9.05)
· Suprtool for HP-UX, 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 HP-UX would occasionally fail with mmap errors in some environments. (4.9.04)
· The Base command on it’s own did not close the current database like it did on MPE. (4.9.04)
· Set varsubcompat flag has been added to control how variable substitution behaves on HP-UX. (4.9.04)
· STExport would fail if the input file did not have any line feeds and the XML command would in effect. (4.9.04)
· Oracle load warning messages are no longer printed by default. (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 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. (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 HLIB_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.
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.
Suprtool/UX 4.9 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 Dynamic loading version of Suprtool the option is set to off.
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. The first and most often utilized is the Download instructions. You can find the HP-UX download install instructions here:
http://www.robelle.com/downloads/install-sxprod.html
Tape installation instructions can be
found here:
http://www.robelle.com/support/install/tape/sxprod.html
If you have any questions or run into any
problems, please call us. Technical support is available on weekdays from
option to tide you over until business hours. Instructions for this are available at:
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.1.02.
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 now has the command Set List FormFeed On, which will enable Suprtool to write a form feed to the list file at the end of each task. This way if you append an additional report to the list file, the next report and ist listed out the next report will start on a page break.
set list formfeed on
in myfile
list file myrept
xeq
in newdata
list file myrept append
xeq
This set List command is the ONLY
Set command that does not get reset between each task.
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
and Suprlink now have a new optional
extended name format for Self-Describing files. Not all portions of Suprtool
and Suprlink handle the new extended name format, however, not all portions of
Suprtool and Suprlink support the extended name feature.
The
Suprtool List command does not utilize the extended name.
Suprlink
does not use the full extended names for key items, but rather uses the regular
truncated name just as it did previously.
Suprtool
now creates SD files with “extended names” when
you set SDEXtname on. By default Suprtool for HP-UX will behave as
normal and truncate field names at 16 characters. If SDEXtname is on, Suprtool
will write out the fully defined field name or if the input source is Oracle
the full field name, (up to 32 characters), to the end of the .sd file.
Suprtool will use the “extended” names whereever possible.
The
Suprtool List command does not take advantage of the new extended names at this
time.
Suprlink
will merge the extended names and create the proper information in the output
SD file, but will not use the extended name when linking two files.
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
The
length of a key is returned by dbinfo-833 and Suprtool will report in the form
command the length of a stand-alone key. (SI-PRODUCT-NO is the path that is now
supported) Superdex has a variable that impacts the length that is returned for
a given key, and that is SICOGNOS. Suprtool will account for the length
difference on the chain command but will show the unadjusted length. Normally
Superdexs dbinfo-833 would show a length of 12 for a Zoned-decimal tpi-key with
a length of 8, if SICOGNOS is set to 1, then Superdex will return 8.
>form d-inventory
Database: store
TPI: Eloquence B.07.10 B.07.10.04
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)
SUPPLIER-NO Z8 19 (!M-SUPPLIER)
UNIT-COST P8 27
Capacity: 2472 (0), 0, 1, 2147483647 Entries: 13
Highwater:
Additional Third-Party Indexes:
Z-PRODUCT-NO Z8 G
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.
Typically
when printing with the list command inside Suprtool, (or Qedit for that
matter), and you are sending the output to a printer device, the “lp” program
is used to accept the data from a pipe. In some cases third party spoolers
employ their own “lp” program.
If
the ROBELLE_LP variable is set to the name of the third-party lp program, Suprtool
(and Qedit) will use that program if the output is not to a file. This variable
must be set before Suprtool is run.
export ROBELLE_LP=/opt/thirdpartyspooler/llp
./suprtool
in somefile
list device LP
exit
If the variable is not set
then Suprtool uses /usr/bin/lp as it has previously.
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.1
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.
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”
If
the Eloquence and Oracle libraries are not loaded the Base and Open commands
will print an error saying that the appropriate libraries were not loaded when
the Base and Open commands are entered. Previously, Suprtool would simply
abort.
HP-UX
and MPE are different in terms of the errors that are generated with some file
operations that are impacting scripts that are converted from MPE. The most
common example is the “purge” or rm of a file that does not exist.
On
MPE this is not considered a hard error but rather a warning. HP-UX does not
have this granularity and is just considered an error. The net result of this
is that a script will stop working if
the rm of the file is done inside Suprtool for HP-UX. For example the ksh
returns an error code of 2 if you attempt to remove a file that does not exist.
rm file1x
rm: file1x non-existent
echo $?
2
We have added Set HPUXCmdErr command which will tell Suprtool to ignore errors from certain OS commands. Please note that this does not impact Suprtool’s internal checking of Suprtool commands.
For example if you want Suprtool to
ignore the common occurrence of stopping a script when an “error” occurs you
just need to set the string in HPUXCmdErr as follows:
/opt/robelle/bin/suprtool << \!EOD
set hpuxcmderrs "rm,:rm,!rm"
:rm file1x
rm file1y
!rm file1y
exit
!EOD
If the command returns an error Suprtool
will check to see if it was an rm,:rm or !rm command and ignore the error.
Groundwork has been done for
support of fieldnames up to 32
characters and have that information in SD files. This has been completed in
Suprtool, however, it has been disabled for this release until Suprlink can be
enhanced for the pre-release 5.0.10.
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
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
Previously, Suprtool would treat an “R” type field in an Eloquence database as an R type while the data inside Eloquence was 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.
This will also include Self-Describing files as being the input source. Suprtool will still not allow the definition of a Real or Long datatype.
Consequently STExport will now support
items in SD files that are condidered R type, however it correctly will map
them to IEEE.
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.
.
Suprlink. Suprlink had trouble with linking two files with the new SD Extended information 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.
STExport. STExport did not handle files with 256 fields in an SD file.
Base Command. The base command did not close the previously open database when a database name is specified.
Reset Output. Reset Output did not properly re-initialize the output filename.
Set Stat On. Set Stat On was not looking at the correct variable when parsing. Although this really has no impact on the functionality of Suprtool or Set Stat on, it is documented for posterity.
$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
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 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)
Suprtool2 for HP-UX. Suprtool2 would write line feeds to the stdin file at 128 bytes if the command line write exceeded 128 bytes. (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)
Set
IfourOutput.
Suprtool would use the incorrect record size when
writing out records directly from an Oracle table and with Set Oracle integer
on or Set ifouroutput on.