home *** CD-ROM | disk | FTP | other *** search
/ ftp.robelle3000.ai 2014 / 2014.06.ftp.robelle3000.ai.tar / ftp.robelle3000.ai / changes / supr4p5ix.txt < prev    next >
Text File  |  2002-03-12  |  48KB  |  1,201 lines

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