CONTENTS Title Page Copyright Page Preface Part I The RALLY Definition System 1 Introduction to RALLY Application Development 1.1 Importance of Planning RALLY Applications 1.2 Selecting a Development Method 1.3 Sample RALLY Applications 1.3.1 RALLY$SALES_INFO: The Sales Information System 1.3.2 RALLY$COMMERCE: Salespeople, Products, Customers, Orders 1.4 RALLY as a Productivity Tool 1.4.1 Simple Applications 1.4.2 Prototyping 1.4.3 3GL and ACMS Integration 1.5 Development Method 1.5.1 Concept Phase 1.5.2 Analysis Phase 1.5.3 Design Phase 1.5.3.1 Creating Logical Data Flow Diagrams 1.5.3.2 Designing the Data Source 1.5.3.3 Addressing Form/Report Design Considerations 1.5.3.3.1 Form/Report Layouts 1.5.3.3.2 Data Validation 1.5.3.3.3 Frequency of Access 1.5.3.3.4 Access Rights 1.5.3.4 Creating Control Flow Diagrams 1.5.3.5 Addressing Data Source Definition Design Considerations 1.5.3.6 Writing Formal Specifications 1.5.4 Implementation Phase 1.5.4.1 Writing the Detailed Design Specification 1.5.4.2 Preparing for Development 1.5.4.3 Managing a Multi-Developer Application 1.5.4.3.1 Using RALLY Object Naming Conventions 1.5.4.3.2 Merging Applications 1.5.4.3.3 Using DEC/MMS to Manage Application Files 1.5.4.3.4 Using DEC/CMS to Store Application Files 1.5.4.4 Developing the Application 1.5.4.4.1 DSD Considerations 1.5.4.4.2 Form/Report Considerations 1.5.4.4.3 Menu Considerations 1.5.4.4.4 Further Enhancements 1.5.4.4.5 Debugging the Application 1.5.4.5 Testing the Application Using DEC Test Manager 1.5.4.6 Verifying Adherence to the Design Specification 1.5.4.7 Writing End-User Documentation 1.5.5 Installation Phase 1.5.6 Operation Phase 1.6 Developing Portable Applications 1.6.1 Restrictions for Portable Applications 1.6.2 Design Considerations for Microsoft Windows Environments 1.6.2.1 ``Look and Feel'' 1.6.2.2 Application Logic 1.6.2.3 Commands Not Implemented in RALLY for Windows 2 Concepts 2.1 Data Sources 2.1.1 Relational Database Tables 2.1.2 RMS Files 2.1.3 DATATRIEVE Domains 2.1.4 FIX Files 2.1.5 Other Data Sources Using ODI 2.2 RALLY Objects 2.2.1 Introducing the SALESPERSON_FORM Form/Report 2.2.2 Data Source Definitions 2.2.3 Form/Reports 2.2.3.1 Groups 2.2.3.2 Form/Report Fields and Text Areas 2.2.3.3 Form/Report Packets 2.2.4 Menus 2.2.5 Tasks 2.2.6 ADL Procedures 2.2.7 Naming Conventions 2.2.8 External Objects 2.2.8.1 Creating a Reference to an External Object 2.2.8.2 Editing an External Object Reference 2.2.8.3 Other Operations 2.2.8.4 Usage and Implementation 2.2.9 How to Create, Edit, Delete, Rename, Copy Objects 2.2.9.1 Edit Application Menu (Object/Operation Menu) 2.2.9.2 Direct Object Manipulation 2.2.9.3 Placeholders 2.2.9.4 Effects of Renaming an Object 2.2.9.5 Dynamic Editing (GOLD-DO) 2.2.9.6 Dynamic Tracing (GOLD-D) 2.3 Actions and Tasks 2.3.1 Action Stacks 2.3.2 Tasks 2.3.3 Using Action Sites 2.3.3.1 Action Sites Listed by Application Object 3 Defining a Data Source and Its Components 3.1 Defining an Oracle Rdb Database 3.1.1 Creating a Database 3.1.1.1 Defining Oracle Rdb Domains 3.1.1.1.1 Listing Required Domains 3.1.1.1.2 Listing Domain Characteristics 3.1.1.2 Creating Domain Definitions 3.1.1.3 Defining Oracle Rdb Tables 3.1.1.4 Defining Oracle Rdb Indexes 3.1.2 Editing a Database 3.1.3 Deleting a Database 3.2 Creating Customized Messages for Oracle Rdb Error Conditions 3.2.1 Column Valid-If Constraint Errors 3.3 Accessing RMS Data Sources 3.4 Accessing DATATRIEVE Data Sources 3.5 Defining FIX Data Sources 4 Creating and Editing Data Source Definitions 4.1 What Is a Data Source Definition? 4.1.1 Relationship Between the Data Source and the Data Source Definition 4.1.2 Where Is a DSD Used? 4.2 Elements Common to All Data Source Definitions 4.2.1 Fields 4.2.1.1 Ordering and Reordering Fields 4.2.1.2 Creating a DSD Field 4.2.1.3 Deleting a DSD Field 4.2.1.4 Editing a Field 4.2.1.5 Changing a DSD Field to Reflect Data Source Changes 4.2.1.6 Specifying Formats for a Data Source Definition Field 4.2.1.7 Specifying Initial and Null Values for a Field 4.2.1.8 Specifying Validation for a Field 4.2.1.9 Specifying Input Options 4.2.1.10 Responding to Changes in the Data Source 4.2.2 Editing Record Operation Options 4.3 Creating a Data Source Definition 4.4 Deleting a Data Source Definition 4.5 Rdb Data Source Definitions 4.5.1 Editing an Oracle Rdb Data Source Definition 4.5.2 Record Selection Expressions 4.5.2.1 OR Capability of Oracle Rdb RSEs 4.5.2.2 Run-Time Parameters for Record Selection Expression (RSE) 4.5.3 Using SQL/Services 4.5.3.1 Attachments to the Database 4.5.3.2 Location of the Databases Used by the RALLY Application 4.5.3.3 Using Database Class Servers 4.5.3.4 Using TCP/IP Instead of DECnet 4.5.3.5 Database Access and Server Security 4.5.4 Record Locking Options 4.5.5 Lock Timing Options 4.5.6 Creating a DSD Using Several Tables 4.5.7 Multischema Database Support 4.5.8 Accessing Nondefault Version in Multiversion Rdb Environment (RALLY_SQL_CLASS) 4.5.9 Accessing Data from DEC DB Integrator Gateway Products 4.5.9.1 Defining a DSD Based on an RMS File 4.5.9.2 Defining a DSD Based on a DB2 Database 4.6 Oracle7 Data Source Definitions 4.7 RMS Data Source Definitions 4.7.1 Creating an RMS Database in CDD/Repository 4.7.2 Creating an RMS DSD 4.7.3 RMS DSD Fields 4.8 DATATRIEVE Data Source Definitions 4.8.1 General Guidelines for Creating a DATATRIEVE DSD 4.8.2 Creating a DATATRIEVE DSD Using an RMS File 4.8.3 Creating a DATATRIEVE DSD Based on an Oracle CODASYL DBMS Database 4.8.4 DSDs Using DATATRIEVE OCCURS Clauses 4.9 FIX Data Source Definitions 4.9.1 Creating a FIX DSD 4.9.2 Defining the FIX Data Source File 4.9.3 Creating FIX DSD Fields 4.10 ODI Data Source Definitions 5 Working with Form/Reports 5.1 Using the Screen Editor 5.1.1 Text Areas 5.1.1.1 Ensuring Display of Fields Within Text Area Boundaries 5.1.2 Commands for Screen Editing 5.1.3 Screen Editor Options 5.1.3.1 Location Coordinates and Options: Page Layout Control for Groups, Text Areas, and Fields 5.1.3.2 Change How the Screen Editor Displays Groups 5.1.3.3 Edit a Text Area 5.1.3.4 Edit an LOV or Pop-Up Subform Group 5.2 Types of Groups 5.2.1 Main Group 5.2.2 Data Groups 5.2.3 List of Values Group 5.2.4 Format Group 5.2.5 Position of Groups 5.2.6 Visualizing Form/Report Groups 5.3 Form/Report Types 5.3.1 Form/Reports Based on DSD Joins or Form/Report Joins 5.3.1.1 Creating Form/Reports: Builder Tools Versus Edit Application Menu 5.3.1.2 Simple Multi-Group Reports 5.3.1.3 Complex Multi-Group Reports 5.3.1.3.1 Parent Group 5.3.1.3.2 Child Group 5.3.1.3.3 Overall Structure 5.3.1.4 Multi-Group Reports Using DATATRIEVE 5.3.1.5 Defining Sibling Groups 5.3.1.5.1 Creating the Data Source Definitions 5.3.1.5.2 Creating the Parent Group 5.3.1.5.3 Creating the Sibling Groups 5.3.1.5.4 Aligning the Sibling Groups Side by Side 5.3.1.5.5 Adding Aggregate Fields Based on Sibling Groups 5.3.1.5.6 Making Sibling Groups Invisible 5.3.1.5.7 Creating Sequential Sibling Reports 5.3.2 Form/Report Based on a Control Break 5.3.2.1 Creating the DSD for the Control Break Report 5.3.2.2 Creating the Control Break Report 5.3.3 Updatable Alternative to Control Breaks 5.4 Form/Report Features 5.4.1 Form/Report Packet Options 5.4.1.1 Form/Report to Call and Initial Mode 5.4.1.2 Auto Insertion Options 5.4.1.3 Commit Options 5.4.1.4 Attributes 5.4.2 Action Sites 5.4.3 Local Functions 5.4.4 Visitation Order 5.4.4.1 ' Next Record ' Preserves Current Field 5.4.4.2 Conditional Next Field Definition 5.4.4.3 Pop-Up Subforms 5.4.5 Group-Related Features 5.4.5.1 Format Groups 5.4.5.2 Formatting Options 5.4.5.3 Fields, Text Areas, and Child Groups 5.4.5.4 DSD Substitution 5.4.5.5 Record Operation Options 5.4.5.6 Links to Parent and Child Groups 5.4.5.7 Designing a Title Page 5.4.6 Field-Related Features 5.4.6.1 Types of Fields 5.4.6.2 Data Fields 5.4.6.3 Aggregate Fields 5.4.6.4 Computed Fields 5.4.6.5 Variable Fields 5.4.6.6 Copy Fields 5.4.6.7 Floating Totals 5.4.6.8 Input and Output Formats 5.4.6.9 Field Display and Visitation Attributes 5.4.7 Validation and Limitations 5.4.7.1 Query By Example (QBE) Options 5.4.7.2 Highlighting Fields, Text Areas, or Groups Conditionally 5.4.8 Defining a List of Values 5.4.8.1 Creating a Table and Data for the LOV 5.4.8.2 Creating a Data Source Definition for the LOV 5.4.8.3 Creating a Form/Report for the LOV 5.4.8.4 Editing the Field That Brings Up the LOV 5.4.8.5 Testing the LOV 5.4.8.6 Using an LOV to Do Lookups 5.4.8.7 Using Conditional Lists of Values 5.5 Form/Report Formatting (FML States) 5.5.1 Conceptual Model of Form/Report Layout 5.5.2 Implementation of Form/Report Layout at Run Time 6 Using Date and Number Formats 6.1 Date Format Objects 6.1.1 Changing Default Formats for Date Fields 6.1.2 Using a Date Format Object for a Form/Report Field 6.1.3 Editing Global Date Strings 6.2 Number Format Objects 6.2.1 Creating Number Format Objects 6.2.1.1 Specifying the Maximum Number of Displayable Characters 6.2.1.2 Specifying Scale Factors 6.2.1.3 Specifying Number Character Sets 6.2.1.4 Associating Number Format Objects with Fields 6.2.1.5 Specifying Conditional Actions 6.2.2 Specifying Number Pictures 7 Creating and Editing Menus 7.1 Defining a Menu Using the Builder Tools 7.2 Defining a Menu Outside the Builder Tools 7.3 Using the Screen Editor with a Menu 7.4 Specifying Global Information for Menus 8 Messages 8.1 Defining Help and Error Messages Interactively 8.2 Creating Legends 8.3 Using ' Local_Function ' from Message Sites 8.4 Copying Messages 8.5 Deleting Messages 8.6 Reading and Writing a Text File 8.7 Help and Error Message File Chains 8.7.1 Adding a Message Application File to a Help Message Chain 8.7.2 Adding a Message Application File to an Error Message Chain 8.8 Modifying Global Information for Help and Error Messages 8.8.1 Modifying Global Characteristics of Help Messages 8.8.1.1 Modifying Help Message Options 8.8.2 Modifying Global Characteristics of Error Messages 8.9 Load Messages and Unload Messages Utilities 8.10 Using Messages with External Program Links 8.11 Internationalization 8.11.1 Customizing RALLY Help and Error Message Files 9 Using Tasks, Application Commands, and Macros 9.1 Overview of RALLY Tasks 9.1.1 Creating a Task 9.1.2 Using Task Windows Effectively 9.1.3 Using Tasks in the Definition System 9.1.4 Starting a New Task Versus Calling an Action in the Same Task 9.2 Using Application Commands 9.3 Using Macros 9.3.1 Defining Macros 9.3.2 Using Numbered Macros 9.3.3 Saving Numbered Macros 9.3.4 Reading a Numbered Macro File 9.3.5 Creating Named Macros from Numbered Macros 9.3.6 Using Named Macros 9.3.7 Creating Numbered Macros from Named Macros 10 Maintaining Applications 10.1 Application Security 10.1.1 Reasons for Using Security 10.1.2 Creating and Deleting Password Objects 10.1.3 Protecting Applications from Modification 10.1.4 Protecting Specific Objects in the Application 10.1.5 Controlling the Number of Attempts at a Password 10.1.6 Other RALLY Security-Related Options 10.1.7 Protecting Application Files with Operating System Protection 10.1.8 Using Database Management System Protection 10.2 Using Utilities 10.2.1 Report Utility 10.2.2 Verify Utility 10.2.3 Compact Utility 10.2.3.1 Removing the Symbol Table from the Application File 10.2.4 Merge Utility 10.2.5 Update Utility 10.2.6 Integrate Utility 10.2.7 Load Messages and Unload Messages 10.2.7.1 Unloading Messages from Application Files into Text Files 10.2.7.2 Help and Error Window Start and End Flags 10.2.7.3 Help and Error Option Flags 10.2.7.4 Error and Help Message File Flags 10.2.7.5 Help and Error Message Flags 10.2.7.6 Legend Flags 10.2.7.7 Editing the Message Text File 10.2.7.7.1 Modifying Message Text 10.2.7.7.2 Adding Help Messages 10.2.7.7.3 Adding Error Messages 10.2.7.7.4 Adding Legends 10.2.7.7.5 Deleting Messages 10.2.7.8 Loading Message Files into Existing Application Files 10.2.7.9 Creating Message Application Files 10.2.8 Load Data and Unload Data 10.2.8.1 Transferring Data 10.2.8.2 Transferring Data Using ADL 10.2.9 Define Keys Utility 10.2.9.1 Creating Key Definition Files 10.2.9.2 Changing a Key Mapping 10.2.9.3 Disabling Commands in RALLY for Windows 10.2.9.4 Processing Key Defin~~~~} ~O~