Previous Issue Index Next Issue

What's Up, DOCumentation? 1998 # 3


June 1998


To: Users of Robelle Software

Re: News of the HP 3000 and of HP-UX, 1998 #3

What You Will Find in This News Memo:

Robelle Freebies at HP Woprld '98

As HP World ’98 quickly approaches, we look forward once again to seeing you at the conference. This year Robelle will be conducting short training sessions on Suprtool, Qedit, and Qedit for Windows everyday at our booth (#843). Each session will be about 10-15 minutes followed by lots of opportunity to ask questions and get a one-on-one personalized demo. We will give away a free T-shirt to anyone who attends our in-booth training. Visit the Robelle @ HP World '98 page for a schedule of topics.

Win Great Prizes

Make sure you get a ticket for our prize draw on Wednesday, August 5th at 4:30 p.m. We have three great prizes to give away: the Palm Pilot Professional (first prize); "The Snappy" video for high-quality snapshots (second prize); and MasterPhotos Studio for customizing photos (third prize). During the draw, we will be serving cake and coffee--come and join the festivities!

Book Signing by Bob Green

Following the prize draw, Robelle’s founder, Bob Green, will be available to autograph your personal copy of Robelle’s popular SMUG VII (Seldom Met Users Group) book. So bring your SMUG book to the conference and turn it into a collector’s item! If you don’t have one already, a limited supply of our remaining stock will be available.

Last Chance for Lowest Price on Upgrade

HP World ’98 marks the end of our introductory upgrade pricing for Qedit for Windows. Since we unveiled the beta copy at last year’s conference, a lot of functionality has been added to Qedit for Windows. If you already have Qedit, this is your last chance to get the Qedit for Windows server upgrade with two free clients for US$500. If you would like to take advantage of this lowest-ever price, please contact Nicky at 1-888-ROBELLE.

Up to Table of Contents

Training Opportunities


Learn to make the most out of your Suprtool product and invest in a course from Robelle. The two-day configurable course will be offered at Robelle located near lovely Vancouver, British Columbia on

    October 15 - 16, 1998

You can also have us come out to your shop to give the training locally. For more details, please contact Mike Shumko at 1-888-ROBELLE.

Free Training at HP World ’98

Robelle will present 10-15 minute training sessions on Suprtool, Qedit, and Qedit for Windows in Booth #843 at HP World ’98. See the enclosed schedule for details.

Up to Table of Contents

SmartdateSmartDate to the Rescue

A few weeks ago, a colleague issued an enhancement request for an HP 3000 terminal-based in-house system. "Do you realize," she wrote, "that you can enter 50 Jan 99 in the call-back date field?"

"Yes." I responded, "As you had previously requested, there are no rules on entering data into that field. You can enter anything you want there." As it turns out, the person was no longer entering free-form data in that particular field and wanted to limit the format of the input. In fact, her other date fields also did not have edit rules. This was about to change.

The first step to solving this problem was to fire the user. Whoops, just kidding! The first step was to validate all of the existing dates in the database. All the non-standard and invalid dates were corrected with a few passes of Suprtool.

The next step was to implement some date-editing rules. The user didn’t want to restrict the format to a fixed date, so we agreed to implement these basic rules for entering a date:

We used the SmartDate constants from the SmartDate Windows Help file. (You can download the Help file installation to your PC from sdate.whelp.robelle on your HP 3000.) We decided to use 1950 as the cutoff year. This allows a date like 980506 to be treated as 19980506 after the year 2000. We did this by setting a JCW before program execution.

    ***NOTE*** DO NOT USE SETVAR!  It won't work.

The input format can contain alphabetic months. (This is really cool.) This allows the user to enter dates such as "6 Jul99", "990706" or "060799." As long as the date is not ambiguous, SmartDate will convert it. Below is a portion of the program that does the date conversion. If the conversion is unsuccessful because the input date has an invalid format, then lnk-error- message will not be equal to spaces. The whole Datefix subprogram is available from our Web site at

    ***** Is it in day month year format?
      add RdtXnDDMMCCYY to RdtAllowZero giving rdt-from-type
      move RdtX8CCYYMMDD                  to rdt-to-type
      perform rdtconvert.
      if rdt-status <> zeros
    *****  Maybe it is year month day format
        add RdtXnCCYYMMDD to RdtAllowZero giving rdt-from-type
        move RdtX8CCYYMMDD                  to rdt-to-type
        perform rdtconvert.

      if new-date <> spaces
    *****   If we had a successful conversion, then convert to
    *****   output format of  dd mmm yy
        add RdtX8CCYYMMDD to RdtAllowZero giving rdt-from-type
        move RdtX8DDMMMYY                to rdt-to-type
        move 0                           to rdt-aux-result
        move 0                           to rdt-status
        move 0                           to lnk-return-status
        move spaces                      to lnk-error-message

            call "RDTCONVERT" using new-date
            if rdt-status of rdt-control <> 0 then
               perform rdterror.
         move 0                          to rdt-aux-result
         move 0                          to rdt-status.
         move 0                          to lnk-return-status.
         move spaces                     to lnk-error-message
         move spaces                     to new-date.
         call "RDTCONVERT" using lnk-from-date
         if rdt-status of rdt-control <> 0 then
            perform rdterror.
            move rdt-aux-result to lnk-aux-result
            move rdt-status     to lnk-status
            move spaces         to out-buf
            move zeros          to out-buflen
            call "RDTERROR" using rdt-control
            move out-buflen to lnk-error-len
            move out-buf    to lnk-error-buff.

[Ken Robertson]

Up to Table of Contents

QeditWhat’s New in Qedit for Windows

Despite the fact that we’re still working hard on generating test suites and making the Qedit client as robust as possible, we’ve managed to add some new functionality to Qedit for Windows. Here’s a list of what’s new for version 4.6.10:

Qedit for Windows will be shown at HP World in San Diego. The absolute latest and greatest enhancements will be on display, and you’ll get a chance to chat with the developers. Hope to see you there!

Up to Table of Contents

Just Ask Robelle-L

Do you sometimes wish that you could have direct access to the developers of Robelle software? Now you can! Robelle hosts a mailing list about Robelle products called Robelle-L. Similar in functionality to the popular HP3000-L, e-mail messages submitted to the list are read and commented on by Robelle techies, developers and other Robelle customers.

Internet mailing lists work the same as hanging out at a university lounge. When a question is directed toward someone, you can’t help but hear both the question and answer. You can even add your own remarks. Internet mailing lists do all of this through the magic of e-mail. If you would like to subscribe to Robelle-L, just point your Web browser to and follow the directions.

Here are some samples messages from the list:

I have a menu system that keeps my users away from the MPE prompt. It is invoked as they log on, and controls what they can access. One of the menu choices is Suprtool. I see that users can type MPE commands from within Suprtool. How can I prevent this? I don’t want this to apply to all Suprtool processes, just those launched from the menu system.
Configure your Suprtool menu choice so that it runs Suprtool with an initial command of Set Limits Mpe Off in the Info string. Remember to run Suprtool with Parm=4 so that it will look at the Info string. For example:
    :run;parm=4;info="set limits mpe off"

If you also want to restrict those users to read-only database access, and you have the 4.1 release of Suprtool, add the command Set Limits Readonly On to the command line:

    :run;parm=4;info="set limits mpe off;set limits readonly on"
Using Qedit/iX v. 4.6.02, how do I append 2-3-4 files together? They are source program files that I want to scan through from time to time looking for strings.
Well, you can
    /text file1               {the biggest file}
    /addq last  = file2
    /addq last  = file3

But you may run out of lines and need to set the work size high before starting. An easier approach, if all you want to do is search the files, is to set up another file that contains include statements for your three files, then use the List $incl command.

My three files are called Adager, Alfredo and Ares. I create a file called Myinc to contain the names of the files.

    /list myincl
         1    $include alfredo
         2    $include adager
         3    $include ares

Using the List command, you can search the list of files. It will display the file names plus the lines that the string occurs on:

    /list $inc myincl "paul"
       503.11  /paul
        19    Database STORE.PAUL.TECHSUP.  Adager command
        92    Database STORE.PAUL.TECHSUP.  Adager command
       103    Paul’s dataset D-SALES of the STORE database.
         3    FROM:     Paul Gobes  / Robelle Consulting
        18    /paul
        33    | Paul Gobes, Tech Support Mgr.  | Robelle
        34    |               |
        35    |    | Fax:
    9 lines found

Up to Table of Contents

Visiting Our European Customers

In an effort to increase Robelle’s understanding of customer problems, we have been visiting our customer sites. Last May I spent three weeks with eleven different European customers. I do not have space to thank each of you individually, but I want to thank everyone for making time available to me.

These visits were arranged by our long-time distributors: Robelle UK (London, England), Ole Nord AB (Stockholm), SWS Software Systems AG (Bern, Switzerland), ARES (Paris, France), and Samco Automation b.v. (Oisterwijk, Holland). I also had the opportunity to spend some time with each distributor, which allowed me to gain a lot of knowledge from each of them. Thank you for hosting me and arranging the customer visits.

These are the broad trends that I observed during my visits to our distributors and customers:

  1. The HP 3000 is still used to run critical applications.
  2. The system managers and developers should be regarded as super heroes. They have less time to do more things with less training. Many of these people yearn for simpler management that is usually available on the HP 3000, but is often not found in other platforms.
  3. People see the future of applications in Windows NT, not UNIX. This is somewhat surprising because UNIX, with a rich set of applications, has been very strong in Europe for many years.
  4. Many sites are focusing their development effort on issues related to Year 2000 projects. After the year 2000, many of these sites will focus their development efforts on supporting the new Euro currency.
  5. At large sites, Common Operating Environments (COE) for desktops are becoming more common. A COE specifies both the hardware and software configuration for each desktop. Every user in the organization has the same COE, resulting in fewer support calls and less desktop management.

I was impressed by the knowledge and management of the critical business and IT processes that these customers showed to me. I learned many new things as well as many new ways in which people creatively manage their systems.

[David Greer]

Up to Table of Contents

From The Truth Is Stranger Than Fiction Department

UPN will bring Scott Adams’ Dilbert, the comic strip hero of the workplace with 150 million fans world wide, to primetime television in the animated series Dilbert. The 13-episode series will kick off in the 1998-99 season.

Dilbert’s creator, Scott Adams, and Emmy award-winning producer Larry Charles (Mad About You, Seinfeld) are executive producers of the series from Columbia TriStar Television.

Regarding the project, Mr. Adams commented, "Dilbert is a perfect fit for primetime animation. The readers have been begging me to bring it to TV. It’s exciting to find the talent and resources to make it happen."

Set in the same environment as the daily Dilbert comic strip, the animated series will chronicle the absurdities of the ’90s workplace and the foibles of the hapless hero and lowly cubicle-dwelling engineer, Dilbert. The series will go on to explore the surreal subculture of the corporate world, with its rigid rules, rituals, languages and customs, thereby revealing the absurdity of society at large.

Dilbert’s modest home will be seen in the series along with familiar characters from the comic strip, including Dogbert, Ratbert, Catbert, Wally, Alice and, of course, the pointy-haired boss.

Gee, I wonder what it’s like to work at a large corporation like UPN? ;-)

