home *** CD-ROM | disk | FTP | other *** search
/ ftp.robelle3000.ai 2014 / 2014.06.ftp.robelle3000.ai.tar / ftp.robelle3000.ai / changes / supr4p6ux.txt < prev    next >
Text File  |  2002-10-23  |  33KB  |  898 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                              SUPRTOOL Version 4.6
  7.  
  8.  
  9.                           Database Handyman for HP-UX
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.                                  Change Notice
  17.                            Installation Instructions
  18.                           Addendum to 4.3 User Manual
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.                             Suprtool         4.6
  26.                             Suprlink         4.6
  27.                             STExport         4.6
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.                          Robelle Solutions Technology
  39.                           Suite 201, 15399-102A Ave.
  40.                          Surrey, B.C.  Canada V3R 7K1
  41.  
  42.  
  43.  
  44.                              Phone:  604.582.1700
  45.                               Fax:  604.582.1799
  46.  
  47.                          E-mail:  support@robelle.com
  48.                              Web:  www.robelle.com
  49.  
  50.                                   March 2002
  51.           Program  and  Manual  Copyright  Robelle Solutions Technology Inc.
  52.           1981-2002
  53.  
  54.  
  55.           Permission is granted  to  reprint  this  document  (but  not  for
  56.           profit), provided that copyright notice is given.
  57.  
  58.  
  59.  
  60.  
  61.           QEDIT  and SUPRTOOL are trademarks of Robelle Solutions Technology
  62.           Inc.  Other product and company names mentioned herein may be  the
  63.           trademarks of their respective owners.
  64.  
  65.  
  66.  
  67.    Introducing Suprtool/UX Version 4.6
  68.  
  69.  
  70.                *  Highlights
  71.                *  Known Problems
  72.                *  Compatibility
  73.                *  CPU Serial Number (uname)
  74.                *  Documentation
  75.                *  Documentation Format
  76.  
  77.           Use  Suprtool/UX  to  read,  select, and sort data from Oracle and
  78.           Allbase databases and from data files with  fixed-length  records.
  79.           Suprtool/UX  is  designed  to be similar to Suprtool for MPE while
  80.           providing  necessary   HP-UX   features.    Suprlink/UX   provides
  81.           high-speed data-file linking based on a sort key.  Use STExport to
  82.           convert fields in a self-describing input file into an output file
  83.           that can be imported into different applications.
  84.  
  85.  
  86.    Highlights in Version 4.6
  87.  
  88.  
  89.           *  Support for HP Eloquence databases has been added.
  90.  
  91.           *  Suprtool  incorrectly  rounded  Real  and  Long  target data in
  92.              arithmetic expres
  93.  
  94.  
  95.    Highlights in Version 4.5
  96.  
  97.  
  98.           *  Support for "well-formed" XML in STExport.
  99.  
  100.           *  Suprtool, STExport and Suprlink can now  have  warnings  turned
  101.              off when run from batch with the set warnings off command.
  102.  
  103.           *  Some division operations would not work properly if the decimal
  104.              portion was large and the target type was packed or zoned.
  105.  
  106.  
  107.    Highlights in Version 4.4
  108.  
  109.  
  110.           *  Suprtool now supports string expressions in  both  the  Extract
  111.              and  If commands.  String expressions allow users to select and
  112.              format  their  byte-type  data  in  numerous  new  ways.   This
  113.              includes  combining  byte-type  fields together, upshifting and
  114.              downshifting data, and trimming  blanks.   These  new  features
  115.              combine  to  reduce  the  number  of tasks needed to select and
  116.              format the data the way you need it.
  117.  
  118.           *  Suprtool now supports 5,100 bytes of constants to be extracted.
  119.              (only NM and HP-UX)
  120.  
  121.           *  Suprtool,  Suprlink and STExport now have the ability to create
  122.              their own persistent redo stacks.  The contents of these stacks
  123.              can  be recalled not only in the current session, but also in a
  124.              future session.
  125.  
  126.  
  127.    Known Problems
  128.  
  129.           There are no known problems at this time.
  130.  
  131.  
  132.    Compatibility
  133.  
  134.           Suprtool/UX is compatible with HP-UX 9.0, all  versions  of  HP-UX
  135.           10.x, as well as Oracle version 7.1.3.2.0.
  136.  
  137.           On  HP-UX  10.x,  Suprtool/UX  creates  all  of  its temporary and
  138.           scratch  files  in  /var/tmp,  unless  you  have  overridden   the
  139.           temporary directory with the TMPDIR environment variable.
  140.  
  141.           Suprtool  for  HP-UX  typically  comes  with  two  versions in two
  142.           different directories on your tape.  The version  of  Suprtool  in
  143.           /opt/robelle  is  compatible  with  HP-UX  10.20  and  later.  The
  144.           version of Suprtool in /usr/robelle is  compatible  with  versions
  145.           earlier than HP-UX 10.20.
  146.  
  147.  
  148.  
  149.    CPU Serial Number (uname)
  150.  
  151.           This  program  runs  only  on  CPUs whose serial numbers have been
  152.           encoded (the "uname" on HP-UX).  If it fails to run and you get an
  153.           "invalid HPSUSAN" error message, call Robelle for assistance.
  154.  
  155.  
  156.    Documentation
  157.  
  158.           You  can  access these files from within Suprtool by simply typing
  159.           the Help command.
  160.  
  161.           If you are already familiar with Suprtool, you can access only the
  162.           Suprtool/UX  topics that are different from those of Suprtool/MPE.
  163.           The "Running" section of  the  Help  file  has  been  updated  for
  164.           Suprtool/UX.  You can access it with the following Help command:
  165.  
  166.                >help running
  167.  
  168.  
  169.    Documentation Formats
  170.  
  171.           The user manuals for Suprtool and its components are all available
  172.           in the several popular formats such as PDF and HTMLHelp at:
  173.  
  174.              http://www.robelle.com/library/manuals/
  175.  
  176.  
  177.    Installation of 4.6
  178.  
  179.  
  180.           The following instructions describe the installation process of  a
  181.           new  Suprtool  release.   The  new  version overwrites an existing
  182.           version of Suprtool on your HP-UX system.
  183.  
  184.  
  185.    Who Should Use These Instructions?
  186.  
  187.           The system  manager  should  use  the  following  instructions  to
  188.           install  Suprtool/UX.   During the installation, which should take
  189.           only a few minutes, no one can use Suprtool/UX.
  190.  
  191.  
  192.  
  193.    Summary of Installation Steps
  194.  
  195.           To install Suprtool, follow these steps:
  196.  
  197.           1. Log in as root.
  198.  
  199.           2. Create the correct directory structure.
  200.  
  201.           3. Restore  Suprtool/UX  and  its  associated   files   from   the
  202.              distribution tape.
  203.  
  204.           4. Set  up  variables  to  let  Suprtool know where its supporting
  205.              files are located.
  206.  
  207.  
  208.    Installation Assistance
  209.  
  210.           If you have any questions or run into any  problems,  please  call
  211.           us.   Technical  support is available on weekdays from 7 a.m. to 4
  212.           p.m. Pacific time at 1.604.582.1700.  Technical support  can  also
  213.           be obtained via e-mail at:  support@robelle.com
  214.  
  215.  
  216.    Step 1:  Log In as Root
  217.  
  218.           There are two ways you can log in as root:
  219.  
  220.           a. Exit from HP-UX and log in with root as the user name.
  221.  
  222.           b. If you are already logged in, you can execute this command:
  223.  
  224.                   su -
  225.  
  226.           In  either case, you have to know and supply the user password for
  227.           root.
  228.  
  229.  
  230.    Step 2:  Create Robelle Directory
  231.  
  232.           Before restoring files, you must first create the directory  where
  233.           Suprtool/UX will reside:
  234.  
  235.                mkdir /opt/robelle
  236.  
  237.  
  238.    Step 3:  Restore Files
  239.  
  240.           Use  the  following  command to restore the Suprtool/UX files from
  241.           the distribution tape:
  242.  
  243.                tar xv /opt/robelle
  244.  
  245.           This command assumes your tape device is /dev/rmt/0m.   If  it  is
  246.           not,  you need to specify your tape device using the "f" option in
  247.           the tar command.  For example, if your tape device is /dev/rmt/1m,
  248.           you need to use the following command to restore the files:
  249.  
  250.                tar xvf /dev/rmt/1m /opt/robelle
  251.  
  252.  
  253.    Step 4:  Set the ROBELLE Variable
  254.  
  255.           You must set the ROBELLE environment variable so that Suprtool can
  256.           find its Help and Suprmgr files.
  257.  
  258.  
  259.    Bourne and Korn Shells
  260.  
  261.                export ROBELLE=/opt/robelle
  262.  
  263.  
  264.    C Shell
  265.  
  266.                setenv ROBELLE /opt/robelle
  267.  
  268.  
  269.  
  270.    Enhancements in Version 4.6
  271.  
  272.           Every year we provide Suprtool/UX users with  new  features.   The
  273.           following section describes the new enhancements to Suprtool since
  274.           the last major release.
  275.  
  276.  
  277.    Support for HP Eloquence
  278.  
  279.           Suprtool for HP-UX now supports HP Eloquence.   The  only  version
  280.           that Suprtool 4.6 has been tested with is A.06.31.
  281.  
  282.           HP  Eloquence is a database that runs on HP-UX, which has an Image
  283.           like intrinsic layer.   For  more  information  on  this  database
  284.           please visit their web site at:
  285.  
  286.            http://www.hp-eloquence.com/
  287.  
  288.           We  are  interested  in  people wanting to have their old familiar
  289.           Suprtool for MPE commands, such as Base, Get, Update,  Delete  and
  290.           Put.
  291.  
  292.           The  syntax  for the commands in the HP-UX version is identical to
  293.           those commands on MPE.
  294.  
  295.  
  296.  
  297.  
  298.    Bugs Fixed in Version 4.6
  299.  
  300.  
  301.    Real and Long Arithmetics.   Suprtool incorrectly rounded Real  and  Long
  302.           target data in arithmetic expressions
  303.  
  304.  
  305.  
  306.    Enhancements in Version 4.5
  307.  
  308.           Every  year  we  provide Suprtool/UX users with new features.  The
  309.           following section describes the new enhancements to Suprtool since
  310.           the last major release.
  311.  
  312.  
  313.    Set Warnings Off
  314.  
  315.           Suprtool,  STExport  and  Suprlink  have  a new command called Set
  316.           Warnings which when  turned  off  will  no  longer  print  warning
  317.           messages if you are running in batch.
  318.  
  319.           In  Suprtool,  you  can  simulate  batch mode with the command Set
  320.           Interactive off.  If Set Warnings is off, Suprtool will honour the
  321.           value of the Interactive setting, provided Set Warnings off is set
  322.           after the Set Interactive command.
  323.  
  324.  
  325.    XML Command
  326.  
  327.           STExport will now generate "well-formed" XML output  with  just  a
  328.           few commands.
  329.  
  330.            /opt/robelle/bin/stexport
  331.            $input file1sd
  332.            $xml
  333.            $output myxml
  334.            $xeq
  335.  
  336.           These  four  simple commands will generate the following file that
  337.           packages such as XMLSpy will consider  to  be  "well-formed"  XML.
  338.           The result of such an STExport task will look as follows:
  339.  
  340.            <?xml version='1.0'?>
  341.            <file>
  342.            <record>
  343.            <CITY>Los Altos</CITY>
  344.            <CREDIT-RATING>100000</CREDIT-RATING>
  345.            <CUST-ACCOUNT>4003302</CUST-ACCOUNT>
  346.            <CUST-STATUS>20</CUST-STATUS>
  347.            <NAME-FIRST>Ralph</NAME-FIRST>
  348.            <NAME-LAST>Perkins</NAME-LAST>
  349.            <STATE-CODE>CA</STATE-CODE>
  350.            <STREET-ADDRESS>Room 655</STREET-ADDRESS>
  351.            <STREET-ADDRESS>Los Altos     040033022</STREET-ADDRESS>
  352.            <ZIP-CODE>93002</ZIP-CODE>
  353.            </record>
  354.  
  355.            </file>
  356.  
  357.  
  358.           By  default  STExport  will  add  the  simplest version tag at the
  359.           beginning of the file, then  it  inserts  a  <file>  and  matching
  360.           </file>  at  the beginning and the end of the file.  Then STExport
  361.           encloses each record  from  the  input  file  in  a  <record>  and
  362.           </record> tag.  Finally, the Self-Describing tags are added around
  363.           each field's data values and edited appropriately.
  364.  
  365.           Naturally users would want options to customize  and  specify  the
  366.           various  options  and tags themselves, in order to generate a file
  367.           that is acceptable to their tools.
  368.  
  369.           You can specify the "version" tag at the beginning of the XML file
  370.           with the following command:
  371.  
  372.            xml version "?xml version='1.0' encoding='ISO-8859-1'?"
  373.  
  374.           STExport  will put the "<" and ">" around what is specified in the
  375.           version string.  In addition, you can  customize  the  "file"  and
  376.           "record" tags with the following simple commands:
  377.  
  378.            xml file "orders" record "orderdetail"
  379.  
  380.           You  can  enter  multiple  XML  commands  per  task to set the XML
  381.           options you require.
  382.  
  383.            $in file1sd
  384.            $xml version "?xml version='1.0' encoding='ISO-8859-1'?"
  385.            $xml file "Orders" record "Details"
  386.            $out myfile
  387.  
  388.           An example of the output generated by the  above  commands  is  as
  389.           follows:
  390.  
  391.             <?xml version='1.0' encoding='ISO-8859-1'?>
  392.             <Orders>
  393.             <Details>
  394.             <CITY>Los Altos</CITY>
  395.             <CREDIT-RATING>100000</CREDIT-RATING>
  396.             <CUST-ACCOUNT>4003302</CUST-ACCOUNT>
  397.             <CUST-STATUS>20</CUST-STATUS>
  398.             <NAME-FIRST>Ralph</NAME-FIRST>
  399.             <NAME-LAST>Perkins</NAME-LAST>
  400.             <STATE-CODE>CA</STATE-CODE>
  401.             <STREET-ADDRESS>Room 655</STREET-ADDRESS>
  402.             <STREET-ADDRESS>Los Altos    040033022</STREET-ADDRESS>
  403.             <ZIP-CODE>93002</ZIP-CODE>
  404.             </Details>
  405.             </Orders>
  406.  
  407.           In  XML the tags that surrounded the data can not have any special
  408.           characters other than  hyphen,  underscore  and  period  ("-","_",
  409.           ".").   So STExport replaces any of the invalid special characters
  410.           with a "." by default.  You can change the default character to be
  411.           something else with the following set command:
  412.  
  413.             $Set xmltagchar "_"
  414.  
  415.           STExport  will  only allow the hyphen, underscore and period to be
  416.           set with this command.
  417.  
  418.           A Document Type Declaration can be made at the  beginning  of  the
  419.           file   via  the  !DOCTYPE  specification.   This  typically  tells
  420.           whatever tool that is parsing the xml file where the DTD  for  the
  421.           file resides.
  422.  
  423.           In STExport you can specify simple one-line doctype specs with the
  424.           following command:
  425.  
  426.            xml doctype '!DOCTYPE address-book SYSTEM "address-book.dtd"'
  427.  
  428.           This will write the doctype specification at the top of the output
  429.           file, directly after the XML version specification.
  430.  
  431.  
  432.           All  of STExport's XML command options (version, doctype, file and
  433.           record) allow for a string to be passed  via  surrounding  quotes.
  434.           The  quotes  may be either single or double, but keep in mind that
  435.           if the string  is  to  contain  double  quotes,  then  you  should
  436.           surround the entire string with single quotes.
  437.  
  438.  
  439.           So  to summarize this new feature the following commands have been
  440.           added for XML support.  The XML command has the following options:
  441.  
  442.                XML
  443.                          VERSION "string"
  444.                          DOCTYPE "string"
  445.                          FILE    "string"
  446.                          RECORD  "string"
  447.  
  448.           The  following set command has been added to aid in the conversion
  449.           of special characters in the tag:
  450.  
  451.             set xmltagchar "."
  452.  
  453.  
  454.  
  455.  
  456.    Bugs Fixed in Version 4.6
  457.  
  458.  
  459.    Dividing Zero by Zero.   Some division operations would result in a large
  460.           number  when  dividing  zero by zero if the target type was zoned,
  461.           packed or quad integer.  [4.1.11]
  462.  
  463.  
  464.    Divide Operations.   Suprtool could not properly convert the result of  a
  465.           division  operation  if  the  target  was  zoned or packed, in one
  466.           specific case.  [4.1.11]
  467.  
  468.  
  469.    Extract Character Constant.    If  you  had  a  extract  of  a  character
  470.           constant,  and if the constant specified was not completely filled
  471.           in for all of the positions in the length of the  field,  Suprtool
  472.           would would produce strange results.  [4.1.11]
  473.  
  474.  
  475.  
  476.    Define Command.    A  warning  message  has  been added in the case where
  477.           fields defined  as  non-standard  integers,  will  be  treated  as
  478.           strings.  [4.4.11]
  479.  
  480.  
  481.    Extract Command.    The  error  message  that  prints when the expression
  482.           specified cannot be coerced/converted into  the  target  has  been
  483.           improved.  [4.4.11]
  484.  
  485.  
  486.    If $Read  Operations.    Suprtool  would incorrectly put commands entered
  487.           thru the $read facility into the redo file or stack when  executed
  488.           thru a Use file.  [4.4.13]
  489.  
  490.  
  491.    Table Command.   Suprtool would not hold on to a table in some cases when
  492.           the hold option was specified in the table command.   The  CM  and
  493.           HP-UX  versions of Surptool would not hold on to the correct table
  494.           in some cases.  [4.4.13]
  495.  
  496.  
  497.    Verify Command.   Verify Define will now  show  the  correct  information
  498.           when defining non-standard integers.  [4.4.11]
  499.  
  500.  
  501.    Enhancements in Version 4.4
  502.  
  503.           Every  year  we  provide Suprtool/UX users with new features.  The
  504.           following section describes the new enhancements to Suprtool since
  505.           the last major release.
  506.  
  507.  
  508.  
  509.    Extracting Constants
  510.  
  511.           Previously  Suprtool  was  limited to 1,530 bytes of constants for
  512.           MPE/iX and HP-UX versions of Suprtool.  This limit  has  now  been
  513.           increased  to 5,100 bytes.  The MPE/V version of Suprtool is still
  514.           limited to 1,275 bytes.
  515.  
  516.  
  517.    Persistent Redo
  518.  
  519.           Commands entered at the Suprtool prompt  are  saved  in  something
  520.           called the redo stack.  You can recall commands from this stack by
  521.           using other commands such as Before, Do and Redo.  By default, the
  522.           redo  stack is stored in a temporary file and discarded as soon as
  523.           you exit Suprtool.  This temporary stack is not  preserved  across
  524.           Suprtool invocations.
  525.  
  526.           The  new  Set  Redo  command  assigns a permanent file as the redo
  527.           stack, allowing the stack to become available for future  Suprtool
  528.           invocations.   For  example,  to  assign  the  myredo  file  to  a
  529.           persistent redo stack, enter
  530.  
  531.                >set redo myredo
  532.  
  533.           If the file does  not  exist,  Suprtool  creates  it.   Otherwise,
  534.           Suprtool  uses  the  existing  file.   All subsequent commands are
  535.           written to the persistent redo stack.  This setting is  valid  for
  536.           the  duration  of  the  Suprtool  session.   As  soon  as you exit
  537.           Suprtool, the setting is discarded.  Next time you  run  Suprtool,
  538.           you will get the temporary stack.
  539.  
  540.           If  the  file  name is not qualified, the redo stack is created in
  541.           the current working directory.  This may be desirable if you  want
  542.           to  have  separate  stacks.   If  you  want to always use the same
  543.           persistent stacks, you should qualify the name.
  544.  
  545.           The Verify command shows which stack is currently in use.   If  it
  546.           shows  <temporary>,  it means Suprtool is using the default stack.
  547.           Anything else is the name  of  the  file  used  on  the  Set  Redo
  548.           command.
  549.  
  550.  
  551.    Concurrency
  552.  
  553.           When  Suprtool  uses the default temporary stack, it is accessible
  554.           only to that particular instance of Suprtool.  You can run as many
  555.           Suprtool  instances  as  you  need  and each one gets its own redo
  556.           stack.  With temporary stacks, you  will  never  have  concurrency
  557.           problems.
  558.  
  559.           If  you  start  using  a persistent redo stack, however, you might
  560.           start running into concurrency problems.  A persistent redo  stack
  561.           can  be  used by only one Suprtool instance at a time.  If you try
  562.           to use a persistent redo stack that is already in  use,  you  will
  563.           get the following message:
  564.  
  565.                >set redo myredo
  566.                The redo file is already in use.
  567.                Unable to open file for REDO stack
  568.  
  569.           In this situation, Suprtool continues to use the redo stack active
  570.           at the time and lets you continue working as normal.
  571.  
  572.           Qedit can also have permanent redo stacks.   To  prevent  products
  573.           from  writing  to  each other's redo stack, it is advisable to use
  574.           separate stacks for each product by  giving  them  different  file
  575.           names.  For example if you use
  576.  
  577.                >set redo myredo
  578.  
  579.           you  will  have  a  redo  stack  called  myredo  for your Suprtool
  580.           commands.  If you exit Suprtool, then run  Qedit  and  supply  the
  581.           same  Set Redo command, your Qedit commands will be written to the
  582.           same file that was used for your Suprtool commands.
  583.  
  584.  
  585.    String Expressions
  586.  
  587.           Both the Extract and If  commands  have  been  enhanced  to  allow
  588.           string expressions, which can be used to:
  589.  
  590.  
  591.           1. Combine two fields together (using the + operator).
  592.  
  593.           2. Remove spaces (using the built-in trim functions).
  594.  
  595.           3. Upshift or downshift characters.
  596.  
  597.           String  expressions  reduce  the number of tasks required for many
  598.           common operations involving byte-type fields.  Fewer  tasks  means
  599.           that  Suprtool delivers data to your applications faster than ever
  600.           before.
  601.  
  602.           These  changes  are  so  extensive  that  string  expressions  are
  603.           described  separately  for  the  Extract and If Commands.  See the
  604.           sections  below  for  specific  details  and  examples  of  string
  605.           expressions.
  606.  
  607.  
  608.    Extract Command
  609.  
  610.           You can now use string expressions in the Extract command.  String
  611.           expressions allow you to combine byte-type fields together  (using
  612.           the  +  operator)  or  operate  on  byte-type  fields with special
  613.           functions.  In many cases, you can now reduce the number of  tasks
  614.           required  to  format the data the way you want.  Fewer tasks means
  615.           that Suprtool delivers the data where you need it faster than ever
  616.           before.  To extract a string expression, use this syntax:
  617.  
  618.                     EXTRACT target-field = expression
  619.  
  620.  
  621.    Target-Field
  622.  
  623.           The  target-field  determines  the byte-length for the expression.
  624.           The data-type must be Byte or Char.  The expression  is  extracted
  625.           during  the  output  phase  and  cannot  be used by other Suprtool
  626.           commands that accept fields (e.g., Sort).
  627.  
  628.  
  629.    Examples
  630.  
  631.                >extract id-no = warehouse-no + bin-no
  632.  
  633.                >extract full-name = first-name + last-name
  634.  
  635.  
  636.    Constants vs. Expressions
  637.  
  638.           If you have an  string  expression  that  starts  with  a  string,
  639.           Suprtool  assumes  that  you  are  attempting  to extract a single
  640.           string value and not a string expression.   To  specify  a  string
  641.           expression  that  starts  with a constant, surround the expression
  642.           with parentheses.  For example,
  643.  
  644.                Incorrect
  645.                >extract name = " " + product-desc
  646.  
  647.                Error:  Missing comma or invalid arithmetic expression
  648.  
  649.                Correct
  650.                >extract name = (" " + product-desc)
  651.  
  652.  
  653.    Variable Length Strings
  654.  
  655.           String expressions use variable-length  strings.   Suprtool  keeps
  656.           track  of  the length of every string, and all operations are done
  657.           using the actual string length.  For fields,  the  length  of  the
  658.           string  is  the length of the field.  If you do not want to retain
  659.           all of the spaces in a field, use one  of  the  built-in  trimming
  660.           functions.
  661.  
  662.           String  constants  are  created  with  the  exact  length  of  the
  663.           constant.  For example, the string "abc" is three characters  long
  664.           and the string "a" is one.
  665.  
  666.           When assigning the string expression to the target field, Suprtool
  667.           pads the final string value with spaces to  fill  out  the  target
  668.           field.   String  expressions longer than the target field generate
  669.           an error.
  670.  
  671.                >in testfile
  672.                >def a,1,10,byte
  673.                >ext a="I'm too long for this container"
  674.  
  675.                Error:  String is too long for the specified item
  676.  
  677.  
  678.    String Truncation
  679.  
  680.           Suprtool produces an error if the string expression is longer than
  681.           the  target field.  You cannot override this error with Set Ignore
  682.           On.  To help avoid the error, you may want to trim trailing spaces
  683.           from  the expression before assigning it to the target field.  For
  684.           example,
  685.  
  686.                >extract new-field = $trim(a + b + c)
  687.  
  688.  
  689.    Upshifting Strings ($Upper)
  690.  
  691.           Use the built-in function $upper to upshift all of the  characters
  692.           of  a  string expression into uppercase characters.  This function
  693.           can be used to  upshift  a  single  field,  a  complicated  string
  694.           expression,  or  any  subpart  of  an  expression.  Both ASCII and
  695.           Roman-8 characters are upshifted by $upper.  For example,
  696.  
  697.                >extract city-up = $upper(city)
  698.  
  699.                >extract full-name = $upper(first + last)
  700.  
  701.                >extract desc = desc-1 + $upper(desc-2)
  702.  
  703.  
  704.    Downshifting Strings ($Lower)
  705.  
  706.           If you want to downshift all characters of a string expression  to
  707.           lowercase, use the built-in function $lower.  This function can be
  708.           used to downshift a single field, a complicated string expression,
  709.           or   any  subpart  of  an  expression.   Both  ASCII  and  Roman-8
  710.           characters are downshifted by $lower.  For example,
  711.  
  712.                >extract city-lower-case = $lower(city)
  713.  
  714.                >extract city-state = $lower(city + state)
  715.  
  716.                >extract desc = desc-1 + $lower(desc-2)
  717.  
  718.  
  719.    Trimming Spaces ($Trim, $Ltrim, $Rtrim)
  720.  
  721.           Use one of three built-in string functions to  remove  leading  or
  722.           trailing  spaces  from  a  string expression.  The three functions
  723.           are:
  724.  
  725.  
  726.           $Trim:      Remove leading and trailing  spaces  from  the  string
  727.                       expression.
  728.  
  729.           $Ltrim:     Remove leading spaces.
  730.  
  731.           $Rtrim:     Remove trailing spaces.
  732.  
  733.  
  734.    If Command
  735.  
  736.           You  can  do  comparisons  with  byte-type fields in numerous ways
  737.           using Suprtool.  These powerful features minimize  the  number  of
  738.           tasks  you must execute in order to select the data you need.  The
  739.           fewer the number of tasks, the faster your data  is  delivered  to
  740.           the users and applications that need it.
  741.  
  742.           You  can  combine  byte-type  fields together and use the built-in
  743.           string functions to create string expressions.  String expressions
  744.           involve  the  + operator and any of the built-in string functions,
  745.           which are $lower, $upper, $trim, $ltrim and $rtrim.
  746.  
  747.  
  748.    Fixed vs.  Variable Length Strings
  749.  
  750.           String comparisons  are  done  using  fixed-  and  variable-length
  751.           strings.   For  most  users, there should be no difference between
  752.           the two types of strings.  When doing string comparisons, Suprtool
  753.           always pads shorter strings with spaces, with the one exception of
  754.           comparing two fixed-length fields (see "Byte Fields" below).
  755.  
  756.           String expressions involving the + operator or the $lower, $upper,
  757.           $trim,  $ltrim  and  $rtrim  built-in  functions  are  done  using
  758.           variable-length strings.  Suprtool keeps track of  the  length  of
  759.           every  string, and all operations are done using the actual string
  760.           length.  For fields, the length of the string is the length of the
  761.           field.   If  you  do not want to retain all the spaces in a field,
  762.           use one of the built-in trimming functions.
  763.  
  764.           When creating string expressions,  string  constants  are  created
  765.           with  the  exact  length of the constant.  For example, the string
  766.           "abc" is three characters long and the string "a" is one.
  767.  
  768.  
  769.    Byte Fields
  770.  
  771.           For historical reasons, comparing two  byte-type  fields  to  each
  772.           other  is  a special case.  If the two fields are exactly the same
  773.           length, Suprtool  compares  them  completely.   If  one  field  is
  774.           shorter,  the  comparison  is  done for the length of the shortest
  775.           field.  Suprtool  does  not  check  for  spaces  in  the  trailing
  776.           characters of the longer field.  For example,
  777.  
  778.                >define  short, 1,10   {10-character field}
  779.                >define  long ,11,15   {15-character field}
  780.                >if      short = long
  781.  
  782.           In this example, Suprtool compares the 10 bytes in the short field
  783.           with the first 10 bytes of the long field, but  ignores  the  last
  784.           five bytes of the long field.  If the expression on either side of
  785.           the equal sign consisted of more  than  one  field  (using  the  +
  786.           operator)  or  involved any of the built-in string functions, such
  787.           as $lower, $upper, $trim, $ltrim and $rtrim, Suprtool  would  have
  788.           compared both sides of the equal sign by padding the shorter field
  789.           with spaces.  It is only the case where you are directly comparing
  790.           one  byte-type  field  to another that Suprtool uses the length of
  791.           the shortest field for the comparison.
  792.  
  793.  
  794.    Trimming Spaces ($Trim, $Ltrim, $Rtrim)
  795.  
  796.           Use one of three built-in string functions to  remove  leading  or
  797.           trailing  spaces  from  a  string expression.  The three functions
  798.           are:
  799.  
  800.  
  801.           $Trim:      Remove leading and trailing  spaces  from  the  string
  802.                       expression.
  803.  
  804.           $Ltrim:     Remove leading spaces.
  805.  
  806.           $Rtrim:     Remove trailing spaces.
  807.  
  808.           Because  Suprtool  pads  shorter  strings  with  spaces when doing
  809.           comparisons, trimming  spaces  is  most  useful  when  creating  a
  810.           combined  string with several fields.  For example, you might want
  811.           to combine a person's first  and  last  name  (including  a  space
  812.           between the two):
  813.  
  814.                >if $trim(first) + " " + $trim(last) = "Joe Smith"
  815.  
  816.  
  817.    Mixed Case ($Upper and $Lower)
  818.  
  819.           By default, Suprtool does an exact match when comparing two string
  820.           expressions.  If the expressions vary  in  the  capitalization  of
  821.           characters,  Suprtool  will  find  them  unequal.   To do caseless
  822.           string comparisons or pattern matches, use the  $upper  or  $lower
  823.           functions.   Both  ASCII  and  Roman-8  characters  are shifted by
  824.           $upper and $lower.  For example,
  825.  
  826.                >if $upper(city) = "VANCOUVER"
  827.  
  828.                >if $lower(city) = "edmonton"
  829.  
  830.           Note that if you use the $upper or $lower functions, Suprtool does
  831.           not  shift  any  constants in the comparison.  You must explicitly
  832.           specify the constants in the correct case or you can use $upper or
  833.           $lower with the constant:
  834.  
  835.                >if $upper(city) = $upper("vancouver")
  836.  
  837.           Use  the $upper or $lower functions for caseless pattern matching.
  838.           As with other comparison operators, you must specify constants  in
  839.           the correct case when doing pattern matching:
  840.  
  841.                >if $upper(city) == "VAN@"
  842.  
  843.                >if $lower(city) == "ed@"
  844.  
  845.           You can use $upper and $lower with string expressions that combine
  846.           many fields and string functions.  In the  following  example,  we
  847.           create
  848.  
  849.                >if $read
  850.                -   $upper($trim(first) +
  851.                -             " "             +
  852.                -             $trim(last))
  853.                -   = "JOE SMITH"
  854.                -
  855.  
  856.  
  857.    Bugs Fixed in Version 4.4
  858.  
  859.  
  860.    Add Command.   The Add command no longer fails in the following cases:
  861.  
  862.           1. Extracting  byte-type  fields  with  constants  and the literal
  863.              string values are shorter than the length of the field.
  864.  
  865.           2. A self-describing file with more than  one  field  is  used  as
  866.              input.
  867.  
  868.  
  869.    Arithmetic  Operations.   Suprtool now has a better error message when an
  870.           arithmetic operation has an invalid decimal operand length.
  871.  
  872.  
  873.    Extract Command.    When  extracting  constants,   Suprtool   no   longer
  874.           incorrectly reports that the constant limit has been reached.
  875.  
  876.  
  877.    Extract Command.    When  extracting one field into another, invalid data
  878.           is no longer produced if the  two  fields  are  exactly  the  same
  879.           length  and  type,  but have a different number of implied decimal
  880.           places.
  881.  
  882.  
  883.    Extract Command.   When the  maximum  limit  of  extracted  constants  is
  884.           reached,  Suprtool  no  longer  incorrectly  reports the following
  885.           message:
  886.  
  887.            Error:  Number of constants in >EXTRACT exceeds maximum
  888.  
  889.           This error message has now been changed to:
  890.  
  891.            Error:  Total size of constants in >EXTRACT exceeds maximum
  892.  
  893.  
  894.  
  895.    Set Ignore On.    Suprtool  now  honors  the  Set  Ignore  On  flag  when
  896.           encountering  an  illegal  packed  decimal  number in the $stddate
  897.           function.
  898.