Previous Issue Index Next Issue


What's Up, DOCumentation? 2000 # 2

logo

April 2000


From:

To: Users of Robelle Software

Re: News of the HP e3000 and of HP-UX, 2000 #2

What You Will Find in This News Memo:






Qedit logo New Technology Empowers Qedit for Windows Users

System Commands and the Qedit Scripting Language Provides Users with a Highly Integrated and Customizable Solution

The ability to execute HP host system commands from within the Qedit for Windows client has been the most popular customer request, echoing a longtime favorite of Qedit for HP e3000 and HP-UX users. This powerful functionality provides a Windows development environment that is strongly integrated with users' HP systems. For example, host commands such as Listf or Showjob can be executed and controlled directly from the Qedit client, with results appearing in the host command dialog box. There is no need to switch back and forth from the editor to the MPE or HP-UX session. Similarly, developers can write or modify source code and then compile their programs directly from the Qedit client. Compile error messages will appear in the dialog box for convenient fixing.

Not to be overshadowed by host commands, the Qedit Scripting Language (QSL) will also be released in Qedit for Windows Version 4.9. QSL allows users to control the powerful underlying Qedit file objects and file operations. This means that any repetitive task that has an editing or program development component can be automated with a Qedit script. Users can create their own scripts for custom editing needs or simply invoke scripts that have been set up for them to facilitate organizational procedures. What's more, scripts can be invoked in real-time or scheduled for batch execution. Says David Greer, president of Robelle and lead software architect, "This innovative new technology offers a level of customization and process automation above and beyond anything found in other Windows editors."

Used in concert, these huge advancements in Qedit for Windows equal a sum greater than their parts in allowing users to invoke host commands through scripting. For example, contributed Qedit scripts such as "COBOL Compile" or "C Compile" invoke the HP compiler on the e3000 or HP-UX and return the results to the host commands dialog box for further processing.

To help you get started with QSL, a library of contributed scripts will be included with the new release. Also, a collection of scripts will be available on the Robelle website at http://www.robelle.com/support/qwin/scripts/.

In addition to the regular Qedit for Windows user manual, an additional QSL user manual will be distributed with the new version. Finally, Robelle Technical Support is available to help users get started with scripting. Please do not hesitate to contact Tech Support at 1-888-ROBELLE.

How Do I Get the Latest Version?

Supported customers will need versions 4.9 of the Qedit Server Module and the Qedit client. Please contact Robelle to request this latest upgrade. If you are not already licensed for Qedit for Windows and would like to try it, free thirty-day demos are available at http://www.robelle.com/products/qwin/info.html.

[Nicky Gunther]


Up To Table of Contents



Suprtool logo Introducing Suprtool 4.3

Highlights Include Variable Substitution and Support for Large Files in MPE 6.5

Suprtool 4.3 will hit the desks of supported North American customers at the beginning of May (overseas customers can expect their update about a month later). With the release of MPE 6.5, HP e3000 customers will enjoy a huge increase in the filesize capacity of the e3000. Robelle's technical team has been working closely with Hewlett-Packard and the AMISYS healthcare application vendor, HBOC Payor Solutions Group, to make Suprtool compatible with much bigger files. Specifically, the capabilities of Suprtool have been increased from the old limit of 4 GB to the greatly expanded limit of 128 GB - an order of 32 times. Similarly, on HP-UX, the new Suprtool release offers support for bigger filesizes for all three modules of Suprtool/UX: Suprtool, Suprlink, and STExport. Each of these modules can now support files that contain up to 2.1 billion records.

Many Suprtool users will be happy to hear that the second major enhancement in Suprtool 4.3 is "variable substitution" thus closing one of the most popular enhancement requests ever submitted for Suprtool. Variable substitution allows the use of CI variables directly inside Suprtool, Suprlink, and STExport, eliminating the need to define temporary use files to handle these tasks.

Additionally, this year's release incorporates more arithmetic functions on numeric data types. For example, Suprtool now allows you to truncate numbers instead of rounding. Suprtool will also compute the absolute value of a number.

To finalize Suprtool's date functionality, PHDate and Julian Day Number have been added to the list of supported date types. With Julian Day support and the $DAYS command, Suprtool can now compute the number of days between any two dates.

[Nicky Gunther]


Up To Table of Contents



Suprtool logo Calculating the Difference Between Any Two Dates

Suprtool now has the ability to select records based on the difference between two dates. The $DAYS function, available in Suprtool 4.3's IF and EXTRACT commands, converts a date to a number. By converting two dates to numbers, then subtracting one number from the other, you can get the number of days difference between the two dates.