Up to Table of Contents

SuprtoolExciting New Enhancement

Suprtool now has a new function available to the If and Extract commands. The $stddate function internally converts any date format in nearly any data-type container to the ccyymmdd format in a double integer container.

This allows comparison between dates of dissimilar formats and data-types. For example:

    > get order-detail
    > item order-date,date,ccyymmdd
    > item bill-date,date,mmddyyyy
    > if $stddate(bill-date) <= order-date
    > output badords,link
    > xeq

This feature is also available for dates that have two-digit years. The century component of the date will be applied to the $stddate with the normal cutoff rules, which use the Set Date Cutoff value:

    > get invoice-detail
    > set date cutoff 20
    > item invoice-date,date,yymmdd
    > item close-date,date,mmddyyyy
    > if $stddate(close-date) <= $stddate(invoice-date)
    > out badinvs,link
    > xeq

In this case all invoice dates with a yy value between 20 and 99 will have 19 as the century. All invoice dates with a yy value of less than 20 will have 20 as the date generated by the $stddate function.

Please call Robelle or send e-mail to if you want the Suprtool pre-release with this new feature.

Up to Table of Contents

SuprtoolSuprtool Tips and Tricks

Converting Positive-Signed Packed and Display Fields to Neutral-Signed

When using tables for data lookup or linking data together with Suprlink, it is important to get an exact match of data for the operation to work correctly. It is possible that one field has signed positives and another has neutral positive values (i.e. the linkage is logical rather than physically maintained by IMAGE). In the real world, the concept of plus one (+1) is the same as one (1), but to a computer the values are different.

