______________________________________________________________________________ ______________________________________________________________________________ Contributions ______________________________________________________________________________ ______________________________________________________________________________ Contributions for the newsletter can be sent to either of the following addresses: Editor, DATATRIEVE Newsletter Joe H. Gallagher, Ph. D. c/o DECUS U. S. Chapter DATATRIEVE Newsletter Editor 249 Northboro Road, BP02 Manager, Information Center Marlboro, MA 01752 Cleveland Clinic Foundation 9500 Euclid Avenue Cleveland, Ohio 44106 Letters and articles for publication are requested from members of the SIG. They may include helpful hints, inquiries to other users, reports on SIG business, summaries of SPRs submitted to Digital or other information for members of the DATATRIEVE SIG. Machine readable input is highly desirable and machine-to-machine transfer of material is preferred, but most anything legible will be considered. However, this newsletter is not a forum for job and/or head hunting, nor is commercialism appropriate. ______________________________________________________________________________ ______________________________________________________________________________ Table of Contents ______________________________________________________________________________ Volume 6, Number 3 2 Chairman's Corner 2 From the Editor's Pen 3 DATATRIEVE Wish List - 1985 Spring Symposium 8 Article - Views from a DATATRIEVE Field Test Site 11 Library Notes 13 Hints and Kinks 14 Wombat Magic Session - 1985 Spring Symposium - Part 1 19 Subscription Renewal Form ______________________________________________________________________________ ______________________________________________________________________________ About the Cover ______________________________________________________________________________ The cover for this last issue of the independently published Wombat Examiner was drawn by Bart Lederman of Bankers Trust Company. Wombat Examiner Volume 6, Number 3 DTR-1 _____________________________________________________________________________ Chairman's Corner Larry Jasmann, U. S. Coast Guard, Burke, VA _____________________________________________________________________________ This, the last edition of the Wombat Examiner as we have known it, leaves me with mixed emotions. On one hand, I already miss the unique character and value of the "stand-alone" version of the Wombat Examiner. My earnest hope though, is that by combining with the other newsletters, we can provide more information to more members of DECUS, in a more timely manner and at a reason- able price. All of us have an obligation to the newsletter which reaches beyond dig- ging into our pockets for the subscription fee. All of us are challenged by problems when we use software products, and for the most part, we overcome them. The fundamental purpose of DECUS is to avoid the process of other users having to re-invent the same wheel. That only happens if you pass YOUR solu- tions on to others. I urge you to contribute your ideas, solutions and pro- blems to the NEW Wombat Examiner. The process of evolving Datatrieve SIG to the 4GL/DTR SIG is continuing. User reaction at the New Orleans Symposia was very favorable. I wish to em- phasize that the Wombat, and the atmosphere of fun and enjoyment that has always surrounded the SIG will NOT go away. He is just diversifying a bit. Between now and Anaheim, the Steering Committee will meet to finalize the process of changing the name and mission of the SIG. The actual change will be gradual and will occur in response to user desires and interests. This is YOUR SIG, help us make it better. Best wishes for the summer. _____________________________________________________________________________ From the Editor's Pen Joe H. Gallagher, Cleveland Clinic Foundation, Cleveland, OH _____________________________________________________________________________ This the last issue of the independently published Wombat Examiner. With the reorganization of the "new DECUS", the pressure to turn out a "product" has become very great and the Management Council has decided that it is in the best interested of DECUS that there be one monthly newsletter in which all special interest groups participate. Arriving around the first of September will be the first monthly issue of the DECUS SIG Newsletters. If you have a valid subscription to any of the DECUS newsletters you will receive the new combined newsletter until your subscription runs out. If your subscription is about to run out, I urge you to renew your subscription at $35.00 per year. A subscription form may be found at the end of this issue of the Wombat Examiner. Just because you will be receiving a the DECUS SIG Newsletters each month, it does not assure you that there will be any material in the combined newsletter about DATATRIEVE or fourth generation languages. Only if you submit articles will there be anything of interest to publish. DTR-2 Wombat Examiner Volume 6, Number 3 _____________________________________________________________________________ DATATRIEVE Wish List - 1985 SPRING Symposium - New Orleans Bart Z. Lederman, Bankers Trust Company, New York, NY _____________________________________________________________________________ The wish list is an informal method of passing suggestions from users directly to the DATATRIEVE developers. No commitment is made to implement any of these suggestions, but past experience has shown that a very high percentage of the suggestions which meet a user need end up in the product. All comments marked Editor's Note are strictly those of the editor and not DEC. 1. In the most recent releases of VAX-DATATRIEVE, the ability to access lists in Guide mode using the ANY list WITH list-element RSE has been removed. Please put it back! It was very useful for beginners. (It is actually more useful than the cross.) Answer: Don't know why it was taken out - possibly when guide mode revamped for V2.0 - will investigate further. 2. I would like to see VAX-DTR have a feature to be able to see the hits on a query. For Example: FOR domain A WITH field-a = 'JOE' and field-b = 'MARY' and field-c = 'TOM' PRINT HISTOGRAM, field-d, field-x RESULTS A 21 occurrences B 5 occurrences C 2 occurrences FIELD-D FIELD-X ---- ---- ---- ---- Answer: Good optimization/design tool. Probably a "cutsie" for wish list - will add to our list. 3. Inclusion of 1 additional string function: String length. We currently add this one by hand. Inclusion would allow common string applications in procedures similar to those used in languages. Answer: A known hole in DTR-supplied functions. May add in future - suggest writing own function to do this meantime. Wombat Examiner Volume 6, Number 3 DTR-3 4. Speed up DTR READY and FIND Answer: READY must set up internal tree blocks for field tree, plus do necessary RMS, DBMS, Rdb & CDD interfaces - probably never any major improvements - maybe nickel and dime stuff. FIND must load in an RFA and database key for each record and store it into working environment - nothing faster - except not using it. 5. Ability to do a store along with a print in a report, or some way of using DTR's summarization capabilities to create aggregated data files. (Editor's Note: apparently would like to get TOTALs, etc., to go back into the domain.) Answer: It is possible to do report output with no headers or space operators to "create" a data file - or if desired, into existing file - or use COMPUTED BY. 6. Better documentation on Date Arithmetic like A = B + (-30) to get 30 days ago. Answer: Are looking at expanding date arithmetic and "time" handling for future versions. 7. Compiled or partially compiled procedures. (Has appeared before). Answer: Hard and complex to do. Being considered. 8. Consistency among DCL, DATATRIEVE, FORTRAN, etc. Arguments on such things as FN$STR_EXTRACT and FM$STR_LOCATE vary in type and order. Answer: Good suggestion - we could start it, but would others follow? 9. Easy method (without assigning variables) to print a list horizontally. Answer: Try some of the methods demonstrated during Wombat Magic which have been published in the Wombat Examiner. Otherwise, try a CROSS? 10. In the RSE, in addition to ALL and FIRST n, how about LAST n. Answer: Would be performance pig. Must keep track backwards of file count - similar to collection and select prior, but even tougher since records may not be in memory, and LAST n could be a lot of records. Probably won't be done. [Editor's note: If the domain or collection can be sorted in the reverse order, this can be accomplished by find first n b in a sorted by reverse-order-keyfield DTR-4 Wombat Examiner Volume 6, Number 3 11. In the report writer AT TOP and AT BOTTOM prints how about some way to suppress the line feed. I'd like output like: ----- ----- ----- ----- ----- Control Control Data group group items not: ----- ----- ----- ----- ----- Answer: DTR is a general Report Writer. Many expansions to existing the Report Writer, like this, are being considered for future Reporting capabilities. 12. LIST is a nice alternative to PRINT but how about something like: LIST (6) ALL to produce: Name: Smith Jones Doe Johnson Herbert White Age: 32 15 27 54 46 29 Name: Baker Foote Age: 37 29 where the number in the () is how many individual records across the page. Answer: Similar to previous Report suggestion (adding horizontal capability). Probably not a function of DTR. 13. Give us a RELEASE PLOTS command. This way we would not have to exit DTR to re-invoke a new plot. Answer: Good suggestion - Not sure how "doable" with existing architecture - will consider. 14. I'd like to have DTR call our screen driver (which is not FMS or TDMS). I think that making the screen interface public would do the trick. Answer: Won't add hooks thru regular DTR - suggest callable program. Wombat Examiner Volume 6, Number 3 DTR-5 15. I would like a DATATRIEVE performance evaluation utility like the PCA utility. This should report by DTR statement, procedure, or by groups of statements and give CPU time, disk I/O, etc. The only way we have now of identifying DTR performance problems is to have an experienced programmer look at the code. I'd also like DTR to give optional warnings when doing such things as non-keyed accesses. Answer: General area is good idea - somewhat difficult since none of it exists now (in DTR or other internal tools). Maybe some day... 16. Would like to be able to get two forms on one screen at one time. Answer: Was considered and done for V2.1, but removed for V2.2 and later - Reason: inconsistencies in forms products and DTR's handling of them. Try a callable program. 17. Scrolling in forms. (Same as Wishlist #7, Spring 1984, Cincinatti) Answer: Can't do this in existing DTR interface. Use callable program. 18. I would like to be able to insert my own titles on graphs when plotting. (Same as Wishlist #5, Fall 1984, Anaheim) Answer: Suggestion good - currently on wish list. 19. I would like to be able to scale the X-axis or Y-axis on PLOT MULTI_BAR Answer: Can modify plots on your own (unsupported) - won't be allowed in currently supplied DTR plots. 20. SET [NO] READ_LOCK option to disable setting read locks on SELECTed record in domain READYed SHARED READ Answer: Requested more and more - some logistics and internal problems by doing this - (where to get record - should it change) - will consider, but not jump at it. 21. Access thru secondary RSE such that FIND domain WITH ANY collection WITH key-field = key-field does not read the collection once for each record in the domain. One thousand records in the domain and 1000 records in the collection yields 1,000,000 GETs. Editor's note: I believe the problem here is that the user does not realize that collections are NOT keyed. When collections are formed, the key is lost, hence matching the domain against the collection cannot use keyed retrieval. I would suggest a VIEW or CROSS to establish the relation, or perhaps even a domain table. 22. Add outer JOIN statement to DATATRIEVE. Answer: Consider for future - Not easy. DTR-6 Wombat Examiner Volume 6, Number 3 23. Extend DATATRIEVE graphics to include Tektronix compatible terminals. Answer: Probably not DTR - some graphics utility to translate ReGIS to appropriate language needed. Editor's note: anybody out there know of a program which translates ReGIS to Tektronix 4010? 24. I would like to see DTR on RMS files to have a default of: READY domain SHARED READ. This is the default for DBMS databases, and essentially for Rdb. How about some consistency which will allow users to access for minimum conflicts. Answer: will add suggestion to allow default READY mode to the wish list - must keep existing defaults in place for existing applications. Editor's note: It was suggested that this be made a site default configurable option like date format and divide by zero. 25. Include key # on SHOW FIELDS display for indexed keys and possibly DUPLICATE and CHANGE parameters, or at least identify which is the primary key. Answer: Good suggestion, will consider. 26. A way of indexing into lists to obtain Nth record or Nth through Mth record for records with monthly data or the like. Answer: Not easy (similar to "LAST n" suggestion). Maybe do looping with count to emulate this. Editor's note: Diana Washburn's Magic for doing this was presented in Anaheim, and was published in the Wombat Examiner, Volume 6, Number 1, pp 30-35. Wombat Examiner Volume 6, Number 3 DTR-7 _____________________________________________________________________________ Views from a DATATRIEVE Field Test Site LTJG Bert A. Roseberry, 8th Coast Guard (dt), New Orleans, LA _____________________________________________________________________________ The U. S. Coast Guard's Eighth District Office in New Orleans has been a field test site for DATATRIEVE for a little over a year. As system manager and the person responsible for implementing the field test site on our VAX-11/780, I thought it might prove interesting to share some of my views on being a field test site. Why would someone want to be a field test site? Typically, new versions of a software product have enhancements over the current version. By being a field test site it is like receiving the new version of a product four months earlier than everyone else. Of course these enhancements may have a few "bugs" but, in the case of DATATRIEVE at least, extensive testing is done before even the field test version is released. It is up to the field test sites to discover these "bugs" before the product is released to the general public. Access to the development team is another reason to become a field test site. By talking to the actual developers of a product and by reading their responses to the Quality Assurance Reports (QARs - a sort of field test ver- sion of Digital's SPRs) I feel that I know much more about the inner workings of DATATRIEVE. This makes me a better DATATRIEVE programmer and helps me write more efficient procedures by actually understanding how DATATRIEVE handles certain things. My final reason for being a field test site is to improve the product. As a system manager and user of DATATRIEVE, I may have a different view of what DATATRIEVE should do than the developers. As a field test site I can make suggestions on improving the product and documentation to meet my needs as a user. What does a field test site do? A field test site receives a letter from the field test administrator, docu- mentation on usage of the QAR system, and some forms to sign at the beginning of the field test. The installation guide and the release notes arrive later along with the field test software. The field test site is expected to install the software and test it by using it. Once the field test software is installed, I make it the "current" version of DATATRIEVE so that all the users on our system are using it. This gives the field test the widest possible usage at our site. I also keep the last version of DATATRIEVE on our system for two purposes. If I think the field test is doing something "odd", I have the last version to compare it with. The other reason is for severe "bugs". If the field test does not work for a particular user on our system then I can put that user back to using the last version of DATATRIEVE until I get a "work around" from the development team. When the field test site either finds a problem, has a question, or has an enhancement suggestion they call into the field test developers' VAX and enter the "On-Line QAR System" where the developers magically solve all problems immediately (well maybe not quite that quick). What follows is a sample QAR DTR-8 Wombat Examiner Volume 6, Number 3 session where I check on the response to a QAR I had recently entered. Welcome to the land of WOMBAT MAGIC Username: USCG Password: Welcome to VAX/VMS version V4.0 on node WOMBAT Last interactive login on Tuesday, 7-MAY-1985 09:33 We are currently in field test for VAX DATATRIEVE V3.2. ************************************************************************** NOTE - 1. The release notes shipped in hard-copy format in the first field test kit are for V3.2. The release notes contained on the distribution kit, the ones printed during prompting during the installation, are for V3.1. We will correct this discrepancy in the next field test release. 2. When entering QARs into the system, please wait about a minute before exitting from the QAR system. The spawned process will not send mail to all developers on the distribution list if you log off the system during its execution. ************************************************************************** You may enter QARs for V3.2 field test or read other V3.x QARs. The EDT editor is used when entering problem statements. To take defaults to prompts, enter . To get help, type a ? at a prompt. When asked which version of QARS to use, please answer with T3.x (e.g. T3.1-1). Which version you are reporting(enter full version # or E to exit): T3.2-1 Welcome to the VAX-11 DATATRIEVE online QAR system! --------------------------------------------------- This QAR system is for Version 3.2 QARS Type when you are ready to continue... %DCL-I-SUPERSEDE, previous value of SYS$INPUT has been superseded Current QAR is 122 Working... Enter option (? for help): ? Options: A - Add a new QAR D - Directory of QARs E - Edit a QAR L - List a QAR - a screen at a time P - Print a QAR - all at once X - eXit from the QAR system nn - Short list of QAR # nn ? - Display this help Wombat Examiner Volume 6, Number 3 DTR-9 Enter option (? for help): p Current QAR is 122 Enter QAR number: 116 QUALITY ASSURANCE REPORT (QAR) VAX DATATRIEVE V3.2 ************************************************************************** CUSTOMER: USCG * DEC QAR NUMBER: 116 * ATTACHMENT: Yes No X REPORTED BY: Bert Roseberry * PRIORITY: 4 * DATE: 26-Mar-1985 07:59:04.85 * ************************************************************************** CLASSIFICATION: Suggestion REPRODUCIBLE: Yes Problem summary: FN$WIDTH should have NOOPTIMIZE Many times I write large procedures within a WHILE BEGIN END loop. Typically there will one section where I will print out a wide report and will need to use the FN$WIDTH(132) statement before I start my report and FN$WIDTH(80) after my report. Using this within a BEGIN END loop causes the two FN$ functions to be optimized by bringing them outside the loop. The results are obviously not as desired. I can think of no case in which one would want to optimize FN$WIDTH and I suggest that FN$WIDTH function be modified to include the "NOOPTIMZE" statement much like the functions FN$CREATE_LOG and FN$DELETE_LOG are. ********************** Development Response ********************** Date Received: 26-Mar-85 Date Answered: 03-Apr-85 Answer category: Fixed before release This suggestion was brought about back in the fall, and a decision was made to add the NOOPTIMIZE switch to this function. Though the kit you received for V3.2 did not have the change, the next update to field test will contain the NOOPTIMIZE bit set in FN$WIDTH, and carry through to the V3.2 release. Thanks for making the suggestion - it proves our earlier decision to change the function will make at least one site pleased. ************************************************************************** DTR-10 Wombat Examiner Volume 6, Number 3 Enter option (? for help): x Exiting... Are you done using the version 3.2 QAR system: y Are you done using the QAR system: y ****************************************** * Thank you for your time and input! * ****************************************** USCG logged out at 7-MAY-1985 09:40:21.68 How do I become a field test site? If you have decided that you want to put forth the extra effort needed as a field test site then this is how I went about it. I picked a product that our site used extensively and that I was familiar with, at least to the extent that I could carry on discussions with the developers if need be. I explained the field test process to my upper level management and got their support as well as the support of the user community at our site. The New Orleans area is very fortunate to have a superior Digital sales team that is usually pretty much aware of what is going on and will bend over backwards to help us. I phoned my sales representative and told her we would like to be a field test site for DATATRIEVE. She got together with the local software team and did basically all the work for me. Before long I was talking to the Field Test Administrator and signing agreements making us a DATATRIEVE field test site. I had done some preliminary work before talking to our local office by meeting the DATATRIEVE developers at the last DECUS Symposium and mentioning that it sure would be nice to be a field test site. A final point to remember is that just because you ask Digital to be a field test site does not mean that they will grant your request. For many popular products Digital may already have enough field test sites. Being a field test site is a privilege, not a right. _____________________________________________________________________________ Library Notes _____________________________________________________________________________ * The Introduction and Advanced DATATRIEVE Pre-Symposium Seminar Notes from the 1984 Fall Symposium in Anaheim are avaiable from the DECUS Library. These offerings are as follows: Introduction to DATATRIEVE Advanced Use of VAX-11 DATATRIEVE Pre-Symposium Notes Pre-Symposium Seminar Notes Anaheim, Fall 1984 Anaheim, Fall 1984 Program No: PSSF84-DTR1 Program No: PSSF84-DTR2 Media Code: (UD) Media Code: (UD) Service Charge: $25.00 Service Charge: $25.00 Wombat Examiner Volume 6, Number 3 DTR-11 * VAX-98 DECUS Library. DTRWHIZ: A Data Connectivity Utility. Version: V3.0, June 1984. Submitted By: Digital Equipment Corporation. Operating System: VAX/VMS V3.5. Source language: VAX-11 BASIC. Other Software Required: Datatrieve V2 and a spreadsheet which produces tabular format (e.g. DIF format or SYLK format). One of the following spreadsheet tools will work with DTRWHIZ: VAX DECcalc, Multiplan, and Visicalc. Special hardware reuired: VT100, VT102, VT125 WHIZ is a data connectivity utility which links VAX-11 DATATRIEVE with a variety of spread sheet tools including VAX DECcalc, Multiplan and Visicalc. DTRWHIZ used CALLABLE DATATRIEVE to extract data from DATATRIEVE and then creates an intermediate file containing the data in a format acceptableto the spreadsheet utility selected to receive it. Once the intermediate file has been created, the user exits from DTRWHIZ, invokes the selected utility and instructs the utility to read the intermediate file. It is assumed that the DTRWHIZ user is familiar with both DATATRIEVE and the utility for which the data are to be extracted. Through the use of the COMMAND FILE and BATCH FILE options in DTRWHIZ, the DATATREIVE side can be made quite simple. Simply stated, DATATRIEVE commands can be pre- defined in a file and that file can be invoked form within DTRWHIZ. This eleimates the need for users to remember complex DATATRIEVE commands while enabling them to benefit from the data manipulation capabilities of DATATRIEVE. Restrictions: This version of DTRWHIZ is not fully compatible with DATATRIEVE V2.X. it may be used with DATATRIEVE 2.X, but the EDIT, and DTRHELP will not function properly. Documentation on magnetic media. Media (Service Charge Cdoe): 600' Magtpae (MA) Format: VAX/ANSI (Blocked 2048) February 18, 1985 DTR-12 Wombat Examiner Volume 6, Number 3 _____________________________________________________________________________ Hints and Kinks _____________________________________________________________________________ * There is a very peculiar interactions between VAX-DATATRIEVE and FMS which manifests itself in the error message "Loss of precision during arithmetic calculation." Consider the following very simple record definition: DOMAIN X USING X_RECORD ON X.DAT FORM IS X IN FORMSLIB ; RECORD X_RECORD USING 01 X_REC. 03 V1 PIC 9V9. 03 V2 PIC 9V9. 03 V3 PIC 99V9 COMPUTED BY V1*V2.; and the form X only has the fields V1 and V2 in it. Some sample data for this domain is: V1 V2 V3 1.0 1.0 01.0 1.9 1.9 03.6 9.0 9.0 81.0 9.9 9.9 98.0 When this data is displayed using the form X, the second and fourth records give the error message "Loss of precision during arithmetic calculation." However, if one has SET NO FORM, the data is displayed as above without any message. What is going on? Well, there really is a loss of precision in the second and fourth records. And when the records are presented to FMS an error code (or warning code) is passed along even though the field which contains the error (V3) isn't even displayed in the form. The problem comes about because of the "PIC 99V9" in the field V3. If V3 were define as 03 V3 COMPUTED BY V1*V2. with or without an edit-string, the warning message goes away. The intesting (and confusing) part about this problem is that it looks like the message is coming from FMS when the problem (the field definition) is in DATATRIEVE! [This kink is from the Newsletter Editor.] * Bert Rosebury of the U. S. Coast Guard, New Orleans, reports an interesting store entitled "ESCAPE From the Planet of the DTR>". He said. "This is no big deal but a curious event to say the least. I am running as field test (T3.2-2) what will come out as VAX DATATRIEVE version 3.2. I was defining something in DATATRIEVE when I hit what I thought was the TAB key but was, in reality, the ESCAPE key. What used to happen back a while a go was you would get something that looks like Wombat Examiner Volume 6, Number 3 DTR-13 DTR> $DTR> Where a dollor sign and the prompt reappear. In 3.2 you will get DTR> Bad escape sequence Bad escape sequence $ I could live with that message but not dropping me out to the DCL level also. I have a work around for all interested parties. After making sure your terminal is under a field service agreement (just in case) take a small screwdriver and remove the keycap labelled "ESC" everytime before typing DTR. A Quality Assurance Report will be [has been] submitted and two of the developers have seen it. One believes it is due to changes made to accomodate the VT200 series terminal." Chris Wool from du Pont [also at a DTR test site] responds, "I checked on your escape problem. V3.1 works the same as T3.2-2, so it appears as if the problem has been around for a while." _____________________________________________________________________________ Wombat Magic Session - 1985 Spring Symposium - Part 1 Session Chairman: Bob Lott Session Editor: Joe H. Gallagher _____________________________________________________________________________ The following is a very rough transcription of material presented at the Thursday evening Wombat Magic Session at the 1985 Spring DECUS Symposium in New Orleans. Material which appears in the text within square brackets [] is the Editor's interpretation of what was presented and may not necessarily represent what was actually presented by the speaker. Fred Van Itallie, du Pont . . . and I had a on going problem. . . . Every time I come to one of these symposia I always bring it up. The READY command in DATATRIEVE is extremely offensive to me, because it always readys things PROTECTED READ. Now I've got a problem in that I have a lot of users. They all want to read the same data. And none of them really want to write down that extra word at the end after READY DOMAIN -- that word called SHARED. . . . Well, there are not too many problems as long as they're all reading. But I've got one clerk who's just a wonderful person. But she doesn't like to be going through a long and lengthy update procedure and hit the return key and come back with a very, very nasty message that the domain is locked -- you can't get into that. In fact, I don't like that to happen to her at all because she always calls me DTR-14 Wombat Examiner Volume 6, Number 3 when it does and I usually have to do the repairs. So what can you do about that? I come and complain, for one thing [See Wishlist item #24]. But there are a couple of other things. Solution #1 is to let the chips fall where they may. That's OK for some people. But in this situation is wasn't. Solution #2 is don't let people ready the domain. And frankly that works pretty well [Laughter]. That is, don't let them execute the command READY DOMAIN What you let them do instead is run a procedure [which is DEFINE PROCEDURE READY_DOM READY DOM ("PW") SHARED READ END_PROCEDURE with the command :READY_DOM.] The interesting thing about this is that it saves them typing since ":READY_DOM" is always less than "READY DOM SHARED". The way this is implemented is you make an entry for the access control list for the domain of the form DEFINEP FOR DOM 1 USER=[USER],GRANT=PSR,PW="PW" and the access control list for the procedure as DEFINEP FOR READY_DOM 1 USER=[USER],GRANT=PSE [Note that the user is not able to see the value of the passwords in either the domain or procedure definitions because of the access control list and is thus required to use the procedure to ready the domain.] Comment from floor: (Richard Copeland, Corning Glass Works) We had the same concern you do with the SHARED READ. And that's [your solution] an elegant solution. The way we got around that was to have a detached process that has the file open for SHARED WRITE at all times. And so anybody who trys an EXCLUSIVE READ fails, but a SHARED READ works. That's another method for it. Doug Wegsheid, Whirlpool Corporation The Great Wombat got me in trouble a few months back. It was right after April Fools day when all the DATATRIEVE help got translated into pig Latin. And the PLOT WOMBAT became anatomically correct. [Laughter] And worse, after that at a presentation somebody did PLOT WOMBAT and our new Vice President, Bud Wompack, didn't think that was very funny. [More Laughter] Anyway we use DATATRIEVE for system management a lot and one of the really nasty things about it is - well - there's always the date and time problem. And the other nasty thing is that a lot of the system accounting files and disk utilization files have UIC's in them. And trying to print a UIC out in a format that looks like anything else in VMS is not possible. So, the same week that some unknown person was changing the DTR help he added two function Wombat Examiner Volume 6, Number 3 DTR-15 to DATATRIEVE. $DTR$FUN_DEF FN$FAO_1Q,LIB$SYS_FAO,4 $DTR$FUN_OUT_ARG TYPE=FUN$K_STATUS $DTR$FUN_IN_ARG TYPE=FUN$K_DESC, DTYPE=DSC$K_DTYPE_T, ORDER=1 $DTR$FUN_IN_ARG TYPE=FUN$K_NULL $DTR$FUN_IN_ARG TYPE=FUN$K_TEST, OUTPUT=TRUE $DTR$FUN_IN_ARG TYPE=FUN$K_REF, DTYPE=DSC$K_DTYPE_QU, ORDER=2 $DTR$FUN_END_DEF $DTR$FUN_DEF FN$FAO_1L,LIB$SYS_FAO,4 $DTR$FUN_OUT_ARG TYPE=FUN$K_STATUS $DTR$FUN_IN_ARG TYPE=FUN$K_DESC, DTYPE=DSC$K_DTYPE_T, ORDER=1 $DTR$FUN_IN_ARG TYPE=FUN$K_NULL $DTR$FUN_IN_ARG TYPE=FUN$K_TEST, OUTPUT=TRUE $DTR$FUN_IN_ARG TYPE=FUN$K_VALUE, DTYPE=DSC$K_DTYPE_LU, ORDER=2 $DTR$FUN_END_DEF How many VAX people are familiar with FAO? Isn't that a wonderful system call? The thing about this is that it lets you format date and time in a lot of nice ways. The other nice thing is that it lets you print out UIC's given a UIC. So, everyone knows that if you have two dates DECLARE Z USAGE IS DATE. DECLARE ZZ USAGE IS DATE. and Z = "NOW" ! wait a while ZZ = "NOW" IF Z EQ ZZ THEN PRINT "SAMEDAY" [Nothing happens, because the test for the equality fails because the dates are at different times on the same date.] But if you form the days with IF FN$FAO_1Q("!11%D",Z) EQ FN$FAO_1Q("!11%D",ZZ) THEN PRINT "SAMEDAY" [the function fn$fao_1q will truncate the date and time to DD-MMM-YYYY and the test will succeed for two dates which are on the same day.] You could also format it and compare the formated strings [such as IF FORMAT Z USING DD-MMM-YYYY EQ FORMAT ZZ USING DD-MMM-YYYY THEN . . .] but this is funner [sic]. We have a couple of applications where we like to put the dates in and we set the dates equal to "NOW". Of course, this puts the time in. And so what we did instead is DTR-16 Wombat Examiner Volume 6, Number 3 DECLARE Z USAGE IS DATE. DECLARE ZZ USAGE IS DATE. Z = "NOW" ZZ = FN$FAO_1Q("!11%D",Z) and ZZ has today's date . . . at midnight. At one of the sessions earlier in the day someone was complaining about wanting their times at midnight. That's how you get your times at midnight. And you can get your VMS date and time cut off to however many characters you want. You just specify it. And if you say you only want five [characters]. It'll give you the first five. DECLARE Z USAGE IS DATE. Z = "NOW" PRINT FN$FAO_1Q("!%D",Z) DD-MMM-YYYY HH:MM:SS.DD or PRINT FN$FAO_1Q("!%T",Z) HH:MM:SS.DD or PRINT FN$FAO_1Q("!5%T",Z) HH:MM This is the one I really like because I don't know who UIC 65537 is. All this one does is -- well you can format your UIC's in HEX -- DECLARE UIC USAGE IS LONG. UIC = 65537 PRINT UIC 65537 or you can format the thing and it actually does come out [1,1] PRINT FN$FAO_1L("!XL",UIC) 00010001 PRINT FN$FAO_1L("!%I",UIC) [1,1] and if you change it to one that actually has a sign on connected with it, DATATRIEVE will give UIC = 65540 PRINT FN$FAO_1L("!%I",UIC) [SYSTEM] . . . looks really nice on your disk utilization reports. Bert Rosebury, U. S. Coast Guard, New Orleans, LA Basically what I am doing here is I send mail to my boss a lot of times. I kind of let out my frustrations via the MAIL utility. A lot of times I get the feeling that my boss isn't reading my mail. So what we have here is. I set up a record definition and a domain definition Wombat Examiner Volume 6, Number 3 DTR-17 DEFINE DOMAIN MAIL USING MAIL-REC ON SYS$SYSTEM:VNSMAIL.DAT; DEFINE REOCRD MAIL-REC USING 01 MAIL-RECORD. 03 ACCT PIC X(31). 03 FILLER PIC X(2). 03 UNREAD USAGE IS LONG. 03 FILLER PIC X(100).; using the VMSMAIL.DAT [file]. I'm getting out of it two pieces of information: the account name and the number of unread messages that are out there. So what I do is READ MAIL SHARED MODIFY FOR MAIL WITH ACCT = "ANGELICO" MODIFY USING UNREAD = 1000 [Laughter] What this is going to do -- when he comes in Monday -- its going to say that you have 1000 new unread mail messages. [More laughter and applause] So the title of this is how to get the attention of your boss. This actually does have a more useful application to it. -- It's going to be interesting to see how long he goes through mail trying to get rid of the 1000 [messages]. [Laughter] -- One of the more interesting things that you can use this for is we had a gentlemen who was running into disk quota problems. He had two unread new mail message . . . What he did was delete these files out there called mail dot something [MAIL.MAI]. When his mail thing was gone [it's a good thing it wasn't his male thing which was gone] it still said that he had two unread new mail messages. So if you run into a problem such that the number of new unread mail message and what you [really] have in the data file don't correspond, just using this will also let you fix it up. It will also let you see how people are reading mail. If they are reading it or not. Comment from the floor: (Pat Scopelliti, Corning Glass Works) I am not his boss. What this does, by the way, is fixes a bug in going from version 3.7 to 4.0 [of VMS]. Which is, that if you have mail which you haven't read it is not put into new mail and in the version 4 mail files. So you can never read it to get your counts [of unread messages] back down to zero. (Larry Jasmann, U. S. Coast Guard) That's why I always have one message out there. (Andy Schneider, Digital Equipment Corporation) I found a trick from the VMS developers; we had the same problem. Our system kept crashing when we brought up version 4. I don't know why. It just kept crashing. But to not take [away from this magic], you say MAIL> READ/NEW and there's a hook in there that will reset that count back to zero. So if anybody has more mail messages shown that they really have, if you say READ/NEW, it will always set it back down to zero. Part 2 of this Magic Sessions will appear in the October issue. DTR-18 Wombat Examiner Volume 6, Number 3