Example: find the orders that shipped more than a week after ordering, and extract the order number and number of days it took to ship

get      order-header
item     order-date,date,yyyymmdd
item     ship-date,date,yyyymmdd
if       $days(ship-date) - $days(order-date) > 7
extract  order-number
define   number-of-days,1,2,integer
extract  number-of-days = &
         $days(ship-date) - $days(order-date)
...

$DAYS converts any valid date to a Julian day number (the number of days since 4713 BC). If a date is not valid, $DAYS returns a zero instead of a Julian day number. Therefore it is important to be sure that the dates are valid, or your results may not be predictable. For example, in the example above, if an order has not yet been shipped, the SHIP-DATE field will probably be blank, zero, or some other special value. In that case the calculation will probably return a negative number. This may or may not deliver the desired result, depending on what you are trying to accomplish. To be sure of getting the right results, you need to ensure that the date fields have valid dates. The $INVALID function of the IF command can do this for you.

For example:

if       not $invalid(ship-date) and &
         not $invalid(order-date) and &
         $days(ship-date) - $days(order-date) > 7

For more information, see the documentation that accompanies the Suprtool 4.3 update, or call us if you have any questions.

[Mike Shumko]


Up To Table of Contents



Robelle's Web-Enabling Think Tank

Traditionally, Robelle is known as a product or tools company. In fact, many customers use the word "Robelle" interchangeably with our product names, e.g. "We're installing Robelle tomorrow" versus "We're installing Qedit and Suprtool tomorrow."

In 2000, we're aiming to change this product- or tool-focused perception of Robelle to a whole solutions focus. We're working harder and digging deeper to uncover customer problems and striving to recommend the smartest solutions. Our solutions may be built on a variety of different hardware and software technologies, whatever combination makes the most sense in accomplishing a customer's unique objective. One of our strengths is knowing how to piece together - and, indeed, where to find - all the technology components and people resources required to solve a given IT problem. We are turning these skills toward the e-business arena with our new "Web-Enabling Think Tank", a free service to our customers until October 31st, 2000.

Our new Think Tank offer gives you access to Robelle's complete team of technical experts who will study the e-business challenges facing your company. Whatever your particular challenge may be, we promise to deliver to you three pieces of advice that will, in turn, help you deliver a smart solution to your company. Our aim is to give you down-to-earth trustworthy advice and use our think tank synergies to give you a head start.

Some of you may already have seen Robelle's Think Tank offer in the HP 3000 e-Tools Coupon Book compiled by Hewlett-Packard. The coupon book has offerings from a number of HP partners in three areas: web development, web infrastructure, and web deployment.

For those of you who have already converted existing applications (or document publishing or report generation or...) to the Internet/Intranet, we'd love to hear your story and (with your permission) share it with other customers in upcoming issues of What's Up, DOCumentation?

[Nicky Gunther]


Up To Table of Contents



The HP e3000 Is Reality, Not Hype

By now you have heard that Hewlett-Packard has renamed the HP 3000 to the HP e3000. Some vendors make a habit of announcing new products long before they will be delivered (if ever). In this case, however, HP is just catching up with the 3000 customers and the enthusiastic 3000 programmers.

Starting way back in 1995 (ancient history in Internet time), Mark Bixby, Mark Klein, Mike Yawn, Lars Appel, and many others ported the essential Internet and Web infrastructure to MPE/iX: GNU C++, DNS, Bind, Sendmail, Java, Perl, Apache, Java servlets, and Python.

HP 3000 customers were not slow in taking advantage of these tools.

For example, e3000 site PayMaxx offers web-based payroll services at www.paymaxx.com. Bigwords, another e3000 site, buys and sells textbooks at www.bigwords.com, and e3000 site Sunrider sells health products at www.sunrider.com. According to The 3000 News Wire, "Wired magazine recently named Wake Forest University as the most wired campus in the US, and SRN's Web-based 3000 solution is at the heart of the Wake Forest operations." And Information Week reports that eCandy.com plans to use the e3000 and the MACS order processing system (and our Suprtool) confident they can process up to 300,000 transactions a day.

With RSA working on SSL security for Apache/iX and with MPE/iX 6.5 upgrading to Java 2 (actually version 1.2.2) plus JDBC and LDAP client capability, the e3000 is a platform you can apply in a number of interesting ways.

If you are just starting out with web-enabling, activate the Apache web server on your MPE/iX system and write some code to enable bi-directional browser access to all your internal users. Everything you need to know to get started is on HP's "Jazz" web site. As your experience and needs grow, add a standalone NT, HP-UX or LINUX web server and give your external customers, suppliers and colleagues access to your MPE/iX databases through ODBC.