Occasionally Packed (Pn) and Display (Zn) data-type fields in IMAGE/SQL datasets hold positive-signed numbers. To get Suprtool to convert these fields to neutral-signed data, you can use an arithmetic operation on the Extract command. In the following example, we have a Zoned Display field that was entered with a positive sign. Notice the List command shows the sign and the Output command shows it with an alphabetic "E" overpunch.

       CUST-ACCOUNT          Z8
    >get d-sales
    >extract cust-account
    >output *
    CUST-ACCOUNT    = +5
     IN=5, OUT=1. CPU-Sec=1. Wall-Sec=1.

Now let’s try the same task with an arithmetic operation on the Extract command:

    >get d-sales
    >extract cust-account = cust-account * 1
      CUST-ACCOUNT    = 5
      IN=5, OUT=1. CPU-Sec=1. Wall-Sec=1.

Up to Table of Contents

Suprtool and PowerHouse Data-Types

One of the recurring themes in our Tech Support calls is that of identifying data-types when defining fields in Suprtool. This is particularly true of PowerHouse sites, because PowerHouse views the data through its Dictionary definitions, while Suprtool’s vocabulary is based on IMAGE terminology. Both products read the same underlying data structures, so the problem is only one of semantics. This article shows how to correctly declare data structures when they are being passed between Suprtool and PowerHouse processes.

