______ _______ ___ SELECT Version 4.0 _______ _______ ____ _______ General Purpose Menu Handler ___ ___ __ _____ for the HP e3000 ______ ____ ______ Select User Manual _______ _________ __________ ____ Robelle Solutions Technology Inc. ____ ___ _______ _____ ___ 7360 137 Street, Suite 372 _______ ____ ______ ___ ___ Surrey, B.C. Canada V3W 1A3 __________ _____________ Toll-free: 1.888.robelle ________________ (1.888.762.3553) ______ ____________ Phone: 604.501.2001 ____ ____________ Fax: 604.501.2003 ___________________ support@robelle.com _______________ www.robelle.com _____ ____ March 2000 Program and Manual Copyright Robelle Solutions Technology Inc. 1988-2007 ___ Permission is granted to reprint this document (but not for profit), provided that copyright notice is given. QEDIT and SUPRTOOL are trademarks of Robelle Solutions Technology Inc. Other product and company names mentioned herein may be the trademarks of their respective owners. 1 _______ _ _______ __ ______ Chapter 1 Welcome to Select _ _____________ __ ___ ______ ü Authorization to Use Select _ _____________ ü Documentation _ __________________ ___ ___________ ü Compatibility-Mode and Native-Mode _ ___ ________ __ ______ ü New Features of Select Welcome to version 4.0 of Select -- the menu tool which makes using the computer as easy as one-two-three. Select is a menu front-end for the HP e3000 that will work on any terminal. Select integrates all user functions under a single program. People select tasks from a list of choices by means of a simple number. There are no complex commands to memorize. For faster response time and reduced system load, you can use the HOLD feature of Select. This holds specified programs suspended for quick activation. The first time a person invokes a program, Select creates a copy of it (taking a few seconds). The second time a person asks for the program, entry into it is instantaneous. Before reading further, you should experiment with a Select menu. This is the fastest way to understand what Select can do - much faster than reading about it. We provide a sample menu in the ROBELLE account. To access it, type this MPE command: :run select.pub.robelle,qlib If you like the ROBELLE menu, you should consider using Select in your applications. _____________ __ ___ ______ Authorization to Use Select Select is a "bonus" program that accompanies most Robelle products. We will send you a copy if your Robelle order entitles you to receive it. As a Robelle customer you may install Select on your CPUs which are licensed for our products. There is no ___ charge for using Select, but you are not free to distribute it. Please install Select only on your primary licensed CPUs, or on CPUs which are registered secondary CPUs. Select is in the PUB group to remind you that it is a Bonus product, and not part of any library that you can freely distribute. There is another category of programs from Robelle, called the "Qlib". These are programs which you may use on any ___ CPU and may distribute freely to your friends. Select is not part of the Qlib. If you have questions on whether you are authorized to install Select on a particular CPU, please call us for advice. _______ _ _______ __ ______ 2 Chapter 1 Welcome to Select _____________ Documentation The Select user manual covers the basic operation of Select, methods for creating and maintaining your own menus, and commands and options that are available within Select. At the end of the user manual are a glossary and index - refer to them when you have a problem. All of the Select user manual except the index is available to the menu creator via an on-line help file. To print extra copies of the Select manual, use the sample menu or run the Printdoc program: :run printdoc.pub.robelle;info="select.doc.robelle" __________________ ___ ___________ Compatibility-Mode and Native-Mode Select is available in compatibility-mode for MPE IV and MPE V and in native-mode for MPE/iX. Select/iX offers better performance than Select/V on MPE/iX. Both versions of Select have exactly the same features and work with any MENU database. ___ ________ __ _______ ___ New Features in Version 4.0 ü Two-user site licenses can now run Select. ___ ________ __ _______ ___ New Features in Version 3.8 ü Select now works with Time Machine and the HP utility Setdate. ___ ________ __ _______ ___ New Features in Version 3.7 ü Internal changes now allow Select to be extended in a more automated manner. ___ ________ __ _______ ___ New Features in Version 3.6 ü Echo with output redirected now gives the exact same results as MPE/iX. ü A bug was fixed in :Beginfile/:Endfile (two colons were being stripped). _______ _ _______ __ ______ Chapter 1 Welcome to Select 3 ___ ________ __ _______ ___ New Features in Version 3.5 Listed below are the major enhancements to version 3.5: ü User commands (and UDCs) support 32 parameters, support :Escape, and execute faster. Variable-length and Qedit-type command files are allowed. ü When command I/O redirection is used (e.g., listf >templist), Select no longer complains that it cannot find the Qloadxl file. ü The Dump entry point no longer fails when there are too many records in the MENU database. ___ ________ __ _______ ___ New Features in Version 3.4 ü Function key labels are now correct when using the Maint entry point. ü Select was aborting in batch. ü The Load entry point no longer assigns duplicate sequence numbers. 4 _______ _ _________ ______ Chapter 2 Accessing Select _ ____________ ü Introduction _ _________ _ ______ ____ ü Accessing a Sample Menu _ ______ ____ ____ _______ ü Select User Name Options _ __________ ___ ____ ________ ü Specifying the Menu Database _ _____ ______ _____ ü Using Select Menus _ _______ _____ ______ __ ______ ü Special Entry Points of Select _ ________ ___ ____ ________ ü Changing the User Language _ ____ ____ ______ ü Exit With Verify ____________ Introduction To access any function of Select, you always :Run the same program file: Select.Pub.Robelle. The name of the menu database is MENU and you specify your database using a :File command. __________________ :file menu = base.group.account _____ ________ :run select.pub.robelle[,entry] [;info="password"] ____ [;parm=mode] The default database is MENU in the logon group and account. _____ The default entry point uses the logon MPE user name (e.g., MANAGER) to find the person's main menu (this is not very useful except when everyone is in the same account, but it is the default for historical reasons). Other Select entry points use either the USER.ACCOUNT name, the ACCOUNT name, a name specified via the Info= string, or the JOBNAME (logon session name, as in HELLO BOB,MGR.ROBELLE) to find the main menu. As well, Select has entry points to maintain menus, to dump and load files, to list menus, and to access a sample menu. The Info= string provides a password for opening the menu database. The database will have a Write-Access password for maintaining menus and a Read-Access password for using menus. If the Info= is missing, Select prompts you for a password (the default is CREATOR). Info= can be used to specify the user name as well as the database password (see the INFONAME entry point). ____ The default open mode for the database, in lieu of a Parm= value, is Mode-1 (requires Write-Access password). For normal Select users, you should specify Parm=5 and the Read-Access password. To prevent accidental exit from Select, add 64 to the open mode. _______ _ _________ ______ Chapter 2 Accessing Select 5 _________ _ ______ ____ Accessing a Sample Menu The simplest way to access Select is to use the sample menu in the Robelle account. This does not require a :File command, only a :Run command with a special entry point (Parm and Info are not needed). :run select.pub.robelle,qlib When you need ideas on how to apply Select, the best way is to try the sample menu. ______ ____ ____ _______ Select User Name Options You can run Select with different entry points, which tell Select how to determine the initial main menu. ______ ____ _ _____ ____________ Select User = Logon User.Account One flexible method of linking a person to a Select menu is ___ through the person's logon user and account name. This allows each unique logon to have a unique menu, but is does not force that. Since menus are distinct from users in Select, you can point numerous users to the same menu if you like. To tell Select to use the logon user and account name (e.g., MGR.ROBELLE or BOB.GREEN), you run with the USERACCT entry point: __________________ :file menu = base.group.account ________ :run select.pub.robelle,useracct;info="readpass";parm=5 ______ ____ _ _____ _______ Select User = Logon Account If you wish to have one set of menu choices for each MPE account on your system, use the ACCT entry point: __________________ :file menu = base.group.account ________ :run select.pub.robelle,acct;info="readpass";parm=5 ______ ____ _ _____ _______ Select User = Logon JOBNAME If you wish to have one set of menu choices for each logon (or session name), use the JOBNAME entry point. In the example below, the Select user name will be "sales". (Note: for security reasons, this entry must be enabled with the *JOB option. See the ___________ ______ appendix Configuring Select.) :hello sales,mgr.robelle,pub _______________ :file menu = base.group.acct ________ :run select.pub.robelle,jobname;info="readpass";parm=5 _______ _ _________ ______ 6 Chapter 2 Accessing Select ______ ____ _ _____ ______ Select User = Info= String If you wish to link one set of menu choices to an arbitrary "name", use the INFONAME entry point. Then specify the Select user name after the database password in the Info= string of the ________ ________ Run command (i.e., info = "password;username". In the example below, the Select user name will be "sales". (Note: for security reasons, this entry must be enabled with the *INFO option. See ___________ ______ the appendix Configuring Select.) :hello anything,mgr.robelle,pub _______________ :file menu = base.group.acct ____ :run select.pub.robelle,INFONAME;info="pass;sales";parm=5 The database password must come first in the Info=, then a semicolon and then the user name. The user name can be in uppercase or lowercase, as it will be upshifted, but the password must be exactly as in the database. The password can be left out if you want Creator access (info = ";username") or can be replaced with a question mark if you want Select to prompt the user for the database password (info = "?;username"). In all cases, the semicolon is required. :run select.pub.robelle,infoname;info="READONLY;CLERK" __________ ___ ____ ________ Specifying the Menu Database Select stores menus in a MENU database. You will find _____ ____ ________ instructions for creating this database under Build Menu Database. When you run Select, you must specify where and how to open the database: 1. You execute a :File command for the MENU database. This is so you do not need to be logged on in the same group and account as the database; so you can place the database in any group and account you like (although we suggest the CATALOG group of the ROBELLE account); so you can have more than one independent menu system on the same computer; and so you can specify a menu database on a remote machine. :file menu = menu.catalog.robelle 2. You :Run the program with an Info= string to specify the database password. When running Select to use menus, Info= contains the Read-Access password. When you run Select for other functions, Info= contains the Write-Access password. You define these two passwords when you build the database, but they should not contain lowercase letters, only uppercase. If you forget the Info= parameter, Select will prompt you for the database password. _________ :run select.pub.robelle,maint;info="writepass" _______ _ _________ ______ Chapter 2 Accessing Select 7 3. You :Run the Select program with a Parm= value to specify the database open mode. If you forget the Parm=, Select opens the database in Mode-1 (shared, Write-access), which is more than you normally need. Therefore, when setting up :Runs for normal users, specify Parm=5 (shared, Read access) and specify the Read-Access password in Info=. _ ________ :run select.pub.robelle;parm=5;info="readpass" _____ ______ _____ Using Select Menus From the point of view of the person sitting at a terminal screen, a Select menu is a list of numbered choices. There can be from 1 _ _ to n choices (where n might be 10 or 20 or 30). The number shown for a menu choice may be either a relative index (i.e., 1, 2, 3 ...), which is the default, or a hard-coded sequence number that is assigned when the menu is created (*RENUM option must be FALSE). Each number has a description printed next to it and there may be one column of menu choices or two. The person chooses a number by typing it and pressing the Return key or the Enter key. Select performs the person's choice (which may be displaying another menu), then displays the menu again. If the person presses only the Return key, Select leaves the current menu and goes back to the previous menu (which may be out of Select). Level 1 Generalized Application Menu Programmer's Main Menu 1 Exit from menus 2 Help with these menu choices 3 QEDIT text editor 4 SPOOK (spool files) 5 XPRESS Electronic Mail Make a selection from Programmer's Main Menu? This is the normal picture of Select. However, there are a number of options that complicate the picture. The mechanism for configuring these options is described ___________ ______ in the appendix Configuring Select. ____ _____ _______ _____ ___ ____ What Title Appears Above the Menu You will notice that the message "Generalized Application Menu" appears at the top of the menu. This message can be configured to say anything using the *TITLE option. The message "Programmer's Main Menu" is the name of this menu. Each menu has its own descriptive name. _______ _ _________ ______ 8 Chapter 2 Accessing Select ________ ____ Function Keys HP terminals are equipped with 8 function keys, marked F1 through F8. If the *HPTERM option of Select is enabled, people on HP terminals may press those keys to select the first 8 menu choices. If the terminal has function key labels, Select will fill them with "Menu Item 1", "Menu Item 2", ... (this is optional). ________ ___ ______ Clearing the Screen Normally, Select clears the screen before displaying each menu. Actually, it doesn't really clear the screen, it just does a Home Down and Next Page -- use Prev Page and you will see all of your previous terminal memory. If the escape codes to CLEAR the screen don't work on your terminal, or you just don't like the "clear", you may disable the *CLEAR option by setting it to FALSE. If all of your menu choices are VPLUS programs and you don't want to press Return once after each one, use *PAUSE FALSE with *CLEAR TRUE. Another option, *DISPLAY FALSE causes Select not to display the menu at all; when prompted for a menu choice you press RETURN if you want the menu to be displayed. This is for users who have memorized the choices. ________ ____ ________ Renumber Menu Choices? By default, menu choices are assigned index numbers from one (i.e., they appear on the screen as 1,2,3 ...). However, if you frequently add and remove choices from menus, users must frequently learn new numbers (they will tend to memorize them, you know). Using the *RENUM FALSE option, you can have Select display the actual sequence number that you assigned to the menu choice. With this option, function key labels are not filled by Select, but function keys are still accepted (F1 = first menu choice, etc.) _______ ___________ __ ____ _______ Getting Explanation of Menu Choices When the menus are set up, it is possible to link each menu choice to some "help text" that explains it. Help text is not only a great aid to the person struggling at the terminal, but it serves as documentation of what the menu choices are supposed to do (which makes for more rigorous testing). If you see a menu choice that offers help, you can get help by selecting that menu choice. Select will ask you which choice from the current menu you are interested in. You enter a number and, if Select finds any help text for that choice, it displays it on the screen. If you don't see a menu choice for HELP, you can still ask for help by typing "HE" (help!). If the help text is in Qhelp format, it may offer you a choice of _______ _ _________ ______ Chapter 2 Accessing Select 9 keywords giving further information. Type any keyword (or even an abbreviation) and Qhelp will display the text under that topic. To get back to your Select menu, you press Return when asked for a keyword. ______ ___ _____ Hiding the Menus The main complaint that people have about menu systems is that once they memorize the menu choices, it is irritating to wait while the menus are printed on the screen (you know what they are going to say anyway). Therefore, Select has an option to suppress, or "hide", the menus from specified users. This is called the *DISPLAY option and is normally enabled (i.e., menus are displayed). When DISPLAY is ___ disabled, Select does not print each menu, it simply asks you for your next menu choice (it does print the name of the current menu however). If you forget the choices available on any menu, you ask Select to print the current menu by pressing the Return key. The Return key no longer means EXIT. To exit from the current menu you must enter a menu choice that says EXIT or you must type the "EX" command. ___ ____ ____ _______ Too Many Menu Choices It is possible to put so many choices on a menu that they no longer fit on the screen. The *SCREEN option determines how many menu items Select will put on the screen at once, but the maximum is 30. If a menu has too many items, you get to the overflow items by entering a "CO" command (continue). If you are hiding menus, you then have to press Return for Select to print the overflow choices. ____ ________ User Commands When Select prompts you for a menu choice, you may either enter the number of a menu choice, or you can enter a command. The commands are optional, and many people may never discover them. A well-designed menu, with choices for EXIT and HELP, eliminates the need for these commands. HE Help Gives help on current menu choices. EX Exit Exits from the current menu. _ _ _ Ln Level n Go back to menu level n. CO Continue Display the overflow menu choices. SS Show Sons Display the "held" son processes. _______ _ _________ ______ 10 Chapter 2 Accessing Select KS Kill Sons Terminate the "held" son processes. CS Clear Reverse the *CLEAR screen option. MS Menu Show Reverse the *DISPLAY menus option. :command Execute an MPE command, if allowed. Typing "?" or "LC" will give you a list of these commands. You may need the KS command when the operator wants to back up a database to tape. Select has a HOLD option to hold onto suspended "son" processes. This makes menu choices much faster. However, if a son process has a database open with Write access, it would be impossible for the operator to back it up. Use the SS command to see which programs you have held. The KS command terminates one or all of those programs, thus freeing up the databases. The KS command with no progfile specified will kill all held sons. ________ ___________ KS [@ | progfile [,entrypoint] ] The MS (menu show) command switches between showing and not ______ ___ _____ showing the menus. See the previous section Hiding the Menus. _______ _____ ______ __ ______ Special Entry Points of Select Select has entry points to provide different functions: _______ default Display menu for logon USER name. USERACCT Display menu for logon USER.ACCOUNT name. ACCT Display menu for logon ACCOUNT name. PROMPT Prompt for Select user name, display menu. JOBNAME Display menu for logon job/session name. INFONAME Display menu for name from Info= string. QLIB Access sample menu in Robelle account. MAINT Maintain menus. LOAD Load menu choice(s) from a file. DUMP Dump menu choice(s) to a file. LIST Print report of menus to MENULIST file. _______ __ ____ ____ Default is USER Name If you run Select without any entry point, it uses your logon MPE user name as the Select user name: :hello sam.clerk :run select.pub.robelle {Select user = SAM} _______ _ _________ ______ Chapter 2 Accessing Select 11 ________ _____ _____ USERACCT Entry Point Running Select with the USERACCT entry point causes the logon MPE user and account name to be used for the Select user name: :hello sam.clerk :run select.pub.robelle,useracct {Select user = SAM.CLERK} ____ _____ _____ ACCT Entry Point Running Select with the ACCT entry point causes the logon MPE account name to be used for the Select user name: :hello sam.clerk :run select.pub.robelle,acct {Select user = CLERK} _________ ___ ___ ____ ____ Prompting for the User Name If you run Select with the PROMPT entry point, Select asks you which Select user name to assume. Any arbitrary user name may be used, but the name is restricted to thirty characters. For security reasons, this entry point must be enabled with the ___________ ______ *PROMPT option (see the appendix Configuring Select). __________________ :file menu = base.group.account ________ :run select.pub.robelle,prompt;parm=5;info="readpass" _______ _____ _____ JOBNAME Entry Point Running Select with the JOBNAME entry point will cause the logon job or session name to be used as the Select user name (if this is enabled with the *JOB option): :hello sally,mgr.sales :comment perhaps VESOFT logon security by job name :run select.pub.robelle,jobname {Select user = SALLY} ________ _____ _____ INFONAME Entry Point Running Select with the INFONAME entry point will cause Select to look in the Info= string of the Run command (i.e., Info = "password;username"). This entry must be enabled with the *INFO option. :run select.pub.robelle;info="Readpass;salesuser" {Select user = SALESUSER} _______ _ _________ ______ 12 Chapter 2 Accessing Select ____ _____ _____ QLIB Entry Point Running Select with the QLIB entry point enables a special "demo" mode in Select that uses a special menu database. This provides a sample menu for training purposes: :hello sam.clerk :run select.pub.robelle,qlib {Select user = ROBELLE or ROBTRIAL} When you use the QLIB entry point, Select attempts to open a database named Menu.Qlib.Robelle, which is in TurboIMAGE format. If this database does not exist, restore it from any Robelle license tape: :hello mgr.robelle,qlib :file robtape;dev=tape :restore *robtape;menu@.qlib.robelle ___________ _____ Maintaining Menus Select has a maintenance module for on-line creating, editing, and testing of menus. You :Run Select with the MAINT entry point, give a password that provides Write access to all datasets, then ___________ _____ follow the menus. See the chapter Maintaining Menus for more information. __________________ :file menu = base.group.account _________ :run select.pub.robelle,maint [;info="writepass"] MAINT mode has menus, patterned after actual user menus, that allow you to define and maintain choices, menus, commands, accessors, and help text. There is on-line help for all of the MAINT functions. _______ ____ _______ ____ _ ____ Loading Menu Choices From a File While the MAINT entry point is useful for making changes to the menu database, it is awkward for initially defining a large menu system. Therefore, Select has a LOAD entry point that reads an external disc file to define menus. To see the format of this file, use the DUMP entry point on the sample menu in the QLIB. The LOAD entry point reads an MPE file with a fixed format and creates menu choices and commands in the database; it does not create menu trees. __________________ :file menu = base.group.account _________ :run select.pub.robelle,load [;info="writepass"] Enter the filename of the file to load from: Print the input file on $STDLIST [no]? _______ _ _________ ______ Chapter 2 Accessing Select 13 _______ ____ _______ __ _ ____ Dumping Menu Choices to a File The DUMP entry point produces an MPE file in the format expected by the LOAD entry point. This file will contain all menu choices and command details, but not the menu tree (linking menu choices to menus and sub-menus to menus). Menu choice definitions (code and name) begin with a "$". Command lines begin with ":" (or with "#" if you specified the old "flush-override" feature). Using the DUMP file as input to the LOAD entry point, you can copy menu details from one database to another. Or, since the LOAD entry point replaces all existing menu choices and command details, you can use a sequence of DUMP, edit, and LOAD to make wholesale changes to your menus. __________________ :file menu = base.group.account _________ :run select.pub.robelle,dump [;info="writepass"] Enter the filename of the file to dump to: To experiment with the DUMP entry point, enter these commands: :hello mgr.robelle,qlib :run select.pub.robelle,dump Database password [;]? Return {CREATOR} Enter the filename of the file to dump to: MENUDUMP _______ _____ __ ___ _______ Listing Menus on the Printer Use the LIST entry point to print a user's menus on the printer. The listing defaults to DEV = LP, using MENULIST as the file name. Select prompts you for a user name, then prints the menus for that user, formatted as a "tree". Then Select prints the commands that go with the menu choices on those menus. The LIST entry point will also accept @ to mean 'print all the menu users'. When you select all menu users, Select displays each user name as the user's menus are printed on the printer. __________________ :file menu = base.group.account _________ :run select.pub.robelle,list;info="writepass" To experiment with the LIST entry point, enter these commands: :hello mgr.robelle,qlib _______ :file menulist; dev = printer {default is LP} :run select.pub.robelle,list Database password [;]? Return {CREATOR} Enter Menu User Name to print or @ [none]: ROBELLE _______ _ _________ ______ 14 Chapter 2 Accessing Select ________ ___ ____ ________ Changing the User Language Select will print user messages in English, French, or German. To change the language, do the following before running Select: ______ :setjcw selectlang=number ______ The valid values for number are: 00 English 07 French 08 German These values correspond to the values used by Native Language Support. If you have NLS enabled for French or German, you can do the following: :setjcw selectlang = nluserlang ____ ____ ______ Exit With Verify Some users find that they Exit from Select inadvertently by pressing Return one too many times. This is especially easy to do on a terminal with type-ahead. This can be irritating if you have many suspended son processes, which are lost on Exit. And if you're running Select from within a logon UDC, you quite likely will be logged off after you exit from Select. To require Select to get user approval on Exit, Run Select with Parm=64. This may be combined with other Parm values, such as Parm=1 to open the database with Mode-1. :run select.pub.robelle;parm=64 . . . Okay to exit [no]: 15 _______ _ ________ ______ Chapter 3 Applying Select _ _____ ____ ________ ü Build Menu Database _ ___ ____ ____ ______ ü Add Main Menu Choice _ ___ ________ __ _ ____ ____ ü Add Yourself as a Menu User _ ___ ____ _______ ü Add Menu Choices _ ______ ____ ____ ü Define Menu List _ ____ ____ __ ___ ü Test Menu So Far _ ______ _____________ ________ ü Change Configuration Defaults _ ___ ________ ___ ____ _______ ü Add Commands for Menu Choices _ ___ ____ ____ ___ ____ _______ ü Add Help Text for Menu Choices _ ____ ___ ________ ___ ____ ü When You Memorize the Menu _ ___ ________ ___ ________ _______ ü Add Sub-Menu for Printing Manuals _ __________ ___ __ ____ ____ ü Production Use of Your Menu To demonstrate Select, we will walk you through the simple process of setting up a personal menu. This menu will allow you to print the date and time, to show your :File commands, to look at spool files, to edit text, and to copy files. Later, you can add whatever else you want to the menu and even make it available to all users. Here is what the menu will look like: My Personal Menu 1 exit 2 help 3 date and time 4 run listeq 5 run spook 6 text editor 7 file copy _____ ____ ________ Build Menu Database The first step is to log on and build your menu database. We will assume that you are going to build it in the CATALOG group of the ROBELLE account, but you can put it elsewhere and modify the instructions accordingly. :hello me,mgr.robelle,catalog :file dbstext=menusc.qlib.robelle {point to schema file} :run dbschema.pub.sys;parm=1 {build root file} :run dbutil.pub.sys,create {build datasets} Data base name: MENU {enter DB name} _______ _ ________ ______ 16 Chapter 3 Applying Select ___ ____ ____ ______ Add Main Menu Choice Stay logged on where you built the Menu database, then use the MAINT function of Select to define and test your menu. :file menu = menu.catalog.robelle :run select.pub.robelle,maint {MAINT module} Database password [;]? Return {you are CREATOR} Select will display a "Level-0" menu of choices for maintaining menus. The first step is to define your main menu by giving it a MENU CODE, a MENU DESCRIPTION and an optional MENU PASSWORD (if you want to keep others out of it). From the Level-0 menu, you select "3" to "maintain menu choices", then "3" again to select "add menu choices" from a sub-menu (add, delete, change, list, etc.). Make a selection from Maintenance menu? 3 {to Maintain Menu Choices} Make a selection from Maintain Menu Choices? 3 {to Add new menu choice} Enter the Menu Choice? MYMENU {an arbitrary code name} Enter the Menu Desc? My Personal Menu {any descriptive title will do} Enter the Menu Password? T53X {or Return for no password} Hit Return until you get back to the Level-0 menu. ___ ________ __ _ ____ ____ Add Yourself as a Menu User Your next task is to define yourself as a Menu User by entering your logon user and account name (MGR.ROBELLE). From the Level-0 menu, select function "6" to maintain users. This leads to another sub-menu (add, delete, etc.), from which you select "3" to add a new menu user. You will enter MGR.ROBELLE as a valid menu user, then will link yourself to your menu (MYMENU) and give yourself default options. _______ _ ________ ______ Chapter 3 Applying Select 17 Enter the Menu User Name? MGR.ROBELLE {or whatever logon you use} Enter the Menu Choice (*=xxxx)? MYMENU {or * if *=MYMENU; * means...} {most recent menu code you...} {have typed into Select.} Enter the *DISPLAY value [0]? Return {take the default in brackets} Enter the *HPTERM value [0]? Return {take the default value} Enter the *MPE value [0]? Return {take the default value} You are now defined as a Menu User who starts with the menu named MYMENU and accepts the databases defaults for the *DISPLAY, *HPTERM and *MPE options (more on them later). You access your menu using the USERACCT entry point of Select, or via the MAINT entry point. Return to the Level-0 menu and await further instructions. ___ ____ _______ Add Menu Choices We specified 7 functions for your starting menu: exit, help, date and time, :File equations, spool files, edit, and file copy. Each of these will require a Menu Code and Description. The code is an arbitrary string of up to eight characters, but it must be unique. It will never be seen on the final menu display; it is only used in the MAINT module. The Menu Description is what appears on the screen; it may contain up to 30 characters. The Menu Codes for the Exit and Help functions are predefined as *EXIT and *HELP, but you define the description to go with them. Menu Code Menu Description DATETIME Date and time LISTEQ :File equations and temp files SPOOK Spooled output EDIT Text editor COPY File copy *EXIT Exit this menu *HELP Help with this menu From Level-0, select "3" to "maintain menu choices", then "3" again from the sub-menu to "add menu choices". _______ _ ________ ______ 18 Chapter 3 Applying Select Enter the Menu Choice? DATETIME Enter the Menu Desc? Date and time Enter the Menu Password? Return {you don't need a password} Repeat these steps for the other 6 menu choices and use the other functions to list your menu choices, change the descriptions, delete misspelled menu codes, and add missing menu codes. When satisfied, return to Level-0 once again. ______ ____ ____ Define Menu List You have named your main menu (MYMENU) and linked yourself to it, and you have named the menu choices you will want. Now you must add those choices to MYMENU. To do so, select "4" from Level-0. Select displays another familiar sub-menu. You will select "3" to add choices to a menu. As you add each choice to the list, you assign it a SEQUENCE NUMBER that determines the position in the list. If you number your list 10, 20, 30 ... 70, you will have room for later additions. By default, these numbers do not appear on the menu display, only in the MAINT module. When Select displays your final menu on the ______ screen, menu choices are always identified as 1, 2, 3, ... . However, by setting the *RENUM option to FALSE, you can force Select to display these SEQUENCE CODEs instead. This has the advantage that users do not need to re-learn menu numbers when you add or remove a choice from a menu. Enter the Menu Choice? MYMENU {the one you want to add to} Enter the Sequence Number? 10 {for the first item on list} Enter the Sub-Menu Choice? *EXIT {first item on your menu} Repeat these steps for the other menu choices (20 *HELP, 30 DATETIME, 40 LISTEQ, 50 SPOOK, 60 EDIT, 70 COPY). When you have entered the seven items, press Return to get back to the current menu. Select "6" to display your menu list. If you don't like the results, use the other functions to make changes. Return to Level-0 when done. _______ _ ________ ______ Chapter 3 Applying Select 19 ____ ____ __ ___ Test Menu So Far You are ready to test your menu, even though you have not yet defined how the menu choices work. Select "8" from Level-0. Enter the Menu User Name (*=MGR.ROBELLE)? * {means MGR.ROBELLE} This is what you should see on your screen: Level 1 Generalized Application Menu My Personal Menu 1 Exit this menu 2 Help with this menu 3 Date and time 4 File equations/temp files 5 Spooled output 6 Text editor 7 File copy Make a selection from My Personal Menu? Try entering some function numbers. You should find that only "1" (*exit) will work. Make note of any changes you would like in the menu descriptions, then return to Level-0 and make them. ______ _____________ ________ Change Configuration Defaults To change the title that appears at the top of every menu, define *TITLE as a menu choice and put your title in as the Description. Enter the Menu Choice? *TITLE Enter the Menu Desc? ABC Corporation MIS Dept All reserved menu codes in Select start with an asterisk (*). To reorganize the menu display from two alternating columns into one column (with a maximum of 14 choices), add *SCREEN as a menu choice with "14" as the Description. Enter the Menu Choice? *SCREEN Enter the Menu Desc? 14 To configure Select to recognize HP function keys (F1 to F8) as menu choices 1 through 8 (and to label the keys on the screen), add the *HPTERM menu choice with Description of TRUE. This also has the effect of enhancing the menus with inverse video, enhancing the appearance of Qhelp screens, and authorizing use of the :Reflect command from within menu choices. Return to Level-0 when done. _______ _ ________ ______ 20 Chapter 3 Applying Select The new values will take effect when you select "8" from Level-0 to test your changes. You must run Select from scratch to check changes in the *UDC value. :run select.pub.robelle,maint ___ ________ ___ ____ _______ Add Commands for Menu Choices To convert your menu choices from useless "stubs" into working selections, you must define a COMMAND LIST for each. The command list is ordered by SEQUENCE NUMBER (like the menu list). Select "5" from Level-0 to "maintain commands", then "3" to add commands. Enter the Menu Choice? DATETIME Enter the Sequence Number? 10 {first command} Enter the command text? SHOWTIME {an MPE command} Enter the Sequence Number? Return {no more commands} Repeat this cycle for the other menu choices: LISTEQ 10 RUN LISTEQ2.PUB.SYS Or, for MPE V/E: 10 LISTEQ 20 LISTFTEMP SPOOK 10 RUN SPOOK.PUB.SYS;HOLD SPOOK is one of the programs that suspends on Exit, rather than terminating. By including ";HOLD" in the Run command, you authorize Select to hold onto this suspended SPOOK. This makes subsequent accesses to SPOOK much faster and reduces system overhead. EDIT 10 RUN EDITOR.PUB.SYS Or, 10 RUN QEDIT.PUB.ROBELLE;HOLD COPY 10 RUN FCOPY.PUB.SYS Or, 10 RUN SUPRTOOL.PUB.ROBELLE;HOLD Having added commands for all of your menu choices, return to Level-0 and test your menu again. ___ ____ ____ ___ ____ _______ Add Help Text for Menu Choices Select allows you to provide help to your users by linking each menu choice to a help file. There are two kinds of help files: Keep files or Qhelp files. From Level-0, select "7" to "maintain help text". If you have Qedit or Suprtool, you can link directly to their existing Qhelp files: _______ _ ________ ______ Chapter 3 Applying Select 21 *EDIT QEDIT.HELP.ROBELLE *COPY SUPRTOOL.HELP.ROBELLE You can provide help for *EXIT and *HELP from the Select Qhelp file: *EXIT SELECT.HELP.ROBELLE MAINT,EX *HELP SELECT.HELP.ROBELLE ACCESS,USING,HELP Now return to Level-0 and test again. Try Help. ____ ___ ________ ___ ____ When You Memorize the Menu Once you have memorized your menu, you may find it irritating to wait for it to be displayed after every choice. You can suppress display of menus by typing the "MS" command when prompted for a menu choice. You should also type "CS" which suppresses the clear-screen and eliminates the need for you to press Return after every menu item. Try these options. If you don't like them, you can re-enable the default options by entering "MS" and "CS" again. To always have your menus suppressed, go to Level-0 and use "3" to define the *DISPLAY and *CLEAR menu choices with "FALSE" as the Descriptions. This will change the defaults in your database. ___ ________ ___ ________ _______ Add Sub-Menu for Printing Manuals Suppose you want to be able to print Robelle manuals from your menu. It should be simple to set up menu choices such as MSelect to print the Select manual: MSelect Print Select Manual 10 file infile=select.doc.robelle 20 file output;dev=lp 30 run prose.qlib.robelle However, if you add too many choices to your menu, it will look cluttered and confusing. Instead, define a single menu choice, MANUALS (Print Manuals), for your main menu and link all of the specific manual choices to it as a sub-menu. MANUALS Print Manuals 10 *EXIT 20 *HELP 30 MSelect 40 MQEDIT 50 MSUPRT _______ _ ________ ______ 22 Chapter 3 Applying Select __________ ___ __ ____ ____ Production Use of Your Menu When doing MAINT work on your menu database, use this UDC: selmaint option nolist,nohelp {to protect password} file menu=menu.catalog.robelle {Write access needed} _________ run select.pub.robelle,maint;info="writepass" reset menu * For linking users into their menus, use this UDC: menu option nolist,nohelp,logon {logon makes it automatic} file menu=menu.qlib.robelle {your base name of course} continue resume if cierror = 978 then comment we are in batch, so we DON'T run Select! else comment we are in SESSION, so we run Select continue ________ run select.pub.robelle,useracct;parm=5;info="readpass" endif reset menu bye * 23 _______ _ ___________ _____ Chapter 4 Maintaining Menus _ ___ __ _ ________ _ ____ _________ ü How Do I Maintain a Menu Database? _ ______ _____ _________ _________ ü Common Tasks Combining Functions _ ___ __ _ ___ ___ __ _ _____ ü How Do I Get Out of a Menu? _ ___ __ _ ___ _____ ü How Do I Get Help? _ ____ __ _ ____ _______ ü What Is a Menu Choice? _ ____ __ _ ____ _____ ü What Is a Menu List? _ ___ ___ ____ _______ _________ ü How Are Menu Choices Executed? _ ___ __ _ ____ _ ____ __ _ _____ ü How Do I Link a User to a Menu? _ ___ __ _ ____ _______ __ ____ _____ ü How Do I Link Choices to Help Text? _ ___ __ _ ______ ____ __ ____ ______ ü How Do I Verify That My Menu Works? _ _________ ___ ________ ü Executing MPE Commands ___ __ _ ________ _ ____ _________ How Do I Maintain a Menu Database? To maintain a menu database, you run Select with the MAINT entry point. :hello me,mgr.robelle {you need Write access to base} :file menu=menu.catalog.robelle {where menu base is} :run select.pub.robelle,maint {invoke MAINT module} Database password [;]? Return {if you are CREATOR} 1 - Exit 2 - Help 3 - Menu Choices (components and assemblies) 4 - Menu Lists (what choices on what menus?) 5 - Commands (how to access SPOOK?) 6 - Users (who uses which menus?) 7 - Help text (how to explain the menus?) 8 - Testing (use the actual menus) The core functions (3-7) give you similar sub-menus of functions: add, delete, change, list, and one or two special functions such as delete all. Use function 8 to test your results. Each menu choice has a unique, internal code and an external description; it becomes either a list of other menu choices or a list of commands to execute. The Return key gets you out, * means "current" menu choice or menu user, and lowercase is the same as uppercase for menu codes, users, commands, and help file names. ______ _____ _________ _________ Common Tasks Combining Functions This section briefly tells you how to accomplish some common menu maintenance tasks, all of which involve a combination of the core functions above. _______ _ ___________ _____ 24 Chapter 4 Maintaining Menus ___ _ ___ ____ ______ __ ___ __ ____ ______ Add a new menu choice to one or more menus: 3 to add code and description for the new menu choice, 4 to add it into existing menu lists (select sequence number to position the new choice), 5 to add commands for the new menu choice, 7 to link help text (if any), and 8 to test all users who need the new choice. ______ _ ____ ______ ____ ___ ______ Remove a menu choice from all menus: 4 to find "where used" and remove from menus, 5 to delete all commands, 7 to delete help text, and 3 to delete the menu choice. ___ _ ___ ____ __ ___ _______ Add a new user to the system: 3 and 4 to create new menu for the new user (unless the user can share an existing menu), 6 to define the new user and link the user to a main menu. ______ _ ____ ____ ___ _______ Remove a user from the system: 6 to delete the user, 4 to delete the user's menu (unless it is shared by other users). _________ ____ _______ __ ________ __________ Eliminate menu clutter by creating sub-menus: 3 to add new menu code for sub-menu, 4 to add existing choices to this sub-menu, 4 to to delete those choices from the old menu, and 4 to add the new sub-menu as a choice on the old menu. ______ ____ __________ __ _____________ __________ Reduce menu dispersion by consolidating sub-menus: 4 to delete sub-menus from main menu, 4 to add the choices from these sub-menus to the main menu, 4 to delete all choices from the sub-menus, and 3 to delete the codes for the unneeded sub-menus. ______ _____ __________ ___ _______ _________ Review menu, sub-menus, and related commands: use the LIST entry point of Select to print a tidy listing of menus, sub-menus, and commands on the line printer. ____ ______ _______ __ _____ ___ _________ Make global changes to menus and commands: use the DUMP and LOAD entry points of Select to dump menus to a disc file, edit the file, and reload it. ___ __ _ ___ ___ __ _ _____ How Do I Get Out of a Menu? There are several ways to get out of the current menu (returning either to the previous menu or back to MPE): Type EX when Select prompts for your next menu choice. Select a menu item that says it will Exit. Press the Return key (this will exit if you have menu *DISPLAY enabled; if you have disabled *DISPLAY, either _______ _ ___________ _____ Chapter 4 Maintaining Menus 25 permanently or with the MS command, Return displays the current menu choices). ___ __ _ ___ _____ How Do I Get Help? In the MAINT module, there are two ways to get help: Select function "2" from the menu (this sends you to the MAINT keyword in the Select help file). Type ? when prompted for a MAINT menu choice (this gives you access to the entire Select user manual by keyword, not just the MAINT section). If you are testing a user menu, there are three ways to get help: By selecting a menu choice that offers help (this asks you which menu choice you need help with and looks for a help file for whichever number you enter). By typing HE when Select prompts for a menu choice (this is the same as the first option). By typing "?" when Select prompts for a menu choice (this gives you a list of the few commands available to the Select user: MS, CS, EX, HE, etc.). ____ __ _ ____ _______ What is a Menu Choice? Either a concrete action or a menu. A concrete action is something like showing the date or running Qedit. A menu is a list of choices (which may themselves be either concrete actions or deeper sub-menus). For a concrete action, you add a list of commands to be executed. For a menu, you add a list of menu choices to be displayed. Any menu can be used as a sub-menu. ___________ _____ ____________ ________ Attributes: Code, Description, Password ____ Code is a unique 8-character internal code for the menu choice. It does not appear on the menu display that is seen by the user. Menu choices on the screen are always identified as 1,2,3... . ___________ Description is a 30-character string that appears on user menus having this menu code. ________ Password is optional and defaults to all blanks (none). If you include a password, no one will be able to access this menu choice without knowing the password. To remove a password, press Return when prompted for the new password. Passwords are upshifted, so it doesn't matter whether you enter them in lowercase, uppercase, or mixed case. This is incompatible with older versions of _______ _ ___________ _____ 26 Chapter 4 Maintaining Menus Select, but should not cause a problem because any lowercase passwords in the menu database are automatically upshifted before being compared with the password entered by the user. Special functions: list all menu choices. ____ __ _ ____ _____ What is a Menu List? A menu is a list of menu choices, ordered by SEQUENCE NUMBER: 10 *EXIT 20 *HELP 30 DATETIME 40 LISTEQ 50 SPOOK 60 EDIT 70 COPY 80 MANUALS The sequence number varies from 01 to 99 and determines the ordering of the list (optionally, the sequence number may actually appear on the screen). Choices may be built-in (*EXIT and *HELP), concrete tasks (DATETIME, LISTEQ, etc.) or sub-menus (i.e., MANUALS would explode into a menu of specific manuals that could be printed). Special functions: show which menus a menu choice appears on, and show a tree listing of menus and sub-menus. To delete all choices from a menu, delete one at a time until they are all gone. ___ ___ ____ _______ _________ How are Menu Choices Executed? A concrete menu choice is defined via a list of commands. Each ___ command may be up to 80 characters in length and may not be continued. Uppercase or lowercase is okay. Typical commands: :file infile = prose.qlibdoc.robelle :display This menu choice prints the Prose manual. :run prose.qlib.robelle The leading colon is optional, but not illegal. Special functions: delete all commands for a menu choice. _______ _ ___________ _____ Chapter 4 Maintaining Menus 27 ___ __ _ ____ _ ____ __ _ _____ How Do I Link a User to a Menu? A menu user is someone who can access a main menu within a Select menu database. ___________ _____ ____ _____ _________ ________ ____ Attributes: Name, Main Menu, *DISPLAY, *HPTERM, *MPE ____ Name is a character string in one of four formats: logon MPE user and account (e.g., MGR.ROBELLE), logon user name only (e.g., MGR), logon account name only (e.g., ROBELLE), or any arbitrary name used with the PROMPT entry point (e.g., ANYTHING). ____ ____ Main menu is the menu that is to be displayed when this user first accesses Select; this need not be a private menu - it can be shared by several users; it may also include choices for sub-menus. ________ *DISPLAY value 0 = use global default 1 = TRUE (always display menus) 2 = FALSE (never display menus) _______ *HPTERM value 0 = use global default 1 = TRUE (always check for HP terminal) 2 = FALSE (never check for HP terminal) 3 = NOLABELS (TRUE, but leave labels alone) ____ *MPE value 0 = use global default 1 = TRUE (always allow MPE commands) 2 = FALSE (never allow MPE commands) ___ __ _ ____ _______ __ ____ _____ How Do I Link Choices to Help Text? The user can ask for HELP regarding a menu choice either by selecting a menu choice that offers help (the *HELP built-in choice) or by typing HE when prompted for a menu choice. Select asks which menu choice the user needs help with, then looks for help text to go with that menu choice. The default help text is an unnumbered Keep file in the DOC group of the logon account; the file name is the same as the code for the menu choice. Using MAINT you can define a specific file name to be printed for help. This file must be either a Keep file without sequence numbers or a compiled Qhelp file. The advantage of a Qhelp file is that it can have trees of keywords that the user selects from rather than one long list of instructions. Also, Qhelp files may save disc space over numerous Keep files. You can specify a starting point within the Qhelp file if you like, rather than starting at the beginning. You do this by appending a list of keywords after the file name: *QHELP Select.HELP.ROBELLE ACCESS,USING,HELP _______ _ ___________ _____ 28 Chapter 4 Maintaining Menus By using this method, you can reduce the number of discrete help files you need to maintain and backup. Also, you can print the help text to the printer as an integrated document, rather than as numerous disjoint documents. Special functions: list all menu choices with help text. ___ __ _ ______ ____ __ ____ ______ How Do I Verify That My Menu Works? To test your menu, you could get out of MAINT, stop Select, then run Select again with the appropriate entry point and logon user name. Or, you could avoid all this bother by selecting function "8" from the MAINT menu. Enter the Menu User Name (*=USER.ACCOUNT)? You can answer with * for the user name that is shown in the prompt, or you can enter the name of any menu user. Select finds that user's menu and displays it on your screen. When you are done testing it, you Exit from it back into MAINT. If you change the global configuration values (e.g., *DISPLAY), the new values will take effect when you select "8" from Level-0 to test your changes. You must run Select from scratch to check changes in the *UDC value. _________ ___ ________ Executing MPE Commands You can execute almost any MPE command at any MAINT menu prompt. The command may be up to 80 characters long, including the leading colon, which is required. If *UDC is enabled before starting up MAINT, then these are allowed also. MPE commands are always available in MAINT, regardless of the setting of *MPE. 29 _______ _ ________ ___ ____ _______ Chapter 5 Commands for Menu Choices _ _______ _____ ü General Notes _ _____ _______ ü :Prep Command _ ____ _______ ü :Run Command _ _______ ___ ü Implied Run _ __________ _______ ü :Segmenter Command _ ________ _______ ü :Display Command _ ______ _______ ü :Pause Command _ ________ _______ ü :Reflect Command _ ______ _______ ü :Qhelp Command _ __________ ___ _______ ________ ü :Beginfile and Endfile Commands _ ____ _______ ________ ü User Defined Commands _ _______ _____ ü Command Files _ _______ _ _______ ü Holding a Program _______ _____ General Notes You define how Select is to execute a menu choice by entering a list of commands. Each command is 80 bytes long, may not be continued, and may have a colon at the start (this is optional). The Select menu commands consist of 1) the MPE commands that can be done via the COMMAND intrinsic, 2) some other common MPE commands such as :Run and :Continue, 3) many UDC commands (but not all possible ones), and 4) pseudo-MPE commands such as :Display and :Beginfile. _______ Caveats Select does not support :If logic. If you create a DSLINE, it can only be accessed by Select (not by programs you run); nor can you access a DSLINE that belongs to your session. For commands like :Editor, run the proper program in Pub.Sys (e.g., :Run Editor.Pub.Sys). ___ User Defined Commands will not be recognized unless you enable the ___________ ______ *UDC menu option (see the appendix Configuring Select). There are a few differences between executing an MPE command within Select and executing it directly with the Command Interpreter. The most important difference is that the Break key will not stop Select in the middle of a long MPE command; the result is just a normal "break" to MPE -- after you :Resume, the "broken" command continues to completion. _______ _ ________ ___ ____ _______ 30 Chapter 5 Commands for Menu Choices Another major difference is that the syntax of the Select versions of :Prep and :Run is much more forgiving than in MPE. You can abbreviate the keywords, leave out the commas, and use default parameter values. The last difference is the HOLD keyword of the :Run command. This permits son processes to be "held" for later activation. Correct use of this keyword requires changes to your programs. ___________ ___ _______ _____ Conditional and Program Logic Select does not provide full :If logic for menu choices. If an error occurs in a menu command, the rest of that menu choice is flushed. If you place a :Continue command in front of a command, when the command fails, the rest of the menu choice continues anyway. ____ _______ ________ User Defined Commands UDC commands within Select are more powerful than regular Select commands. UDC commands support full :If logic and commands can be continued over more than one line. _____ _______ :Prep Command Converts a USL file into a program file that you can :Run. _______ ________ __ __ :PREP [uslfile] [,progfile] [;CAP=xx] [;MAXDATA=nn] ... _______ (Defaults: uslfile = $OLDPASS, ________ progfile = $NEWPASS) The parameters to :Prep are the same as in MPE. Keyword parameters can, of course, occur in any order. In Select, all parameters (including file names) are optional, you may shorten most parameters to a letter or two, and LP and QMAP are new parameters. For a complete description of our version of :Prep, see the Qedit user manual, or enter this command: :run qhelp.qlib.robelle;& :info="QEDIT.HELP.ROBELLE COM,MPE,PREP" _______ _ ________ ___ ____ _______ Chapter 5 Commands for Menu Choices 31 ____ _______ :Run Command Executes a program within Select; returns to Select when done. ________ _____ _ :RUN [progfile] [,entry] [;HOLD|NOHOLD] [;LIB=x] ... ________ (Defaults: progfile = $OLDPASS) The parameters to :Run are the same as in MPE. In Select, all of the parameters are optional, you may shorten them to a letter or two, separators (,;=) are only needed when they hold the place of a missing parameter, and HOLD and NOHOLD are new parameters (see _______ _ _______ Holding a Program). For a complete description of our version of :Run, see the Qedit user manual, or enter this command: :run qhelp.qlib.robelle;& :info="QEDIT.HELP.ROBELLE COM,MPE,RUN" If you run a program that "suspends" instead of terminating, and you specified "HOLD" in the :Run command, Select will hold onto that program. An example of such a program is SPOOK. After you type "EXIT" in SPOOK it suspends itself and awakens Select. Select notices that SPOOK is still alive and if "HOLD" was specified, Select will re-activate SPOOK when you enter another :Run command for SPOOK with the "HOLD" parameter. (Spooksters note: Exit does not release the current spool file; use Text with no parameter before Exit for that purpose.) _______ ___ Implied Run When you enter a command that Select cannot interpret, it checks to see if it might be the name of a program. First it looks in the logon group for a file whose name matches your command name. Then it looks in the PUB group of the logon account and finally it looks in the PUB.SYS group. If it finds a program file that matches, Select then runs that program. For example, to run Spook5.Pub.Sys, you just execute: spook5 This is called an "implied Run". You are allowed two parameters on an implied Run command: progname ["infostring"] [,parmvalue] or progname [;INFO="infostring"] [;PARM=parmvalue] You can enter the Info and Parm values as either keyworded parameters or positional parameters. If the first symbol after the program name is neither Info or Parm, it will be interpreted as the Info string (i.e., quotes are not necessary if the Info string is a single symbol). If you need other parameters, such as MAXDATA or LIB, you will have to use the standard :Run command. _______ _ ________ ___ ____ _______ 32 Chapter 5 Commands for Menu Choices __________ _______ :Segmenter Command Invokes the Segmenter Subsystem from within Select. ________ :SEGMENTER [listfile] or ________ :S [listfile] (Default: $Stdlist; LP for printer.) _________ Examples: :S Invoke the Segmenter; print on $Stdlist. :S LP Invoke the Segmenter; print on LP device. ________ _______ :Display Command Displays a line of text on the terminal. ______ :DISPLAY string or :DISPLAY ______ This command displays the string on the terminal. If no string is specified a blank line is printed. Use this command to give specific suggestions to users when they select a process. :display We will now print a copy of the manual on SYSTEM LP ______ _______ :Pause Command Display a line of text and wait for the user to enter "Return". ______ :PAUSE string or :PAUSE ______ This command displays the string on the terminal, then it waits for the user to enter a "Return". If no string is specified, Select will wait for a "Return" without displaying anything. Pause is useful after a group of Display commands. :pause Press Return when ready to continue: _______ _ ________ ___ ____ _______ Chapter 5 Commands for Menu Choices 33 ________ _______ :Reflect Command Executes a Reflection command on your PC (*HPTERM must be enabled). You must be using Reflection 1 version 1.40 or later, or Reflection 3/7 version 1.55 or later, or the Macintosh Reflection. Select checks whether the command succeeds or fails; failure is treated like the failure of an MPE command. :Reflect allows you to control a PC from within your HP e3000 UDCs (send and receive files, backup your PC, execute PC programs, etc.). __________ _______ :REFLECT reflection command (Defaults: none) _________ Examples: reflect TYPE MREPORT.CRT reflect SHELL LOTUS ______ _______ :Qhelp Command Invoke the Qhelp subsystem as an MPE command. ________ _______ :QHELP filename [keyword,...] This command calls Qhelp with the specified file name. Optionally, a keyword list may be specified as the starting node for Qhelp. Note that this is the same as ________ _______ :run qhelp.qlib.robelle;info="filename keyword" except that it is much faster. __________ ___ _______ ________ :Beginfile and Endfile Commands Create a temporary file and write data records into it. ________ :BEGINFILE filename ...data records... :ENDFILE The :Beginfile command opens a new file with 256-byte records. :File equations are allowed to override the format of the file. Select writes all of the command lines between the :Beginfile and the :Endfile into this new file. The :Endfile command closes the file as a temporary file. If the session already has a file with the same name, :Endfile will ask users if they wish to purge the existing file or rename the new one. If you don't want end-users to go through this dialogue, you should :Purge the existing file before the :Beginfile. You can use this file as input to programs, using a :File command and/or the Stdin parameter of Run: _______ _ ________ ___ ____ _______ 34 Chapter 5 Commands for Menu Choices PURGE BASENAME,OLDTEMP BEGINFILE BASENAME MENU ENDFILE FILE INNAME=BASENAME,OLDTEMP RUN DBUTIL.PUB.SYS,CREATE;STDIN=*INNAME RESET INNAME PURGE BASENAME,TEMP ____ _______ ________ User Defined Commands Select has the ability to execute some MPE User Defined Commands (UDCs). However, you must first enable the *UDC menu option (see ___________ ______ the appendix Configuring Select). You can check whether UDCs are active in Select if you execute the :Showcatalog command or :Help _______ udcname. User Defined Commands allow you to abbreviate the MPE commands that you use frequently and to create complex new commands. Here are some sample UDCs of the simple variety: SJ SHOWJOB JOB=@J * SS SHOWJOB JOB=@S * ST SHOWTIME * SP RUN SPOOK.PUB.SYS * To invoke these UDCs from within Select, you execute: :SJ {showjob job=@j} :SS {showjob job=@s} :ST {showtime} :SP {run spook.pub.sys} There are a few restrictions on the UDCs that Select can handle: no OPTION NOBREAK, no keyword parameters in actual UDCs (positional only), and no expanded line greater than 256 characters. ____ ____ _________ ____________ UDCs With Parameter Substitution Here are two UDCs with parameters: _______ _ ________ ___ ____ _______ Chapter 5 Commands for Menu Choices 35 PROSE PARM1, PARM2="$STDLIST" COMMENT Run Prose with input and output files. FILE LP;DEV=LP;CCTL FILE INFILE=!PARM1 FILE OUTPUT=!PARM2 RUN PROSE.QLIB.ROBELLE RESET LP RESET INFILE RESET OUTPUT SETMSG ON * SEG PARM1 COMMENT Execute Segmenter commands from a file. RUN SEGDVR.PUB.SYS;STDIN=!PARM1 * You would invoke these UDCs by entering: :PROSE QEDIT.DOC.ROBELLE :PROSE SUPRTOOL.DOC.ROBELLE,*LP :SEG RPT003.SEGMENT In the :Prose command, the UDC saves you from having to type two :File commands and a :Run command. The parameters (!PARM1 and !PARM2) are inserted where they belong in the MPE commands. In the :Seg command, the UDC gives you the ability to execute a file of :Segmenter commands without typing them interactively and without streaming a batch job. _______ ___ ____ OPTIONS for UDCs Select UDCs support the MPE OPTIONS for LIST/NOLIST, and HELP/NOHELP, but do not support NOBREAK. However, Select adds two new options: option noerror {suppress all MPE error messages} option nowarn {suppress all warning messages} _______ _____ Command Files A command file is a file that contains a set of commands which will be executed when you type the name of the file (like a DOS batch file). Command files are similar to UDCs except that you do not need to catalog them. Like UDCs, command files can have parameters. You can use command files as a "command language" to write customized functions in Select. Command files may contain MPE commands like Listf, conditional logic commands such as If-Else-Endif and While-Endwhile, Select-simulated MPE commands like :Display, other command files, or UDCs. _______ _ ________ ___ ____ _______ 36 Chapter 5 Commands for Menu Choices A command file starts with optional header lines: PARM, ANYPARM and OPTION. These define the parameters and options of the command file. The command file terminates at the end of file or the first * line. Select checks for pairs of exclamations (!!parm1) before doing parameter substitution in UDCs and command files. For example, here is a command file to print the spool files for a job number: SSP.BOB.GREEN parm jobnum="0" if !jobnum > 0 then showout job=j!jobnum endif To invoke SSP.BOB.GREEN within Select, you execute: ssp 67 On MPE V, if Select does not recognize SSP as a command, it looks for a file named SSP in the logon group, the PUB group of the logon account, or in PUB.SYS. If it finds one, it tries to execute it as a command file. On MPE/iX, you can use the HPPATH variable to tell Select explicitly which groups to look in for command files (and implied runs). _______ _ _______ Holding a Program One problem with menu-driven applications is that it takes many resources to switch from one program to another. The overhead involved in creating and terminating new processes can slow down an entire HP e3000, especially if the functions must open databases and form files each time they are selected. At first glance, it would appear that there is no solution to this problem. But there is -- it is called process switching. In order to take advantage of process switching, two things must take place. The first is to specify the "HOLD" option on the :Run command of ___ frequently used programs. Do not specify the "HOLD" option on _____ every :Run command, only on the two or three most frequently used programs. Select will hold up to a maximum of twenty programs (see *HOLD). If you hold more than that, Select kills the one that you have used the least recently. :run spook.pub.sys;HOLD The HOLD keyword has no effect unless the program being :Run with ___ HOLD is modified. Such programs must not terminate, they must suspend themselves. Some programs that already suspend on exit _______ _ ________ ___ ____ _______ Chapter 5 Commands for Menu Choices 37 are SPOOK, Qedit, MPEX, Suprtool, Qcopy, and Xpress (if you run with Parm=1). If you want a new version of a program that you may be holding, ___ you should specify the NOHOLD option (this says not to use the held version, but create a new one): :run qedit.pub.robelle;NOHOLD {favorite text editor} __________ _ _______ Suspending a Program A well-structured COBOL program can be modified to suspend by using the procedure "WAKEFATHER" from the Routines.Qlib.Usl file. For a complete description of the procedures in ROUTINES.QLIB, enter the following: :run printdoc.pub.robelle;& :info="contents.qlibdoc.robelle" _____ ___ __________ _______ Using the WAKEFATHER Routine Suppose that your typical COBOL program mainline looked like this: 00-main section. perform 10-initialize thru 10-initialize-exit. perform 20-main-processing thru 20-main-processing-exit. perform 90-finish-up thru 90-finish-up-exit. 00-main-exit. goback. This program terminates when it finishes. This happens when the "goback" statement is executed. In order to suspend this program, a call must be made to "wakefather". Additionally, the logic must be changed to start the program again after calling "wakefather". The modified program would look like this: 00-main section. perform 00-10-main-logic until 1 = 0. 00-10-main-logic. perform 10-initialize thru 10-initialize-exit. perform 20-main-processing _______ _ ________ ___ ____ _______ 38 Chapter 5 Commands for Menu Choices thru 20-main-processing-exit. perform 90-finish-up thru 90-finish-up-exit. call "wakefather". __ Note that there is no use of the "stop run" or the "goback" statement. Both of these statements cause the program to terminate. You should change the initialize and finish routines to leave the database open. ________ Warnings There are other problems which may arise when switching from terminating to suspending. The VALUE clauses in the Data Division ____ are only executed once, the first time that the program is :Run. You must use MOVE statements to initialize all variables whose values change during a :Run of the program. When a program is terminated all open files and databases are ___ closed automatically. When you suspend, these files will not be closed unless you close them specifically in your program. Rather than closing them on suspend, you should leave them open (faster) and modify your initialization routines to only open them if they need it. You can check the first two characters of the database name field; if they contain blanks the database has not been opened yet. Finally, the Parm=, Stdin=, Stdlist=, and Info= parameters of the _____ :Run command will only have effect the first time that the program is :Run. Subsequent invocations must not change these values. ____________ __ __________ Installation of WAKEFATHER Suppose that your new COBOL program is called COBEG.SOURCE. The following MPE and :Segmenter commands are required to compile, segment, and prepare the program into COBEG.PUB: :cobol cobeg.source :segmenter -usl $oldpass -auxusl routines.qlib.robelle -copy unit,wakefather -exit :purge cobeg.pub :prep $oldpass,cobeg.pub :save cobeg.pub 39 _______ _ __________ ______ Chapter 6 Installing Select _ ____ __ _______ ___ _______ _______ ü Step 1: Upgrade the Robelle Account _ ____ __ _______ ___ _____ ü Step 2: Restore the Files _ ____ __ _______ ___ _______ ü Step 3: Install the Program _ _____________ ü Documentation There are three steps to installing or updating the Select ____ software from the distribution tape. First, you must build (or upgrade) the ROBELLE account using a job stream that we provide. Second, restore the Robelle files from tape to disc. Third, you must stream the installation job. These instructions are for license product tapes only. If you have a product demo tape, please follow the separate instructions for installing it -- that will also install Select on your system. If you are testing a pre-release of Select, consult the installation instructions in the change notice. ____ __ _______ ___ _______ _______ Step 1: Upgrade the Robelle Account Even if you already have the Robelle account, the first thing you must do is stream the Robelle job. This ensures that any new groups will be built with the proper capabilities and security. :hello manager.sys :file robtape;dev=tape :restore *robtape; robelle.job.robelle; create :run qedit.pub.robelle {or use :Editor} /text robelle.job.robelle /modify first {manager.sys password} ________ /change "XXXX","password",ALL {Robelle password} /keep robtemp /exit :stream robtemp :purge robtemp This job stream launches a second job, which will send you a message when it has completed. ____ __ _______ ___ _____ Step 2: Restore the Files Stay logged on as Manager.Sys, then restore these files: :restore *robtape;@.@.robelle;show _______ _ __________ ______ 40 Chapter 6 Installing Select ____ __ _______ ___ _______ Step 3: Install the Program Our Bonus.Job.Robelle job stream installs all Robelle bonus programs. No one can be using HowMessy, Select, Spell, or Xpedit during installation. Warn people not to use these programs for a while, and then stream our installation job: :hello mgr.robelle :warn @;please stop using Select NOW! :run qedit.pub.robelle {or use :Editor} /text bonus.job /modify first {Mgr.Robelle passwords} /keep robtemp /exit :stream robtemp :purge robtemp Check the installation job $Stdlist. If anyone was using Select or the other files, or attempting to back them up, the job will fail. Chase away any users, ensure that backup is not in progress, then stream the installation job again. To try the sample Select menu, enter :run select.pub.robelle,qlib ________ _ ____ To create your own menus, see the appendices Building a Menu ________ ___________ ______ ___________ Database and Configuring Select, and the chapters Maintaining _____ ________ ___ ____ _______ Menus and Commands for Menu Choices. _____________ Documentation The Select file in the PUB group is the program file; the file in the DOC group is the user manual, and the Printdoc and Prose files are programs to print and format documentation. :run printdoc.pub.robelle;info="select.doc.robelle" 41 ________ _ _ ________ _ ____ ________ Appendix A - Building a Menu Database You must decide whether to have one menu database per application or one global menu database for your entire system. If you have one global menu database, you should use one of the ACCT, _________ ______ USERACCT, or PROMPT options (see the chapter Accessing Select). Our examples assume one global menu database, built in the CATALOG group of the ROBELLE account (users will need Read and Lock access). There are two steps to building the menu database for Select. First, modify the schema with your own database passwords. You will need a password for Read access. Select users pass this string to Select through the Info= parameter of the :Run command; it should not contain lowercase letters. You will need a second password for Read/Write access; this password is for maintaining the menus. Here are the commands to modify the schema: :hello mgr.robelle,catalog {Must be in the CATALOG group} :run qedit.pub.robelle {or use :Editor} /text menusc.qlib {copy in schema file} /modify 6/7 {new passwords; no lowercase} passwords: 1 EASYWORD; <> 2 HARDWORD; <> /keep $newpass {save updated copy of schema} /exit The second step is to use DBSCHEMA and DBUTIL to create the database. The default database takes about 500 sectors of space. Here are the commands to build the database: :file dbstext=$oldpass {temporary copy of schema} :run dbschema.pub.sys;parm=1 {build root file} :run dbutil.pub.sys,create {create datasets} Data Base Name: menu Your database is now built, but must still be configured and loaded with menus. You may build the database with any name and in any account you like, but this manual shows examples as if it were Menu.Catalog.Robelle. 42 ________ _ _ ___________ ______ Appendix B - Configuring Select Select has several configuration options and three built-in menu choices: *CLEAR clear screen before menu (or not) *PAUSE ask 'press RETURN' after menu choice (or not) *DISPLAY display menus always (or only on request) *HOLD maximum number of "held" processes *HPTERM look for HP terminal with function keys (or not) *RENUM show relative numbers (default) or actual *MPE allow MPE commands to menu prompt *PROMPT allow use of Prompt entry point (or not) *JOB allow use of Jobname entry point (or not) *INFO allow use of Infoname entry point (or not) *SCREEN number of items per menu (1 or 2 columns) *TITLE string to appear at top of menus *UDC recognize User Defined Commands (or not) *BYE built-in "global exit" choice *EXIT built-in "exit menu" choice *HELP built-in "help on menu" choice The configuration value of the option is stored in the "description" part of the menu choice. For example, to print "My Personal Menu" at the top of every menu, you would run Select with the MAINT entry point, use the "Maintain Menu Choices" function, then "Add Menu Choice": Code= *TITLE, Description= My Personal Menu, and Password= blanks (i.e., no password). The three built-in menu choices simulate user commands. By putting them on the menu, you eliminate the need for the user to learn any commands (all of the options are shown on the screen). We use *EXIT as the first item of every menu and *HELP as the second. To use *EXIT, for example, you add it into your database as a menu choice, then add it to every menu and sub-menu. These pre-defined menu choices start with an asterisk "*" to distinguish them from the menu choices that you define. Each time anyone runs Select, it looks in the menu database for these special menu choices. If it doesn't find one, Select uses the default. _____________ ____ _______ Configuration Menu Choices The following menu options configure Select's behavior. ________ _ _ ___________ ______ Appendix B - Configuring Select 43 ______ ______ *CLEAR Option This option determines whether Select will clear the screen before printing each menu. Clearing may not be esthetically pleasing to some people, or the escape code used may not work on your terminals. When Select does not clear the screen after every menu choice, it no longer asks the user to Hit Return before displaying the menu. This can make the menus faster for the user. To disable clearing, you code "FALSE" as the Description value for *CLEAR. To enable *CLEAR, use "TRUE". The default is to clear: *clear true ______ ______ *PAUSE Option If most of your menu choices are VPLUS programs, you may like the CLEAR and DISPLAY options, but dislike the 'press RETURN' question that Select asks after each menu program, before refreshing the menu display. *PAUSE FALSE is for you! When *CLEAR is TRUE and *DISPLAY is TRUE (the default state), Select starts a new page of display memory after each menu choice to re-paint the menu. Select also asks you to 'press RETURN' after your menu choice. If *CLEAR is TRUE, you can suppress this question by using *PAUSE FALSE. *PAUSE is ignored unless *CLEAR is TRUE. The default is to pause after every menu choice: *pause true ________ ______ *DISPLAY Option Novice users of a menu system prefer to see each menu as they step through the levels. Experienced users may wish to see the menus only upon request. If *DISPLAY is enabled, menus are always displayed. If *DISPLAY is disabled (false), menus are only displayed at the request of the user. The user specifies the need for a list of the current menu choices by pressing the Return key. ______ ____ Please note that this changes the meaning of the Return key from EXIT to DISPLAY and means that the user must exit using the "EX" command or an explicit EXIT menu choice. Specific users can be configured to override the database global value for *DISPLAY. The default is to show menus: *display true ________ _ _ ___________ ______ 44 Appendix B - Configuring Select _____ ______ *HOLD Option You can hold suspended programs using the "HOLD" option of the :Run command. You can control the maximum number of held programs using the *HOLD menu choice, coding the maximum number as a left-justified number in the Description field. The minimum value of *HOLD is five and the maximum is twenty. Use caution with this option or you will run out of DST and/or PCB entries in your system tables. The default is a maximum of five held programs: *hold 05 _______ ______ *HPTERM Option If you enable the *HPTERM option, Select will attempt to identify your terminal as an HP terminal. If successful, Select will allow you to choose menu choices via the function keys, menus will be enhanced with inverse video, the menu prompt message will be erased after you press RETURN, Qhelp interaction will have display enhancements, and the :Reflect command will work (if you are using Reflection on a PC). You enable the *HPTERM option by setting the Description to "TRUE": *hpterm true An individual user can be configured using MAINT to override the database value for *HPTERM. The default is: *hpterm false Pressing a function key is the same as typing the corresponding number (e.g., pressing f5 is the same as entering 5). On HP 262x-style terminals, Select loads the function key labels with the string "Menu Item x" where x is the number. You can enable HP _______ terminal recognition without loading the function key labels by setting *HPTERM to NOLABELS: *hpterm nolabels ______ ______ *RENUM Option By default, menu choices are assigned index numbers from one (i.e., they appear as 1,2,3, ...), regardless of the sequence numbers you assign when you create the menu. This is equivalent to *renum true However, if you frequently add and remove choices from menus, users must frequently learn new numbers (they will tend to memorize them you know). Using the *RENUM FALSE option, you can have Select display the actual sequence number that you assigned ________ _ _ ___________ ______ Appendix B - Configuring Select 45 to the menu choice. *renum false You should be aware that the Sequence field is an X2 field and MAINT will allow you to enter any two characters you like. Normally these should be numeric digits (i.e., "05", "10"). If you enter a single digit Sequence value (i.e., " 4" or "4 ") you may find that it does not sort where you want or you cannot select that item from the menu. We do not recommend that you use *RENUM FALSE when using alphanumeric sequence numbers. Select commands take precedence over sequence numbers. For example, the Continue command can be abbreviated to "C". If *RENUM FALSE, you will not be able to select any menu item with a sequence number that starts with "C". If *RENUM TRUE (the default), there are no conflicts between Select commands and the sequence number. There are two special cases where a non-numeric Sequence value makes sense and will work: "EX" and "HE". These will sort to the end of your menu and the user will be able to enter them, only because these two values are trapped as special Select "commands". With this option, function key labels are not filled by Select, but function keys are still accepted (f1 = first menu choice, etc.). That is, *RENUM FALSE, implies *HPTERM NOLABELS, if *HPTERM is TRUE. ____ ______ *MPE Option Users may be allowed the option of entering MPE commands at any menu prompt. The commands may be up to 80 characters long including the leading colon. UDCs are allowed if *UDC is enabled. ________ Warning! Select is often used as a security mechanism to limit the options a user has, by removing access to MPE commands. Allowing MPE commands to a user effectively overrides any security Select may have been providing. With MPE commands enabled, the users can do everything they can do from the MPE colon prompt, including accessing privileged-mode programs or even running Select,MAINT to change the MENU database. We suggest that the *MPE option be configured on an individual user basis only, and not as a global configuration option. If *MPE is TRUE, then all users will have MPE commands available to them. If *MPE is FALSE, then no users will have MPE commands. You can override the global default by configuring the *MPE option for individual users. If *MPE is not found in the menu database the default is used: *mpe false ________ _ _ ___________ ______ 46 Appendix B - Configuring Select _______ *PROMPT Select has an entry point called PROMPT that allows you to specify any menu user name that you like. Since this circumvents the normal security of the USER, USERACCT and default entry points, Select ignores the PROMPT entry point unless you enabled the *PROMPT menu choice (i.e., by setting it to "TRUE"). The default is: *prompt false ____ *JOB Select has an entry point called JOBNAME that allows you to specify your logon job or session name as your menu user name. Since this circumvents the normal security of the USER, USERACCT and default entry points, Select ignores the JOBNAME entry point unless you enabled the *JOB menu choice (i.e., by setting it to "TRUE"). The default is: *JOB false _____ *INFO Select has an entry point called INFONAME that allows you to specify any menu user name that you like via the Info= string of the Run command. Since this circumvents the normal security of the USER, USERACCT and default entry points, Select ignores the INFONAME entry point unless you enabled the *INFO menu choice (i.e., by setting it to "TRUE"). The default is: *INFO false _______ ______ *SCREEN Option You control the maximum items per menu using the *SCREEN menu choice, coding the maximum number as a left-justified, two-digit even number in the Description field. A value of 14 or less results in a single column menu on the left side of the screen. Values between 15 and 30 result in a two-column format. The default is: *screen 30 ______ ______ *TITLE Option The "*TITLE" menu choice defines a title to be printed at the top of every displayed menu. You code the 30-character title as the description of the *TITLE menu choice. The default is: ________ _ _ ___________ ______ Appendix B - Configuring Select 47 *title Generalized Application Menu ____ ______ *UDC Option Select has the ability to recognize User Defined Commands. However, when users have defined a UDC to disallow certain MPE commands such as :Run, it is very inconvenient to not be able to :Run anything from within the Select menu system. For this ______ ____ reason, the default setting of Select is to ignore UDCs. If you want to have Select accept UDCs, you must create the *UDC menu choice and set it to "TRUE" or a file name. The default is "FALSE": *udc false *UDC TRUE means 'search Command.Pub.Sys' for this user's UDCs. *UDC will also accept a value which is the name of the exact UDC file to be used. This eliminates the need to search Command.Pub.Sys and means that you can remove Read access from that file (if you are also using Set UDC file name in Qedit!). *udc udcfile.catalog.useracct ________ ____ _______ Built-In Menu Choices These menu options simulate certain Select commands, so that a user can perform a task by selecting a menu option instead of typing in a command. ____ ____ ______ *BYE Menu Choice The *BYE menu choice causes Select to terminate immediately; Select transfers control back to MPE, which will either prompt you for commands with a colon or log you off. _____ ____ ______ *EXIT Menu Choice When the user is asked for a menu selection, entering the "EX" command will go back to the Previous Menu. If you wish to avoid teaching users any commands, you can include "go to previous menu" as an explicit choice in each menu. If you add *EXIT as a menu choice and include it in a menu and the user selects that choice, Select will act just as if the user had entered an "EX" command (i.e., it will go back one level). Please note: if *DISPLAY is set to TRUE, pressing the Return key is the same as a "EX" command. ________ _ _ ___________ ______ 48 Appendix B - Configuring Select _____ ____ ______ *HELP Menu Choice If a user types "HE" when prompted for a menu choice, Select will attempt to provide help text for the current menu choices. If you would like to avoid teaching your users any commands, you can include the "help function" as an explicit menu choice. If you add *HELP as a menu choice and the user selects it, Select will perform just as if the user had typed the "HE" command. 49 ________ Glossary _______ Command ____ _______ ____ _______ See User Command and Menu Command. ___________ Description A 30-character string that describes a menu choice. Select prints the description on the menu for the user. _____ _____ Entry Point A way of entering Select. There are several entry points, including MAINT to maintain menus and USERACCT to find the menus for your logon user and account name. You specify the entry point in the Run command -- :Run Select.Pub.Robelle,MAINT. ____ ____ Help File A file that contains instructions for the user to provide help with a menu choice. This file can be a Keep file (without sequence numbers) or a compiled Qhelp file (see the Qhelp user manual for details, Qhelp.Qlibdoc.Robelle). ____ Menu A list of menu choices that is displayed on the screen. Each user starts at a main menu, but may progress to sub-menus. ____ ______ Menu Choice An item that can appear on a menu. A menu choice has an internal menu code, a description, and an optional password. It may either be defined as a menu list or a command list. ____ ____ Menu Code An internal 8-byte string that is used to identify a menu choice. Codes starting with * are reserved for Select (.e.g, *DISPLAY and *EXIT). ________ 50 Glossary ____ _______ Menu Command A string of 80 characters that Select executes; it may be an MPE command or a special Select command such as :Beginfile. Each menu choice is either a command list or a menu list. ______ Option A configurable aspect of Select, controlled by a special menu choice that starts with an asterisk (e.g., *DISPLAY). ________ ______ Sequence Number A number from 01 to 99 that determines the order of an entry in a command or menu list. By default, the sequence number does not appear on the displayed menu; Select always numbers menu choices 1,2,3... for the user. However, if the *RENUM option is FALSE, Select will display the actual sequence numbers on the screen. ________ Sub-Menu Any menu list can be placed as a menu choice on another menu list, making it a sub-menu. ____ User Someone who can access a Select menu. Users are linked to a main menu via their logon user and account name, or their logon user name, or their logon account name. ____ _______ User Command When Select prompts the user for a menu choice, the user may either enter the number of a choice or a command. Some of the commands are: MS to suppress menus, CS to suppress clear screen, EX for exit, HE for Help, CO for continue to overflow menu choices. 51 _____ Index *BYE built-in menu choice..........47 *CLEAR option......................8,21,43 *DISPLAY option....................8,9,21,27,43 *EXIT built-in menu choice.........47 *HELP, built-in menu choice........48 *HOLD option.......................44 *HPTERM option.....................8,27,44 *INFO option.......................46 *JOB option........................46 *MPE option........................27,45 *PAUSE option......................8,43 *PROMPT option.....................11,46 *RENUM option......................7,8,44 *SCREEN option.....................9,19,46 *TITLE option......................7,19,46 *UDC option........................47 _ A accessing help from MAINT module...25 accessing Select...................4 account name as Select user........5 ACCT entry point...................11 applying...........................15 _ B Beginfile command..................33 Bonus programs.....................1 building the database..............41 built-in menu choices..............47 BYE built-in menu choice...........47 _ C CATALOG.ROBELLE group..............6,41 choices............................25 CLEAR option.......................8,21,43 clearing the screen................8,43 command files......................35 Command.Pub.Sys....................47 commands...........................20,26 commands for menu choices..........29 common maintenance tasks...........23 compatibility-mode.................2 conditional logic..................30 configuration......................42 create and fill temp file..........33 _____ 52 Index CS (clear screen)..................10 _ D database open mode.................7 database password..................6,41 database placement.................6 database schema....................41 database, building.................41 Dbschema.Pub.Sys program...........41 Dbutil.Pub.Sys program.............41 default Select entry point.........10 Display command....................32 DISPLAY option.....................8,9,21,27,43 displaying a string................32 documentation......................2 DUMP entry point...................13 _ E Endfile command....................33 Enter key, same as Return..........7 entry point, default...............4,10 entry points, Select...............10 EX and HE as sequence numbers......45 exit...............................24 EXIT built-in menu choice..........47 EXIT command.......................47 exit with verify...................14 experts............................21 _ F File command for database..........6 French messages....................14 function keys......................8 function keys and labels...........44 _ G German messages....................14 glossary...........................49 _ H help for MAINT module..............25 help function in menus.............8,48 help on menu choices...............8 help text, adding..................20,27 _____ Index 53 HELP, built-in menu choice.........48 hiding the menus...................9 HOLD keyword of :Run...............31,36 HOLD option........................44 holding a program..................36,44 how to install Select..............39 how to run Select..................4 HPPATH variable....................36 HPTERM option......................8,19,27,44 _ I implied Run........................31 INFO option........................46 Info= parameter, :Run command......6 Info= used for Select user.........6 Info=, password....................4 INFONAME entry point...............6,11,46 installation of WAKEFATHER.........38 installing Select..................39 introduction.......................1 invoke Qhelp without :Run..........33 _ J jcw, selectlang....................14 JOB option.........................46 JOBNAME entry point................11,46 JOBNAME name as Select user........5 _ K KS (kill son) menu command.........9 _ L language...........................14 linking help files to menu choice..20,27 LIST entry point...................13 lists of menu choices..............26 LOAD entry point...................12 logic..............................30 logon UDC..........................22 _ M MAINT entry point..................12 maintenance........................23 maximum held processes.............44 _____ 54 Index MENU database......................41 menu database, default.............4 menu display or not................43 menu numbers.......................7,8,44 menu overflow......................9 Menu Show command..................9,10 Menu.Qlib.Robelle..................12 MENULIST file......................13 menus disappear....................9 menus, listing to the printer......13 MPE commands at menu prompts.......45 MPE commands in maint..............28 MPE option.........................27,45 MPE/iX.............................2 MPE/iX feature.....................31 MS (menu show).....................10 _ N native-mode........................2 new features.......................2 NOHOLD keyword of :Run.............37 NOLABELS, *HPTERM..................44 numbers of menu choices............7,8,44 _ O open mode..........................4 open mode, database................7 OPTION NOERROR.....................35 OPTION NOLIST......................35 OPTION NOWARN......................35 _ P Parm= parameter, :Run command......7 password, database.................4,6,41 password, default is CREATOR.......4 password, ROBELLE account..........39 passwords, upshifted...............25 Pause command......................32 PAUSE option.......................8,43 Prep command.......................30 press Return, suppressing..........43 Printdoc program...................2 Printdoc.Pub.Robelle...............40 process switching..................31,36 programs that suspend..............36 PROMPT entry point.................11,46 PROMPT option......................46 PROMPT option enables PROMPT entry.11 _____ Index 55 prompting for Select user name.....11 Prose program......................34 Prose.Qlib.Robelle.................40 _ Q Qhelp..............................8 Qhelp command......................33 QLIB entry point...................5,12 Qlib programs......................1 _ R Reflect command....................33 Reflection commands in Select......33 RENUM option.......................7,8,44 restrictions on commands...........29 Return key, displays menus.........9 Return key, exits menu.............7,47 Return key, pressing after choice..43 Robelle account....................39 Robelle.Job.Robelle job............39 Routines.Qlib......................37 Run command........................31 Run, implied.......................31 running Select.....................4 _ S sample menu........................5 schema for MENU database...........41 SCREEN option......................9,19,46 screen size (menu items)...........46 Segmenter command..................32 Select database....................41 Select.Doc.Robelle.................40 Select.Pub.Robelle.................40 selectlang jcw.....................14 sequence numbers, X2...............45 session name as Select user........5 Showcatalog command................34 showing menus......................43 specifying menu database...........6 SPOOK program......................31 SS (show sons) menu command........9 suspending a program...............37 _____ 56 Index _ T testing............................28 TITLE option.......................7,19,46 titles for menus...................46 too many menu choices..............9 TurboIMAGE.........................12 _ U UDC option.........................29,34,47 UDC, logon.........................22 UDC, MAINT.........................22 UDCs...............................34 UDCs for Select....................22 user defined commands..............30,34,47 user manual........................2 USER name, default.................10 User.Account as Select User........5 USERACCT entry point...............11 users, linking to menus............27 using menus........................7 _ W wait for a carriage return.........32 wakefather routine.................37 ______ _______ _____ Reader Comment Sheet ______ ___ ____ ______ SELECT 4.0 User Manual Your opinion of this manual is a valuable resource for helping us improve the quality of our documentation. We invite you to rate the manual on this form. Your Name: Date: Company: Position: Address: Phone: ______ ______ ___ ______ ___ _____ Please circle one number for each: ____ _______ ____ Good Average Poor ü General organization 1 2 3 ü Technical accuracy 1 2 3 ü Writing clarity 1 2 3 ü Convenience of size and format 1 2 3 ü Ease of locating information 1 2 3 ü Thoroughness of material 1 2 3 ü Quality of examples 1 2 3 ________ ___ ____________ _______ ___ ________ __ __________ Comments and suggestions: (please use reverse, or additional ______ __ _______ sheets as needed) _______________________________________________________________ _______________________________________________________________ _______________________________________________________________ _______________________________________________________________ _______________________________________________________________ Thank you for your feedback. We appreciate your time and interest. Please send your comments to us at one of the following numbers or addresses: Robelle Solutions Technology Inc. Toll-free: 1.888.robelle (1.888.762.3553) 7360 137 Street, Suite 372 Phone: 604.501.2001 Surrey, B.C. Canada V3W 1A3 Fax: 604.501.2003 E-mail: support@robelle.com Web: www.robelle.com iii ______ ____ ______ SELECT User Manual ________ Contents _______ _ _______ __ ______ Chapter 1 Welcome to Select Authorization to use Select...........1 Documentation.........................2 Compatibility-mode and native-mode....2 New features of Select................2 New features of Select................2 _______ _ _________ ______ Chapter 2 Accessing Select Introduction..........................4 Accessing a sample menu...............5 Select user name options..............5 Specifying the menu database..........6 Using Select menus....................7 Special entry points of Select........10 Changing the user language............14 Exit with verify......................14 _______ _ ________ ______ Chapter 3 Applying Select Build menu database...................15 Add main menu choice..................16 Add yourself as a menu user...........16 Add menu choices......................17 Define menu list......................18 Test menu so far......................19 Change configuration defaults.........19 Add commands for menu choices.........20 Add help text for menu choices........20 When you memorize the menu............21 Add sub-menu for printing manuals.....21 Production use of your menu...........22 ________ iv Contents _______ _ ___________ _____ Chapter 4 Maintaining Menus How do I maintain a menu database?....23 Common tasks combining functions......23 How do I get out of a menu?...........24 How do I get help?....................25 What is a menu choice?................25 What is a menu list?..................26 How are menu choices executed?........26 How do I link a user to a menu?.......27 How do I link choices to help text?...27 How do I verify that my menu works?...28 Executing MPE commands................28 _______ _ ________ ___ ____ _______ Chapter 5 Commands for Menu Choices General notes.........................29 :Prep command.........................30 :Run command..........................31 Implied Run...........................31 :Segmenter command....................32 :Display command......................32 :Pause command........................32 :Reflect command......................33 :Qhelp command........................33 :Beginfile and Endfile commands.......33 User Defined Commands.................34 Command files.........................35 Holding a program.....................36 _______ _ __________ ______ Chapter 6 Installing Select Step 1: Upgrade the Robelle account..39 Step 2: Restore the files............39 Step 3: Install the program..........40 Documentation.........................40 ________ _ _ ________ _ ____ ________ Appendix A - Building a Menu Database............41 ________ _ _ ___________ ______ Appendix B - Configuring Select..................42 ________ Glossary.........................................49 _____ Index............................................51