Using Qedit for Windows as a development front-end, you can even use the Internet to easily maintain your e3000 web site from halfway across the globe. At Robelle we use web pages and Qedit to do project management for all our current projects. And with the powerful new scripting language and host-command feature to automate Internet tasks, perhaps we should rename it the "eQedit"?

Links:

[Bob Green]


Up To Table of Contents



Tired of the Command Interpreter? Drop It!

In the last issue, Neil Armstrong introduced MPE/iX 6.5. This is the first in a series of articles describing some of the new features in MPE/iX 6.5. [Ed.]

The first new feature that I find interesting is the NEWCI command, which is known as CI elimination. The NEWCI command is similar to the Run command in that it executes a program as a child process. However after launching the program, the NEWCI command will eliminate the CI process for that session.

This will help reduce the number of processes on heavily loaded high-end systems. This new feature allows for users to only have their main application running, without having a CI running.

From your logon UDC for an individual who runs a customer application, you could start the applications with the NEWCI command, and when they leave the application they are logged off automatically.

Dologon
option logon nobreak
file custdb=custdb.db.data
newci customer.pub.xeq
******

Naturally, I was curious to see if I could use Qedit in this manner. Because I live in Qedit all day, I rarely, if ever, require command prompt access.

:newci qedit.pub.robelle
Qedit/iX. Copyright Robelle Consulting Ltd. 1977-1999.
(Version 4.8)
/showtime
FRI, JAN 28, 2000, 11:31 AM
/exit
CPU=5. Connect=1. FRI, JAN 28, 2000, 11:31 AM.

As you can see, once you exit the program that was executed with the NEWCI command, you are logged off automatically.

Overall the NEWCI command seems like a good solution for eliminating a large number of processes for those users who only need application access.

[Neil Armstrong]


Up To Table of Contents



Upcoming Events In 2000

calendar and clock

What When Where Who
McKessonHBOC Meeting May 2-5 Las Vegas, Nevada Nicky Gunther, Neil Armstrong
Summit Information Systems Client Group Conference May 21-22 Maui, Hawaii Mike Shumko
Smith Gardner World Conference & Expo June 4-7 Aventura, Florida David Greer, Marie Reimer, Mike Shumko
HP World 2000 Conference & Expo September 9-14 Philadelphia, Pennsylvania Bob Green, David Greer, Francois Desrochers, Nicky Gunther, Hans Hendriks, Marie Reimer, Tammy Roscoe


Up To Table of Contents



Suprtool logo Inventory Reduction Sale

We're in the process of releasing Suprtool 4.3, and we have some excess inventory of Suprtool 4.2 user manuals. These are the same high-quality manuals you always receive from us, just without the newest features. Suprtool is backward compatible, so the old manuals are still quite usable. If you would like to distribute manuals to more people around your company, we are clearing out the old stock at US $10 each (or if you prefer manuals of the new release, they are $20 each). To order, call Eunice Sheehan at 1-888-ROBELLE or e-mail Eunice at eunice.sheehan@robelle.com.


Up To Table of Contents



New Web Site for Robelle Distributor in Australia

Robelle's Australian Distributor, Michael Redmond of MRFM, is pleased to announce his new website at http://www.mrfm.com.au/.

Michael has worked closely with Robelle for many years. You may remember reading his article in the September 1999 What's Up, DOCumentation? called "An Australian Revisits Robelle". Michael was one of the privileged visitors to the Robelle office when it was "on the farm" with dogs, cats, horses, and not much space! Go check out the MRFM website for more information on its products and services.


Up To Table of Contents



Suprtool logo Speed Demon Saves Hours in Only Fifteen Minutes

If you could double the speed of some of your COBOL programs in only a few minutes, wouldn't you do it?

Speed Demon is a little-known part of Suprtool that has been around for years, but hasn't received the attention it deserves. If you have Suprtool, then you have Speed Demon - it's one of the standard components of Suprtool that everybody gets at no extra charge.

Speed Demon is a replacement routine for DBGET Mode 2. If you have a program that reads an IMAGE dataset serially, chances are that you can speed it up substantially using Speed Demon. The program logic remains the same; you just change the DBGET call to a Speed Demon call. That might sound like a bit of an oversimplification, but there's really not much more to it than that.

In general your existing program will look something like this:

DBOPEN
while not end-of-file do
   DBGET(base,dataset,mode-2,status,itemlist,buffer,dummy)
   do something with the record
endwhile
produce the report, etc.
DBCLOSE

After you've converted it to use Speed Demon, it will look like this:

DBOPEN
SPDEDBINIT(base,dataset,mode-1,status,control,itemlist)
while not end-of-file do
   SPDEDBSCAN(base,status,buffer,dummy)
   do something with the record
