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

 


 

 

Introducing Suprtool Version 5.2

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.

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

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


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

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.

 


Enhancements in Version 5.1.02

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: 0  Bytes: 30

 

    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, 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

 

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

 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

 

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.


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.

.

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.