Translation Table of Data-Types

IMAGE Type PowerHouse Type Suprtool Type
U or X Character Byte (Character for NLS)
R Float (non-IEEE)* Real or Long
E Float (IEEE)* IEEE
K Integer Unsigned Logical
I or J Integer Signed Integer or Double
P Packed Packed
Z Zoned Display

* IEEE or Non-IEEE depends on whether Float IEEE or Float NONIEEE was declared under System Options in your system Dictionary.

Tip 1: Use Qshow to Examine PowerHouse Data Structures

Many users are familiar with the Show Items command in Quiz:

    run Quiz
    > access d-sales
    > show items
                                   INPUT OUTPUT
    * CUST-ACCOUNT            NUM     0     0    0  ^^^^^^^^
      DELIV-DATE              NUM     0     0    0  ^^^^^^^^^^
    * PRODUCT-NO              NUM     0     0    0  ^^^^^^^^
      PRODUCT-PRICE           NUM     0     0    0  ^^^^^^^^^^
      PURCH-DATE              NUM     0     0    0  ^^^^^^^^^^
      SALES-QTY               NUM     0     0    0  ^^^^^
      SALES-TAX               NUM     0     0    0  ^^^^^^^^^^
      SALES-TOTAL             NUM     0     0    0  ^^^^^^^^^^

This listing shows you the attributes and sequence of the fields, but doesn’t describe their storage format. The Qshow program gives a much more useful listing:

    run Qshow
    > show subfile salesub
    98/05/13                    SUBFILE DICTIONARY              Page    1
                               SUBFILE RECORD REPORT
    Subfile:            SALESUB
        Type:               Permanent
        Organization:       Direct
        Format:             7
        Record Size:        38 Bytes

     Item                           Type            Offset Size  Occurs
    CUST-ACCOUNT                   ZONED UNSIGNED   0      8
     DELIV-DATE                    INTEGER SIGNED   8      4
     PRODUCT-NO                    ZONED UNSIGNED   12     8
     PRODUCT-PRICE                 INTEGER SIGNED   20     4
     PURCH-DATE                    INTEGER SIGNED   24     4
     SALES-QTY                     INTEGER SIGNED   28     2
     SALES-TAX                     INTEGER SIGNED   30     4
     SALES-TOTAL                   INTEGER SIGNED   34     4

