What's Up, DOCumentation? Robelle Consulting Ltd. Unit 201, 15399-102A Ave. Surrey, B.C. Canada V3R 7K1 Toll-free: 1-888-ROBELLE (1-888-762-3553) Phone: (604) 582-1700 Fax: (604) 582-1799 E-mail: support@robelle.com Web: www.robelle.com Date: June 1998 From: Robert M. Green, CEO David J. Greer, President Ken Robertson, Editor pro tem 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 World '98 Training Opportunities SmartDate to the Rescue What's New in Qedit for Windows Just Ask Robelle-L Visiting Our European Customers From The Truth Is Stranger Than Fiction Department Exciting New Enhancement in Suprtool Suprtool Tips and Tricks Converting Positive-Signed Packed and Display Fields to Neutral-Signed Suprtool and PowerHouse Data-Types Bug Alert: Suprtool/iX v. 4.1.01 We're Listening Robelle Freebies at HP World '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. Please see the enclosed schedule for specific 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. Training Opportunities ---------------------- Suprtool ======== 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. SmartDate 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: - Day Month Year format - Year Month Day format I 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.) I decided to use 1950 as the cutoff year. This allows a date like 980506 to be treated as 19980506 after the year 2000. I did this by setting a JCW before program execution. SETVAR ROBELLECUTOFFYEAR = 50 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 http://www.robelle.com/support/smartdate/datefix.cob. check-date. ***** 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 lnk-to-date rdt-control if rdt-status of rdt-control <> 0 then perform rdterror. rdtconvert. 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 new-date rdt-control if rdt-status of rdt-control <> 0 then perform rdterror. 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 out-buf out-buflen move out-buflen to lnk-error-len move out-buf to lnk-error-buff. [Ken Robertson] What'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: - Help buttons in all of the dialogs - Open selection can use a connection name - Accepts long passwords on HP-UX trusted systems - Allows you to open files in an "unnumbered" state. This is particularly useful when your file contains numbers in the last eight or first seven columns. Qedit may get confused and think that your data is a source file for some programming language. 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! 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 http://www.robelle.com/support/robelle-l.html and follow the directions. Here are some samples messages from the list: Q: 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. A: 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 suprtool.pub.robelle;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 suprtool.pub.robelle;parm=4; & info="set limits mpe off;set limits readonly on" Q: 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. A: 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" ALFREDO.PAUL.TECHSUP 503.11 /paul ADAGER.PAUL.TECHSUP 19 Database STORE.PAUL.TECHSUP. Adager command 92 Database STORE.PAUL.TECHSUP. Adager command 103 Paul's dataset D-SALES of the STORE database. ARES.PAUL.TECHSUP 3 FROM: Paul Gobes / Robelle Consulting 18 /paul 33 | Paul Gobes, Tech Support Mgr. | Robelle 34 | paul@robelle.com | 35 | http://www.robelle.com/~paul | Fax: 9 lines found 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] 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? ;-) Exciting 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 support@robelle.com if you want the Suprtool pre-release with this new feature. Suprtool 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. Item: CUST-ACCOUNT Z8 >get d-sales >extract cust-account >list >output * >xeq CUST-ACCOUNT = +5 0000000E 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 >list >output* >xeq CUST-ACCOUNT = 5 00000005 IN=5, OUT=1. CPU-Sec=1. Wall-Sec=1. 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 D-SALES TYPE SCALE SCALE DEC PICTURE * 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 >form Database: STORE.DEMO.ROBELLE 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 - Results of summary functions (Count, Subtotal, etc.) 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] 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 underlined text is entered by the user. hello mgr.robelle ----------------- copy suprtool.pub,suprnm.pub ----------------------------- run sompatch.pub.sys -------------------- sp> op suprnm.pub ------------- sp> modify init_suprtool$2$heap_table_allo+28 ----------------------------------------- init_suprtool$2$heap_table_allo + 28 34161a48 34163490 -------- 34161a48|34163490 -------- sp> exit ---- Total number of patches being applied 1 copy suprnm.pub,suprtool.pub ---------------------------- We apologize for any inconvenience this may cause you. If you have any questions, please give us a call. 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!