endwhile
SPDEDBSHUT(base,dataset,mode,status,dummy)
produce the report, etc.
DBCLOSE

Your program logic and structure remains the same. The serial DBGET is replaced by a call to SPDEDBSCAN. Some of the DBGET parameters are moved to SPDEDBINIT, which is called only once, before the first call to SPDEDBSCAN. With a program that does a serial scan, the DBGET parameters do not change from one DBGET to the next, so it does not make sense for IMAGE to have to validate the parameters for each record. If you serially read a million records, do you really need to specify a million times which dataset and item list you want? With Speed Demon we set the parameters once in the SPDEDBINIT call, moving the checking and overhead outside the read loop. The Speed Demon code that gets executed a million times is as lean as possible.

Speed Demon achieves its performance improvement by using the same high-speed database scan engine that is at the core of Suprtool. Instead of reading a record/buffer/page at a time as IMAGE does, Speed Demon reads up to 50Kb with every disc access. That means that Speed Demon may fetch hundreds of records with every disc read operation. Additionally, Speed Demon uses Robelle's pre-fetch mechanism to coax the operating system into fetching the data before Speed Demon actually needs it. This allows the program to always be processing records instead of waiting for I/O to complete. The result is that Speed Demon substantially reduces the I/O overhead of the retrieval. Because I/O is the most common bottleneck on an e3000, anything you can do to reduce the amount of I/O will benefit the program.

You will usually find that Speed Demon can read records five times faster than DBGET. Note that your overall program may not run five times faster, because the rest of your processing, sorting and printing of the records will be at the same speed as before. But cutting the overall run time of a program in half is not unusual with Speed Demon. That's a pretty good result from such a small investment in programming effort.

See the Speed Demon section of your Suprtool user manual for more information, or call us if you have any questions.

[Mike Shumko]


Up To Table of Contents



Adding A Sequential Number to A Data File

Recently we've received a number of calls from folks wanting to add a sequential number to an output file in Suprtool. In other words, they'd like the output file to contain a new field containing values 1, 2, 3, etc. for each successive output record.

Suprtool doesn't have a built-in function for this. But here are two ways you can achieve this.

Suprtool logo With Suprtool

Suprtool has a "NUM" output option that will add a four-byte integer field to the start of the output record, containing the record number of the input record. This was originally added so that programmers could scan large files with Suprtool, extract the record numbers of records that required further processing, then pass those record numbers to a 3GL program that could do directed retrievals to process the already-qualified records. When selecting a subset of records from a large file, or from a dataset which has non-empty delete chains, the record numbers represented in the output file will be non-sequential. However, when copying all records from one MPE file to another, the input record numbers will be sequential, starting with record number 0 for the first record.
in      custs
out     custnum,num,data
xeq
IN=19, OUT=19. CPU-Sec=1. Wall-Sec=1.

:listf custs@,1
FILENAME  CODE  ------------LOGICAL RECORD-------
SIZE  TYP        EOF      LIMIT
CUSTNUM            15W  FB          19         19
CUSTS              13W  FB          19         19

Note the new file's record length is 2 words (4 bytes) longer than the original data file. That is because each record now has a four-byte binary record number added to the beginning. Here's what the records look like:

input   custnum
define  recno,1,4,integer
define  data,5,26,byte
extract recno, data
list    standard
xeq

Jan 10, 2000 14:00          File: CUSTNUM             Page 1

RECNO       DATA

         0  Thomas    Serafin
         1  Wayne     Humphreys
         2  Gordon    Oxenbury
         3  Lana      Johnston
         4  William   Kirk
         5  Walley    Nisbet
         6  Rupert    Hillstrom
         7  John      Melander
         8  Werner    Frahm
...etc

The record numbers start at 0 and go up by 1.

Qedit logo With Qedit

When opening files, Qedit has to do some quick footwork to decide whether the file is numbered or not. It does this by examining the first few records, to see if the last 8 columns contain numbers, and whether those numbers ascend from one record to the next. You can override this default on the text command:
text foobar,unnumbered

This forces Qedit to treat the file as unnumbered. In other words, Qedit will treat the whole record as data, irrespective of whether the first or last columns contain sequential numbers.

If we Text the file as unnumbered, we can force Qedit to Keep the file with numbers:

text custs,unnumbered
set keep num on
keep custs2

Note that the records are now 4 words (8 bytes) longer than the original file, because an 8-digit ASCII line number was added to the end of the records:

listf custs@,1
FILENAME  CODE  ------------LOGICAL RECORD-------
SIZE  TYP        EOF      LIMIT
CUSTS              13W  FB          19         19
CUSTS2             17W  FB          19         19