Notice that this example shows the offset of the fields within the record (the first field starts at offset 0), the length (size) of the fields, as well as the storage data-type. In most cases, these map directly onto the IMAGE/Suprtool data-types. (See the Translation Table above for mappings.) For example, the above subfile can be defined in Suprtool as follows:

    > define cust-account,1,8,display
    > define deliv-date,9,4,integer
    > define product-no,13,8,display
    > define product-price,21,4,integer
    > define purch-date,25,4,integer
    > define sales-qty,29,2,integer
    > define sales-tax,31,4,integer
    > define sales-total,35,4,integer

Note that PowerHouse’s Zoned Unsigned data-type is equivalent to Suprtool’s Display data-type, and that Suprtool’s Define offset starts at one (1), which is one higher than the offset in the Qshow listing.

Tip 2: Where Is the Data Coming From?

When a PowerHouse subfile contains complete records from an IMAGE dataset, you can have Suprtool read the record structure directly from the IMAGE root file:

    >base store,1,WRITER
    >input salesub = d-sales
    D-SALES          Detail                  Set# 5
           Entry:                     Offset
              CUST-ACCOUNT         Z8      1  (!M-CUSTOMER)
              DELIV-DATE           J2      9
              PRODUCT-NO           Z8     13  (M-PRODUCT)
              PRODUCT-PRICE        J2     21
              PURCH-DATE           J2     25
              SALES-QTY            J1     29
              SALES-TAX            J2     31
              SALES-TOTAL          J2     35
       Capacity: 602 (14)  Entries: 8  Highwater: 8  Bytes: 38

Of course, if the subfile contains only some of the fields, then you’ll need to define them individually. But you can still use Suprtool’s Form command to examine their storage structure in the datasets from which they’ve been extracted.

Tip 3: Defined Fields’ Data-Types

In some cases, subfiles may contain fields that were created within a previous Quiz task, namely:

Defined fields have whatever storage type is specified when they are created. If a Numeric storage type is specified, PowerHouse creates a Float size 8 field by default. It is also important to note that if the Define is not explicit about the field size, PowerHouse assumes a size based on the requested number of digits.

For example,

    define D-PRICE integer*4 = 25

creates a field capable of storing 4 digits (i.e., a 2-byte integer), while

    define D-PRICE integer size4 = 25

guarantees a 4-byte integer field. When in doubt, use Qshow to examine the structure of the subfile.

Tip 4: Fields Created by Summary Operations

Here is a list of data-types for PowerHouse summary functions written to subfiles:

Count Integer size 4
Subtotal Float size 8
Minimum Float size 8 for numerics, Character size nn for char fields
Maximum Float size 8 for numerics, Character size nn for char fields
Average Float size 8 subtotal, Integer size 4 count, and an Integer size 4 filler of binary zeros.
Percent Two Float size 8 subtotals
Ratio Two Float size 8 subtotals
Sysname Character size 40
Sysdate Phdate integer size 2 or 4 (if century included)
Systime Integer size 2 (HHMM format)

[Hans Hendriks]

Up to Table of Contents

Bug Alert: Suprtool/iX v. 4.1.01

We have discovered a potentially serious problem in the current version of Suprtool for MPE/iX 4.1.01.

The problem is that a Reset All command sometimes fails with an error message of "Error: Unable to reset table space." The root cause of this problem may cause other serious problems within Suprtool.

We have developed the following patch to fix the problem, and we will send you a new tape if you request one. This fix is only for version 4.1.01 of Suprtool for MPE/iX. The problem does not affect the MPE/V or HP-UX versions. The bold text is entered by the user.

    hello mgr.robelle
    sp> op
    sp> modify init_suprtool$2$heap_table_allo+28
    init_suprtool$2$heap_table_allo + 28 34161a48
    sp> exit
    Total number of patches being applied 1

We apologize for any inconvenience this may cause you. If you have any questions, please give us a call.

Up to Table of Contents

We’re Listening!

Thank you to all those who returned our What’s Up, DOCumentation? survey . As requested, future articles of our newsletter will have a more technical slant. Stay tuned!

Up to Table of Contents