home *** CD-ROM | disk | FTP | other *** search
/ ftp.robelle3000.ai 2014 / 2014.06.ftp.robelle3000.ai.tar / ftp.robelle3000.ai / changes / supr4p6ix.txt < prev    next >
Text File  |  2002-10-23  |  46KB  |  1,180 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                              SUPRTOOL Version 4.6
  7.  
  8.  
  9.                       Database Handyman for the HP e3000
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                                  Change Notice
  16.                            Installation Instructions
  17.                           Addendum to 4.3 User Manual
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.                             Suprtool         4.6
  25.                             Dbedit           4.6
  26.                             Suprlink         4.6
  27.                             STExport         4.6
  28.                             Speed Demon      4.6
  29.                             Suprtool2        4.8
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.                          Robelle Solutions Technology
  37.                           Suite 201, 15399-102A Ave.
  38.                          Surrey, B.C.  Canada V3R 7K1
  39.  
  40.  
  41.  
  42.                             Phone:  (604) 582.1700
  43.                              Fax:  (604) 582.1799
  44.  
  45.                          E-mail:  support@robelle.com
  46.                              Web:  www.robelle.com
  47.  
  48.                                   March 2002
  49.           Program  and  Manual  Copyright  Robelle Solutions Technology Inc.
  50.           1981-2002
  51.  
  52.  
  53.           Permission is granted  to  reprint  this  document  (but  not  for
  54.           profit), provided that copyright notice is given.
  55.  
  56.  
  57.  
  58.  
  59.           QEDIT  and SUPRTOOL are trademarks of Robelle Solutions Technology
  60.           Inc.  Other product and company names mentioned herein may be  the
  61.           trademarks of their respective owners.
  62.  
  63.  
  64.  
  65.    Introducing Suprtool Version 4.6
  66.  
  67.  
  68.                *  Highlights
  69.                *  Compatibility
  70.                *  CPU Serial Number and CPU Name
  71.                *  Compatibility Mode vs. Native Mode
  72.                *  Documentation
  73.                *  Documentation Formats
  74.  
  75.  
  76.           Suprtool  provides fast access to your data on the HP e3000.  With
  77.           Suprtool, you can perform many necessary DP functions easily, with
  78.           just  a few simple commands.  At Robelle we are constantly working
  79.           on your enhancement requests so that we can include them  when  we
  80.           release  an  updated  version  of  Suprtool.   This  change notice
  81.           provides you with detailed installation steps and a description of
  82.           Suprtool's new features.
  83.  
  84.  
  85.  
  86.    Highlights in Version 4.6
  87.  
  88.  
  89.           *  Suprtool  incorrectly  rounded  Real  and  Long  target data in
  90.              arithmetic expres
  91.  
  92.           *  The Table command incorrectly gave an  error  message  in  some
  93.              cases when data was loaded with key values.
  94.  
  95.  
  96.  
  97.    Highlights in Version 4.5
  98.  
  99.  
  100.           *  Support for "well-formed" XML in STExport.
  101.  
  102.           *  Suprtool,  STExport  and  Suprlink can now have warnings turned
  103.              off when run from batch with the set warnings off command.
  104.  
  105.           *  CM  to  NM   switches   in   Suprtool   have   been   decreased
  106.              significantly.
  107.  
  108.           *  Suprtool  now  has  the ability to load and extract data from a
  109.              Table.
  110.  
  111.           *  Loading a Table is now up to 28% faster than previous versions.
  112.  
  113.           *  Table  lookup operations are now up to 33% faster than previous
  114.              versions.
  115.  
  116.  
  117.    Highlights in Version 4.4
  118.  
  119.  
  120.           *  Suprtool now supports string expressions in  both  the  Extract
  121.              and  If commands.  String expressions allow users to select and
  122.              format  their  byte-type  data  in  numerous  new  ways.   This
  123.              includes  combining  byte-type  fields together, upshifting and
  124.              downshifting data, and trimming  blanks.   These  new  features
  125.              combine  to  reduce  the  number  of tasks needed to select and
  126.              format the data the way you need it.
  127.  
  128.           *  Suprtool, Speed Demon and HowMessy now support the new database
  129.              limits  of  1,200  items,  240  sets  and 64 paths for a master
  130.              dataset.
  131.  
  132.           *  Suprtool now supports the new Entrynumber format for  databases
  133.              available in IMAGE version C.09.00 and later.
  134.  
  135.           *  Suprtool now supports 5,100 bytes of constants to be extracted.
  136.              (only NM and HP-UX)
  137.  
  138.           *  Suprtool, Suprlink and STExport now have the ability to  create
  139.              their own persistent redo stacks.  The contents of these stacks
  140.              can be recalled not only in the current session, but also in  a
  141.              future session.
  142.  
  143.  
  144.  
  145.    Compatibility
  146.  
  147.           Suprtool,   Speed  Demon,  STExport,  Suprcall  and  Suprlink  are
  148.           compatible with MPE/V, MPE XL, and MPE/iX,  including  MPE/iX  6.5
  149.           and MPE/iX 7.0.
  150.  
  151.  
  152.    CPU Serial Number and CPU Name (HPSUSAN & HPCPUNAME)
  153.  
  154.           This  program  runs  only  on  CPUs whose serial numbers have been
  155.           encoded ("showvar hpsusan" on MPE/iX).  This program may  also  be
  156.           encoded  with  your  HPCPUNAME values.  If it fails to run and you
  157.           get an "invalid HPCPUNAME" or  "invalid  HPSUSAN"  error  message,
  158.           contact Robelle for assistance.
  159.  
  160.  
  161.    Compatibility Mode vs. Native Mode
  162.  
  163.           Throughout   this  change  notice  and  in  all  of  the  Suprtool
  164.           documentation, there are  references  to  compatibility  mode  and
  165.           native mode.  If you are on a Classic HP e3000 (i.e., not MPE/iX),
  166.           you can use the compatibility-mode version of Suprtool.   Our  job
  167.           streams   automatically  install  the  correct  version  for  your
  168.           machine.  We use the terms MPE XL and  MPE/iX  interchangeably  in
  169.           our documentation.
  170.  
  171.  
  172.    Documentation Formats
  173.  
  174.           The  user  manuals  for  Suprtool  and  its  components  are  also
  175.           available in the several popular formats such as PDF and  HTMLHelp
  176.           at:
  177.  
  178.              http://www.robelle.com/library/manuals/
  179.  
  180.  
  181.  
  182.    Installation of 4.6
  183.  
  184.  
  185.           The  following installation instructions are for existing Suprtool
  186.           users who are installing a new version  in  the  Robelle  account.
  187.           Please use the instructions from this change notice instead of the
  188.           user manual because  the  change  notice  always  has  the  latest
  189.           version.  The whole process should take about 30 minutes, assuming
  190.           no one uses Suprtool or its components during the installation.
  191.  
  192.           To install this update of Suprtool, follow these steps:
  193.  
  194.           1. Restore the new files from tape.
  195.  
  196.           2. Upgrade the structure of the Robelle account.
  197.  
  198.           3. Install the proper program files (NM or Classic).
  199.  
  200.           4. Install Speed Demon in the system SL (only Classic).
  201.  
  202.           5. Install  the  Suprtool2  interface  in  the  system  SL   (only
  203.              Classic).
  204.  
  205.           6. Limit Suprtool's run time priority (optional).
  206.  
  207.           7. Purge the installation files (optional).
  208.  
  209.  
  210.    Ecometry Users
  211.  
  212.           Users  of  the  Ecometry  application need to use the installation
  213.           instructions supplied by Ecometry Corporation.  Those instructions
  214.           have extra steps for updating the Ecometry code accounts.
  215.  
  216.           You  will  find  the  Ecometry  version  of  these instructions at
  217.           http://www.robelle.com/ecometry/
  218.  
  219.  
  220.    Installation Assistance
  221.  
  222.           If you have any questions or run into any  problems,  please  call
  223.           us.   Technical  support is available on weekdays from 7 a.m. to 4
  224.           p.m. Pacific time.  Technical support can  also  be  obtained  via
  225.           e-mail at:  support@robelle.com
  226.  
  227.  
  228.    Important Note about Passwords
  229.  
  230.           None  of  the  jobs that we supply have passwords in them.  Before
  231.           streaming a job, you might have to add your system's passwords  to
  232.           the  first  line.  Users of MPE XL 3.0 and later do not have to do
  233.           this because the operating system prompts for  missing  passwords.
  234.           The  same  is true for some MPE V users who have security software
  235.           that inserts passwords.  Most MPE V users have to edit  the  jobs.
  236.           For  example,  if the system manager logon password is Qwerty, you
  237.           would do the following:
  238.  
  239.                :editor
  240.                HP32201A.07.22 EDIT/3000
  241.                /text robelle.pub.sys
  242.                FILE UNNUMBERED
  243.                /modify 1
  244.                MODIFY     1
  245.                !job robelle,manager.sys,pub;hipri;jobq=SUPRTOOL
  246.                                        i/qwerty
  247.                !job robelle,manager.sys/qwerty,pub;hipri;jobq=SUPRTOOL
  248.  
  249.                /keep robtemp
  250.                /exit
  251.                END OF SUBSYSTEM
  252.                :stream robtemp
  253.                :purge robtemp
  254.  
  255.  
  256.    STREAMX Users
  257.  
  258.           Users of STREAMX, a part of SECURITY/3000 from VESOFT  Inc.,  must
  259.           set  a  Job  Control  Word  before  streaming jobs.  This prevents
  260.           STREAMX from generating an error if the Robelle account  does  not
  261.           yet exist.  For example,
  262.  
  263.                :setjcw streamxtempnonest 1
  264.                :stream robelle.pub.sys
  265.  
  266.  
  267.    Step 1:  Restore the Files
  268.  
  269.           You begin by restoring all the files from the tape.
  270.  
  271.                :hello manager.sys
  272.                :file   rtape;   dev=tape                   {use  appropriate
  273.           device}
  274.                :restore *rtape; @.@.robelle; create  {restore everything}
  275.  
  276.            The Suprtool program files are located in the Pub group of the
  277.            Robelle account.  At this point in the installation process,  the
  278.           files
  279.            do  not  yet have the correct names.  The install job assigns the
  280.           proper
  281.            names to the program files.
  282.  
  283.  
  284.    Step 2:  Set Up the Robelle Account
  285.  
  286.           Even if you already have the Robelle account, you must stream  the
  287.           Robelle  job to ensure that the Robelle account and all its groups
  288.           have the proper security and capabilities.
  289.  
  290.                :stream robelle.job.robelle
  291.  
  292.           When the job stream is finished, it will send you a message.   The
  293.           job removes the password from the Robelle account.  Stay logged on
  294.           as Manager.Sys and put a password on the Robelle account.  If  you
  295.           are upgrading your Robelle account, use the old password.
  296.  
  297.                :altacct robelle;pass=hardpass    {hard to guess}
  298.  
  299.           Note  that during installation we add OP capability to the Robelle
  300.           account.  After installing Suprtool, you have the option to remove
  301.           OP capability.
  302.  
  303.  
  304.    Step 3:  Install Suprtool into Production
  305.  
  306.           Our  installation job installs Suprtool, STExport, Suprlink, Speed
  307.           Demon, and the Suprtool2 interface.  No one can use these programs
  308.           during the installation.  Before you stream this installation job,
  309.           warn people not to use these programs for a while.
  310.  
  311.                :hello mgr.robelle
  312.                :warn @;please exit from Suprtool and Suprlink NOW!
  313.                :stream install.suprjob
  314.  
  315.           Once Suprtool has  been  installed,  check  the  installation  job
  316.           $stdlist.    If   anyone  was  either  using  Suprtool,  STExport,
  317.           Suprlink, or Speed Demon, or  attempting  to  back  them  up,  the
  318.           installation  job will fail.  Chase away any users and ensure that
  319.           a backup is not in progress,  then  stream  the  installation  job
  320.           again.
  321.  
  322.           The installation job renames your current versions of Suprtool and
  323.           its components to the PubOld group of the Robelle account.  If you
  324.           need  to  move  these  versions  back  into  production,  use  the
  325.           Previous.Suprjob job stream.
  326.  
  327.           You can now access Suprtool by entering
  328.  
  329.                :run suprtool.pub.robelle
  330.  
  331.  
  332.    Optional Installation Steps
  333.  
  334.           On MPE/iX your installation should be complete.   If  you  have  a
  335.           copy  of  Speed  Demon  or  the Suprtool2 interface in your own XL
  336.           files, you will have to update them with the new versions (use the
  337.           instructions   in  the  Speed  Demon  and  Calling  Suprtool  user
  338.           manuals).
  339.  
  340.           To use the new versions on MPE V, you still need to install  Speed
  341.           Demon  and  Suprtool2 in the system SL.  MPE/iX users must also do
  342.           this  if  they  are  calling  Speed  Demon   or   Suprtool2   from
  343.           compatibility-mode  programs.  With few changes to Speed Demon and
  344.           Suprtool2,  you  can  safely  ignore  them  for  this  version  of
  345.           Suprtool.
  346.  
  347.  
  348.  
  349.    Step 4:  Speed Demon/V Installation (optional)
  350.  
  351.           To  use  the  new  features of Speed Demon/V, you must install the
  352.           latest  version  in  the  system  SL.   You  should   follow   the
  353.           installation  instructions  in the Speed Demon user manual.  These
  354.           instructions assume that you have  used  the  Install.Suprjob  job
  355.           stream  to  move Suprtool and its components into the Pub group of
  356.           the Robelle account.
  357.  
  358.                :stream demon.suprjob.robelle
  359.  
  360.  
  361.    Step 5:  Suprtool2 Interface Installation (only Classic)
  362.  
  363.           The Suprtool2 interface has  been  revised.   On  MPE V  you  must
  364.           re-install the interface.  If you do not have the latest Suprtool2
  365.           interface, programs that attempt to use totals from Suprtool2 will
  366.           fail.   You  can install this interface without recompiling any of
  367.           your existing programs.
  368.  
  369.  
  370.    System SL Installation
  371.  
  372.           To install the latest Suprtool2 interface in the  system  SL,  use
  373.           our standard installation job:
  374.  
  375.                :stream suprcall.suprjob.robelle
  376.  
  377.  
  378.    User SL or XL Files
  379.  
  380.           If  you  have  a copy of the Suprtool2 interface in your own SL or
  381.           XL, you will need to update it.  For instructions  on  how  to  do
  382.           this, consult the user manual for Calling Suprtool.
  383.  
  384.  
  385.    Step 6:  Limit Suprtool's Run Time Priority (optional)
  386.  
  387.           Some  system  managers  like to limit the amount of resources that
  388.           Suprtool consumes.  One way to do this is by running  Suprtool  in
  389.           the D queue.  You can configure this using HP's Linkedit program.
  390.  
  391.                :linkedit
  392.                >altprog suprtool;maxpri=ds
  393.                >exit
  394.  
  395.           By  forcing  Suprtool  to always run in the lower queue (even when
  396.           Suprtool runs on-line),  it  competes  less  with  on-line  users,
  397.           because  most  users  run  in the C queue.  System managers should
  398.           restrict the priority of Suprtool only if they are  familiar  with
  399.           MPE process queues and the Tune command.
  400.  
  401.  
  402.    Step 7:  Purge Installation Files (optional)
  403.  
  404.           The easiest way to clean up after an installation is to stream the
  405.           Cleanup.Purgejob.Robelle job.  This job saves you  disc  space  by
  406.           purging  the installation files.  It does not purge the files that
  407.           are necessary to run the software.
  408.  
  409.  
  410.  
  411.    Enhancements in Version 4.6
  412.  
  413.  
  414.           We constantly provide  Suprtool  users  with  new  features.   The
  415.           following section describes the new enhancements to Suprtool since
  416.           the last major release.
  417.  
  418.  
  419.    Enhancements in 4.6
  420.  
  421.           There are no enhancements in this version of Suprtool on MPE.  The
  422.           release  was  primarily  to  fix  a  bug  with Real numbers and to
  423.           release  the  HP-UX  version  that  supports  HP   Eloquence   the
  424.           Image-like database on HP-UX.
  425.  
  426.  
  427.  
  428.    Bugs Fixed in Version 4.6
  429.  
  430.  
  431.    Real and  Long  Arithmetics.   Suprtool incorrectly rounded Real and Long
  432.           target data in arithmetic expressions
  433.  
  434.  
  435.    Table Command with Data.   The Table command would incorrectly report  an
  436.           error in some cases when data was loaded in a Table.
  437.  
  438.  
  439.    Enhancements in Version 4.5.
  440.  
  441.  
  442.           We  constantly  provide  Suprtool  users  with  new features.  The
  443.           following section describes the new enhancements to Suprtool since
  444.           the last major release.
  445.  
  446.  
  447.    CM to NM Switches Decreased
  448.  
  449.           Suprtool  has  dramatically  decreased  the  number  of  CM  to NM
  450.           switches.  In our internal testing we have  seen  reductions  from
  451.           between 8 and 24 times, depending on the task.
  452.  
  453.  
  454.    Set Warnings Off
  455.  
  456.           Suprtool,  STExport  and  Suprlink  have  a new command called Set
  457.           Warnings which when  turned  off  will  no  longer  print  warning
  458.           messages if you are running in batch.
  459.  
  460.           In  Suprtool,  you  can  simulate  batch mode with the command Set
  461.           Interactive off.  If Set Warnings is off, Suprtool will honour the
  462.           value of the Interactive setting, provided Set Warnings off is set
  463.           after the Set Interactive command.
  464.  
  465.           This feature is for those customers that  have  software  packages
  466.           that  do analysis of your $STDLISTs.  By preventing the "Warning:"
  467.           messages from being printed, these Suprtool scripts will  not  get
  468.           flagged as jobs that failed.
  469.  
  470.  
  471.    Loading Tables Performance Improvement
  472.  
  473.           Suprtool  has  the ability to load key-values into a table via the
  474.           Table command.  The loading of the key-values into the  table  has
  475.           been improved by up to 28%.
  476.  
  477.  
  478.    If $Lookup Performance
  479.  
  480.           The  performance  of tasks with an if $lookup operation have had a
  481.           performance boost of up to 33%.
  482.  
  483.  
  484.    Extract from a Table
  485.  
  486.           Suprtool now has the ability to load data into  a  table  via  the
  487.           Table  command,  and  extract that data out of the table using the
  488.           Extract command.
  489.  
  490.           The Table command (MPE/iX only) now allows for data to  be  loaded
  491.           along with matching key values.
  492.  
  493.              >table table-name,key-field,file,filename,&
  494.               data(field1,field2,...)
  495.  
  496.           An  example  of loading two data fields called cost and desc along
  497.           with the key field of part into a table would be:
  498.  
  499.              >table partab,part,file,partin,data(cost,desc)
  500.  
  501.           You can specify up to 20 data fields as long as the total size  of
  502.           the key fields and data does not exceed 256 bytes.  The Table file
  503.           must be Self-Describing (Link) in order to use the data option.
  504.  
  505.           When loading data  into  a  table,  Suprtool  will  eliminate  the
  506.           duplicate  entries  based on the key value, so the associated data
  507.           values may not be loaded into the table.
  508.  
  509.           The Extract command can utilize the  $lookup  function  to  return
  510.           data.  The syntax for the $lookup function would look as follows:
  511.  
  512.            >extract target = $lookup(table-name,key-field,data-field)
  513.  
  514.           The  Table  name,  key-field and data-field are all defined by the
  515.           Table command, which must be input before the Extract command.
  516.  
  517.           A classic example: your boss comes to  you  with  a  list  of  new
  518.           prices  and  descriptions  for  certain parts for your Part-Master
  519.           dataset.
  520.  
  521.           The basic steps to  do  this  are  to  load  the  new  prices  and
  522.           descriptions  into  a Table, index by the product number (prodno),
  523.           then Extract the price field from each record and replace it  with
  524.           a $lookup on the table.
  525.  
  526.           Here is the Suprtool code:
  527.  
  528.            >table newprices,prodno,file,bosslist,data(price,desc)
  529.            >get part-master
  530.            >if $lookup(newprices,prodno)
  531.            >update
  532.            >extract price = $lookup(newprices,prodno,price)
  533.            >extract desc = $lookup(newprices,prodno,desc)
  534.            >xeq
  535.  
  536.           We  do  the  If  $lookup  to  select only the parts which have new
  537.           prices, then do Extract with $lookup to replace the existing price
  538.           with  a  new  one.  The Update command forces a database update on
  539.           each selected record and must come before the Extract command.
  540.  
  541.           If you did not specify the If $lookup, then records that  did  not
  542.           qualify  under  the  $lookup  function  in the extract field, will
  543.           result in zeroes for any numeric field and  spaces  for  any  byte
  544.           type fields.
  545.  
  546.  
  547.    XML Command
  548.  
  549.           STExport  will  now  generate "well-formed" XML output with just a
  550.           few commands.
  551.  
  552.            :run stexport.pub.robelle
  553.            $input file1sd
  554.            $xml
  555.            $output myxml
  556.            $xeq
  557.  
  558.           These four simple commands will generate the following  file  that
  559.           packages  such  as  XMLSpy  will consider to be "well-formed" XML.
  560.           The result of such an STExport task will look as follows:
  561.  
  562.            <?xml version='1.0'?>
  563.            <file>
  564.            <record>
  565.            <CITY>Los Altos</CITY>
  566.            <CREDIT-RATING>100000</CREDIT-RATING>
  567.            <CUST-ACCOUNT>4003302</CUST-ACCOUNT>
  568.            <CUST-STATUS>20</CUST-STATUS>
  569.            <NAME-FIRST>Ralph</NAME-FIRST>
  570.            <NAME-LAST>Perkins</NAME-LAST>
  571.            <STATE-CODE>CA</STATE-CODE>
  572.            <STREET-ADDRESS>Room 655</STREET-ADDRESS>
  573.            <STREET-ADDRESS>Los Altos     040033022</STREET-ADDRESS>
  574.            <ZIP-CODE>93002</ZIP-CODE>
  575.            </record>
  576.  
  577.            </file>
  578.  
  579.  
  580.           By default STExport will add  the  simplest  version  tag  at  the
  581.           beginning  of  the  file,  then  it  inserts a <file> and matching
  582.           </file> at the beginning and the end of the file.   Then  STExport
  583.           encloses  each  record  from  the  input  file  in  a <record> and
  584.           </record> tag.  Finally, the Self-Describing tags are added around
  585.           each field's data values and edited appropriately.
  586.  
  587.           Naturally  users  would  want options to customize and specify the
  588.           various options and tags themselves, in order to generate  a  file
  589.           that is acceptable to their tools.
  590.  
  591.           You can specify the "version" tag at the beginning of the XML file
  592.           with the following command:
  593.  
  594.            xml version "?xml version='1.0' encoding='ISO-8859-1'?"
  595.  
  596.           STExport will put the "<" and ">" around what is specified in  the
  597.           version  string.   In  addition,  you can customize the "file" and
  598.           "record" tags with the following simple commands:
  599.  
  600.            xml file "orders" record "orderdetail"
  601.  
  602.           You can enter multiple XML  commands  per  task  to  set  the  XML
  603.           options you require.
  604.  
  605.            $in file1sd
  606.            $xml version "?xml version='1.0' encoding='ISO-8859-1'?"
  607.            $xml file "Orders" record "Details"
  608.            $out myfile
  609.  
  610.           An  example  of  the  output generated by the above commands is as
  611.           follows:
  612.  
  613.             <?xml version='1.0' encoding='ISO-8859-1'?>
  614.             <Orders>
  615.             <Details>
  616.             <CITY>Los Altos</CITY>
  617.             <CREDIT-RATING>100000</CREDIT-RATING>
  618.             <CUST-ACCOUNT>4003302</CUST-ACCOUNT>
  619.             <CUST-STATUS>20</CUST-STATUS>
  620.             <NAME-FIRST>Ralph</NAME-FIRST>
  621.             <NAME-LAST>Perkins</NAME-LAST>
  622.             <STATE-CODE>CA</STATE-CODE>
  623.             <STREET-ADDRESS>Room 655</STREET-ADDRESS>
  624.             <STREET-ADDRESS>Los Altos    040033022</STREET-ADDRESS>
  625.             <ZIP-CODE>93002</ZIP-CODE>
  626.             </Details>
  627.             </Orders>
  628.  
  629.           In XML the tags that surrounded the data can not have any  special
  630.           characters  other  than  hyphen,  underscore  and period ("-","_",
  631.           ".").  So STExport replaces any of the invalid special  characters
  632.           with a "." by default.  You can change the default character to be
  633.           something else with the following set command:
  634.  
  635.             $Set xmltagchar "_"
  636.  
  637.           STExport will only allow the hyphen, underscore and period  to  be
  638.           set with this command.
  639.  
  640.           A  Document  Type  Declaration can be made at the beginning of the
  641.           file  via  the  !DOCTYPE  specification.   This  typically   tells
  642.           whatever  tool  that is parsing the xml file where the DTD for the
  643.           file resides.
  644.  
  645.           In STExport you can specify simple one-line doctype specs with the
  646.           following command:
  647.  
  648.            xml doctype '!DOCTYPE address-book SYSTEM "address-book.dtd"'
  649.  
  650.           This will write the doctype specification at the top of the output
  651.           file, directly after the XML version specification.
  652.  
  653.           More  complicated  and  lengthy  doctype  specifications  can   be
  654.           implemented  by  using  the filename option, whereby STExport will
  655.           append the contents of a named file  directly  after  the  version
  656.           specification.  The syntax can be simply:
  657.  
  658.             xml doctype myfile.xml
  659.  
  660.           All  of STExport's XML command options (version, doctype, file and
  661.           record) allow for a string to be passed  via  surrounding  quotes.
  662.           The  quotes  may be either single or double, but keep in mind that
  663.           if the string  is  to  contain  double  quotes,  then  you  should
  664.           surround the entire string with single quotes.
  665.  
  666.  
  667.           So  to summarize this new feature the following commands have been
  668.           added for XML support.  The XML command has the following options:
  669.  
  670.                XML
  671.                          VERSION "string"
  672.                          DOCTYPE "string" | <filename>
  673.                          FILE    "string"
  674.                          RECORD  "string"
  675.  
  676.           The  following set command has been added to aid in the conversion
  677.           of special characters in the tag:
  678.  
  679.             set xmltagchar "."
  680.  
  681.  
  682.    Bugs Fixed in Version 4.5
  683.  
  684.  
  685.    Dividing Zero by Zero.   Some division operations would result in a large
  686.           number  when  dividing  zero by zero if the target type was zoned,
  687.           packed or quad integer.
  688.  
  689.  
  690.    Divide Operations.   Suprtool could not properly convert the result of  a
  691.           division  operation  if  the  target  was  zoned or packed, in one
  692.           specific case.
  693.  
  694.  
  695.    Extract Character Constant.    If  you  had  a  extract  of  a  character
  696.           constant,  and if the constant specified was not completely filled
  697.           in for all of the positions in the length of the  field,  Suprtool
  698.           would would produce strange results.
  699.  
  700.  
  701.    Error Message.    The  error message on a failure to open the $stdin file
  702.           has been improved.
  703.  
  704.  
  705.    Define Command.   A warning message has been  added  in  the  case  where
  706.           fields  defined  as  non-standard  integers,  will  be  treated as
  707.           strings.
  708.  
  709.  
  710.    Extract Command   The error  message  that  prints  when  the  expression
  711.           specified  cannot  be  coerced/converted  into the target has been
  712.           improved.
  713.  
  714.  
  715.    If $Read Operations.   Suprtool would incorrectly  put  commands  entered
  716.           thru  the $read facility into the redo file or stack when executed
  717.           thru a Use file.
  718.  
  719.  
  720.    Table Command.   Suprtool would not hold on to a table in some cases when
  721.           the  hold  option  was specified in the table command.  The CM and
  722.           HP-UX versions of Surptool would not hold on to the correct  table
  723.           in some cases.
  724.  
  725.  
  726.    Verify Command.    Verify  Define  will  now show the correct information
  727.           when defining non-standard integers.
  728.  
  729.  
  730.    Variable Substitution.   Suprtool did  not  handle  resolving  of  system
  731.           variables that are defined with no value.
  732.  
  733.  
  734.    Variable Substitution.   Suprtool did not properly handle a variable that
  735.           was only a comment.
  736.  
  737.  
  738.    Enhancements in Version 4.4
  739.  
  740.  
  741.           Every year we provide  Suprtool  users  with  new  features.   The
  742.           following section describes the new enhancements to Suprtool since
  743.           the last major release.
  744.  
  745.  
  746.    IMAGE Limits
  747.  
  748.           Starting with MPE/iX 6.5  Express  2,  a  new  version  of  IMAGE,
  749.           C.09.00,  will  be  available.   This version of IMAGE, as well as
  750.           later versions, now supports 1,200  items,  240  datasets  and  64
  751.           paths  from  a  master  dataset.  The previous limits for a master
  752.           were 1,023 items, 199 datasets and 16 paths.
  753.  
  754.           Suprtool, Speed Demon, Dbedit and HowMessy now  support  this  new
  755.           version of IMAGE.
  756.  
  757.  
  758.    Large Datasets
  759.  
  760.           IMAGE  now  supports  datasets  larger than 80 GB.  In order to do
  761.           this, the IMAGE label was changed to keep track of records and the
  762.           pointers that hold them together.  Prior to version C.09.00, IMAGE
  763.           stored records in what is known as  Entryname  format.   In  IMAGE
  764.           version  C.09.00 and later, you can now select a new option called
  765.           the Entrynumber format.
  766.  
  767.           This change to IMAGE must be invoked  either  by  building  a  new
  768.           database  or  by converting a database with an HP-supplied utility
  769.           called Dbbigset.Pub.Sys.  You can read more about this  change  in
  770.           the  MPE/iX  6.5  Express  2  Communicator (available at www.docs.
  771.           hp.com) or get more details from the Robelle Web site.
  772.  
  773.           Suprtool has been enhanced to support this new internal change  to
  774.           IMAGE.   HowMessy  currently  returns an error when you attempt to
  775.           report on a dataset with this feature enabled, because  the  block
  776.           number  calculations  are  no  longer  relevant  for  this type of
  777.           database.  We are currently reviewing how best to  report  on  the
  778.           efficiency of databases that use this new format.
  779.  
  780.  
  781.    Extracting Constants
  782.  
  783.           Until  now,  Suprtool  was limited to 1,530 bytes of constants for
  784.           MPE/iX and HP-UX versions of Suprtool.  This limit  has  now  been
  785.           increased  to 5,100 bytes.  The MPE/V version of Suprtool is still
  786.           limited to 1,275 bytes.
  787.  
  788.  
  789.    Persistent Redo
  790.  
  791.           Commands entered at the Suprtool prompt  are  saved  in  something
  792.           called the redo stack.  You can recall commands from this stack by
  793.           using other commands such as Before, Do and Redo.  By default, the
  794.           redo  stack is stored in a temporary file and discarded as soon as
  795.           you exit Suprtool.  This temporary stack is not  preserved  across
  796.           Suprtool invocations.
  797.  
  798.           The  new  Set  Redo  command  assigns a permanent file to the redo
  799.           stack, allowing the stack to become available for future  Suprtool
  800.           invocations.   For  example,  to  assign  the  Myredo  file  as  a
  801.           persistent redo stack, enter
  802.  
  803.                >set redo myredo
  804.  
  805.           If the file does  not  exist,  Suprtool  creates  it.   Otherwise,
  806.           Suprtool  uses  the  existing  file.   All subsequent commands are
  807.           written to the persistent redo stack.  This setting is  valid  for
  808.           the  duration  of  the  Suprtool  session.   As  soon  as you exit
  809.           Suprtool, the setting is discarded.  Next time you  run  Suprtool,
  810.           you will get the temporary stack.
  811.  
  812.           If  the  file  name is not qualified, the redo stack is created in
  813.           the logon group and account.  This may be desirable if you want to
  814.           have  separate  stacks.   If  you  want  to  always  use  the same
  815.           persistent stacks, you should qualify the name.
  816.  
  817.           The Verify command shows which stack is currently in use.   If  it
  818.           shows  <temporary>,  then  Suprtool  is  using  the default stack.
  819.           Anything else is the name  of  the  file  used  on  the  Set  Redo
  820.           command.
  821.  
  822.           If  a  file  with  the  specified  name already exists, it must be
  823.           specifically created by a Set Redo  command.   Suprtool,  Suprlink
  824.           and STExport do not overwrite an existing file.
  825.  
  826.  
  827.    Concurrency
  828.  
  829.           When  Suprtool  uses the default temporary stack, it is accessible
  830.           only to that particular instance of Suprtool.  You can run as many
  831.           Suprtool  instances  as  you  need  and each one gets its own redo
  832.           stack.  With temporary stacks, you  will  never  have  concurrency
  833.           problems.
  834.  
  835.           If  you  start  using  a persistent redo stack, however, you might
  836.           start running into concurrency problems.  A persistent redo  stack
  837.           can  be  used by only one Suprtool instance at a time.  If you try
  838.           to use a persistent redo stack that is already in  use,  you  will
  839.           get the following message:
  840.  
  841.                >set redo myredo
  842.                EXCLUSIVE VIOLATION: FILE BEING ACCESSED  (FSERR 90)
  843.                Unable to open file for REDO stack
  844.  
  845.           In this situation, Suprtool continues to use the redo stack active
  846.           at the time and lets you continue working as normal.
  847.  
  848.           Qedit can also have permanent redo stacks.   To  prevent  products
  849.           from  writing  to each other's redo stack, it is advisable to have
  850.           separate stacks for each product by  giving  them  different  file
  851.           names.  For example, if you use
  852.  
  853.                >set redo myredo
  854.  
  855.           you  will  have  a  redo  stack  called  Myredo  for your Suprtool
  856.           commands.  If you exit Suprtool, then run  Qedit  and  supply  the
  857.           same  Set Redo command, your Qedit commands will be written to the
  858.           same file that was used for your Suprtool commands.
  859.  
  860.  
  861.    String Expressions
  862.  
  863.           Both the Extract and If  commands  have  been  enhanced  to  allow
  864.           string expressions, which can be used to:
  865.  
  866.  
  867.           1. Combine two fields together (using the + operator).
  868.  
  869.           2. Remove spaces (using the built-in trim functions).
  870.  
  871.           3. Upshift or downshift characters.
  872.  
  873.           String  expressions  reduce  the number of tasks required for many
  874.           common operations involving byte-type fields.  Fewer  tasks  means
  875.           that  Suprtool delivers data to your applications faster than ever
  876.           before.
  877.  
  878.           These  changes  are  so  extensive  that  string  expressions  are
  879.           described  separately  for  the  Extract and If Commands.  See the
  880.           sections  below  for  specific  details  and  examples  of  string
  881.           expressions.
  882.  
  883.  
  884.    Extract Command
  885.  
  886.           You  can  now use string expressions in the Extract command.  They
  887.           allow you to  combine  byte-type  fields  together  (using  the  +
  888.           operator)  or  operate on byte-type fields with special functions.
  889.           In many cases, you can now reduce the number of tasks required  to
  890.           format  your  data  the  way  you  want.   Fewer  tasks means that
  891.           Suprtool delivers the data where you  need  it  faster  than  ever
  892.           before.  To extract a string expression, use this syntax:
  893.  
  894.                     EXTRACT target-field = expression
  895.  
  896.  
  897.    Target-Field
  898.  
  899.           The  target-field  determines  the  byte-length of the expression.
  900.           The data-type must be Byte or Char.  The expression  is  extracted
  901.           during  the  output  phase  and  cannot  be used by other Suprtool
  902.           commands that accept fields (e.g., Sort).
  903.  
  904.  
  905.    Examples
  906.  
  907.                >extract id-no = warehouse-no + bin-no
  908.  
  909.                >extract full-name = first-name + last-name
  910.  
  911.  
  912.    Constants vs. Expressions
  913.  
  914.           If you have  a  string  expression  that  starts  with  a  string,
  915.           Suprtool  assumes  that  you  are  attempting  to extract a single
  916.           string value and not a string expression.   To  specify  a  string
  917.           expression  that  starts  with a constant, surround the expression
  918.           with parentheses.  For example,
  919.  
  920.                Incorrect
  921.                >extract name = " " + product-desc
  922.  
  923.                Error:  Missing comma or invalid arithmetic expression
  924.  
  925.                Correct
  926.                >extract name = (" " + product-desc)
  927.  
  928.  
  929.    Variable Length Strings
  930.  
  931.           String expressions use variable-length  strings.   Suprtool  keeps
  932.           track  of  the length of every string, and all operations are done
  933.           using the actual string length.  For fields,  the  length  of  the
  934.           string  is  the length of the field.  If you do not want to retain
  935.           all the spaces in a  field,  use  one  of  the  built-in  trimming
  936.           functions.
  937.  
  938.           String  constants  are  created  with  the  exact  length  of  the
  939.           constant.  For example, the string "abc" is three characters  long
  940.           and the string "a" is one.
  941.  
  942.           When assigning the string expression to the target field, Suprtool
  943.           pads the final string value with spaces to  fill  out  the  target
  944.           field.   String  expressions longer than the target field generate
  945.           an error.
  946.  
  947.                >in testfile
  948.                >def a,1,10,byte
  949.                >ext a="I'm too long for this container"
  950.  
  951.                Error:  String is too long for the specified item
  952.  
  953.  
  954.    String Truncation
  955.  
  956.           Suprtool produces an error if the string expression is longer than
  957.           the  target field.  You cannot override this error with Set Ignore
  958.           On.  To help avoid the error, you may want to trim trailing spaces
  959.           from  the expression before assigning it to the target field.  For
  960.           example,
  961.  
  962.                >extract new-field = $trim(a + b + c)
  963.  
  964.  
  965.    Upshifting Strings ($Upper)
  966.  
  967.           Use the built-in function $upper to upshift all the characters  of
  968.           a  string expression into uppercase characters.  This function can
  969.           be  used  to  upshift  a  single  field,  a   complicated   string
  970.           expression,  or  any  subpart  of  an  expression.  Both ASCII and
  971.           Roman-8 characters are upshifted by $upper.  For example,
  972.  
  973.                >extract city-up = $upper(city)
  974.  
  975.                >extract full-name = $upper(first + last)
  976.  
  977.                >extract desc = desc-1 + $upper(desc-2)
  978.  
  979.  
  980.    Downshifting Strings ($Lower)
  981.  
  982.           If you want to downshift all characters of a string expression  to
  983.           lowercase, use the built-in function $lower.  This function can be
  984.           used to downshift a single field, a complicated string expression,
  985.           or   any  subpart  of  an  expression.   Both  ASCII  and  Roman-8
  986.           characters are downshifted by $lower.  For example,
  987.  
  988.                >extract city-lower-case = $lower(city)
  989.  
  990.                >extract city-state = $lower(city + state)
  991.  
  992.                >extract desc = desc-1 + $lower(desc-2)
  993.  
  994.  
  995.    Trimming Spaces ($Trim, $Ltrim, $Rtrim)
  996.  
  997.           Use one of three built-in string functions to  remove  leading  or
  998.           trailing  spaces  from  a  string expression.  The three functions
  999.           are:
  1000.  
  1001.  
  1002.           $Trim:      Remove leading and trailing  spaces  from  the  string
  1003.                       expression.
  1004.  
  1005.           $Ltrim:     Remove leading spaces.
  1006.  
  1007.           $Rtrim:     Remove trailing spaces.
  1008.  
  1009.  
  1010.    If Command
  1011.  
  1012.           You  can  do  comparisons  with  byte-type fields in numerous ways
  1013.           using Suprtool.  These powerful features minimize  the  number  of
  1014.           tasks  you must execute in order to select the data you need.  The
  1015.           fewer the number of tasks, the faster your data  is  delivered  to
  1016.           the users and applications that need it.
  1017.  
  1018.           You  can  combine  byte-type  fields together and use the built-in
  1019.           string functions to create string expressions.  String expressions
  1020.           involve  the  + operator and any of the built-in string functions,
  1021.           which are $lower, $upper, $trim, $ltrim and $rtrim.
  1022.  
  1023.  
  1024.    Fixed vs.  Variable Length Strings
  1025.  
  1026.           String comparisons  are  done  using  fixed-  and  variable-length
  1027.           strings.   For  most  users, there should be no difference between
  1028.           the two types of strings.  When doing string comparisons, Suprtool
  1029.           always pads shorter strings with spaces, with the one exception of
  1030.           comparing two fixed-length fields (see "Byte Fields" below).
  1031.  
  1032.           String expressions involving the + operator or the $lower, $upper,
  1033.           $trim,  $ltrim  and  $rtrim  built-in  functions  are  done  using
  1034.           variable-length strings.  Suprtool keeps track of  the  length  of
  1035.           every  string, and all operations are done using the actual string
  1036.           length.  For fields, the length of the string is the length of the
  1037.           field.   If  you  do not want to retain all the spaces in a field,
  1038.           use one of the built-in trimming functions.
  1039.  
  1040.           When creating string expressions,  string  constants  are  created
  1041.           with  the  exact  length of the constant.  For example, the string
  1042.           "abc" is three characters long and the string "a" is one.
  1043.  
  1044.  
  1045.    Byte Fields
  1046.  
  1047.           For historical reasons, comparing two  byte-type  fields  to  each
  1048.           other  is  a special case.  If the two fields are exactly the same
  1049.           length, Suprtool  compares  them  completely.   If  one  field  is
  1050.           shorter,  the  comparison  is  done for the length of the shortest
  1051.           field.  Suprtool  does  not  check  for  spaces  in  the  trailing
  1052.           characters of the longer field.  For example,
  1053.  
  1054.                >define  short, 1,10   {10-character field}
  1055.                >define  long ,11,15   {15-character field}
  1056.                >if      short = long
  1057.  
  1058.           In this example, Suprtool compares the 10 bytes in the short field
  1059.           with the first 10 bytes of the long field, but  ignores  the  last
  1060.           five bytes of the long field.  If the expression on either side of
  1061.           the equal sign consisted of more  than  one  field  (using  the  +
  1062.           operator)  or  involved any of the built-in string functions, such
  1063.           as $lower, $upper, $trim, $ltrim and $rtrim, Suprtool  would  have
  1064.           compared both sides of the equal sign by padding the shorter field
  1065.           with spaces.  It is only the case where you are directly comparing
  1066.           one  byte-type  field  to another that Suprtool uses the length of
  1067.           the shortest field for the comparison.
  1068.  
  1069.  
  1070.    Trimming Spaces ($Trim, $Ltrim, $Rtrim)
  1071.  
  1072.           Use one of three built-in string functions to  remove  leading  or
  1073.           trailing  spaces  from  a  string expression.  The three functions
  1074.           are:
  1075.  
  1076.  
  1077.           $Trim:      Remove leading and trailing  spaces  from  the  string
  1078.                       expression.
  1079.  
  1080.           $Ltrim:     Remove leading spaces.
  1081.  
  1082.           $Rtrim:     Remove trailing spaces.
  1083.  
  1084.           Because  Suprtool  pads  shorter  strings  with  spaces when doing
  1085.           comparisons, trimming  spaces  is  most  useful  when  creating  a
  1086.           combined  string with several fields.  For example, you might want
  1087.           to combine a person's first  and  last  name  (including  a  space
  1088.           between the two):
  1089.  
  1090.                >if $trim(first) + " " + $trim(last) = "Joe Smith"
  1091.  
  1092.  
  1093.    Mixed Case ($Upper and $Lower)
  1094.  
  1095.           By default, Suprtool does an exact match when comparing two string
  1096.           expressions.  If the expressions vary  in  the  capitalization  of
  1097.           characters,  Suprtool  finds  them  to be unequal.  To do caseless
  1098.           string comparisons or pattern matches, use the  $upper  or  $lower
  1099.           functions.   Both  ASCII  and  Roman-8  characters  are shifted by
  1100.           $upper and $lower.  For example,
  1101.  
  1102.                >if $upper(city) = "VANCOUVER"
  1103.  
  1104.                >if $lower(city) = "edmonton"
  1105.  
  1106.           Note that if you use the $upper or $lower functions, Suprtool does
  1107.           not  shift  any  constants in the comparison.  You must explicitly
  1108.           specify the constants in the correct case or you can use $upper or
  1109.           $lower with the constant:
  1110.  
  1111.                >if $upper(city) = $upper("vancouver")
  1112.  
  1113.           Use  the $upper or $lower functions for caseless pattern matching.
  1114.           As with other comparison operators, you must specify constants  in
  1115.           the correct case when doing pattern matching:
  1116.  
  1117.                >if $upper(city) == "VAN@"
  1118.  
  1119.                >if $lower(city) == "ed@"
  1120.  
  1121.           You can use $upper and $lower with string expressions that combine
  1122.           many fields  and  string  functions  as  shown  in  the  following
  1123.           example:
  1124.  
  1125.                >if $read
  1126.                -   $upper($trim(first) +
  1127.                -             " "             +
  1128.                -             $trim(last))
  1129.                -   = "JOE SMITH"
  1130.                -
  1131.  
  1132.  
  1133.    Bugs Fixed in Version 4.4
  1134.  
  1135.  
  1136.  
  1137.    Arithmetic  Operations.   Suprtool now has a better error message when an
  1138.           arithmetic operation has an invalid decimal operand length.
  1139.  
  1140.  
  1141.    Extract Command.    When  extracting  constants,   Suprtool   no   longer
  1142.           incorrectly reports that the constant limit has been reached.
  1143.  
  1144.  
  1145.    Extract Command.    When  extracting one field into another, invalid data
  1146.           is no longer produced if the  two  fields  are  exactly  the  same
  1147.           length  and  type,  but have a different number of implied decimal
  1148.           places.
  1149.  
  1150.  
  1151.    Extract Command.   When the  maximum  limit  of  extracted  constants  is
  1152.           reached,  Suprtool  no  longer  incorrectly  reports the following
  1153.           message:
  1154.  
  1155.            Error:  Number of constants in >EXTRACT exceeds maximum
  1156.  
  1157.           This error message has now been changed to
  1158.  
  1159.            Error:  Total size of constants in >EXTRACT exceeds maximum
  1160.  
  1161.  
  1162.  
  1163.    Get Command and Speed Demon.   Suprtool no longer incorrectly  determines
  1164.           the  highwater  mark  if the dataset is non-Jumbo, the capacity is
  1165.           large, and the blocking factor is one or two.
  1166.  
  1167.  
  1168.    Prefetch'point Failure.   Suprtool no longer fails with a  prefetch'point
  1169.           failure  if  the  input file has an odd record size and the record
  1170.           being selected is the last record in the file.
  1171.  
  1172.  
  1173.    Set Ignore On.    Suprtool  now  honors  the  Set  Ignore  On  flag  when
  1174.           encountering  an  illegal  packed  decimal  number in the $stddate
  1175.           function.
  1176.  
  1177.  
  1178.    Suprmgr Commands.   Suprtool no longer prints  a  blank  line  for  every
  1179.           command in the Suprmgr.Pub.Sys file.
  1180.