Use Qedit to examine the file:

list custs2,unnumbered {treat the line numbers as data}
    1     Thomas    Serafin         00001000
    2     Wayne     Humphreys       00002000
    3     Gordon    Oxenbury        00003000
    4     Lana      Johnston        00004000
    5     William   Kirk            00005000
    6     Walley    Nisbet          00006000
    7     Rupert    Hillstrom       00007000
    8     John      Melander        00008000
    9     Werner    Frahm           00009000
...etc

The line numbers are now included in the file, and can be defined as a data field in subsequent Suprtool tasks. Note that the numbers start at 1000, and go up by 1000. This is because Qedit assumes that line numbers have three decimal places. To make the numbers start at 1 and go up by 1, use this command before the Keep command:

renum .001 .001

[Hans Hendriks]


Up To Table of Contents



Qedit logo Using Regular Expression to Create HTML Headings

When you have to manually convert a text file into HTML, one of the tedious typing chores is the addition of <h1>heading tags</h1>. Regular expressions in Qedit and Qedit for Windows can simplify this task. The following example assumes that all headings appear on a line by themselves.

Step 1: put "`1" "`2" etc in front of the line that will be a heading, using `1 for heading level 1, `2 for heading level 2, etc. Instead of a "`", you can also use any character that does not occur this way in the file.

`1Regular Expression Uses
`2Assist in HTML creation
text
`2Find stuff
text

Step 2: Do a search and replace using the following regular expressions. Remember to enable regular expressions in your Change dialog or command. Qedit for Windows command:
Search for: `([1-6])(.*)
Replace with: <h\1>\2</h\1>

Qedit command:

change "`([1-6])(.*)"(regexp) "<h\1>\2</h\1>" all

The text will now look like

<h1>Regular Expression Uses</h1>
<h2>Assist in HTML Creation</h2>
text
<h2>Find stuff</h2>
text

What each part of the regular expressions mean:
` our heading marker
([1-6]) remember the next character (if 1..6) as \1
(.*) remember the rest of the line as \2
<h\1> insert the start tag <h1> <h2>... The heading level number comes from the \1 that we remembered
\2 the actual heading, with the text remembered in \2
</h\1>insert the end tag </h1> </h2>...

Exercise for the reader: how would you change all occurrences of first_lastname@mycompany.com to first.lastname@mycompany.com?

Answer in Qedit for Windows:
Search for: ([A-Za-Z]+)_([A-Za-z]+)(@mycompany\.com)
Replace with: \1.\2\3

Answer in Qedit:

changeq "([A-Za-z]+)_([A-Za-z]+)(@mycompany\.com)"(regexp) "\1.\2\3" all

[Dave Lo]


Up To Table of Contents



Whose Line Is It Anyway?

Our T1 Internet connection recently went down. Getting it back up was a classic tale of eight hours to find the right person and ten minutes to fix the problem.

It started before 6 a.m. when Bob Green in our Anguilla office was busy working, connected to our Vancouver office, and the line just died. A little after 7 a.m., I called our ISP to report the problem. By 8 a.m. Telephone Company #1 tells me "they're on the ball" but they need to contact Telco #2 in Calgary, because it was originally their line and Telco #1 just acquired Telco #2.

At 9 a.m. Telco #2 says they've checked their lines and the problem is really with Telco #3 and we should call them. I call Telco #3 but they say that I can't initiate a trouble call because the line is owned by our ISP. So it's back to our ISP and by 10 a.m. they have called Telco #3.

Four hours later, a little after 2 p.m., we're finally back up. We later learn that the guy who actually found the blown fuse wasn't notified of the problem until 2 p.m.!

Now if only our Internet had been up, I could have e-mailed him...

The moral of the story is that if you really care about your Internet connection being available 24x7, you need to plan for failure. For fault tolerance, have a backup Internet connection available that you can quickly switch to, even if it is not as fast as your regular line. In our case, if we had had a second connection, even a slower ISDN, xDSL or cable connection, we would not have been so concerned that our primary line was down for eight hours.

[Paul Gobes]


Up To Table of Contents



This Newsletter Available by E-mail

You can have What's Up, DOCumentation? delivered directly to your electronic InBox. You get all the same news as the print version in an e-mail-friendly format, usually a few days before the print version gets to you. The print version goes only to the official contact for your company, but anybody in your company can get What's Up, Doc? by e-mail if your support contract is current.

To subscribe, send your request to support@robelle.com.


Up To Table of Contents



Contributors to This Issue

In alphabetic order:


Up To Table of Contents