Enterprise Application Developer. User Guide. Unisys. Copyright 2003 Unisys Corporation. All rights reserved. Release 3.3. March
|
|
|
- Annabel Bond
- 10 years ago
- Views:
Transcription
1 Enterprise Application Developer User Guide Unisys Copyright 2003 Unisys Corporation. All rights reserved. Release 3.3 March
2 NO WARRANTIES OF ANY NATURE ARE EXTENDED BY THIS DOCUMENT. Any product or related information described herein is only furnished pursuant and subject to the terms and conditions of a duly executed agreement to purchase or lease equipment or to license software. The only warranties made by Unisys, if any, with respect to the products described in this document are set forth in such agreement. Unisys cannot accept any financial or other responsibility that may be the result of your use of the information in this document or software material, including direct, special, or consequential damages. You should be very careful to ensure that the use of this information and/or software material complies with the laws, rules, and regulations of the jurisdictions with respect to which it is used. The information contained herein is subject to change without notice. Revisions may be issued to advise of such changes and/or additions. Notice to Government End Users: The software and accompanying documentation are delivered and licensed as commercial computer software and commercial computer software documentation as those terms are used in 48 C.F.R and 48 C.F.R through , as applicable. The Government shall receive only those rights provided in the standard commercial software license, or where applicable, the restricted and limited rights provisions of the contract FAR or DFARS (or equivalent agency) clause. Correspondence regarding this publication should be forwarded to Unisys Corporation by addressing remarks to Product Information, Australian Centre for Unisys Software, Locked Bag 3111, Rhodes, NSW 2138, Australia. Comments about documentation can also be sent through to [email protected]. All terms which may be mentioned in this document that are known to be trademarks or service marks have been appropriately capitalized. Unisys Corporation cannot attest to the accuracy of this information. Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark. Unisys, LINC, INFOConnect, ClearPath, and PowerClient are registered trademarks, and Griffin is a trademark of Unisys Corporation. EPSON is a registered trademark of Seiko Epson Corporation. IBM, AIX and RS/6000 are registered trademarks of International Business Machines Corporation. JADE is a trademark of Aoraki Corporation Limited. Micro Focus and Net Express are registered trademarks of Merant International Limited. Microsoft, Windows, Visual Basic, and Internet Explorer are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. ORACLE and SQL*Plus are registered trademarks of Oracle Corporation. SPARC is a registered trademark of SPARC International, Inc. Products bearing SPARC trademarks are based on an architecture developed by Sun Microsystems, Inc. SQL Server is a trademark of Sybase, Inc. or its subsidiaries Sun, Java and Solaris are registered trademarks of Sun Microsystems, Inc. in the United States and other countries. UNIX is a registered trademark in the U.S. and other countries, licensed exclusively through X/Open Company, Ltd. UnixWare is a registered trademark of The Santa Cruz Operation, Inc.
3 Contents Section 1. Introduction About This Guide Purpose Audience Notation Section 2. About Developer The User's Task What Does Developer Do? Developer Modules Summary Section 3. Getting Started Logging On and Off Developer To log on to Developer To log off from Developer Developer Console Loading the Sample Model Viewing Your System The Model Directory Nodes Expanding or Collapsing a Node Customizing the Model Directory View Setting the Top Line for Display Navigating with Nodes Inquiring on Parents Using the Find Facility Using the Search Facility Using the Copy Name Facility Matrixes Accessing a Matrix Reading a Matrix Finding an Element in a Matrix Changing Matrix Element Colors Navigating Developer Navigation Dialog Boxes Using Navigation Dialog Boxes Toolbar Buttons Menus The GO Facility Getting Help iii
4 Contents Summary Section 4. Defining the Business Model Naming Elements: Reserved Words Reserved Word Checking during Syntax Check Reserved Words List Window Reserved Words in Component Data Items Updating the Model Directory Adding an Element Deleting an Element Moving or Copying an Element Modifying an Element Locking and Unlocking an Element Updating Elements Using Matrixes Deleting an Element Relationship in a Matrix Adding an Element Relationship in a Matrix Defining a Business Segment Adding a Business Segment SOK/EOK Support Graphical Form Characteristics Defining a Functional Area Defining an Activity Defining an Ispec Adding an Ispec Limits Ispec and Report Ordering in MCP and Windows Defining a Report Defining a Fast Load Report Defining a Report Frame Limits Using DEPCON Reports Preparing Developer for DEPCON Reports Defining a DEPCON Report Maintaining DEPCON Reports Commands in the LINC Data Dependent Attribute Routing DEPCON and Non-DEPCON Reports in DEPCON Dynamic Display in DEPCON Reports Printing DEPCON Reports Security Issues with Host Platforms that use DEPCON Printing Defining a Profile Adding a Profile EVENT Spanning Profiles Defining Profile Relationships Defining Ordinates for a Profile Adding a Profile Data Item Defining Logic for a Profile Limits Defining a Keyword Defining a Wildcard Defining an SQLScript iv
5 Contents Adding an SQLScript Using the SQLScript Editor Listing SQLScripts Writing Business Rules Using the Business Rules Editor Marking Technical Documentation Viewing Change Identification for Business Rules Printing Business Rules Running a Word Processor from Business Rules Writing Teach Screens Adding a Teach Screen Viewing Change Identification for a Teach Screen Printing a Teach Screen Documenting the Business Model Summary Section 5. Defining Data Items About Data Items Types of Data Items Adding a Data Item to an Ispec or Global Logic Defining Data Attributes Defining Display Attributes Character Mode Options Graphics Mode Options Defining Presentation Attributes Field Image Check Box, Push Button, and Radio Button Specifying Labels for a Check Box, a Push Button, or a Radio Button Check Box Operation List Box and Combo Box Specifying List Box, Combo Box Contents Using LBX or LBX* Options for List Box, Combo Box Contents Specifying a File for List Box, Combo Box Contents Using Tab Numbers Adding a Data Item to a Report Frame Modifying a Data Item Deleting a Data Item Setup Data Items Types of Setup Data Items Values of Setup Data Items Adding a Setup Data Item Editing a Setup Data Item Viewing the Setup Data Item List Editing the Setup Data Item List Limits Global Setup Data Items Global Setup Data Blocks Types of Global Setup Data Items v
6 Contents Values of Global Setup Data Items Adding a Global Setup Data Block Adding a Global Setup Data Item Editing a Global Setup Data Block Editing a Global Setup Data Item Viewing the Global Setup Data Item List Editing the Global Setup Data Block List Editing the Global Setup Data Item List Limits Component Arrays Rules for Defining Component Array Data Items Defining Component Array Data Items Using Component Array Data Items Logic Commands Incompatible with Component Array Data Items Testing a System Using Component Array Data Items The Data Dictionaries Opening a Local Dictionary Opening the Global Dictionary Viewing a Dictionary Adding a Data Item to the Local Dictionary Adding a Data Item to the Global Dictionary Modifying a Dictionary Data Item Deleting a Dictionary Data Item Adding Business Rules to a Dictionary Data Item Adding Value Logic to a Dictionary Data Item Printing a Dictionary Report Summary Section 6. Painting Screens Introduction to the Painter Before You Start Accessing the Painter Accessing Graphics Mode Directly The Painter Toolbar The Control Palette Character Mode and Graphics Mode When to Use Character Mode When to Use Graphics Mode Choosing a Mode Effects of Making Changes Locking a Layout Saving Changes Overlapping Fields Using the Painter Adding a Data Item in Painter Adding a Display Item Adding a Graphical Control Object Selecting an Item Selecting Multiple Items Moving Selected Items vi
7 Contents Modifying a Data Item Modifying a Display Item Modifying a Graphical Control Object Deleting Items Inserting Global Logics Inserting Keywords Using the Draft Build Option About Draft Data Items Defining a Draft Data Item Converting a Draft Data Item to a Display Item Converting a Draft Data Item to a Data Item Printing Draft Data Items Design Audit of Draft Data Items Summary of Mouse and Key Actions in Painter Painting Host Subsystem Screens Using the Subsystem Model Files Graphical Interface Workbench Summary Section 7. Defining Global Logic About Global Logic Adding a Global Logic Defining an Insertable Global Logic Screen Defining Logic for Global Logic Listing Global Logic Printing Global Logic Using Global Logic in Developer Setup Data Item Length In-Line Insertion of Insertable Global Logics Relations Validating Insertable Global Logics in Isolation Effects of Changing an Insertable Global Logic Behavior of Ispec-Only Objects in Reports Performable Global Logic in Ispecs and Reports Limits Number of Global Logics Logic Lines in a Global Logic Global Logics in an Ispec Nested Global Logics Summary Section 8. Using the Logic Editor Accessing the Logic Editor Logic Editor Display Logic Editor Window Errors Window Status Line Using the Logic Editor Entering Logic vii
8 Contents Using the Insert AUTO Command Using the Insert INQ Command Automatic Insertion of SOK/EOK Characters Entering Setup Data Items Changing Logic Validating Logic Validate and Save Commands Dealing with Errors Viewing Definitions Viewing Change Identification Using the Logic Status Window Changing Your Model Interaction of Design and Logic Effects of Making Changes in Logic Effects of Making Changes to Your Model Summary Section 9. Refining Your System Design Design Audit What the Design Audit Does Performing a Design Audit Function Point Analysis Performing a Function Point Analysis Adjusting the Function Point Counts How Developer Counts Function Points Layout of the FPA Extract File Summary Section 10. Testing Your System Introduction to Developer Test Getting Started in Developer Test Accessing Developer Test Message Display New Window Display Setting Logging Level Setting Developer Test Language Defining Your Printer Setup Opening a Session Closing a Session Signing off from Developer Test SOK/EOK Support in Developer Test Managing Your Test Database Creating a New Test Database Populating a Test Database Reorganizing a Test Database Database Backup and Recovery Backing Up a Database Displaying Incomplete Transactions Restoring a Database viii
9 Contents Performing a Roll-Forward Recovery of the Transaction Log Managing the Transaction Logs Browsing a Transaction Log Archiving a Transaction Log Restoring an Archived Transaction Log Testing a System Viewing Messages Selecting a Screen (Ispec) Sending a Transaction Using a Screen Accessing the Debugger Running a Report Replying to Messages for Input Controlling a Running Report Responding to ACCEPT; Commands Dealing with Missing Extract Files Viewing a Teach Screen Running in Logical Reorganization Mode Calling External Routines Simulating Function Keys (OS 2200 Host Only) Running System Global Logic Using a Test Database on a Host Machine Preparing Your System in Developer Preparing to Connect to a Test Database on a Host Machine Accessing Your Test Database Accessing a Transferred System Configuring Developer Test for Remote Subroutine Calls Errors and Logging Restrictions Running Systems and Reports from a Shortcut Sending and Receiving NOFORM Files Using Component Enabler with Developer Test Accessing Developer Test Testing a Deployed Test Database Configuring Developer Test to Run HUB Transactions Terminology Configuring Environment for Developer Test Editing the Configuration File Examples of HUB Transcations with Developer Test Summary Section 11. Debugging Your System Introduction to the Debugger Accessing the Debugger Displaying Logic: the Source Window Selecting Logic for Display How Logic Is Displayed Controlling the Display of Logic Displaying Data Item Values Displaying Data Item Values: the Watch Window ix
10 Contents Adding a Data Item Removing a Watch Item Changing the Value of a Watch Item Setting a Breakpoint on a Data Item How Watch Items Are Displayed Expanding or Shrinking an Array or Group Item Displaying Current Logic: the Traceback Window Using Breakpoints Adding a Line Breakpoint Removing a Line Breakpoint Adding a Conditional Breakpoint Reordering DO.WHEN; Clauses for a Conditional Breakpoint Modifying Conditional Breakpoints Adding a Reference or Change Breakpoint Removing a Conditional Reference, or Change Breakpoint Removing All Breakpoints Enabling and Disabling Breakpoints Using the LOG; Command The LOG; HALT Command Syntax of the LOG; Command Using Debug Mode Managing Debug Session Settings Saving Debug Settings Loading Debug Settings Clearing Debug Settings Summary Section 12. Viewing Differences and Merging Introduction to the LCIF Viewer Viewing Differences Viewing the Differences Between Objects and Revisions Viewing Differences Between Files Using the View Differences Dialog Box Creating a Differences Report Viewing Specifications Viewing Objects or Revisions Viewing A Specific File Using the LCIF View Dialog Box Extracting To Show Differences or View Specifications Merging Merging Revisions, Objects, or Files Merging Two Files Using the Merge Dialog Box Changing Display Attributes Using the Display Attributes Dialog Box Summary x
11 Contents Section 13. Development Tasks and Topics External Automatic Entries Internal Automatic Entries External Automatic Entries Use of Memo Components Versus Events Introduction to Memo Components Advantages of the Event-Based Approach Summary Rationalizing Event Data Item Names Example Rationalization Integrity MCP Environment Integrity OS 2200 Environment Integrity UNIX Integrity Windows Integrity Performance Considerations for Systems Appendix A. Embedded SQL Scripts...A 1 Description...A 1 Details... A 2 Defining Embedded SQL... A 2 Interfaces... A 2 Using/Invoking Embedded SQL... A 3 SQL Script Interaction with Logic... A 7 Setup Data Items... A 7 SQL Error Handling... A 7 Developer Test...A 13 Model Extract/Load...A 13 UNIX Enterprise Application Environment... A 14 Generation...A 16 Constraints...A 16 Appendix B. Understanding the Runtime Cycle... B 1 Runtime Cycle for Non-Copy.From Ispecs...B 1 Requesting an Ispec Screen Layout...B 2 Transmitting an Ispec Screen Layout...B 2 Transmitting an Inquiry... B 3 GLB.ERROR and the Runtime Cycle... B 3 Runtime Cycle for Copy.From Ispecs... B 4 Requesting a Copy.From Ispec Screen Layout... B 4 Transmitting a Copy.From Ispec Screen Layout... B 5 Using Copy.From Ispecs... B 6 Using Copy.From for Inquiry...B 7 Using Copy.From for Updating... B 8 Hints and Tips... B 9 GLB.COPY and GLB.MAXCOPY... B 9 Using LINK; IF.PRESENT and NO.LOOKUP... B xi
12 Contents Setup Data Initialization...B 10 Screen Area Initialization...B 10 Using the SERIAL; Command Option... B 11 Using the System Data Item GLB.ERROR... B 11 Using the END.EXIT; Command...B 12 Validation Across Copies...B 13 Appendix C. Designing and Testing Forms with Presentation Client...C 1 Version Compatibility... C 1 Before You Begin...C 2 Transferring Forms from Developer to Workbench...C 2 Capabilities and Restrictions...C 2 Procedure...C 3 Transferring Forms from Workbench to Developer...C 4 Restrictions...C 4 Transferring Forms Using Workbench to Developer...C 5 Testing Graphical Interface Workbench Forms...C 5 Setting Up Communications...C 7 Configuring INFOConnect Paths between Developer and Graphical Interface Workbench...C 7 Setting Up Scripts for Graphical Interface Workbench to Developer Testing...C 8 Running a Test Session from Enterprise Application Workbench to Developer Test...C 9 Accessing a Deployed Test Database Through Developer Test...C 10 Appendix D. Related Product Information... D 1 Glossary... Glossary 1 Index...Index 1 xii
13 Section 1 Introduction About This Guide Purpose The purpose of this document is to provide information on using Enterprise Application Developer software to design, develop, and test Systems on workstations. This document provides reference material for functions and commands of Developer. Installation information is contained in your Unisys Enterprise Application Developer Installation and Configuration Guide. Administration information is contained in your Unisys Enterprise Application Developer Administration Guide. Audience This document is written for application users who use Developer to design and develop Enterprise Application Systems. The audience is assumed to have some training and/or experience in designing and developing Systems. Notation The following conventions are used in this document: Valid abbreviations for commands are included with each command. The syntax of each command is included with the description. Although some syntax diagrams may occupy more than one line, commands may usually only be entered on one line. Instead of the System Data item GLB.STATUS, use the abbreviated GS; command to direct the error status to a specified data item. References to the System Data item GLB.STATUS may be taken to mean the specified data item, where appropriate. Definitions of the Setup Data items used in the code examples are included as comments in the logic. For notes on the definition of Setup Data items, see Setup Data Items on page
14 Introduction
15 Section 2 About Developer This section describes the main tasks involved in developing a Business System, and the tools that Developer provides to accomplish these tasks. In this section you will find: The User's Task What Does Developer Do? Developer Modules The User's Task A Business System is composed of Events and Components. Events model the business activities of a Business System, and Components are the structure of the business that supports these activities. For example, a sales order would be a typical business Event, and the Components which support a sales order Event would include a salesperson, a customer, and a product. Events and Components can be grouped together into Activities, and Activities grouped into Functional Areas. At the highest level these Functional Areas, taken collectively, make up the application system that supports a business. In Enterprise Application terminology, Events and Components are collectively referred to as Ispecs (Interface Specifications). An Ispec may be made up of: Data Items associated with the Event or Component A screen format that the end user sees, for data input or display Business Rules that specify the conditions under which the Event occurs, and what happens when it does occur Logic that performs the processing required The user's task is really a series of iterative tasks that are done as the design of a system evolves. These tasks include: Defining the hierarchy of Functional Areas, Activities, Events and Components Writing Business Rules Defining the data which is input, output, and stored by the system Defining screens for data input or display
16 About Developer Defining reports to retrieve and present system information to the user Writing the logic or processing 'behind' the screens and reports Testing the screens, reports, and logic Evaluating and refining the system design as needed What Does Developer Do? Developer provides an integrated set of workstation tools that enables the user, working alone or as part of a team, to design, develop, and unit-test a Business System. When testing is complete the user can generate the System to a target host, where it will be compiled and deployed, ready to run. Alternatively the developed System can be extracted and transferred for generation and deployment. The tools that Developer provides are: For Design Graphical capabilities for the design of high-level hierarchical models of a Business System. A text editor to define Business Rules. A design audit capability to analyze your Business Model for possible design flaws. If you are reverse-engineering a host Specification, this feature enables you to recover and analyze the design of the System. A facility for estimating your System complexity and cost using Function Point analysis. For Development A screen painter for the definition of screen and report layouts. A logic editor to turn your Business Rules into logic to define the processing behind the screens and reports. A facility to define Data Items and to manage them using a Data Dictionary. A runtime emulator to demonstrate your evolving System, enabling you to incorporate changes during the development phase. A text editor for writing Teach screens. For Testing A runtime emulator to run your screens and reports. A Debugger to observe the execution of logic. In addition, Developer integrates smoothly with Graphical Interface Workbench to enable you to: Develop graphical forms in Developer and move them directly to Graphical Interface Workbench to test them
17 About Developer Copy Graphical Interface Workbench forms directly to Developer as the graphical format of corresponding Ispecs. Test the Graphical Interface User interface from the Enterprise Application Workbench without connecting to the host, for system integration testing. Developer's integration with Graphical Interface Workbench is explained in more detail in Designing and Testing Forms with Presentation Client on page C-1. Developer Modules Developer consists of several modules: A Developer module with a Developer Repository Developer Test, a testing module with its own runtime database and debugging facility Builder, which enables the user to generate a System directly to a target host for compilation and deployment The figure below shows the relationships between the parts of Developer. Developer Test (Debugger) Developer Systems Builder Host Builder Database Repository Development Environment Developer Environment See your Unisys Enterprise Application Developer Installation and Configuration Guide for a more detailed description of the Developer modules. Summary After completing this section, you can: Describe the development tasks of the user. Describe the tools that Developer provides to do these tasks. Name the modules of Developer
18 About Developer
19 Section 3 Getting Started This section is to help the relatively new Developer user understand the basics of using the application: how to log on and log off, how to move about in the application, and how to get help. The user should understand the material in this section thoroughly before going on to begin development tasks. In this section you will find: Logging On and Off Developer Loading the Sample Model Viewing Your System The Model Directory Matrixes Navigating Developer Getting Help Logging On and Off Developer To log on to Developer To log on to Developer, select Developer from the Programs option of the Windows Start menu. If Enterprise Application Security is enabled for your system, the LSM Security Check dialog box is displayed. Key in a valid User Id and Password. If Patch Security is enabled to restrict users to specific parts of the system, key in a valid Patch Id. See your system administrator if you have any questions about security on your Developer system. When Developer starts, the background window is displayed, the Repository is opened, and Developer is initialized. The Status Line at the bottom of the screen displays messages about what is happening. The Model Directory is usually displayed next. If not, click the Model Directory button. You may change the first window displayed by altering the LINC.INI file. See the Unisys Enterprise Application Developer Installation and Configuration Guide for details
20 Getting Started You can also log on using the Developer Console. This facility is particularly useful for routine processes. See Developer Console on page 3-2 for details. Note: If you run Developer from a shortcut and the path name you specify for the Repository or the LINC.INI file contains spaces, you must enclose the parameter in double quotes. For example: -r c:\enterprise Application Developer\Rep -i c:\enterprise Application Developer\linc.ini To log off from Developer To log off from Developer, either: Select the Exit option from the File menu in the Developer background window Or Press Alt-F4 The open windows are closed, the Repository is closed, and Developer terminates. Developer Console Developer Console provides a command line interface to Developer and Developer Version Control. This facility allows Developer to run in batch mode, providing the ability to automate timeconsuming activities such as loading model files and populating the Developer Repository from the Version Control Bank. For routine process, a Windows scheduler (for example, WinAT) can be used to start Developer Console automatically. See the Unisys Enterprise Application Developer Version Control Guide for details. Loading the Sample Model Developer is delivered with a sample Model that you can load and use as an example. To load the sample Model: 1. Select Load from the File menu. The Model Load dialog box is displayed. 2. Specify the Developer directory in which the sample.mdl file resides. 3. Click on the Open button. The Model Load Options window opens
21 Getting Started 4. Check the Load in Exclusive Mode check box to lock the Repository while loading the object. This helps speed up the load. It is not possible to load in Exclusive mode when in multiuser mode. The Load in Exclusive Mode check box is enabled only when in single user mode and Developer has exclusive access to the Repository. No Developer Test sessions should be opened on this Repository during an exclusive load. Caution If Developer is performing an exclusive load, starting Developer Test will cause the suspension of both applications. Before selecting Exclusive Mode, ensure you have a complete backup of the Repository. Loading takes much less time if you are running in Exclusive mode. Errors during load can corrupt the Repository, however, and if you load in Exclusive mode, these errors will require you to completely restore the Repository from the backup. Consider using non-exclusive load if you are loading only part of the Repository. The overhead in providing sharing and recovery capability for a non-exclusive load greatly slows loading performance. However, the Repository is fully recoverable if an error occurs during a non-exclusive load. 5. Leave the Validate After Load check box unchecked. 6. Key in a New Name for the sample Model, if you wish. 7. Leave the Load Change Information check box unchecked. 8. Click on the OK button. Note: You can also intiate a load using the Developer Console. See the Unisys Enterprise Application Developer Version Control Guide for details. Viewing Your System Developer provides a number of ways to view Elements in a System; to understand the relationships between Elements; and to add, change, or delete Elements. These are detailed in the table below. Context Model Description Displays Elements in a hierarchical relationship within each Business Segment. Each Business Segment defines the screens, logic, Reports, Profiles and data that make up an information system. The Model tree is the most common way to add, change, and delete Elements
22 Getting Started Context Systems List Matrixes Graphs Painter Editor Text Dialogs Displays a hierarchy of Elements contained in a System. Each System consists of a configuration of Elements and the options assigned to these Elements. These options define the environmental and generation options for a host based environment on which the System will be deployed. List windows provide a set of Elements that belong to another Element. For example, the Logic Status List shows all the logic objects held in the current Business Segment. Show the relationships between two sets of Elements in table format. For example, Data Items that are Profile Ordinates. You can use matrixes for rationalizing aspects of the Model. Show the designed or implemented relations between Elements. Enables you to paint screens in either character or graphical modes. The latter provides graphical Windows objects (such as buttons and list boxes). Interactive logic editor. Description Enables you to record business rules and text for Teach screens. Most data entry in Developer is done through dialog boxes. Use the TAB key to move from field to field. The Model Directory The Model Directory displays the structure of your Business Model, a database that contains the details of one or more Business Segments. The Model Directory provides a picture of the hierarchy of your Model as well as a powerful navigation tool for accessing the parts of the Model. The figure below shows an example of a Model Directory. Model Directory
23 Getting Started Note the hierarchical structure of a Model: A Model or Business Model contains Business Segments. A Business Segment is the source definition from which a System is generated. It contains Functional Areas. A Functional Area is a group of Activities. An Activity is made up of the Objects (Components, Events, Inquiries, Reports, Global Logic sequences, and Profiles) which perform a business function. All these entities that make up a Business Model are collectively referred to as Elements. Nodes Nodes represent the different parts of your Developer Model, from Model and Business Segments through to Objects and Data Items. Each node is identified by a single character, as illustrated in the figure of the Model Directory. The list of identifying characters is contained in the following table. Character Type of Node M B F A E P C R G D f W Model Business Segment Functional Area Activity Event Profile Component Report Global Logic Data Item Report Frame Wildcard Expanding or Collapsing a Node Nodes may be expanded to show all subitems, or may be collapsed to show a condensed version of your Model. The hierarchy can be expanded to the level of Data Items in Ispecs, Profiles, Report Frames, or Global Logics, as shown in figure Model Directory on page
24 Getting Started If a node has subitems, it displays a plus sign (+). To expand a node, click on the node. An expanded node is displayed with a minus sign (-). To collapse an expanded node, click on the node. If a node has no sign, it has no subitems. Note: Developer displays the following message when there is not enough memory to expand an entire tree in the Model Directory: Out of memory - remainder of list cannot be expanded (nnnn objects expanded) Problems with expansion can occur in large repositories that store a large number of objects if there is not sufficient RAM. The recommended minimum of 32MB of RAM may not be enough to allow complete expansion of the tree. The expansion function is entirely dependent on the amount of memory available. The more RAM there is available, the greater the number of objects that can be expanded. Customizing the Model Directory View A number of options are available from the View menu to customize the display of information in the Model Directory. These options are: Option All Types Some Types Orphan Activities Orphan Objects Sort by Type Sort by Name Show in Lists Description Select this option to show all types of Elements in the Model Directory. Select on this option to open a dialog box that allows you to specify which types of Elements will be shown in the Model Directory: Components, Events, Reports, Profiles, Global Logics, and/or Wildcards. Select this option to include Activities which are not defined to a Functional Area in the Model Directory display. Select this option to include Components, Events, Inquiries, Reports, Global Logics, and Profiles which are not defined to an Activity in the Model Directory display. Select this option to display Objects sorted by type. Select this option to display Objects sorted alphabetically by name. Select this option to define columns to be displayed in list windows. The options available depend on which window is currently active. Setting the Top Line for Display As the display of an entire Business Model can be quite large, you can choose a lowerlevel Element to appear at the top of your Model Directory display. To do this: 1. Click on the required Element to select it. 2. Select Set Root from the Tree menu
25 Getting Started Your Model Directory is redisplayed with the selected Element at the top, collapsed. To reset your display with the Business Model at the top, select Reset Root from the Tree menu. Navigating with Nodes To navigate using the Model Directory, double-click on an Element to access its navigation dialog box. Inquiring on Parents To see a list of Elements immediately above a specified Element in the hierarchy, that is, its 'parents': 1. Select an Element from the Model Directory or from a list. 2. Select the Parents option from the Edit menu. Using the Find Facility The Find facility enables you to more easily locate a specific Element in the Model Directory and list windows. Because the Element hierarchy in Developer can be many levels deep, it can be difficult to find a specific Element in the Model Directory. For example, a Business Segment may contain many Functional Areas, each of which has many Activities. The Find facility makes locating an Ispec or other Element within this structure considerably easier. A Find command is provided in the Edit menu of most list windows and in the Model Directory window. The list windows that do not support the Find facility are: Profile Ordinates List Profile Logic List Value Logic List The keystroke Find facility continues to be supported. This enables you to type a letter to automatically select the first item starting with that letter. Using the Find Command To find an Element in a list window or the Model Directory: 1. Select the Find command from the Edit menu, or press Alt+F3. The Find dialog box is displayed
26 Getting Started 2. Enter the name of the required Element in the Name of item to find field. Enter an asterisk (*) in any character position to match zero or more occurrences of any character. 3. If the dialog box includes the Search inside collapsed nodes check box, check this box if you do not want currently collapsed nodes expanded. By default, Elements currently hidden within collapsed nodes are expanded as necessary to display the selected Element. 4. If your system uses Long Names, then the Find dialog box will have an additional check box labeled Names. If you check the Names check box, the Find will look for the element with the entered Name rather than the Long Name. 5. Select the OK button. The search always begins below your currently selected Element. If the end of the list is reached and no matching items have been found, the search automatically wraps and continues from the start of the list. The Find facility takes account of the current View settings. For example, if System Data items are hidden when you initiate a search for the System Data item ACTMTH, the search will fail to find a match even if ACTMTH exists. Using the Repeat Find Command The Repeat Find command: Allows each occurrence of a specified Element in the Model Directory to be located in turn. Locates multiple matches for a given pattern in wildcard searches; that is, searches using the asterisk (*) character. For example, enter CUST* if you want to locate all Data Items beginning with CUST, such as CUSTOMER, CUSTOM, and CUSTODIAN. To repeat your most recent Find command for the Model Directory or a list window, press function key F3. Using the Search Facility You can use the Search option from the File menu or from the standard toolbar to locate an item in the Model. The Search starts at the selected Element and moves down through the hierarchy to the lowest level. For this reason the Search command is not available from low-level Elements such as Data Items. To use the Search command: 1. Select the Search command from the File menu. The Search dialog box is displayed
27 Getting Started 2. Enter the name of the item you want to find in the For text box. This field can include regular expression syntax. If you do not use regular expression syntax, you can still use an asterisk (*) in this field to refine your search. The asterisk is treated differently when searching in text, such as logic, and when searching objects, such as declarations. For text, the search string will be truncated. Only the characters before the asterisk will form the basis of the search. Any characters following the asterisk will be ignored. If there is no characters before the asterisk the search will return all logics. For object, the search looks for fields that contain any part of the search string. Entering quotation marks as the first and last characters in the string will disable the use of the asterisk. Within quotation marks the asterisk becomes a normal search character. The quotation marks are not included as part of the search string. 3. If you have entered regular expression syntax in the For field check the Regular Expression check box. Regular expression syntax can widen or narrow your search. See the Developer Online Help for a full list of regular expression syntax. 4. Check or uncheck the Match case check box. Check this check box to ensure that your search returns only those results that exactly match the string you enter in the For field. If this check box is unchecked your search will return results that match the string in the For box regardless of case. By default this box is unchecked. 5. Select the area you want to search from the Within field. The areas available in the list depend on the object selected in the Model Directory. For example: If the Model is selected, the list contains the Model and all the Business Segments, Functional Areas and Activities contained in the Model. If an Activity is selected, the list contains the Model, the Business Segments to which the selected Activity belongs, and the selected Activity. 6. Use the Filter button to refine your search. The Search Filter dialog box is displayed. You can choose to limit your search to one or more of the following options: Declarations Object definitions. References to Object definitions for logic commands. Logics terms in lines of logic (excluding comments)
28 Getting Started Initial Values of SDs and GSDs. Documentation which includes comment lines in logic, Business Rules, Teach Screens, description and author attributes of objects. If your system uses Long Names, then an additional check box labeled Short Names will be displayed. Check the Short Names check box to search for an Element's short name rather than the Long Name. You can pre-set the filter by setting the Filter parameter in the [Search] section of the LINC.INI file. 7. Click the Search button. The Search Results List displays the results of your search. You can access further information about an item in the Search Results List in one of the following ways: Double-click on an item in the list If the item is a: Declaration or a Reference, a navigation dialog box for the item is displayed. Logic or a Comment, a logic window is displayed with the search item highlighted. You can also view a list of all the logic results. Initial Value for a SD or GSD, the navigation dialog box is displayed. Teach Screen, the Teach Screen Editor window is displayed with the first instance of the search item highlighted. Business Rules, The Business Rules Editor window is displayed. Expand Logic 1. Select the Expanded Logic command on the View menu to display a list of all the instances of the search item in logic. The list displays the: Name of the object to which the logic belongs Type of object Type of logic Line number in which the item appears Line of text in which the object appears Optionally the Last Modified information can be displayed If the search item appears in more than one line in the same logic, each individual line is listed. If the search item appears more than once in the same line, the line is listed only once. You can disable the Expanded Logic command or limit the number of expanded logic search results displayed, by using the ExpandedLogics parameter in the [Search] section of the LINC.INI file. Disabling this feature may increase the speed of the search
29 Getting Started 2. Double-click on an entry to view the search item in the Logic Editor. The first instance of the search item is highlighted. You can use the Find Next command to find other instances in the line or logic. If you change the logic while the Search Result List is open, when you return to the list it may be invalid. If you double-click a logic search result and the logic has been change, a message dialog box is displayed giving you an option to perform the search again on the selected logic or to go to the line even though it may no longer contain the search text. Note: If a logic window is already open when you perform the search, doubleclicking on a Logic or Comment item in the results list will return you to the logic window that contains the search item, but the item will not be highlighted. A Repeat Find command (F3) will locate the next occurrence of the search item. Find a GSD Parent Block If the selected item is a GSD, the Find GSD parent block command is available on the Edit menu. Select this command to open the navigation dialog box of the GSD's parent block. Using the Copy Name Facility You can use the Copy Name command on the Edit menu to copy the name of a selected element in the Model to other places in Developer, such as logic or Business Rules, or to external applications. You can copy the names of elements from any of the following: Model Directory Lists Matrixes Graphs Copy Parent You can also copy the name of the parent along with the element. Holding the Shift key and selecting the Copy Name command copies the name of the parent and the selected item in the format, Parent.Item. For Report Frames the parent is the Business Segment and the frame number is also included, Parent.Frame.Number. For items inside Functional Areas and Activities the parent is the Business Segment
30 Getting Started Matrixes A matrix is a two dimensional grid that enables you to view and manipulate Element relationships in Business Segments, Functional Areas, Activities and Components. Two Elements are associated when one contains the other. In the Model view, the contained (or subordinate) Element is shown connected to and displayed below the superior Element. For example, the Functional Area/Activity matrix shows the Activities contained in each Functional Area. You can use matrixes to: View relationships between Elements Add or delete Element relationships Open selected Elements Change Element colors within the matrix Accessing a Matrix To access a matrix: 1. Double-click the Element in the Model Directory to open its navigation dialog box. 2. Select the required matrix from the displayed options. Reading a Matrix The first Element listed in the matrix name is displayed horizontally, the second Element is displayed vertically. For example, the Activity/Object matrix displays Activities across the top of the matrix and Objects down the left side, as shown below. COMP-ORD CUST-ORD SUPP-ORD AGEDSTOCK X CASH X CINQ X CNOTE X CONSOLIDA2 X
31 Getting Started A symbol in any of the matrix cells indicates a relationship between two Elements. The symbol displayed in the cell is dependent on the matrix type, as described in the table below. Matrix Type Functional Area/Activity matrix Activity/Object matrix Object/Global Logic matrix Ispec/Data Item matrix Profile/Data Item matrix Relationship An X is displayed in the cell at the intersection of an Activity row and the Functional Area column that contains the Activity. An X is displayed in the cell at the intersection of an Object row and the Activity column that contains the Object. A cell in the matrix with an i or an I indicates that the Global Logic is contained in the Object. A lowercase i indicates a draft relationship. This means the logic does not yet define the relationship. When the relationship is implemented in logic, the indicator changes to an uppercase I. A cell in the matrix with values indicates that the Data Item is contained in the Ispec. There are three (or four, if decimals are applicable) parameters for each contained Data Item. These are: Usage (for example I for usage Input, or Q for Inquiry) Edit characteristics (for example N for numeric, or S for signed) Length in bytes Decimals (if applicable) For example, a cell may depict a currency field as "O,S,10,2". A cell in the matrix with values indicates that the Data Item is either an Ordinate of the Profile or a Profile Data Item. For an Ordinate, there are three parameters for each contained Data Item. These are: The letter O for Ordinate Sort sequence, (1, 2, 3, and so on) A for Ascending sort order and D for Descending An Ordinate is automatically given the next available sequence number when you use a matrix to add to a relationship between a Data Item and a Profile. For example, if there is an existing Ordinate in the Profile which has a sort sequence of 1, D, a newlyadded Ordinate is displayed in the cell with 2, D. For a Profile Data Item, there is only a D in the cell. As you move your cursor over a matrix, the status line changes to indicate what you are pointing to
32 Getting Started Finding an Element in a Matrix To find an Element in a matrix: 1. Access the matrix you want to search. 2. Select the Find option from the Edit menu for the type of Element you want to find. 3. Select the name of the Element from the dialog box displayed. 4. Click on the OK button. Changing Matrix Element Colors To change the colors in which each type of Element is displayed in a matrix: 1. Select the Colors option from the Options menu. 2. Select the Element to be changed. 3. Select the required color from the dialog box displayed. 4. Click on the OK button. Navigating Developer Developer provides several methods for moving around within the application: Navigation dialog boxes Toolbar buttons Menus The GO facility Navigation Dialog Boxes Navigation dialog boxes, which display all navigation options for a given Element, are available at all levels of the Developer hierarchy. There are three ways to open a navigation dialog box for an Element in the Model Directory: Double-click on the Element. Select an Element by clicking on it once, then press Enter
33 Getting Started Use the options available on the File menu. The following table lists the options and what is displayed as a result of the type of Open performed: Command Key Equivalents Result Open Ctrl+O Display Model navigation dialog box Open Current Ctrl+T Display navigation dialog box for current Element (subject of the active window) Open Selected Ctrl+S Display navigation dialog box for selected Element Using Navigation Dialog Boxes The options displayed in a navigation dialog box are different depending on the type of Element you have chosen to display. To use a navigation dialog box, click on one of the buttons to navigate to that option. Also, a navigation dialog box has a drop-down list which you can use to select a new Element. For example, in the Open Ispec navigation dialog box you can click on the downarrow in the combo box, to view a list of available Ispecs and select another Ispec. Toolbar Buttons A toolbar is displayed on all windows of Developer. There are two types of toolbars in Developer: the standard toolbar and the Painter toolbar. An example of the standard toolbar is shown in figure Standard Toolbar Buttons on page The Painter toolbar is described in Painting Screens on page 6-1. Go Directory Version Control Current Add Cut Paste Load Print Search Systems Options Selected Remove Copy Fonts Extract Help Standard Toolbar Buttons Note: Some toolbar buttons are disabled if their function is not appropriate for a particular window. The following table describes the functions performed by the standard toolbar buttons. Label Function Add Adds item
34 Getting Started Label Function Copy Current Cut Directory Extract Fonts Go Help Load Options Paste Print Remove Search Selected Systems * Version Control ** Copies selected item to clipboard Opens navigation dialog box for current element Cuts selected item to clipboard Displays Model Directory Extracts Model Displays Font selection Displays Go dialog box Help tool Loads Model Displays Options dialog box for selected element Pastes from clipboard Prints option Removes selected item Enables a search for a string across the whole Model, including logic. Opens navigation dialog box for selected element Displays the Systems Directory Displays the Version Control Explorer * Systems functions are described in the Unisys Enterprise Application Builder Guide. ** Version Control functions are described in the Unisys Enterprise Application Developer Version Control Guide. Menus Every Developer screen includes a menu bar at the top of the screen. The menu options displayed in the bar at any time depend on the type of window currently open. For example, when the background window is open, only the File and Help menus are displayed. The following menus are available in Developer, although not in this order and not for all windows. Note that the choices available from each menu vary depending on the type of Element you have selected. Unavailable options appear 'grayed out'. Add Menu Description Use the Add menu to add Elements that are appropriate to your active window
35 Getting Started Analysis Character Edit File GoTo Help Insert Logic Options Paragraph Tree Version Control View Menu Window Description Use the Analysis menu to select the type of system design analysis you wish to perform. Use the Character menu to control the display of fonts and attributes in your currently selected window. Use the Edit menu to implement standard Windows edit functions. The File menu appears on all your Developer windows. It includes options such as Load, Extract, Print, Lock Selected, and Logging. Use the GoTo menu to navigate around the currently selected window. Use the Help menu to access online documentation. The Help menu appears on all windows of Developer. Use the Insert menu to insert items into your currently selected window. Use the Logic menu to select functions in your currently selected window. Use the Options menu to control the display in your currently selected window. Use the Paragraph menu to control the display in your currently selected window. Use the Tree menu to manipulate the hierarchy of the Model Directory. Use the Version Control menu to log on to the Version Control component of Developer, if this is available at your site, and to select Version Control operations. Use the View menu to select different ways of viewing the contents of a window. For example, restricting the classes of Elements that are displayed. Use the Window menu to arrange and manipulate your child windows. Choices within the Window menu are fixed for all windows in Developer, although some choices may be disabled in certain circumstances. Popup Menus Use popup menus to display the edit choices for your currently selected window. To access a popup menu, click the right mouse button in any window of Developer. In all parts of Developer except the Editor, the popup menu contains the same choices as the Edit menu. In the Editor, it contains some choices from the Edit menu, and some from the Logic menu. The GO Facility The GO facility provides fast access to different parts of Developer using the twocharacter navigation codes familiar to mainframe Enterprise Application users. A complete list of Go commands is given in the online help documentation. To access the Go dialog boxes for an Element in the Model Directory or the Systems Directory, you can: Press the Go toolbar button
36 Getting Started Press the F9 key. Select GO from the File menu. The Go dialog boxes allow you to set values in the Business Segment, System, and Go fields, as described below. Business Segment Field Use this field to specify the Business Segment. The default is the current Business Segment, but you can choose a different Business Segment from the drop-down list. Systems Field Use this field to specify the System. The default is the current System, but you can choose a different System from the drop-down list. Go Field Use this field to enter the GO command and any parameters. Note the following points: Entry of the word GO is optional in the Model Directory. Do not enter the word GO in the Systems Directory. Enter DOC <command> to obtain help for a command. Enter DOC COMMANDS, or press the F1 key to obtain help for all GO commands. If no Element name is given, the current Element (the subject of the active window) is assumed. Unnecessary parameters are ignored. Getting Help Developer is delivered with online help documentation. There are a number of ways to access the help, depending on the type of information you are seeking. anything For help on menu items, toolbar buttons, windows Do this Select the Help menu that is available on the menu bar of every Developer window. From this menu you can choose to see a table of contents for help, an index, and information on how to use help. Click on the Obtain help button on the toolbar, and a question mark appears. Click on the item for which you want help. fields Position the cursor on the field for which you want help and press F1. dialog boxes Click on the Help button included in the dialog box to display help for that box
37 Getting Started Summary After completing this section, you can: Log on and log off Developer. Load the sample Model delivered with Developer software. View your System using the Model Directory. View a matrix to see the relationships between Elements of your System. Navigate through Developer using menus, GO commands, toolbar buttons, and the Model Directory nodes. Access online help
38 Getting Started
39 Section 4 Defining the Business Model This section describes how to add Elements to your Business Model, how to define relationships between the Elements, and how to delete Elements. The definition of Data Items is not covered here, but is discussed in Defining Data Items. Naming Elements: Reserved Words Words that have a system-defined meaning recognized by Enterprise Application Environment or COBOL on a specific host architecture are reserved words. Each architecture has its own list of reserved words. In Developer you cannot use reserved words for naming: Event Data Items Global Logic Global Setup Data Items Ispecs Ordinates of Standard Components Profiles Reports Note: The word MAIN is not listed as a reserved word but it cannot be used to name a Global Setup Data Item, though it can be used to name other elements. You can use reserved words for naming Setup Data Items and Non-Ordinate Component Data Items. If you use a reserved word to name a Data Item, you can add the Data Item to an Ispec but not to a Report frame. Reserved Word Checking during Syntax Check Developer offers a reserved word checking capability that will look for incorrect usage of reserved words during a syntax check. To enable reserved word checking, access the Model Options dialog box and check the target host for your System under host lists for reserved words. Developer will then use the corresponding list of reserved words for syntax checking
40 Defining the Business Model There are no restrictions on how many target hosts you can check on the Model Options dialog box. If you leave all target hosts unchecked, Developer will not perform a syntax check for any reserved words. If you check more than one target host, Developer will perform a syntax check against a combined list of all reserved words for the target host selection. Developer performs a syntax check for reserved words when: Creating an object such as a Business Segment or a Report Pasting a Data Item in Painter Changing a Component to an Event Loading a Specification Note: If you want to stop objects named with reserved words from being loaded into Developer, set the DropReserved parameter in the [LOADOPTIONS] section of the LINC.INI file to Y. Dropped objects will be reported as errors and logged to the.err file. Set the DropReserved parameter to N if you want to permit objects named with reserved words to be loaded into Developer. Reserved Words List Window Use the Reserved Words list window to check the reserved words for the following platforms: Developer (PC) ClearPath MCP ClearPath OS 2200 UNIX operating systems Windows operating systems To display a list of reserved words for one or more of these platforms: 1. In the Model Directory, select the Open command on the File menu. 2. Select Reserved Word List on the navigation dialog box. 3. Select the Some Types command on the View menu. 4. Check the boxes of the desired platforms and click OK. The list window displays only the reserved words for the selected platforms, which are displayed in the title bar of the window. This setting is saved and is used the next time the window is opened. Note: The word P1 has been added to the reserved word list for Windows during the system generate process. The reason being that, P1 is used as a paragraph name in COBOL source generated targeting Windows; therefore it is now marked as reserved word in Developer. Users are not allowed to use the
41 Defining the Business Model word P1 as System name in the specification to prevent generation/compilation failures. For example, If the option "As System" on Generate tab is set to P1, the Generate would fail at the deploy phase with compilation errors for P1.cbl file. Reserved Words in Component Data Items There are also special cases of reserved words for Component Data Item names. These words apply for all host platforms, as well as for Developer. You will get logic validation errors if you use these words for the name of a Component Data Item. These reserved words also apply to the names of Setup Data Items or Frame Data Items in reports.the reserved words are: AT-SIGN AU10 DELETE IQ LE LENGTH LOCK LOCK1 MULTI PO POS POSITION RC10 RC99 RECORD RP SORTA SORTD STORE Updating the Model Directory The quickest way to add, delete, or move Elements in the Business Model is by using the Model Directory window. Adding an Element For some types of Element, adding a new Element to the Business Model is a simple process of indicating where in the hierarchy the new Element should go, and defining some information about the Element. The steps below summarize this procedure: 1. Select the Element that will contain (is higher in the tree structure than) the new Element you are adding. 2. Select an option from the Add menu. Only the types of Elements you are permitted to add are shown on the menu. 3. Key in information in the dialog box displayed. 4. Click on the OK button. Business Segments, Functional Areas, and Activities are defined this way. Adding a lower-level Element to the Business Model begins by adding the new Element to the Model Directory as described above, but additional steps are required to complete the definition. For example, to define a Profile, after adding it to the Model Directory you must specify its relationships with Ispecs, its Ordinates, and its logic
42 Defining the Business Model Follow the instructions specific to an Element type to add a new Element to your Business Model: Defining a Business Segment Defining a Functional Area Defining an Activity Defining an Ispec Defining a Report Defining a Report Frame Defining a Profile Defining a Wildcard Deleting an Element To delete an Element using the Model Directory: 1. Select the Element you want to delete. 2. Select Delete from the Edit menu, or click on the Delete selected text or item button. 3. A message is displayed asking if you want to proceed with the delete. Click on the Yes button to perform the delete, or click on the No or Cancel buttons to stop it. Moving or Copying an Element You can only move or copy a Component, an Event, a Report, or a Frame. For other types of Elements, you must move them by performing an add in the new location, then deleting the old one. It is also possible to move or copy an element using the Developer Console. This facility is particularly useful for routine processes. See the Unisys Enterprise Application Developer Version Control Guide for details. To move or copy a Component, an Event, a Report, or a Frame: 1. Select the Element you want to move or copy. 2. Select Move or Copy from the Edit menu. 3. Specify the destination of the moved or copied Element in the dialog box displayed. If you are performing a copy, you can also specify a new name for the Element. 4. Click on the OK button. Note: When a Component is copied from one Business Segment to another, the justification attribute for the screen Data Item presentation for the Painter graphics mode is retained. The attribute is not overridden by the setting in the target Business
43 Defining the Business Model Segment. To force the screen Data Items to use the target Business Segment default setting, use the following steps. Be aware that this will override any changes to the justification attributes you have made in the existing screen Data Items: 1. Open the Business Segment Options dialog box. 2. Check or uncheck the Left Fill Numerics check box, depending on its current state. 3. Click the OK button. 4. A dialog box is displayed which asks you "Do you wish to update the justification for all numeric Data Items". Click the No button. 5. Open the Business Segment Options dialog box again. 6. Check or uncheck the Left Fill Numerics check box. 7. Click the OK button. 8. A dialog box is displayed which asks you "Do you wish to update the justification for all numeric Data Items". Click the Yes button. All the screen Data Items have now been set to accept the Business Segment setting as the default. Modifying an Element To change the information about an Element using the Model Directory: 1. Double-click on the Element you want to update. 2. Select Options from the navigation dialog box displayed. 3. Change the information as required. 4. Click on the OK button. Locking and Unlocking an Element When you are planning to change an Element, you may want to manually lock it. When an Element is locked, it cannot be modified although it can be viewed. The lock remains in effect until you unlock the Element. In multi-user mode, a padlock icon on the left side of the toolbar indicates that the Element selected in the Model Directory is locked. In single user mode, no icon is shown. To lock an Element using the Model Directory: 1. Click on the Element you want to lock. 2. Select Lock Selected from the File menu
44 Defining the Business Model To unlock an Element using the Model Directory: 1. Click on the Element you want to unlock. 2. Select Unlock Selected from the File menu. You are prompted to confirm the removal of the lock. 3. Click on the Yes button. Updating Elements Using Matrixes You can use matrixes to add a new relationship or delete a relationship between Elements in a Business Model. Deleting an Element Relationship in a Matrix To delete a relationship between Elements: 1. Double-click on one Element in the Model Directory that you want to change. 2. Select the required matrix from the navigation dialog box displayed. 3. Double-click the cell that represents the relationship that you want to delete, or select the Delete option from the Edit menu. Adding an Element Relationship in a Matrix To add a relationship between Elements: 1. Double-click on one Element in the Model Directory that you want to change. 2. Select the required matrix from the navigation dialog box displayed. 3. Double-click the cell that represents the relationship that you want to add, or select the Add option from the Edit menu. Defining a Business Segment A Business Segment is the source definition from which a System is generated. Adding a Business Segment To define a new Business Segment for your Model using the Model Directory: 1. Click on the Model to which you are adding the new Business Segment. 2. Select Business Segment from the Add menu. The Business Segment dialog box is displayed. 3. Fill in the available fields. The fields and expected input are described below
45 Defining the Business Model 4. Click on the OK button to complete the process of adding the Business Segment. After defining a Business Segment you would specify the Functional Areas that belong to it. See Defining a Functional Area. The fields in the Business Segment dialog box are: Name Identifier for the Business Segment. Alphanumeric, maximum length 12 characters. Description A short description of the Business Segment. Target Host Check one or more check boxes to indicate the host type that a runtime system generated from this Business Segment will run on. The options available are MCP, OS 2200, UNIX, and Windows. Checking one of the check boxes will enforce host-specific rules and restrictions applying to the selected host type. If more than one host type is checked, only rules that are valid for all selected host types are enforced. Syntax: You will be able to enter and validate logic command (LDL) syntax that is valid for any host type, no matter what host type has been set in the Target Host field. Invalid syntax will be ignored at runtime. Note: It is your responsibility to ensure that commands that have a distinct syntax for different host types, such as the CALL; command, are implemented correctly. SOK/EOK Support: SOK/EOK Support is enforced when the MCP check box is the only host selected and the Japanese Char Set Support check box is also checked. See SOK/EOK Support for further information. Restrictions: Restrictions relating to target host type include: Function Suppress Delimiters 2 byte CLEAR.WHEN Character Reserved Words Checked Restrictions This option is valid when OS 2200 is the only host type selected. If you wish to specify a 2 byte CLEAR.WHEN character and MCP is the only host type selected, you can only set this option to A (MCP based system). If OS 2200, UNIX, or Windows are selected individually or in combination, this option can be set to S (OS 2200 based system). As well as reserved words checking at the Model level, the reserved words for the target hosts selected will also be checked
46 Defining the Business Model Function Screen Lines OLTP View Ispecs Restrictions Systems generated to OS 2200 are restricted to 23 screen lines. (There are 24 screen lines available on other host types.) MCP hosts have a limit of 270 Data Items. There are no restrictions on other host types. Developer Test: Developer Test will default to emulate the target host selected in the Business Segment options. If more than one host type is selected, the LINC.INI Runtime TargetHost parameter will be used, if it is the same as one of the selected host types. If the TargetHost parameter is not defined or is set to an invalid host type, the first host type in the Business Segment Target Host list will be used. Alpha CLW Key in a letter, number, or special character to set the DEF.CLEAR.WHEN attribute for alphanumeric Data Items in Component Objects in the Business Segment. The default value is space; that is, the DEF.CLEAR.WHEN attribute does not apply. Numeric CLW Key in a number to set the DEF.CLEAR.WHEN attribute for numeric Data Items in Component Objects in the Business Segment. The value is used when Component records are being altered by the Enterprise Application System. When this value is entered in a data entry field, the value stored will be zero. This capability is necessary, as entering spaces in a numeric field leaves the database value unchanged. The default value is 0; that is, the DEF.CLEAR.WHEN attribute does not apply. Separator Char Key in a character to be used to delimit groups of three digits in whole number values. Values keyed into numeric data entry fields with a defined separator character may be entered with or without separators. The field may be set to any value except alphabetic characters or digits. A value of N means that no separator character is to be used
47 Defining the Business Model Active Month No. Use the Active Month No. field to specify the number of months Events will be stored before they can be physically removed from the Enterprise Application Database. The Active month number and Monthly Volume number, entered in the Systems Environment Event Options dialog box, reserve space for the Event data. The number of active months is multiplied by the sum of all the monthly volumes. The default value for this option is 1. Global Work Size Key in a number to specify the size of the System Data Item GLB.WORK in the Business Segment. A value in the range of 128 through 2000 may be entered, or for a Big Buffer enabled Business segment, a value in the range of 128 through The default value is 128. This field must be greater than or equal to the sum of the sizes of all those GSD Blocks which are part of GLB.WORK. GLB Param Size Key in a number to specify the size of the System Data Item GLB.PARAM in the Business Segment. GLB.PARAM is used for passing parameters when accessing external routines. Any value in the range of 1 through may be entered. The value is either expressed in bytes or, if you are using an Edit K (Kanji) system, in characters. The maximum length of GLB.PARAM is defined in the GLB PARAM Size field on the Business Segment Options dialog box in Developer. The default value is Base Year Key in a year to be used in System Data Item GLB.BASE to determine the value for GLB.CENTURY-START if no century start year is specified in this Business Segment. The base year can have any value in the range 1 through This value may only be changed in this dialog box and may not be overridden elsewhere in the Business Segment. The default value is Century Start Year Key in a year to define which century a data belongs to, independent of the value of the base year. The value of the current century data is stored in the GLB.CENTURY-START System Data Item
48 Defining the Business Model Specify a year that is the start of the century for your Business Segment, if you wish to change it from the default value. For example, if the base year of the Business Segment is set to 1900, and you set the Century Start Year to 1957, then the year 11 is interpreted as 2011 rather than You can enter any year from 0001 through 9899, but the value entered must not be less than the base year. The default is 0, which means the year specified in the Base Year field. Fireup Ispec Key in the name of the Ispec that will be displayed automatically when a user signs on the the Enterprise Application System. If no entry is made in this field, the format selection screen (Page 2) will be the first screen displayed at sign-on. Alphanumeric, maximum length 5 characters. Primary Language Specify the working language for the Enterprise Application System, including the language in which messages and dialog boxes are displayed at runtime. You can only specify a language for which you have installed the national language modules (DLLs). You can switch from one language to another by changing the value of Primary Language in this dialog box. The Station Language system variable GLB.STALANG is set to the value held in GLB.LANGUAGE at start-up. In Developer Test you cannot alter the value of either language variable in your logic; they are both read-only. For more details of GLB.LANGUAGE and GLB.STALANG, see your Unisys Enterprise Application Programming Reference Manual. Alphanumeric, maximum length 10 characters. The default value is English. Enforce Dictionary Use these fields to specify whether the use of the Data Dictionary is to be enforced. The options are: Value Description No Yes SAS Enforce Database Only Data Items may be added without existing in a dictionary. All Data Items created must exist as either Global Dictionary or Local Dictionary Data Items. All Data Items created must be either in the dictionary or defined with a Same.As (SAS) attribute referring to a dictionary item. Check this check box to apply dictionary enforcement to database items only. If this check box is not checked, dictionary enforcement applies to all Data Items created in Ispecs or Global Logics
49 Defining the Business Model The default value for the Enforce Dictionary field is No. Date Format Select a radio button to specify which date format is to be used throughout the Business Segment. The options are UK, US, and International. The default is UK. Date Format is used in several ways, for example: Sets the format for System Data Item GLB.DATE. Determines the format when using the simple form of the DATE.CONVERT command. Interprets the format of input during validation of a Data Item defined as EDIT; Date. When you define a Data Item as EDIT;DATE, you can select either the six- or eight-digit format, as seen in the table below. The eight-digit format includes the century. Value 6-digit format 8-digit format UK DDMMYY DDMMCCYY US MMDDYY MMDDCCYY International YYMMDD CCYYMMDD Decimals Keyed Select a radio button to specify how decimal points are to be used in numeric Data Items. The options are: No Yes Optional A decimal point cannot be used when entering data in a numeric Data Item. A decimal point must be used when entering data into a numeric Data Item. The use of a decimal point in a numeric Data Item is optional. If no decimal point is used, the value entered will be treated as a whole number. The default is Yes. Decimal Character Select a radio button to specify the character to be used as a decimal delimiter in numeric fields. The options are Period and Comma. The default is a period (.). The Decimal Character value cannot be the same as the Separator Character
50 Defining the Business Model Japanese Char Set Support Check this check box to enable the use of Developer features specific to the handling of Japanese Character Sets. For example, the Japanese-specific edit types EDIT;K and EDIT;W are only available if the Japanese Char Set Support check box is checked. Checking this check box when MCP is the only host selected in the Target Host field enforces SOK/EOK Support. See SOK/EOK Support for further information. Use Kanji Edit Type Use these fields to specify the default CLEAR.WHEN characters for the Business Segment. These values are used in systems using a Kanji character set on MCP based or OS 2200 based hosts only. The options are: Value Description None A S CLW Char No CLEAR.WHEN character is defined. Define a CLEAR.WHEN character for an MCP based system. Define a CLEAR.WHEN character for an OS 2200 based system. If A or S is selected, key in the 2 byte character to be used. CCSVersion support Check this check box to specify CCSVersion support for the Business Segment. CCsversion enables you to specify a collating sequence (other than the default sequence) for the alphanumeric fields stored on your database. For ClearPath MCP this ensures that all text comparisons and sort sequences use the same collating sequence as the DMSII database. For UNIX operating systems this ensures that all text comparisons use the same collating sequence as the ORACLE database, and sorts use the collating sequence specified by the local environment. This option only applies to ClearPath MCP and UNIX operating system based hosts. If you have defined a different target host, you can still set this option, but it is ignored during generate or at runtime. You can override this option in the Systems directory using the Ignore National Items check box on the: Default DASDL Business Segment Options for ClearPath MCP Environment Business Segment Options for the UNIX Operating System Note: CCSVersion support cannot be set if Japanese Char Set Support is set. National Item Default This field applies to ClearPath MCP and UNIX operating system target hosts only
51 Defining the Business Model If you select the Yes radio button, all the alpha Data Items in the Business Segment that have the Default National Item attribute are National Items. If you select the No radio button, alpha Data Items with the Default National Item attribute are non-national Items. This option can be overridden for Ispecs, Reports, and individual Data Items. National Items use the CCsversion collating sequence specified by the CCsversion field on either: Default DASDL Business Segment Options for ClearPath MCP Environment Business Segment Options for the UNIX Operating System Note: When the target host is a UNIX operating system, care must be taken when applying the National Item attribute to Data Items used as Ordinates in Profiles. Each Profile maps to an index within the database. Defining an item as a National Item can increase its length within an index, by a factor of two or more. This could cause ORACLE error Maximum key length exceeded. This error is due to an ORACLE restriction that an index cannot exceed roughly onehalf (minus some overhead) the available data space in a data block. The data block size is specified at the creation of the database in the initialization file and cannot be changed. If this limit occur you can either remove the National Item attribute or recreate the database with a larger data block size. Foreground Select a foreground color for the Business Segment, when displayed in a character screen, from the drop-down list. Available colors are Red, Blue, Ebony (black), Magenta, Cyan, White, Yellow, and Green. The default is Ebony. Background Select a background color for the Business Segment, when displayed in a character screen, from the drop-down list. Available colors are Red, Blue, Ebony (black), Magenta, Cyan, White, Yellow, and Green. The default is White. Suppress Zeros Check this check box to suppress leading zeros for numeric Data Items in Ispec screen layouts. This option does not apply to Data Items in Reports and Usage Inquiry Items. Suppressed zeros result in non-significant zeros being replaced by spaces on output, and leading spaces changed to zeros on input. If a separator character is also specified, leading separators are also changed to spaces. A zero value is displayed as
52 Defining the Business Model Full Suppression Check this check box if you want a zero numeric value to be displayed as spaces in Ispec screen layouts. This option does not apply to Data Items in Reports and Usage Inquiry Items. The Suppress Zeros check box must also be checked if you want to select Full Suppression. Left Fill Numerics Check this check box to require Developer Test users to enter numeric values from the left of their fields instead of the right. Integrity Check this check box to indicate that Ispec, Report, and Profile dataset locking is to occur automatically. This ensures processing integrity and fully synchronized recovery. The default is no integrity. Note: Setting Integrity may have a major impact on the performance of your system. See Integrity for more information before setting this check box. Convert to Uppercase Check this check box to specify that input to alphanumeric fields is to be converted to uppercase. Preserve Session Data Check this check box to specify that data held in GLB.WORK is to be retained when the session terminates. If the Preserve Session Data check box is checked, the values in GLB.WORK will be preserved. When you restore the database, GLB.WORK will contain the data it had before the termination. This check box is not checked by default. This means that if a transaction terminates on an ABORT; command, the values in GLB.WORK are lost and the transaction cannot be recovered. Warning You must bring down the application when generating a system where the Preserve session data option has been changed. Note: In the current release of the UNIX runtime environment, the setting of this check box is ignored
53 Defining the Business Model DC; sets GLB.CENTURY Check this check box to specify that GLB.CENTURY and GLB.DC-CC are to be set by a DATE.CONVERT; command. If this check box is not checked, GLB.CENTURY is not set by DATE.CONVERT; (but GLB.DC-CC is). GLB.CENTURY can still be read by DATE.CONVERT; to determine the century of the input date
54 Defining the Business Model The default for this check box, regardless of whether this attribute is specified in the loaded file or not, is: Checked for pre-lda 2.1 Business Models. Not checked for Business Models for LDA 2.1 and later. Allow Field Truncations Check this check box to specify that the visible length of screen and Report Frame fields is to be truncated when the length of the field is greater than the screen space available. If the check box is not checked, all fields must be displayed at full length on the screen. The default is to allow field truncation. The following types of fields may not be truncated in any case: Ordinate fields Kanji fields Fields with the CLEAR.WHEN attribute set Fields inserted from a painted Global Logic may not overlap any Ispec fields at all. For other fields, the minimum screen length is one character plus a character for each delimiter and video attribute character. Two Phase Commit Check this check box to use the Two-Phase Commit process for database updating that occurs with external Automatic Entries. The Two-Phase Commit process works like this: 1. Initiating System sends a request for the Automatic Entry. 2. Receiving System performs the required processing, but does not commit the transaction. 3. Sending System sends a confirmation message. 4. Receiving System commits its transaction. 5. Sending System commits its transaction. With Two-Phase Commit, the sending and receiving systems are able to roll back to a synchronized point if both have not successfully completed their related transactions. The default is not to use Two-Phase Commit
55 Defining the Business Model System Uses ROC Check this check box if you want the Report Output Control (ROC) facility to manage the output from all Reports. This check box is ignored for UNIX and OS 2200 based Systems as these hosts always use ROC. By default the System Uses ROC check box is checked. Def Bounds Checking Check this check box to set bounds checking by the complex MOVE; command. Error checking code is generated to check POSITION; and LENGTH; parameters for consistency. On error, GLB.STATUS is set to *****. If the check box is unchecked, a check for errors does not occur. This means that if a complex MOVE; is performed that is out of bounds of the receiving Data Item, the Data Item may contain unpredictable results. You can get significant performance improvements if you do not set bounds checking, and the default for this field is not selected. Extend Report Recovery Check this check box to specify that Reports that fail three times are to store their recovery information. You can then rerun failed Reports after you have fixed the problem that caused the failure. If this check box is unchecked, Reports are limited to two attempts at recovery before they are aborted. This check box is unchecked by default. Extended Logic Line Check this check box to extend the allowable line length in logic to 240 characters. For short name repositories this means that you can enter a line of 240 characters. For long name repositories this means that when the long names are converted to short names, the line can be greater than 72 characters. If this check box is not checked the standard 72 character line length applies. Unchecking the Extended Line Logic check box: You should not uncheck this check box once extended lines of logic have been entered. The lines do not become invalid, and you are able to edit the lines to change the logic or to reduce them to 72 characters or less. You are not able to add extra characters to the line. If the check box is unchecked and the Model is extracted, the extended lines are truncated to 72 characters. Extracting and Loading: Logic with extended lines is always loaded in fully. When performing a partial load into a repository that does not have the Extended Logic Lines option set, extended lines are loaded in fully but will cause validation errors
56 Defining the Business Model Allow Big Buffers Check this check box to allow Big Buffer Ispecs within the Business Segment. Developer Test Options Click the Developer Test Options button to specify the paths to your Developer Test system. In the Developer Test Options dialog box displayed, specify the directory paths for the Database, Event Set, Transaction Log and Reorganization files. Note: If you do not specify the directory paths, the default paths for these files are used. If you are running more than one Developer Test session, and find that the data displayed is not the data for the current session, specify the database directory path (in the Database field) in each Developer installation. Use the Browse buttons or key in the path (drive and directory) to define where the parts of the Runtime system are to be located. To set up a database path on another server (for example when using multi-user runtime databases), you should use the Uniform Naming Convention (UNC). The basic format of the UNC is: \\servername\sharename where servername is the host name of a network file server or the name of a machine on the network, and sharename is the name of a networked or shared directory. In a Novell environment, sharename is the Novell volume name. If you use drive letters, the letters must be taken from the machine on which the Developer Server is running (for example, your local machine in single user mode). Checking the Map Library Names for CALL statements check box specifies that when Developer Test encounters a CALL statement, it will map the specified library name to rcall. This applies when Developer Test is emulating the CALL statement locally. It is ignored when the CALL statement is processed remotely on the host. Host Specific Options Click on the Host Specific Options button if your target host is MCP or OS 2200 to define information specific to these hosts. The required fields are described below. Primary GSDs/DADs FTU Translatable: This option is available when MCP is the only target host type selected. Check this check box to enable Global Setup Data Items, data display items, screen layouts, and Teach screens to be translated through the Forms Translation Utility (FTU). Suppress Delimiters: This option is valid when OS 2200 is the only target host type selected. Check this check box to suppress the display of delimiters in Developer Test
57 Defining the Business Model Binary Numeric: This option is available when OS 2200 is the only target host type selected. Use the Binary Numerics field to select values from the System and Event dropdown lists. These values define the default format of numeric Data Items in the Business Segment. Use the System drop-down list to specify a system-wide format for numeric Data Items. Select one of the following options: N Y I Binary numerics are not used. Binary numerics are used. Binary numerics are used, but not SMALLINT. Use the Event drop-down list to specify a format for numeric Data Items belonging only to Event tables. This value overrides the System field value for Event tables (unless D is selected). Select one of the following options: N Y I D Binary numerics are not used. Binary numerics are used. Binary numerics are used, but not SMALLINT. Use the System field setting for the Event table. SOK/EOK Support SOK (Start of Kanji) and EOK (End of Kanji) are characters that surround Kanji character strings. SOK/EOK Support automatically inserts SOK and EOK characters around Kanji character strings in specific parts of Developer. SOK/EOK support is enforced for the Business Segment when the following options are selected in the Business Segment Options dialog box: MCP is the only host selected in the Target Host field. The Japanese Char Set Support check box is checked. Selecting SOK/EOK Characters To specify the characters to represent SOK/EOK characters in Developer you must enter the sokch and eokch parameters in the [INTL] section of the LINC.INI file. You can specify any keyboard character to represent SOK/EOK characters. The characters specified are displayed in all affected fields. If the parameters are not present in the LINC.INI file ASCII spaces are used by default. Note: SOK /EOK characters are not stored in the Repository
58 Defining the Business Model The following parts of Developer are affected by the automatic insertion of SOK and EOK characters. Text fields SOK/EOK Support affects dialog box text fields throughout Developer. SOK and EOK characters take up two character spaces for each Kanji string, therefore the available field length may be affected. See Developer Online Help for a list of all fields affected. Painter Only the Character mode screen of the Painter displays SOK/EOK characters. SOK/EOK characters are not required in Graphical screens. See Character Mode and Graphics Mode in the Painter section for further information. Logic Editor In the Logic Editor window, SOK/EOK characters are inserted around Kanji strings in literals and comments dynamically as you type. When extracting logic, if the line length is longer than 72 characters when SOK/EOK characters are inserted, the line will be truncated and an error written to the log file. The error will contain the line number and location of the error. See Automatic Insertion of SOK/EOK Characters in the section Using the Logic Editor. Teach Screens In the Teach Screen window, SOK/EOK characters are inserted around Kanji strings as you type When extracted, if the line is longer than 72 characters, when SOK/EOK characters are inserted, the line will be truncated and an error written to the log file. The error will contain the line number and location of the error. Business Rules When extracted, if the line is longer than 72 characters, when SOK/EOK characters are inserted, the line will be truncated and an error written to the log file. The error will contain the line number and location of the error
59 Defining the Business Model Extracting SOK/EOK Characters You can select SOK/EOK characters to be extracted as part of full or partial extract of a Business Segment. To do this, use the Sok/Eok check box on the Business Segment Extract Options dialog box. By default the characters are represented as spaces in the extract file but you can define the characters to be used in the Sok Ch: and Eok Ch: fields. The SOK/EOK fields are only visible if SOK/EOK support is available for the Business Segment. Loading SOK/EOK Characters When loading an LCIF file it must be checked to determine if SOK/EOK characters are included. Business Segments extracted from LINC Development releases 2.3 and 2.4 are checked to determine if MCP is the only Target Host selected and that Japanese Char Set Support is set. When loading pre LINC Development 2.3 Business Segments, the default target host is set according to the setting of the Host List for Reserved Words Model option. Japanese Char Set Support is set according to the setting of the 2 byte CLW character field. When loading host LCIF files the Business Segment is checked to determine if MCP is the only Target Host and that Japanese Char Set Support is set. Insertion Policy SOK/EOK characters are inserted according to the position of the Kanji characters.the following lists describes possible insertion scenarios: If the first character is the first byte of Kanji character, ASCII space is inserted before it. If there is an ASCII space between ASCII character and Kanji character, it is regarded as SOK. No insertion will take place. If there is an ASCII character followed by a Kanji character without an ASCII space, an ASCII space is inserted. If there is only one ASCII space between Kanji characters, it is regarded as a normal ASCII blank. EOK is inserted in front of it, and SOK is inserted next to it. If there are two ASCII blanks between Kanji characters, the first blank is regarded as an EOK character, and the next is regarded as an ASCII blank. An SOK character is inserted. If you need two byte space between two Kanji characters, a Kanji space should be inserted. If there are three ASCII spaces between Kanji characters, the first is regarded as an EOK character, next as an ASCII Space, and the last one is regarded as a SOK character
60 Defining the Business Model Graphical Form Characteristics The Graphical Form Characteristics dialog box, which is accessed from the Business Segment Options dialog box, is used to set characteristics for elements displayed in graphical screens. These settings are global defaults for all items of the selected Business Segment. Individual items can have their attributes changed uniquly at the appropriate item level. If you check the Character Screen check box, the graphical screen will be created from the character screen defaults for background color of Forms and Data Items, and the foreground color and font. This dialog box also provides access to the New Form Item Attributes dialog box. This is used to define the base initial attributes to be used for newly created graphical objects. These settings are maintained for all newly created objects until such time as these base settings are changed. To change the attributes at an item level from the default setting, select the Ispec, open Painter, select the item and change the attributes. The item can also have its attributes reset to the default value, as specified at the Business Segment level, from Painter. Refer to Using the Painter for more details. Defining a Functional Area To add a Functional Area using the Model Directory: 1. Click on the Business Segment that will contain the new Functional Area. 2. Select the Functional Area option from the Add menu. The Functional Area dialog box is displayed. 3. Key in a name and a description for the new Functional Area. 4. Click on the OK button. After defining a Functional Area you would specify the Activities that belong to it. Defining an Activity To add an Activity to a Functional Area using the Model Directory: 1. Click on the Functional Area that will contain the new Activity. 2. Select the Activity option from the Add menu. The Activity dialog box is displayed. 3. Key in a name and a description for the new Activity. 4. Click on the OK button. After defining an Activity you would specify the Ispecs, Reports, and Profiles that belong to it
61 Defining the Business Model Defining an Ispec Adding an Ispec Ispecs are the building blocks of your system. There are two types: Components and Events. An Ispec usually consists of a screen definition and its associated logic, but before you can define these, you must add the Ispec to your Business Segment using the Model Directory and specify some basic information about it. For a discussion of the uses of Events, and recommendations for coding them, see Use of Memo Components Versus Events and Rationalizing Event Data Item Names. Adding an Ispec is described below. To modify, delete, move or copy an Ispec, follow the instructions for modifying, deleting, moving and copying an Element described earlier in this section. To add an Ispec using the Model Directory: 1. Click on the Business Segment or Activity to which you are adding the new Ispec. 2. Select Component or Event from the Add menu. The Ispec Options dialog box is displayed. 3. Fill in the available fields. Not all fields are available for both types of Ispec. The fields and expected input are described below. 4. Click on the OK button to complete the process of adding the Ispec, or click on the Next button to add another Ispec. After defining an Ispec you would specify the Data Items that belong to it. See Defining Data Items for instructions on defining Data Items. The fields in the Ispec Options dialog box are: Name Identifier for the Ispec. The name must begin with an alphabetic character and cannot contain a hyphen (-). If you wish to modify an Ispec name that has been loaded from a host and contains a hyphen, you must remove the hyphen to conform with current naming rules. Use the Name Validation check box on the Design Audit dialog box to identify Ispec names containing unsupported characters. This field is alphanumeric. If Long Names are allowed for the Model, the name can be up to 30 characters. If Long Names are not allowed, the name cannot exceed five characters. If the Model uses Long Names, an additional short name field appears below the Name field. The maximum length of this field is five characters. The short name defaults to the first five characters of the long name
62 Defining the Business Model Review Naming Elements: Reserved Words before naming a new Ispec. Notes: For MCP based Systems, using a name that is the same as an entrypoint implemented in an Enterprise Application Environment library (such as LINCSUPPORT) will cause the COBOL syntax error ILLEGAL DUPLICATE NAME when you generate the System. If this occurs, you must rename the Ispec. Ensure that the report names, global logic names and data item names must not use the format <ispec>-rec. This conflicts with an internal naming system. Using the format <ispec>-rec for report names, global logic names and data item names results in a generate failure. Description A short description of the Ispec. Author Your name to identify you as the author of the Ispec, for use in listings. Alphanumeric, maximum length 20 characters. No validation is performed on the value in this field. Type Type of Ispec. For an Event Ispec, Type is defined as Event. For a Component, the options are: Type Standard Table Memo Direct Description A Component that requires a single Ordinate. Default for a Component. A Component that stores low-volume, frequently-accessed data, such as a code table. A Component with no Ordinate, used to store data of a memorandum nature. A Component that uses a key for direct access to the data, saving on the number of Input/Output operations. It has a single numeric Ordinate with a maximum of eight digits. Notes: Although there are no functional differences between a Usage-Input Event and a Usage-Input Memo Component, it is preferable to specify such an Ispec as a Usage-Input Memo Component for reasons of technical accuracy
63 Defining the Business Model If changing a Component to an Event, make sure the Component does not contain any Data Items used in Report Frames. If the Component does contain any Data Items used in Report Frames, when you select Event from the Type field and click OK an error is given. Current Size This read-only field displays the current size of the Ispec, measured in bytes. Usage The options for Ispec Usage are: Usage Description I-O Input Output Input/Output. Values are entered from a screen and stored in the Repository. Values are entered from a screen. Values are stored in the Repository. Acctmth Not Entered Check this check box if you wish to prevent users from changing the accounting month (on line 1 of System Ispecs). The value of the accounting month is stored in the ACTMTH System Data Item. Auto Recall Capable Check this check box if you want to enable all data values for a Component record based on a specified Ordinate value to be recalled to the screen. You must have an Ordinate for this feature to be selected. Auto Entry Capable Check this check box to allow Ispecs to be updated with an Automatic Entry from another Ispec or through terminal input. Ispecs receiving internal Automatic Entries must be Usage Input-Output or Usage Output, while external Automatic Entry Ispecs must be Usage Input-Output or Usage Input. Refresh Screen Check this check box to specify that an Ispec screen is to be refreshed after a transaction has been successfully processed
64 Defining the Business Model If you choose to refresh the screen, Pre-Screen Logic is performed and the Ispec screen is displayed with fields cleared of entries except for those pre-filled by the Pre- Screen Logic. If you choose not to refresh the screen, and no RECALL; command is executed, the Select a Screen dialog (in Developer Test) or the Ispec Selection screen (in the deployed system) is displayed instead. If you want to display a different Ispec screen, use the RECALL; Logic command. The Refresh Screen check box is disabled if the Ispec is defined as Usage Output. Allow Purge The Allow Purge check box applies only to Components with an Ordinate (i.e. Standard, Table, and Automaint Memo Components). Check this check box to allow users of your generated system to physically delete records for the Component using the standard Ispec screen. When the record is displayed on the screen, an entry of PUR in the Maint field causes a physical delete. External Only Ispec The External Only Ispec check box applies only to Ispecs with Usage Input. Check this check box to define the format of Ispecs targeted by an AUTO.ENTRY; EXTERNAL; statement. Checking the External Only Ispec check box automatically sets the Auto Entry Capable option. Note that Developer Test does not support external Auto Entries and sets GLB.STATUS to NODB. Developer Test rejects a DETERMINE; or LOOK.UP; reference to an Ispec defined as External Only with the error message ispecname external only, cannot be read. Accept OLTP Trans. Check this check box to specify that the Ispec is able to accept OLTP transactions. The Ispec will only receive transactions if you have: Checked the Enable OLTP check box in the Business Segment OLTP Options dialog box. Specified a service name in the Ispec OLTP dialog box of the Generate Set used to generate the System. The OLTP Reply check box is automatically checked when you check the Accept OLTP Transaction check box. These options can also be used independently of each other. Note: COPY.FROM Ispecs cannot accept OLTP transactions
65 Defining the Business Model OLTP Reply Check this check box to enable the Ispec to reply to OLTP transactions. An Ispec buffer definition is also generated for definition to OLTP. The OLTP Reply check box is automatically checked when you check the Accept OLTP Transaction check box. These options can also be used independently of each other. Note: COPY.FROM Ispecs cannot accept OLTP transactions. Copy from line # and to line # Use these fields to key in a starting line number and ending line number in order to specify which lines are to be repeated in a COPY.FROM Ispec. COPY.FROM Ispecs cannot have Automatic Entry or REPEAT.FROM capabilities. Numeric, maximum length 2 digits, value must be in the range of 2 through 23. Note: These fields are disabled for Big Buffer Ispecs. For Big Buffer Ispecs, values are updated as the COPY.FROM items are manipulated in the Data Item List. Max Copies Use this field to specify the maximum number of times a group of lines (defined by the Copy from line # and the Copy to line # fields) are to be repeated in a COPY.FROM Ispec being added. Numeric, maximum length 2 digits, value cannot be greater than 23. For Big Buffer Ispecs: Numeric, maximum length 4 digits, value cannot be greater than 9999 Note: These fields must be completed to enable the display attributes for Copy.From Lines to be set in the Screen Data Items - Display Attributes dialog box
66 Defining the Business Model Big Buffer Enable Check this check box to indicate that this is a Big Buffer Ispec. Caution A Big Buffer Ispec can only be reverted to a regular Ispec if all of its Data Items (other than System Data Items) are removed. This means that once checked, the Big Buffer Enable check box is disabled until all Data Items are removed from the Ispec, even if none of these Data Items are positioned outside the regular Ispec buffer Note: Use of the trace facility with Big Buffer enabled Ispecs may have an adverse performance impact, due to their greater size compared to regular Ispecs. The larger amount of data involved also results in increased space requirements for the log file. Maximum Size Use this field to specify the maximum size in bytes, if this is a Big Buffer Ispec. Numeric, value cannot be greater than The maximum allowable size for a Big Buffer Ispec is dependant upon to the characteristics of each target host. The following table lists the maximum size, in bytes, for a Big Buffer Ispec. MCP OS 2200 Windows UNIX Online Distributed Transaction Processing (OLTP) External Automatic Entry (HUB) Non-Formatted Input/Output (NOF), Intelligent Terminal Interface Not applicable Not applicable Non-Formatted Input/Output (NOF), Programmatic Interface Graphical Interface Workbench Remote Access Server (RATL) protocol must be used Use of Remote Access Server (RATL) protocol is recommended, as other protocols are not supported Web Enabler Component Enabler
67 Defining the Business Model Notes: Developer Test Developer Test only supports Big Buffer Ispecs that are equal to, or less than bytes in size. In addition, if you are using Enterprise Application Workbench to test forms in a Developer Test session using INFOConnect, only Big Buffer Ispecs that are equal to, or less than, 1987 bytes are supported. You can avoid this limitation by using Developer Test's Remote Access Server (RATL protocol) instead of INFOConnect. Web Enabler Web Enabler does not show full Big Buffer fields when using Netscape browser. Web Enabler does not show 4095 character Big Buffer fields on Windows 95, Windows 98, or Macintosh. Foreground Select a foreground color for the Ispec from the drop-down list. Available colors are Red, Blue, Ebony (black), Magenta, Cyan, White, Yellow, and Green. A value of Default means that the settings specified in the Foreground Color field on the Business Segment Options dialog box will be used. The default foreground color for a Business Segment is Ebony. Background Select a background color for the Ispec from the drop-down list. Available colors are Red, Blue, Ebony (black), Magenta, Cyan, White, Yellow, and Green. A value of Default means that the settings specified in the Background Color field on the Business Segment Options dialog box will be used. The default background color for a Business Segment is White. Integrity Enter Y in this field if you want Developer to lock the dataset when the Ispec is updated. This ensures processing integrity and a fully synchronized recovery. Setting Integrity to Y may have a major impact on the performance of your system. See Integrity for more information before setting this field. Automaint Profile The Automaint Profile field applies only to Memo Components. Use this field to specify the name of the Profile for an Automaint Memo Component. The Automaint Profile spans the Data Items used as Ordinates for a Component. If you create a new Memo Component and you enter the name of a non-existing Profile, Developer will create the Profile with an Over relationship to your new Memo Component
68 Defining the Business Model If the Long Names option is enabled, you must create a Profile before you specify it as an Automaint Profile in a Memo Component. In the Profile Options dialog box you must uncheck the Duplicates Allowed check box. If you do not create a Profile, Developer will return an error message informing you that the Profile does not exist. The following conditions must be met for the Automaint Profile field to be completed: The value in the Usage field must be Output or I-O (Input/Output). The Ispec type must be Memo Component. The Profile that you specify in this field must not have the Duplicates Allowed field selected. The name must not start with a number or a minus symbol (-). Alphanumeric, maximum length 9 characters. Setting the Edit Type: The edit type of an Automaint Profile Ordinate must be the same in all the Ispecs in which it is used. The exception to this is where the edit type is one of the numerical types: Number, Signed, Credit, + or -. These do not have to be the same, but cannot be used with the edit types Alpha or Date. Changing Automaint Profile Ordinates: If you change a Data Item to an Automaint Profile Ordinate, instances of that Data Item where the edit type differs will have the edit, length, and decimal attributes changed to those of the Automaint Profile Ordinate. This also occurs if you change the edit type of a Data Item that is used in the Same As field of an Automaint Profile Ordinate. Primary Profile The Primary Profile field applies only to OS 2200 based Memo Components. This field is enabled only for Memo Components with Usage Input/Output or Usage Output. Use this field to set up the primary keys of the RDMS table for a Memo Component. Enter the name of an existing unconditional Profile over the Component. If you do not specify a Profile, the first unconditional Profile (in alphabetical order) over the Component is used. If no Profile exists over the Component, GLB_DTIME is used. Default Cursor Field Use the field Default Cursor Field to specify where the cursor is to be positioned when the Ispec is redisplayed in Developer Test. This setting may be overridden with the CURSOR; logic command. The default value of spaces positions the cursor in the first entry field. To specify another field, key in the data display name associated with the Data Item where the cursor is to be positioned when the Ispec is accessed. Alphanumeric, maximum length 10 characters
69 Defining the Business Model Binary Numerics This option is available when OS 2200 is the only target host type selected. Use it to format numeric Data Items using RDMS binary numeric formats and save storage space on the host. Use the Binary Numerics field to set the default format of numeric Data Items contained in the Ispec, overriding any default specified in the Business Segment. The options are: Value Description N Y I D Binary numerics are not used. Binary numerics are used. Binary numerics are not used. All numerics are formatted as DECIMAL. Default. Use the setting in the Business Segment Options dialog box
70 Defining the Business Model National Item This field applies to ClearPath MCP and UNIX operating system target hosts only. If you select: Yes, all the alpha Data Items in the Ispec with the Default National Item attribute are National Items. No, alpha Data Items with the Default National Item attribute are non-national Items. Default, alpha Data Items with the Default National Item attribute inherit the setting from the Business Segment dialog box. For Events, this field is set to Default and cannot be changed. This option can be overridden for individual Data Items. National Items use the CCsversion collating sequence specified by the CCsversion field on either: Default DASDL Business Segment Options for ClearPath MCP Environment Business Segment Options for the UNIX Operating System Note: When the target host is a UNIX operating system, care must be taken when applying the National Item attribute to Data Items used as Ordinates in Profiles. Each Profile maps to an index within the database. Defining an item as a National Item can increase its length within an index, by a factor of two or more. This could cause ORACLE error Maximum key length exceeded. This error is due to an ORACLE restriction that an index cannot exceed roughly onehalf (minus some overhead) the available data space in a data block. The data block size is specified at the creation of the database in the initialization file and cannot be changed. If this limit occur you can either remove the National Item attribute or recreate the database with a larger data block size. Database Path Use the Database Path field to specify the location of the Developer Test database. Use the Browse buttons or key in the path (drive and directory) for the database location. To set up a database path on another server (for example when using multiuser runtime databases), you should use the Uniform Naming Convention (UNC). The basic format of the UNC is: \\servername\sharename where servername is the hostname of a network file server or the name of a machine on the network, and sharename is the name of a networked or shared directory. In a Novell environment, sharename is the Novell volume name
71 Defining the Business Model If you use drive letters, the letters must be taken from the machine on which the Developer Server is running (for example, your local machine in single user mode). Subsystem The Subsystem field applies only to Systems for MCP based hosts. Use the Subsystem field to allocate an Ispec to a Subsystem. Select the appropriate Subsystem from the drop-down list. Note: In Developer, the Subsystem for each Ispec can be specified in two places. It can be specified in the Ispec Options dialog, and also in each Generate Set. The two settings are completely independent of one another. This means you can have two Generate Sets with Ispecs allocated to different Subsystems in each Generate Set. In All Subsystems The In All Subsystems field applies only to Systems for MCP based hosts. Checking the In All Subsystems check box allocates the Ispec to all Subsystems. The Subsystem field is disabled when this check box is selected. Limits The following table contains a summary of the limits for Ispecs for each target host. It is intended as a guide only and should be read in conjunction with the information in the subsections following the table. Limit OS 2200 MCP Windows UNIX Number of Ispecs (1000 for Output or I/O) Number of Data Items in Output Structure Length of Data Items in Output Structure 28,000 bytes characters 9999 bytes (65000 for Big Buffer Ispecs) (8,060 for SQL Server) 9999 bytes (65000 for Big Buffer Ispecs) (8,060 for SQL Server) Byte length of Input/ Output Ispecs No limit 26,450 characters 4000 bytes (65000 for Big Buffer Ispecs) 4000 bytes (65000 for Big Buffer Ispecs) Number of Logic Lines in an Ispec
72 Defining the Business Model Limit OS 2200 MCP Windows UNIX Number of Nested Database Commands References to other Ispecs 19 No limit No limit No limit No limit 999 No limit No limit Painted Items in an Ispec 320 (1000 for Big Buffer Ispecs) 320 (1000 for Big Buffer Ispecs) 320 (1000 for Big Buffer Ispecs) 320 (1000 for Big Buffer Ispecs) Painted Items in Copy.From area Number of Ispecs in OS 2200 based Systems The EXEC allows 4,095 HVTIP subprograms, but the code required to call an Ispec will cause the ICP to exceed the HVTIP program limit before this limit is reached. The exact point of this is unknown, as this is affected by the size of the Global Logic and other such issues. In the current product, when a system is marked as a Production system (in Builder), the RDMS storage areas have the KEEP-ASSIGNED attribute set to TRUE. There is one separate RDMS storage area for: Each Usage Input-Output or Usage Output Component The EVENT structure All Event Profiles All non-primary and non-automaint Profiles UDS has a limit of 4095 EXEC files assigned at one time, which sets an upper limit on these items, unless you turn the KEEP-ASSIGNED attribute off after each database reorganization or creation. There are no other known limits. TIP storage areas do not have this KEEP-ASSIGNED restriction, but are limited by the system maximum number of TIP files (up to 4095). For Systems generated as selfcontained UCS subsystems, the number of Ispecs is limited by the maximum number of dynamically allocated shared BDIs configured in the operating system. Number of Data Items in Output Structure In MCP based Systems, the maximum number of Usage Input-Output and Usage Output items is 3,020 (and is limited by the accumulated size). In UNIX based Systems, there are two distinct limits to the number of Usage Input- Output or Usage Output Data Items in an Ispec. ORACLE allows a maximum of 950 fields in a table. At the edit checking phase of the generate process, a limit of 250 Usage Input-Output or Usage Output Data Items is imposed in an Ispec
73 Defining the Business Model Of these, a certain number for the following types of generated fields are reserved: Standard Ispec fields. These are added to an Ispec record, depending on the type and options of the Ispec. These are counted at the edit checking phase of the generate process. Descending key fields. For each Data Item that is defined as a descending key in any profile over the Ispec, an additional Data Item is added. These are not counted at the edit checking phase of the generate process. Therefore, there are two rules that apply to the maximum number of Usage Input- Output or Usage Output Data Items: The number of Standard Ispec fields plus the total number of Usage Input-Output or Usage Output Data Items cannot be more than 250. The number of descending key fields plus the number of Standard Ispec fields plus the total number of Usage Input-Output or Usage Output Data Items cannot be more than 254. The number of fields reserved for the different types of generated fields are listed in the following table. Generated field Subtract GLB_DTIME (Memo component) 1 GLB_DTIME, MAINT (Std component) 3 ACTMTH, GLB_DTIME, GLB-REPORT, INPUT-DATE, ISPEC, XTRANNO (Combined Event) 6 LAST-LINE (Any Repeat.from Ispecs) 1 Descending key fields 1 for each Note: These are ORACLE limitations. In ORACLE, a Data Item requiring more than 4000 bytes of database storage is called a long Data Item. The maximum size of a long Data Item is 2 Gigabytes. There may only be one long Data Item for an Ispec. In other words, ORACLE allows only a single field within a table to exceed 4000 characters. Note: Component arrays often result in a long Data Item. Note: In SQL Server, this limitation of allowing only a single field within a table to exceed 4000 characters is not present. However, this limit will be enforced at the validation phase of Generate for both ORACLE and SQL Server database types to ensure that specifications developed within Enterprise Application Environment are consistent for all deployed database types
74 Defining the Business Model Size of Ispec or Profile Record in OS 2200 based Systems The maximum length of an Ispec or Profile database record is governed by the RDMS limit on maximum database page size (7,168 words). After allowing for page and record control information, this means that approximately 28,000 characters is the maximum combined length of all Data Items in an Ispec or Profile. If you have Ispecs whose database record size exceeds 7,000 characters, you must check the Allow big buffers option on the Business Segment options screen. In addition, for such Ispecs, the Big Buffer Enabled option must be checked and the Maximum Size set on the Ispec Options screen. RDMS documents that the RDMUTL LOAD command can process data images of up to 8,188 characters in length. In order to reorganize Ispecs larger than 8,188 characters in length, XRLOAD must be used; refer to SGS Parameters USEXRLOAD and XRLOADFILE in the Enterprise Application Runtime for ClearPath OS 2200 Administration Guide for details. Ispecs that have large database field lengths will suffer from restrictions on lengths for interfaces (Automatic Entries, GLI, and NOF). PLE number (which can be accessed from the Unisys Support web site at describes special handling for Ispecs with very large database fields. Size of Ispec or Profile Record in MCP based Systems Usage Input-Output and Usage Output Data Items are limited to an accumulated size of 4,065 words (24,570 characters), which is the DMS II record size limit. Size of Ispec or Profile Record in UNIX and Windows based Systems A Data Item of type long may not be used as an Ordinate or Profile Ordinate. For ORACLE Systems, a numeric item included in an index (Ordinate or Profile Ordinate) always uses 22 characters. See Number of Data Items in Output Structure, earlier in this section, for a discussion of long items. For ORACLE, the size of a composite key (all Profile Ordinates of a Profile) must be smaller than half the database block size. For SQL Server, the size of an index must be smaller than 900 bytes. Byte length limit for UNIX and Windows based Systems For Input/Output Ispecs that are to be generated to either a UNIX or a Windows operating system, there is a 4,000 byte data limit. The combined maximum size of user defined fields is 3,893 bytes. The remaining 107 bytes are made up of the following system-defined fields: ACTMTH GLB.SOURCE INPUT-DATE MAINT
75 Defining the Business Model TRANNO 1 byte for field 80 bytes for the status line This limit is due to the internal buffer RDATA-AREA having a maximum length of 4,000 bytes. RDATA-AREA stores the Input/Output buffer for the Ispec. Anything over the 4,000 byte limit causes memory to be overwritten. The limit is checked during the Model Validation phase of the Builder generate process. If the maximum length is exceeded an error is given and the generate is stopped. See your Unisys Enterprise Application Builder Guide for full details of the generate process. Note: This limitation does not apply to Big Buffer Ispecs. For Input/Output Big Buffer Ispecs, the maximum byte length is bytes for a Windows operating system, and bytes for a UNIX operating system. Number of Logic Lines in an Ispec in OS 2200 based Systems In practice, long generate times and the HVTIP program limit will be reached before (from approximately 2,000 to 5,000 total lines in an Ispec). Also, there is a limit of slightly less than one million total logic lines in a Builder for all systems, and approximately two million lines of generated COBOL (file sizes). Database Commands In OS 2200 based Systems, there is a maximum of 19 levels of database commands, that is 19 levels of DETERMINE; or LOOK.UP; loops. If you exceed 19 levels, Runtime will abort with a warning message highlighting the cursor name, and a dump of the cursor stack. You can find the cursor name in your Ispec or Report symbolic, from which you can find the point in your logic at which the limit was exceeded. In MCP based Systems, there is a limit of 999 references to other Ispecs (all Events count as one reference) from an Ispec. Painted Items in an Ispec Limit of 320. Maximum of 100 items in the Copy.From area of the screen layout for a Copy.From Ispec. Note: This limitation does not apply to Big Buffer Ispecs. The maximum number of painted items in a Big Buffer Ispec is Internal Database Storage Order In MCP based Systems, Ispec Data Items are stored in the database in the following order: alphanumeric items (in alphabetical order), numeric items (in alphabetical order), and a filler item if defined
76 Defining the Business Model In OS 2200 based Systems, Data Items used as Ordinates are defined first (in their defined order), followed by all other Data Items (in alphabetical order). In UNIX and Windows based Systems, Data Items used as Ordinates are defined first (in alphabetical order), followed by all other Data Items (in alphabetical order). Ispec and Report Ordering in MCP and Windows MCP is an EBCDIC based platform and the Windows environment is ASCII based. Builder converts ASCII to EBCDIC during the generate file transfer process. Because of this difference, Ispecs and Reports appear differently in lists in Developer and MCP Runtime, when their names contain numeric characters. MCP Runtime displays the name containing the numeric after those with no numeric characters. Developer displays the name containing the numeric before those with no numeric characters. For example, MCP displays Ispecs in the following order, ABCD, ABC2, while Developer displays them in the opposite order, ABC2, ABCD. You must also be aware that the sort order is based on the collating sequence of the native character set for the host platform on which you are running the application. This affects the order in which items are stored and retrieved from the database. You should make appropriate allowances for this if your application is to run on both MCP and Windows operating systems. Defining a Report Reports are an important way to present to the user information derived from the database. Reports are made up of Frames, which define the appearance of each part of the Report, and Report Logic, which performs processing for the Report. Report output can be viewed at the workstation or directed to a printing device. Adding a Report is described below. To modify, delete, move or copy a Report, follow the instructions for modifying, deleting, moving and copying an Element described earlier in this section. To add a Report using the Model Directory: 1. Click on the Business Segment or Activity to which you are adding the new Report. 2. Select Report from the Add menu. The Report Options dialog box is displayed. 3. Fill in the available fields. Not all fields are available for all types of Reports. The fields and expected input are described below. 4. Click on the OK button to complete the process of adding the Report, or click on the Next button to add another Report. After adding a Report you would specify the Frames that comprise it. See Defining a Report Frame for instructions on defining Report Frames. The fields in the Report Options dialog box are:
77 Defining the Business Model Name Identifier for the Report. This field is alphanumeric. If Long Names are allowed for the Model, the name can be up to 30 characters. If Long Names are not allowed, the name cannot exceed ten characters. If the Model uses Long Names, an additional shorter name field appears below the Name field. The maximum length of this field is ten characters. The short name defaults to the first ten characters of the long name. Review Naming Elements: Reserved Words before naming a new Report. Notes: For MCP based Systems, using a name that is the same as an entrypoint implemented in an Enterprise Application Environment library (such as LINCSUPPORT) will cause the COBOL syntax error ILLEGAL DUPLICATE NAME when you generate the System. If this occurs, you must rename the Report. Ensure that the report names, global logic names and data item names must not use the format <ispec>-rec. This conflicts with an internal naming system. Using the format <ispec>-rec for report names, global logic names and data item names results in a generate failure. Description A short description of the Report. Author Your name to identify you as the author of the Report, for use in listings. Alphanumeric, maximum length 20 characters. No validation is performed on the value entered in this field. Standard Heading Check this check box to include a standard heading on each page of your Report output. The standard heading includes the Report name, a page number, the time at which the Report was run, and the time of its last compilation. For DP Reports standard headings are disabled so that they do not precede the DEPCON headings. Blank When Zero Check this check box to specify that spaces are to be printed if the value of a Frame Data Item is zero. The default is specified by the value in the Full Suppression check box on the Business Segment Options dialog box
78 Defining the Business Model Floating Sign Check this check box if the sign is to be printed immediately before the first significant digit of the value of the signed Data Item in the Report. Inquiry Only Check this check box to prevent Report logic from updating a database. The following LDL logic commands will not be allowed: FLAG; FLAG.ARRAY; AUTO; AUTO.ENTRY; AUTO.ARRAY; PURGE; When you check the Inquiry Only check box, all existing logic within the Report will be marked as Not Validated. You must re-validate this logic before you can run the Report. The use of any of the above LDL commands will be indicated as a logic error. Video Capable Check this check box to direct Report output to a video device in addition to the device specified in the Default Device field. Reports can be viewed on a video device unless the Default Device is set to DI (Direct). Gen. To All Lang Check this check box to specify that the next generate of the Report is to include all languages you have defined for your Specification. Do not check this check box if you want to generate the Report in one language only. This check box is ignored for single language systems. Transferable This option relates specifically to host-based Systems. It is available in Developer to allow you to maintain a value for use when you transfer a system Specification to a mainframe host using the LCIF files. Check this check box if you want this Report to be available for transfer from one host system to another. Checking this check box also means that this Report will be generated when the Generate all transferable Reports field on the host Report Batch Generate screen is used. By default this check box is not checked
79 Defining the Business Model Updates Allowed This option relates specifically to host-based Systems. It is available in Developer to allow you to maintain a value for use when you transfer a system Specification to a mainframe host using the LCIF files. If you are using the host-based Security Module (LSM) to control access to functions within Host Builder, use this check box to specify whether this Report is allowed to include logic commands that can update the database (such as AUTO; FLAG; and PURGE;). Check this check box if you want to allow logic commands that update the database to be included in this Report. By default this check box is checked. Default Pitch Use this drop-down list to select the default number of characters per line for printed Report output. Valid values are 220, 160, 132, 99, 66, and 49. The default value is 132. Note: If a column width of N is required, where N >= 132, ensure that the first line on your page has characters in either the N-1 or Nth character positions. For example, for a column width of 132, you need to place a character in either the 131 or 132 character positions. If not, the report will be generated with an 80 character pitch. Default Device Use this drop-down list to specify the default device or method to be used for Report output. The options are: Value blank DI DP EX FL LP RP TP VD Device Type or Method Device to be decided at run time Direct Reports DEPCON Report Extract file Fast load Report Line printer (default) Remote printer Terminal printer Video device Note: Selecting the FL value enables the Fast Load button. Use this button to access the Fast Load Options dialog box
80 Defining the Business Model Decimal Character Select a radio button to specify the character to be used as a decimal delimiter in numeric fields. The options are Dot (period), Comma, and Default. Default means that the value for this field will be the value specified in the Business Segment Options dialog box. Default Line Spacing Select a radio button to specify whether the number of blank lines between printed Frames of the Report. The options are Single (no blank lines), Double, and Triple. Separator Select a radio button to specify the type of separator to be used to delimit groups of three digits in whole number values in the Data Item field at run time. The options are Default, None, and Character. When you select the Character option, enter the type of character you wish to be used in the box. This character may be any value except alphabetic characters or digits. A value of N in this field means that no separator character is to be used. Default means that the value for this field will be the value specified in the Business Segment Options dialog box. Currency Sign This field indicates the character to be used with EDIT;$ Data Items on the Report. The default is $. Integrity Enter Y in this field if you want Developer to lock the dataset when the Report is updated. This ensures processing integrity and a fully synchronized recovery. Setting Integrity to Y may have a major impact on the performance of your system. See Integrity for more information before setting this field. Line Length This field indicates the maximum line length for the Report print line and sets the number of columns displayed when defining Report Frames for the Report. The print line length represents the physical line length, expressed in 132 pitch characters, that would fill a line. Numeric, maximum length 3 digits. Allowed values are from 80 to 260. The default value is 132. National Item This field applies to ClearPath MCP and UNIX operating system target hosts only
81 Defining the Business Model If you select: Yes, all the alpha Data Items in the Report with the Default National Item attribute are National Items. No, alpha Data Items with the Default National Item attribute are non-national Items. Default, alpha Data Items with the Default National Item attribute inherit the setting from the Business Segment Dialog box. This option can be overridden for individual Data Items. National Items use the CCsversion collating sequence specified by the CCsversion field on either: Default DASDL Business Segment Options for ClearPath MCP Environment Business Segment Options for the UNIX Operating System Note: When the target host is a UNIX operating system, care must be taken when applying the National Item attribute to Data Items used as Ordinates in Profiles. Each Profile maps to an index within the database. Defining an item as a National Item can increase its length within an index, by a factor of two or more. This could cause ORACLE error Maximum key length exceeded. This error is due to an ORACLE restriction that an index cannot exceed roughly onehalf (minus some overhead) the available data space in a data block. The data block size is specified at the creation of the database in the initialization file and cannot be changed. If this limit occur you can either remove the National Item attribute or recreate the database with a larger data block size. Critical Point SD This field is for use in Reports that include the CRITICAL.POINT; command. It specifies the Group System Data Item to be used in conjunction with a Critical Point in the Report. The name must not begin with a number or a minus sign (-). The Group Setup Data Item must also be declared in the Report Logic or in the Setup Data Item List for the Report. Able to be run as Sub/Coroutine Check this check box to enable a Report to be run like a subroutine synchronized with the Ispec or Report Logic. This option affects the running of a Report in Developer Test only. Report Parameter Name Specify the name of a Setup Data Item or Global Setup Data Item that will hold parameter data to be passed to your Report at run time
82 Defining the Business Model The parameter value can be an alphanumeric Data Item or a literal, with a maximum of 254 characters. If you use a Setup Data Item, it must be declared with an initial value in the logic of the Report. Report Uses 2PC Select a radio button to specify whether the Report will use Two-Phase Commit. The options are Yes, No, and Default. Default means that the value for this field will be the value specified in the Business Segment Options dialog box. Extract Path Enter or browse for the path where Extract files for the Report are to be stored. You may choose a drive or a directory other than that of the Developer Test database files. Fast Load Use the Fast Load button to access the Fast Load Options dialog box. This dialog box enables you to enter load options for the Report. See Defining a Fast Load Report Defining a Fast Load Report Using Fast Load Reports, you can load large volumes of data into Ispecs (and their Profiles) in your OS 2200 based Database. They do not perform the same functions as standard Reports, which can perform user logic, examine and report on Database content, and so on. To define a Fast Load Report: 1. Click on the Business Segment or Activity to which you are adding the new Report. 2. Select Report from the Add menu. The Report Options dialog box is displayed. 3. Select FL from the Default Device field. 4. Click the Fast Load button. The Fast Load Options dialog box is displayed. The fields and expected input are described below. 5. Select the Ispec and the Input file format. Click the OK button. You are returned to the Report Options dialog box. 6. Fill in the available fields. Not all fields are available for all types of Reports. 7. Click the OK button to complete the process of adding the Report, or click on the Next button to add another Report. 8. If you specified the Input file format as external, associate the input format to your Ispec, by using the LOAD; command in the Logic Editor. You cannot add Frames or Data Items to a Fast Load Report
83 Defining the Business Model Fast Load options for the Generate Set can be defined on the Fast Load Report Options for OS 2200 dialog box in the Systems Directory. See your Unisys Enterprise Application Builder Guide for full details. See the "Fast Database Load" section in your Unisys Enterprise Application Runtime for Clearpath OS 2200 Administration Guide for further details of using Fast Load Reports
84 Defining the Business Model The Fast Load Options dialog box contains the following fields: Ispec to Load From the drop-down list, select the name of the Ispec to be loaded. Once an Ispec has been associated with a Fast Load Report it cannot be deleted from the Model or its usage type changed to input. Input File Format This field is disabled until an Ispec is selected in the Ispec to load field. Select one of the following options: Internal If the input file format is Internal, the only further action that is required is to generate the Report, as the relationship between the input record and the database record is already defined. To create an Internal format file, use the SQL UNLOAD... INTERNAL command from a similar table. If you select the Internal radio button, the input file must be Internal format. External This is the default setting. If the input file format is External, you must create logic in your Fast Load Report that includes the LOAD; logic command. The LOAD; command associates input fields to the target Ispec fields. The input file must be in a format compatible with the RDMUTL LOAD EXTERNAL command. You cannot override this option at runtime. For more details about Internal and External format files, see the UDS RDMS 1100 Administration Guide. Defining a Report Frame Adding a Frame to a Report is described below. To modify, delete, move or copy a Frame, follow the instructions for modifying, deleting, moving and copying an Element described earlier in this section. To define a Frame for a Report using the Model Directory: 1. Click on the Report to which you want to add a Frame. 2. Select the Frame option from the Add menu, or click on the Add an Element button. The Frame dialog box is displayed 3. Fill in the available fields. The fields and expected input are described below
85 Defining the Business Model 4. Click on the OK button to return to the Model Directory, or click on the Next button to add another Frame to the Report. After defining a Report Frame you would specify the Data Items that belong to it (see Defining Data Items), its layout (see Painting Screens), or its logic (see Using the Logic Editor). The fields in the Frame Options dialog box are: Frame Number Key in a two-digit number that uniquely identifies the Frame within the Report. Description A short description of the Frame. Alphanumeric, maximum length 30 characters. Author Your name to identify you as the author of the Report Frame, for use in listings. Alphanumeric, maximum length 20 characters. No validation is performed on the value entered in this field
86 Defining the Business Model Limits The following table contains a summary of the limits for Reports for each target host. Limit OS 2200 MCP UNIX/Windows Reports in a System No limit No limit No limit Logic Lines for a Report Frame 999, , ,999 Database Commands No limit 19 No limit References to Ispecs (all Events count as 1 reference) from a Report Performable Global Logics in a single Frame Performable Global Logics in a Report Display items in one Report Frame Display and Data Items in one Report Frame Global Setup Data Items in a Report Setup Data Items in a Report Frame x64K bytes 64K bytes - 64K bytes 64K bytes Size of generated Report code System System System Files Used in a Report System System System Extract files in a Report Physical size of Extract files created within a Report 262,143 tracks/ positions No limit Size of Extract file (Extracted Frame, 80-byte records) No limit Expected number field to 99,999,999 No limit Size of Extract file (Ispec) No limit Expected number field to 99,999,999 No limit Attached Reports running at one time for a System Standalone Reports running at one time for a System 150 System System System Sorting No limit Sort memory 999K words, Sort disk 999,999K words No limit
87 Defining the Business Model Limit OS 2200 MCP UNIX/Windows Size of RIP file card equates 1,990 characters Note: Although the maximum number of lines of logic is limited to 999,999, you can access only 32,768 by dragging the scroll bar. If the number of lines of logic exceeds 32,768, the scroll bar is reset to line one. This limitation is applicable for all the types of logic. Number of Logic Lines for a Report 999,999 lines for each Frame, and 999,999 lines for Main logic. In practice, in OS 2200 based Systems, the limits are similar to Ispecs, except that UCS Reports have a much larger limit. Setup Data Items in a Report Frame in MCP based Systems A separate limit of 64K bytes applies to Setup Data Items with initial values and Setup Data Items without initial values. Database Commands In OS 2200 based Systems, there is a maximum of 19 levels of database commands, that is 19 levels of DETERMINE; or LOOK.UP; loops. If you exceed 19 levels, Enterprise Application will abort with a warning message highlighting the cursor name, and a dump of the cursor stack. You can find the cursor name in your Ispec or Report symbolic, from which you can find the point in your logic at which the limit was exceeded. In MCP based Systems, there is a limit of 999 references to other Ispecs (all Events count as one reference) from an Ispec. Files Used in a Report on OS 2200 based Systems The SORT program is used, and is subject to its particular limits. The sort sizes are created in the Report Runstreams. If these are insufficient for a particular Report, manually change these assignments. Physical Size of Extract Files Created Within a Report on MCP based Systems If the Extract is a Frame, a limit of 99,999,999 records applies (set on the Extract File Options screen). If not an Extract Frame, the file size is taken from the value of the Expected Number field for the Ispec (limit of 99,999,999 records set on the Extract File Options screen)
88 Defining the Business Model Using DEPCON Reports This section describes the method for defining and using DEPCON Reports in your System. The DEPCON application is a comprehensive print management and file distribution solution for mixed platform networks. The DEPCON application ties an enterprise together, including all PCs and enterprise servers, into a single printing environment. The primary function of the DEPCON application is to automatically route print files from any supported platform to any other supported platform. However, the main advantage when paired with Enterprise Application Environment is to increase flexibility in designing and printing Reports. DEPCON software is needed to both design and print DEPCON Reports. It is the responsibility of the DEPCON administrator to set up DEPCON for use with Developer. This includes setting up appropriate Print Attributes (PAs) with either the supplied LINC Data Dependant Attribute (DDA) or user written DDAs. See the DEPCON Software Configuration and Operations Guide for detailed instructions on setting up DEPCON for printing. Preparing Developer for DEPCON Reports To enable access to the DEPCON Wizard from Developer the following text must be entered in the LINC.INI file: [DEPCON] enabled= Y DFFFilter= *.dff DFFDirectory= <DFF Directory> DEPCONDirAlias= <DEPCON DFF Directory Alias> Parameter enable DFFFilter DFFDirectory DEPCONDirAlias Description Gives you the option of enabling the DEPCON wizard or keeping it hidden (Y or N). Sets the file filter for locating DEPCON Form Files (DFFs). Sets the directory to start searching for DFFs. Sets the alias for the directory where DEPCON finds DFFs for printing. The entered value needs to be an alias as defined in DEPCON, and can be up to 16 characters long. See your DEPCON documentation for details on setting up an alias. The example values given above, in addition to a valid entry for DFFDirectory, should be sufficient to enable DEPCON Reports to be generated by Developer
89 Defining the Business Model Defining a DEPCON Report To define a DEPCON Report in Developer: 1. Create a Windows Metafile (WMF) using any off the shelf application you prefer. This file should contain the design and layout of your Report and will be used as the template. 2. Add the relevant Data Items and fields to the.wmf file using the DEPCON File Format Utility (DFFU) and save as a DEPCON Form File (DFF). 3. Import the DEPCON Form File into Developer using the DEPCON Import Wizard. This process creates the necessary logic for printing the basic DEPCON Report. 4. Enhance the Report logic by adding your own logic as needed. These steps are explained in further detail below. Create a Windows Metafile You may use any application that you prefer to define a Windows Metafile (.WMF) file. Many off the shelf applications allow files to be saved in.wmf format. This Report template needs to be saved with a.wmf extension for use by DEPCON and the DFFU. Use your chosen utility to define all the fixed text fields and borders for variable text fields on the printed Report. Add the Relevant Data Items and Fields To define the Data Items and fields in the DEPCON Form File Utility (DFFU): 1. Start the DEPCON Form File Utility, either from the Start Menu or from the Tools menu in DEPCON. 2. Select Load a Metafile from the Edit menu. 3. Locate the.wmf file that you previously created and load it into DFFU. 4. Select Enterprise Application Environment DFF File from the Options menu. 5. Click the Add Field button on the tool bar. 6. Draw a field on the form. The Property Inspector box is displayed. 7. Use the Property Inspector box to name the field, assign the relevant Data Item, and create multiple rows or columns, as needed. Fields with a LINC name defined will be used in the Report. When a field is defined with a Data Item Reference and Same.As Reference, a Data Item is created for the Report. Note: References are validated when the DEPCON Wizard is used and not within the DEPCON Form File Utility. The Data Item is assigned the following attributes: Name based on the entry in the Data Item Reference field Edit assigned Alpha
90 Defining the Business Model Length calculated on the size of the field and the font specified Same As based on the entry in the SAME.AS Reference field All other attributes for the Data Item are set to their default settings. The following rules apply to assigning Data Item attributes: If the name of the Data Item is a Dictionary Data Item, it will be used to define the Data Item. If the name of the Data Item is qualified (for example, CUST.NAM where NAM is the Data Item and CUST is the Ispec it belongs to) and matches an existing Data Item (in an Ispec or the Data Dictionary), then all details except length are taken from the existing Data Item. The length is calculated based on the size of the field and the font specified. If the SAME.AS Reference field is defined and is a valid Data Item, then details are taken from that Data Item. If the Data Item cannot be created, an error is written into the logic describing the problem. The error is written as commented text. A message box indicates how many errors there were and the frames they were placed in. The DEPCON Wizard uses the first multiple row field on the page and adds all other fields with the same number of rows to make up a table. These fields are put into the details section of the Report (Frame 10). All the fields above the table are put in the header (Frame 2) and all fields below the table are put in the footer (Frame 3). However, if your Report has more than one table, you will need to enhance the Report structure manually. Note: You can have multiple row fields in the Footer, but not in the Header frame. Multiple column fields used without multiple row fields, however, are not put in the Detail frame. 8. Repeat steps 6 and 7 until you have entered all the fields you require, then save as a.dff file. Import the DEPCON Form File When the defined DFF is imported into Developer, Report Frames and Report logic are automatically generated. One important generated file is Frame-00, which calls the DEPCON Control Frame and creates the database read loop with DETERMINE; ACTUAL and ON.CHANGE; logic commands. Another important generated Frame is the DEPCON Control Frame. This Frame contains the DEPCON Header Information that DEPCON requires to print the Report as intended. To import a DFF into Developer using the DEPCON Wizard: 1. Start Developer. 2. Select the Business Segment to which you are adding the Report and then select DEPCON Report from the Tools menu. The Open DEPCON Form File dialog box is displayed
91 Defining the Business Model 3. Browse to the appropriate.dff file. The DEPCON Wizard is started and the Select Database Ordinates dialog box is displayed. The Data Items (and corresponding DFF field names) for which you defined fields in the DFFU, are displayed in the left hand pane. Initially the right hand pane, labelled Database Ordinates, is empty. 4. Select the desired Data Item in the left pane and click Add to display it in the right hand pane. Note: The Add button is only enabled if the selected Data Item exists in the Business Segment. The right hand pane displays the Data Items you have defined as Database Ordinates. The relative positions can be changed by highlighting an entry then clicking the Up or Down buttons. Note: It is important that this field displays the Database Ordinates in the same sequence they have been defined in the Component, Event, or Profile your Report is to reference. 5. When you have added the appropriate Data Items to the Database Ordinate pane, click Next. If the selected Ordinates do not exist in any Components, Events, or Profiles in the Business Segment, an error message is displayed. You will need to check the Data Items that you entered in the DFFU. If they are incorrect, you may need to start the DFF Utility again, as described in Add the Relevant Data Items and Fields. Otherwise, the Select Report Component dialog is displayed. The left pane displays the Database Ordinates that you selected. This field is displayed for information only, and is disabled. The right hand pane displays Components and Profiles that match the chosen Ordinates. 6. Select the database structure you wish to use for the Report Logic in the right hand pane. If you select <NONE>, no explicit database read loop will be created in the logic of Frame Click Next. The Report Options dialog box is displayed. You can change the name of the Report, the description, and the number of the automatically generated Report Frames. If the Report you are creating already exists, you should select to leave, replace, or add extra logic to the logic already in Frame-00. The default is to leave it. You may also set which Report Frames are used for the DEPCON Control, Heading, Footing, and Detail lines Frames. Setting a Frame to spaces prevents the DEPCON Wizard form generating that Frame. 8. Click Finish to generate the DEPCON Report
92 Defining the Business Model Enhance the Report The basic structure of the Report has now been automatically generated, providing a skeleton for further development. While the generated Report should run, it is unlikely to produce the required result. There is no further restriction on what logic you can add. You are free to access as many structures as you like, using any logic commands. However, note that since there is no page layout, logic commands which rely on a page format are meaningless in DEPCON. For example, ;GLB.LINECOUNT or ;GLB.PAGECOUNT are some of the commands that have no meaning in a DEPCON Report. If you wish to alter any of the Report options that have been automatically set, see the relevant sections under Defining a Report. Maintaining DEPCON Reports Once a DEPCON Report is added to the Business Segment you can maintain it in the same way as any other Report. After the initial creation of the Report and some testing, it is possible that the output may need to be amended. In this case, you need to start again at step one in the Report development cycle, even though you can keep the base template and DFF file from the previous effort. After saving the DFF file, Developer can re-import the file definitions. Automatic maintenance of a DEPCON Report is not possible as there is no direct link between the Report and the DFF that defines how it is printed. The only link between the Report and the DFF file definitions are the DEPCON field names themselves. However, the wizard is able to add, remove, or update any of the Data Item references in the header, footer, and detail Frames automatically. That is, when the wizard encounters: A new DEPCON field, it adds the field definition to the painted Frame. The same DEPCON field, it changes the field attributes appropriately (for example, the Data Item reference, the SAS; association or the field length). The following Report options are set by the DEPCON Wizard, and cannot be changed: Option Value Report Options Default Device Default Line Spacing DP Single Default Pitch 132 Line Length 255 Standard Heading Video Capable Not set Not set
93 Defining the Business Model Option Value Report Frame Data Item Options Display attributes: Bright Big Under Underscore Reverse Upperscore Reset Pitch Control Codes Numeric attributes: Decimal Character Separator Blank When Zero Floating Sign All not set Pitch set to 132 All set to Default When you are painting a Report do not exceed the line length of 255 characters. DEPCON only receives a maximum of 255 characters per line. You may set the remaining options or change their defaults as required. After a print job has been delivered to DEPCON, it is possible to view the print output in preview mode before it is printed. Commands in the LINC Data Dependent Attribute The following commands are defined in the Supplied LINC Data Dependent Attribute (DDA) and can be used to control print output by simply painting the commands, starting in column one of the data file: $BARCODE$ $BITMAP$ $DEBUG$ $DEPHDR$ $FONT$ $NEWDFF$ $NEWPA$ $NEWPAGE$ $XQTFORM$ Notes: The version of LINC DDA released with Developer 3.2 has enhanced error checking. As a consequence, the printing of lines that do not conform to the syntax rules is suppressed
94 Defining the Business Model The syntax items introduced in the 3.2 release, $BARCODE$, $BITMAP$, $DEBUG$, and $FONT$, are not automatically generated by Developer's DEPCON Wizard. The syntax must be added after the wizard is run. These commands are explained in further detail below. $BARCODE$ Use this command to print barcodes. DEPCON supports and enforces specific barcode dependent features, such as automatic checksum generation and size limitations. $BARCODE$ barcodestyle "field name" field value The following variations of barcodestyle have been defined: CODE39 PostNet 2of5 CUST_$BARCODE$ This item is called by LINC_$BARCODE$ after the standard barcode definitions have been processed. User defined barcode definitions can be entered in the CUST_$BARCODE$ item to make upgrades to future versions of the LINC DDA easier. Changes to the LINC DDA require the DDA design key. Following is an example of DDA code: If field_type EQ "BarcodeStyle" Begin >Print Barcode BarcodeStyle; file_value Field Vairiable=field_name >Set Variable num_result=$numericresult End Block $BITMAPS$ Use this command to position graphic files, such as logos and signatures. DEPCON scales the file to the size of the field. $BITMAP$ "field name" graphicsfilename ["directory alias"] The default directory alias is $CommandFile. This command supports the following formats: BMP DFF EMF WMF
95 Defining the Business Model $DEBUG$ This command controls the level of error message display: $DEBUG$ Level Max-Error Level specifies the level of diagnostic detail: 0 - no debug messages. 1 - messages are inserted in the print debug file, when the print debug is turned on in the physical printer configuration. 2 - same as 1, plus messages in event log. This is the default setting. 3 - same as 2, plus variable dump included in print debug file. 4 - same as 3, plus popup message for each error. Max-Error specifies the maximum number of error messages per print job. The default setting is 20. $DEPHDR$ Lines begining with this command are used to pass variables to DEPCON. One use for them is for file masking. They are ignored by the LINC DDA, but they are used by File Masks in DEPCON to route print output. $DEPHDR$ token [token] Tokens can be separated by spaces or commas. To include spaces or commas as part of a token you must enclose the token in double quotes. DEPCON accepts a maximum of ten tokens with a maximum total length of 170 characters. Multiple tokens on the same line are accepted. You can have multiple $DEPHDR$ lines but they should be contained in the first 4000 bytes of the print file. The DEPCON Report Wizard generates $DEPHDR$ lines. The lines include information such as the system and report name and the user running the report. $FONT$ This command changes the currently active font attributes. Font attributes are normally associated with the field in the form file. To enable dynamic font changes the font attributes for the relevant fields must be set to none. DEPCON then uses the current active font to display the field. $BITMAP$ fontidentifier The following variations of fontidentifier have been defined: COURIERNEW-R-10 COURIERNEW-B-10 COURIERNEW-I-10 COURIERNEW-BI
96 Defining the Business Model CUST_$FONT$ This item is called by LINC_$FONT$ after the standard font definitions have been processed. User defined font definitions can be entered in the CUST_$FONT$ item to make upgrades to future versions of the LINC DDA easier. Changes to the LINC DDA require the DDA design key. Following is an example of DDA code: If field_type EQ "COURIERNEW_R_10" Begin >Execute Windows Font Change Font=(Courier New, 10.0,,,,R=0,G=0,B=0) >Exit End Block $NEWDFF$ For multiple paged printouts that also include different page layouts, it is possible to code a runtime control for switching to another DFF: $NEWDFF$ "<DFF Filename>" "<Directory Alias>" [REPLACE] When REPLACE is specified DEPCON replaces the current Top of Form command with the new DFF file. If the DFF contains a WMF form, then this will be used on the following pages until either a new Print Attribute is loaded (unconditionally replacing the Top Of Form command), or another $NEWDFF$ command with the REPLACE field is processed. When the REPLACE field is not present the Top Of Form command is not changed. Note that when the $NEWDFF$ command is processed, the current Top Of Form command, if it exists, has been executed already for the current page. This command can be used multiple times on a page to change the field definitions. In this case, users only need to include the REPLACE field at the start of a file. It is possible to jump to as many forms in succession as desired. $NEWPA$ This command changes the current Print Attribute (PA) when the following command is processed: $NEWPA$ <print attribute name> [NOW] When NOW is not present, the PA change will be queued and executed at the next page break. When NOW is present, the PA will change immediately. The print will continue at the same logical page. Notes: You cannot change all attributes of a page immediately, for example, the page orientation. If the number of logical pages of both the old attribute and new attribute are not the same, then the result can be unpredictable
97 Defining the Business Model If the new PA specifies a Data command file, then this is executed. Also, if a Top Of Page command is specified in the new PA, then it will be set as the new Top Of Page command. If the PA does not specify a Top Of Page command then the current command file will be cleared. See the DEPCON documentation for a description of command files in a PA. If the new PA specifies a DDA then the current DDA will be replaced, and as a result, so could the current DFF template. $NEWPAGE$ This control statement will execute a form feed to a new output page. A $NEWPAGE$ command is written to the output file when an ADVANCE; NEW.PAGE or BEGIN.PAGE; CLEAR command is executed in the Report logic. $XQTFORM$ Use this control statement to execute a form command file when DEPCON drivers are used. $XQTFORM$ <filename.ext> ["<directory alias>"] [BINARY] The filename is required to be in 8.3 dos format. It can be a.wmf,.emf,.dff or.pcl macro. The <directory alias> field is optional. If it is not present the $CommandFile entry in the LINC.INI file is used. If it is present it must have the value of a directory alias as configured in DEPCON. If either the directory alias or filename do not exist then there will be an error message when printing the data. The BINARY option specifies that the file is a binary file. The BINARY option is only meaningful for PCL macros. When this control statement is found, the command file is executed and the resulting form is painted on the page. Typically, this command will be used at the start of every page. For example, Reports generated by the DEPCON Wizard have this command painted on the header Frame. Routing DEPCON and Non-DEPCON Reports in DEPCON A Report that has not been imported into Developer using the DEPCON Wizard can also be routed to, and printed by, DEPCON. This involves writing logic and painting the Frames to output the necessary DEPCON headers. It is not necessary to change the default device to DP in order to route output to DEPCON, as the header information is sufficient
98 Defining the Business Model Any report destined for output to DEPCON can pass DEPCON control information through the first line of data in the print file, starting with the $DEPHDR$ control image. This header information is automatically generated by the Developer DEPCON Wizard, but it can be added manually by the user. This is achieved by painting a Frame with the necessary header information. DEPCON uses File Masks to identify incoming print jobs. This process assigns PAs to the print jobs and assigns which printers they go to. If you wish to use the File Mask information as defined by the DEPCON Wizard, then the painted header information should match the following: $DEPHDR$ <DEPHDR-T1> $DEPHDR$ <DEPHDR-T2> $DEPHDR$ <DEPHDR-T3> $DEPHDR$ "<DEPHDR-T4>" $DEPHDR$ <DEPHDR-T5> $DEPHDR$ <DEPHDR-T6> $DEPHDR$ <DEPHDR-T7> $DEPHDR$ <DEPHDR-T8> $DEPHDR$ <DEPHDR-T9> $DEPHDR$ "<DEPHDR-T10>" where quotation marks are placed around variables that you expect to contain spaces, and the Data Items are defined as the following: DA;DEPHDR-T1 ED;A LE;10 : System name DA;DEPHDR-T2 ED;A LE;10 : Report name DA;DEPHDR-T3 ED;A LE;10 : Report language DA;DEPHDR-T4 ED;N LE;13 : generation date and time DA;DEPHDR-T5 ED;N LE;10 : mix number DA;DEPHDR-T6 ED;N LE;3 : number of copies DA;DEPHDR-T7 ED;N LE;2 : save days DA;DEPHDR-T8 ED;A LE;17 : initiated station DA;DEPHDR-T9 ED;A LE;17 : user DA;DEPHDR-T10 ED;A LE;50 : print banner When the user defines a File Mask in DEPCON the information contained in the $DEPHDR$ headers are read into the File Mask as the fields User Tag 1 through 10. The order of the $DEPHDR$ variables must match the order of User Tags as defined in the File Mask. When the mask matches, the print output is assigned to a PA and a printer. You are free to change the File Mask if desired, but it is your responsibility to make sure the information in the DEPCON File Mask matches the attributes supplied in $DEPHDR$. See section 5, Setting Up the DEPCON Application to Route Files Automatically, in the DEPCON Software Configuration and Operations Guide. Dynamic Display in DEPCON Reports It is possible to manipulate the Data Dependent Attribute (DDA) of a DEPCON Report to change the Report display attributes at the time of printing. In some cases, Reports will need to display text in variable fonts, colors, or other attributes depending on the data that is sent to DEPCON. For example, consider a table of values in which positive numbers are printed in black and negative in red
99 Defining the Business Model If you intend to include dynamic attributes, and when you are defining the field in DEPCON, do not provide a default font. Invoke DDA Logic to set the font depending on the contents of the field at runtime. When DEPCON processes incoming data, the DDA command is invoked and places the data into the appropriate field variable. Any operations that the DDA is instructed to do will be performed at this point. DEPCON will then print the data in the correct place on the page, according to the definition in the DFF. To be compatible with Developer, DEPCON provides a generic LINC DDA, which can be used to process any DFF that you create. Each Report created does not need to have its own copy of this DDA, the one default LINC DDA can be shared. However, this DDA can be copied and tailored by the user. For example, the LINC DDA can be enhanced to process Output Codes, or to dynamically change fonts or colors depending on data in the output file. The DEPCON DDA key is required to design DDAs, or even to tailor or copy the default LINC DDA. If required, each Report can be associated with a specific DDA, but this is the user s responsibility to configure. This requires configuring File Masks in DEPCON that apply a PA, with its associated DDA, to a given print job. See section 6, Customizing Print Data, in the DEPCON Software Configuration and Operations Guide for detailed instructions. Printing DEPCON Reports There are different set up procedures required for printing DEPCON Reports from each host type. For Runtime on MCP or 2200, see your Clearpath HMP Series, A Series, and 2200 Series DEPCON Software Configuration and Operations Guide. For Developer Test or Runtime for the Windows operating systems, you need to set up a DEPCON Queue and an LPR/LPD printer as follows: 1. On the Windows operating system machine where the System runs: Install TCP/IP Printing, if it is not already installed Create an LPR/LPD printer Set the printer to allow 255 column lines 2. In DEPCON define a print queue that receives the Report and prepares it for printing: Define a Communications Path Define a Transfer Attribute Define a Physical Printer for receiving printouts Define a Physical Printer for printing the final Report Import the LINC DDA Define a Print Attribute Define a File Mask
100 Defining the Business Model These steps are explained in further detail below. When you have completed these steps, you will be able to direct Reports to the DEPCON queue. In DEPCON you can preview the final Report before you print it. Note: Due to an issue with auto pagination, it is recommended you: Configure the printer setup for Windows to set the DEPCON LPD device for continuous forms (US std fanfold) without the line break, through the device settings for the printer. If you do not do this, Windows automatically paginates according to the device characteristics, which is normally 66 lines per page. Set the Report page length by setting the GLB.FORMDEPTH, in logic, to a high number, for example Installing simple TCP/IP services 1. From the Start menu select Control Panel. 2. Double-click on Network Connections. 3. From the Advanced menu select Optional Networking Components. 4. From the Windows Optional Networking Components Wizard check the option Networking Services from the components list and click Details. 5. From the Networking Services window, check the option Simple TCP/IP services and click OK. 6. From the Windows Optional Networking Components wizard click Next. This will add Simple TCP/IP component to the Networking Services. 7. Reboot your system to start the TCP/IP printing service. 8. After restarting the machine, click the Start button, select Administrative Tools and then Services. 9. From the list of Windows Services, select Simple TCP/IP Services. 10. Right-click the Simple TCP/IP Services and select properties. 11. In the Properties window, set the Startup type to manual and click OK. Installing TCP/IP Printing 1. Click the Start button, and select Settings, then Control Panel. 2. Double click Network. 3. Select the Services tab. 4. If Microsoft TCP/IP Printing is not in the list of Network Services, click the Add button. If it is in the list then it is already installed and you can skip to Creating an LPR/LPD Printer. 5. Select Microsoft TCP/IP Printing from the list presented and click OK. 6. Enter the path to the Windows installation files and click OK. 7. When the installation is complete, click OK on the Network notebook. You will need to reboot your machine for the TCP/IP printing service to be started
101 Defining the Business Model Creating an LPR/LPD Printer 1. Click the Start button, and select Settings, then Printers. 2. Double-click Add Printer. The Add Printer Wizard is started. 3. Select My Computer and click Next. 4. Click the Add Port button. A list of printer ports is displayed. 5. Select LPR Port from the list, then click the New Port button. The Add LPR Compatible Port dialog is displayed. 6. Enter the name or address of the server providing lpd in the corresponding field. 7. Enter the name of the queue in the second field. This is the name to be used later in the DEPCON set up. For example, you could enter DEPCONQueue. 8. Click OK, then Close, to return to the Add printer Wizard. Click Next. 9. Select Generic as the manufacturer and Generic/Text Only as the printer. Click Next. 10. If asked, select to keep existing driver and click Next. 11. Enter a name for the printer. Click Next. 12. Select Not shared. Click Next. 13. Do not print a test page. Click Finish. 14. If the printer driver was not previously installed and you were not prompted at step 10, you will be prompted for the path for the Windows installation files. Enter this path, then click OK. Setting the Printer Options The Windows Generic/Text Only print driver defaults to 80 column lines. To setup the printer to allow 255 column lines: 1. Click the Start button, and select Settings, then Printers. 2. From the File Menu, select Server Properties. Select the Forms tab, then check the Create a New Form check box. 3. Enter a description in the Form Description for field, such as Wide In the Measurements field, adjust the following: Under Paper Size, make the width 25.5in and the height 11.68in. Leave all Printer Area Margins set to zero. 5. Click Save Form, then OK when complete. 6. In the Printers folder, right-click the Generic/Text Only printer (as defined in Defining a DEPCON Report), and select Document Defaults. Adjust the following: For DEPCON Reports On the Page Setup tab, select Continuous - No Page Break from the list in the Paper Source field
102 Defining the Business Model On the Advanced tab: Under Paper Output, select Paper Size. In the Change Paper Size Setting field at the bottom, select Wide255 (or the name you gave to the form created in step 3). Under Paper Output, select Paper Source. In the Change Paper Source Setting field at the bottom, select Continuous - No Page Break. For non-depcon Reports On the Page Setup tab, select Continuous - Page Break from the list in the Paper Source field. On the Advanced tab: Under Paper Output, select Paper Size. In the Change Paper Size Setting field at the bottom, select Wide255 (or the name you gave to the form created in step 3). Under Paper Output, select Paper Source. In the Change Paper Source Setting field at the bottom, select Continuous - Page Break. 7. When complete, click OK. The form created in step 3 will now be the default paper size for this printer. Defining a Communications Path 1. Start DEPCON. 2. Select Configuration, then Communications. 3. Click Add/Copy Path. 4. Enter a password if required. Click OK. 5. Enter a name for the Communications Path. Click OK. 6. Select LPR/LPD as the peer type, enter * as the IP Address, and make sure Max total activities is at least Select the Server page, make sure Activities is at least Click OK and then Done. Defining a Transfer Attribute 1. Start DEPCON if not already running. 2. Select Configuration, Transfer Attribute. 3. Click Add/Copy Attribute. 4. Enter a name for the Transfer Attribute. Click OK. 5. Select the Communications Path in the Primary Path field as you defined previously, and select Transfer Enable. 6. Click OK and then Done
103 Defining the Business Model Defining a Physical Printer for Receiving Printouts 1. Start DEPCON if not already running. 2. Click LPR/LPD in the Add Printer field. 3. Enter a name for the printer. Click OK. 4. Select the Transfer Attribute that you defined previously in the Access Printer via Transfer Attribute field. Click OK. 5. Select the new printer in the list and check Printer Available in the properties area. Click Modify. 6. Click Done. Defining a Physical Printer to Print the Reports 1. Start DEPCON if not already running. 2. Click Win Pr in the Add Printer field. 3. Enter a name for the printer. Click OK. 4. Select the printer to be used in the Windows Printer Name field. This is most likely to be the printer you normally use when printing from the Windows environment. Click OK. 5. Select the new printer in the list and check Printer Available in the properties area. Click Modify. 6. Click Done. Importing the LINC DDA 1. Start DEPCON if not already running. 2. Select Tools, then Configuration Control, Import Configuration. 3. Enter, or browse for, the path to the directory where the file DDATTR.CFG is located. 4. Select Data Dependent Attribute in the Entity Type list. 5. Select LINC from the Entity Names list. Click OK. 6. If requested, click Yes to confirm the change. 7. Click Done. Defining a Print Attribute 1. Start DEPCON if not already running. 2. Select Configuration, then Print Attribute. 3. Click Add/Copy Attribute. 4. Enter a name for the Print Attribute and click OK. 5. Select LINC on the Advanced page in the Data Dependent Attribute field. 6. Select Windows Driver on the Hardware page in the Printer Driver field. 7. Click OK and then Done
104 Defining the Business Model Defining a File Mask 1. Start DEPCON if not already running. 2. Select Configuration, then File Mask. 3. Click Add Mask. 4. Enter a name for the mask and click OK. 5. Double click the new mask in the list of masks. The File Mask properties are displayed. 6. Select the Masked Fields page. 7. Select LPR/LPD in the Mask Field Name Style list. 8. If there is anything in the Masked Field Summary, select each line and delete them. 9. Select Host Queue in the Field list, EQ in the Operator list, and then enter the queue name that you defined when you created the printer on your PC (See Creating an LPR/LPD Printer above). Click Add. 10. Select the Print Attribute that you defined earlier from the list on the Print Jobs page (see Defining a Print Attribute above). 11. Select the printer to be used for Report printout in the Printer list. Click Add. 12. Click OK and then Done. Security Issues with Host Platforms that use DEPCON Printing DEPCON, or the use of DEPCON, does not present any security issue by itself. However, there may be issues for customers in the general process of moving from host-based printing to DEPCON printing. These apply particularly to OS 2200 and MCP based hosts, when supporting print distribution by and TCP/IP connected printers. This could cause the following possible problems: If you currently rely on the relative obscurity of Unisys specific terminal protocols to protect your Report output, moving to DEPCON print distribution will result in using the more conventional Internet protocols (TCP/IP) to communicate with printers and addressees. As a result, more conventional security measures will be required to avoid associated security issues. If you currently rely on port number specific filters or firewalls to protect your Report output, the change in protocols when moving to DEPCON report output will change the port numbers in use. This will cause a breach of the firewall. If your Systems are firewalled or air-gapped from the Internet, then you may experience user pressure to allow direct links to the outside world. This could result in security problems for all of your Systems, not just Reports. It could be possible for users to route Report output to unintended addressees, by mistake or by design
105 Defining the Business Model Defining a Profile A Profile is a tool for retrieving information from a database. A Profile is an index which allows records that are stored on the database in no particular order to be accessed in an orderly sequence. In addition, a Profile may read a subset of the data file which it is connected to, for example, accounts with a 30 day balance of more than $100. This is called a conditional Profile. A Profile enables you to access just those records that are required to perform a specific function. The rules for defining Profiles are: You can build any number of Profiles over the same file. You can nominate one or more Event Ispecs in a Profile (because all Events reside in the same file). You can define only one Component Ispec in a Profile (because a Component is a file). You cannot mix Components and Events in the same Profile. You cannot define a Component array Data Item as a Profile Ordinate. Adding a Profile in Developer requires the following steps: 1. Add the Profile to the Model Directory. 2. Define the Profile Relationships to its Events or its Component. 3. Define Ordinates to specify the sequence of records in the Profile. 4. Define processing logic for the Profile. Note: On UNIX and Windows target hosts, the way Conditional Profiles are implemented means that if a user inserts, updates, or deletes a record that matches the Profile's conditions, the record must be inserted, updated, or deleted in both the Ispec table and the Profile table. This is an overhead for all Conditional Profiles. Where a large proportion of the candidate records meet the conditions, it can severely impact performance. As a guideline, the condition should not match more than 10 20% of records. Instead of adding Ordinates to a Profile, an option exists to add Profile Data Items. A Profile Data Item is a Data Item of any Ispec that the Profile spans (i.e. has a relationship to). Profile Data Items are similar in behavior to Ordinates. Profile Data Items are physically stored in the profile but not as part of the index. Profile Data Items are used in MCP based Systems and in Developer Test in conjunction with the KEYONLY command as an alternative to Ordinates. Profile Data Items and Ordinates are read into memory by a KEYONLY read. In MCP based Systems, using Profile Data Items reduces the number of database accesses by reading the Data Items without having to read the Ispec records. Rules for defining Profile Data Items include: Ordinates cannot be used as Profile Data Items
106 Defining the Business Model Profile Data Items must be Usage Input-Output or Usage Output. Profile Data Items cannot be Memo Data Items or Component data arrays. However, Profile Data Items can be Component array subscript Data Items. Adding a Profile is described in the subsections below. To modify, delete, move, or copy a Profile, follow the instructions for modifying, deleting, moving and copying Elements described earlier in this section. Adding a Profile To define a Profile using the Model Directory: 1. Click on the Business Segment or Activity to which you want to add a Profile. 2. Select the Profile option from the Add menu. The Profile Options dialog box is displayed. 3. Fill in the available fields. The fields and expected input are described below. 4. Click on the OK button to return to the Model Directory, or click on the Next button to add another Profile. The fields in the Profile Options dialog box are: Name Identifier for the Profile. The name must not begin with a number or a minus sign (-). This field is alphanumeric. If Long Names are allowed for the Model, the name can be up to 30 characters. If Long Names are not allowed, the name cannot exceed nine characters. If the Model uses Long Names, an additional shorter name field appears below the Name field. The maximum length of this field is nine characters. The short name defaults to the first nine characters of the long name. Review Naming Elements: Reserved Words before naming a new Profile. Description A short description of the Profile. Alphanumeric, maximum length 30 characters. Data Description Use this field to specify the data description to be associated with Profiles, particularly Automaint Profiles which provide access to a Memo Component through multiple Ordinates. The data description is displayed instead of the Profile name on an Ispec screen when an error occurs. Alphanumeric, maximum length 16 characters
107 Defining the Business Model Duplicates Allowed Check this check box to specify that the Profile is permitted to contain duplicate Profile Ordinate values. This option is only valid for Profiles generated to Clearpath MCP hosts. Profiles generated to other hosts always allow duplicates. Once you have selected this option for a Profile, the check box is disabled, and you cannot change the information. Span EVENT Check this check box to define the Profile as having over relations to all the Usage Input/Output and Usage Output Events in the Business Segment. If you are adding a Profile this check box is enabled if the Duplicates Allowed check box is not checked. If you are editing an existing Profile, this check box is enabled if the Duplicates Allowed check box is not checked, and neither Conditions or Link if Present Ordinates are defined. Checking this check box will disable the : Duplicates Allowed check box on the Profile Options dialog box. Conditions button on the Profile Navigation box. Link if Present check box on the Data Ordinate Options dialog box. See EVENT Spanning Profiles for full details. EVENT Spanning Profiles If you check the Span EVENT check box in the Profile Options dialog box you define the Profile as having an implied over relationship to all Usage Input/Output and Usage Output Events in the Business Segment. These relations are maintained automatically and cannot be modified. Defining an EVENT Spanning Profile means that an index is generated over the EVENT table giving performance improvements when inserting, updating, or deleting EVENT records. This applies only to UNIX operating systems. This option is ignored by other hosts. Once you have defined an EVENT Spanning Profile you cannot : Allow duplicates Define Conditions Define Relations Specify a Link if Present Ordinate
108 Defining the Business Model Changing from an EVENT Spanning Profile If you reset a Profile by unchecking the Span EVENT check box all the implied over relations are retained as standard relations to the individual Events. These relations need to be maintained manually. Changing to an EVENT Spanning Profile If you change an existing Profile to an EVENT Spanning Profile all previously defined relations are removed and replaced with implied over relations to all Usage Input/ Output and Usage Output Events. You can only make this change if there are no Conditions, Duplicates or Link if Present Ordinates defined. Note: Ordinates over the Profile are dropped, and need to be added again manually. Extracting and Loading The relationships for EVENT Spanning Profiles are extracted as normal over relationships. Due to an attirbute entered in the LCIF file, Developer recognizes an EVENT Spanning Profile during a load. The incoming relations are ignored and new implied relations are established. When loading an EVENT Spanning Profile into a host other than a UNIX operating system, the relations are loaded as explicit over relations. UNIX operating system hosts recognize EVENT Spanning Profiles when they meet the necessary criteria, rather than an attribute in the LCIF file. When loading a fully extracted system these criteria will be met and the realtions are created accordingly. If a partial extract is performed from Developer which includes an EVENT spanning Profile but not all Events and there are more Events in the host system, the Profile will not be defined as spanning all Events when loaded onto the host. See Unisys Enterprise Application Runtime for UNIX Operating System Administration Guide for details of using EVENT Spanning Profiles on the host. Defining Profile Relationships To define the relationships of other system Objects to a Profile: 1. Double-click on the Profile in the Model Directory. 2. Select the Relations option in the navigation dialog box. The Relation List is displayed. 3. Select the Relation option from the Add menu. The Relationship dialog box is displayed with the name of the Profile in the Source field. 4. Fill in the available fields. The fields and expected input are described below. 5. Click on the OK button to return to the Relation List. Note: The Add and Delete functions are disabled if the relations being viewed belong to an EVENT Spanning Profile
109 Defining the Business Model The fields in the Relationship dialog box are: Target Identifier of the object for which you are defining a relationship. For example, this would be the name of an Event or a Component. Relationship Select one option from the list of valid relationships displayed. The types of relationships are: Relationship Auto Purge Flag Go To (Recall) Insert Over Reference Validate Wildcard Adds a new record (AUTO.ENTRY;) Deletes a record (PURGE;) Description Updates an existing record in another element (FLAG;) Defines the screen flow of the system (RECALL;) Inserts a record (INSERT;) Profile logic is scanned, and the relationship is formed between the Profile and the object whose Ordinates are referenced by the Profile logic. Reads a record or group of records from one or more objects (LOOK.UP; in a System) Implies an automatic LOOK.UP; in a System Defines a relationship to an object outside the System Defining Ordinates for a Profile To define the Ordinates for a Profile: 1. Double-click on the Profile in the Model Directory. 2. Select the Ordinates option in the navigation dialog box. The Ordinate List is displayed. 3. Select the Ordinate option from the Add menu. The Data Ordinate dialog box is displayed with the name of the Profile in the Source field. 4. Fill in the available fields. The fields and expected input are described below. 5. Click on the OK button to return to the Ordinate List, or click on the Next button to define another Ordinate. The fields in the Data Ordinate dialog box are:
110 Defining the Business Model Name Select a Data Ordinate Name from the drop-down list of valid names displayed. Sequence A one- or two-digit number that defines the sequence of Ordinates within the Profile. If you alter the data Ordinate sort sequence, the order of any other data Ordinates for the Profile is automatically resequenced. Descending Check this check box to specify that records are to be read from a target file in descending order. Do not check this check box if you want the records to be read in ascending order, which is the default. Link If Present Check this check box if records are to be linked to the Profile only if the Ordinate has a meaningful value. Do not check this check box if records are to be added to the Profile regardless of the value of the Ordinate, which is the default. Note: You cannot define Link if Present Ordinates for an EVENT Spanning Profile. The Link If Present check box is disabled. Adding a Profile Data Item To add a Profile Data Item: 1. Double-click on the Profile in the Model Directory. 2. Select the Data Items option in the navigation dialog box. The Data Item List is displayed. 3. Select the Data Item option from the Add menu. The Profile Data Items dialog box is displayed. 4. Select a Data Item from the drop-down list in the Name field. 5. Click on the OK button to return to the Data Item List, or click on the Next button to define another Profile Data Item
111 Defining the Business Model Defining Logic for a Profile If you want to access only a subset of records from a file, you must add logic to the Profile to select the required records. To do this: 1. Double-click on the Profile in the Model Directory. 2. Select the Conditions option in the navigation dialog box. The Profile Logic List is displayed. 3. Select the Profile Logic option from the Add menu. The Profile Conditional Logic dialog box is displayed. 4. Select a Data Item name from the drop-down list box at the left. The condition you are entering will relate to this Data Item. 5. Select a relation from the Relation list box. 6. Select the System Data Item GLB.SPACES or GLB.ZEROES, or enter your own literal value in the box on the right. 7. Select AND or OR from the Connector option box to join this condition to a following one, if there is one. 8. Click on the OK button to return to the Profile Logic List, or click on the Next button to define another condition. Note: You cannot define Conditions for an EVENT Spanning Profile. The Conditions button is disabled on the navigation dialog box. Limits The following table contains a summary of the limits for Profiles for each target host. Limit OS 2200 MCP UNIX/Windows Number of Profiles Number of Ordinates in a Profile Length of Profile Ordinates 157 bytes No limit 240 bytes Number of Lines in a Profile Definition Number of Profiles The number of Profiles over any Ispec is limited to 99 for all hosts. Number of Ordinates in a Profile For Systems based on the UNIX operating system, use only the first 16 Profile Ordinates
112 Defining the Business Model Length of Profile Ordinates On OS 2200 based Systems, the length of all the Ordinates for a Component and all its Profiles may not exceed 157 characters. In calculating the length of numeric Ordinates, add one to the length defined by the LENGTH; Data Attribute, and add another one if the Ordinate has the DECIMALS; Data Attribute. If a Profile is not an Automaint or Primary Profile and it has a numeric Ordinate that is binary on the RDMS database, you must also allow for the database storage size for the Ordinate; that is, 4 characters for INTEGER and NUMERIC, and 2 bytes for SMALLINT. If an Ordinate exists in the Component and in one or more Profiles, you only count its length once. Event Ordinate lengths should be counted in the same way. The System Data Item GLB_DTIME plays the part of an Ordinate for Memo Components and the Event Structure, therefore you must allow eight characters for it in all except Standard Components. On MCP based Systems, there is no limit, although DASDL may impose an upper limit. On UNIX and Windows based Systems, the sum of the lengths of all Profile Ordinates is limited to half the database block size. A Data Item of type long may not be used as an Ordinate. For ORACLE Systems, a numeric item included in an index (Ordinate or Profile Ordinate) always uses 22 characters. For SQL Server, the size of an index must be smaller than 900 bytes. Number of Lines in a Profile Definition There is a limit of 99 lines when defining your Profile (that is, lines for COMP.NAME; or EVENT.NAME; commands, ORDINATE; commands, DO.WHEN; conditions and, for MCP based Systems, DATA; commands). You should use this limit at your discretion as your system may experience memory problems. Defining a Keyword A Keyword consists of a screen definition and its associated Term Items and Term Displays. Before you can define these, you must add the Keyword to your Business Segment using the Keyword List, and specify some basic information about it. To add a Keyword: 1. Double-click the Business Segment to which you are adding the new Keyword. 2. Select Keyword List from the Business Segment dialog box. The Keyword List window is displayed. 3. Select Keyword from the Add menu. The Keyword Options dialog box is displayed. 4. Fill in the available fields. The fields and expected input are described below. 5. Click the OK button to complete the process of adding the Keyword
113 Defining the Business Model After defining a Keyword you would use the Keyword Painter to specify the Term Items and Term Displays that belong to it. The fields in the Keyword Options dialog box are: Name Identifier for the Keyword. The name must not begin with a number or a minus sign (-). This field is alphanumeric. If Long Names are allowed for the Model, the name can be up to 30 characters. The minimum length for the name is two characters. If Long Names are not allowed, the name cannot exceed ten characters, or nine characters if the Keyword is to be used as an Ordinate. If the Model uses Long Names, an additional short name field appears below the Name field. The maximum length of this field is ten characters. The short name defaults to the first ten characters of the long name. Description A short description of the Keyword. Alphanumeric, maximum length 30 characters. No validation is performed on the value in this field. Author Your name to identify you as the author of the Keyword, for use in listings. Alphanumeric, maximum length 20 characters. No validation is performed on the value in this field. Screen Length The screen length of the Keyword. This field is for information only. The length is initally zero, and is calculated from the sum of the lengths of all the Term Items and Term Displays that you later define for the Keyword. Total Data Length The total data length of the Keyword. This field is for information only. The length is initally zero, and is calculated from the sum of the lengths of all the Term Items that you later define for the Keyword
114 Defining the Business Model Defining a Wildcard A Wildcard is a relationship between an Element within the Model and an object outside the Model, for example a flat file that is read or extracted, or another system that the System calls. Wildcards can be defined at any level of a Model. During the design phase, you may also choose to use a Wildcard to represent an object or person outside the automated system. For example you could use a Wildcard to represent a department that requires a special view of business data. To add a Wildcard to a Model, Business Segment, or Function in the Model Directory: 1. Click on a Model, Business Segment, or Function, then select Wildcard from the Add menu. The Wildcard Options dialog box is displayed. 2. Key in a name and description for the Wildcard. 3. Click on the OK button. To add a Wildcard to an Ispec, a Profile, or other lower level Element in the Model Directory: 1. Double-click on the object in the Model Directory. 2. Select the Relations option in the navigation dialog box. The Relation List is displayed. 3. Select the Relation option from the Add menu. The Relationship dialog box is displayed with the name of the object in the Source field. 4. Key in a name for the outside object in the Target field. 5. Select Wildcard from the list of relationship types in the drop-down list. 6. Click on the OK button to return to the Relation List. Defining an SQLScript An SQLScript is a container for SQL commands to be embedded in the Developer Model. For detailed information on using embedded SQL, refer toembedded SQL Scripts. If you have not selected a Target Host Type of UNIX or Windows in the Business Segment Options, you can create and maintain SQLScripts but they will be reported when you perform a Design Audit. If you use the SQLScript in any Ispec, Report, or Global Logic, and try to generate the System to any target host other than UNIX or Windows, the SQLScript is ignored
115 Defining the Business Model Note: SQLScripts can only be used on a UnixWare based host if they are used in a bound up system. This means that the system must be an executable. Ispecs, Reports, and seperately compiled logic that contain SQLScripts, can be compiled to an.int file provided it is a bound up system and contains the file <systemname>.o. Adding an SQLScript To define a new SQLScript for your Business Segment or Activity using the Model Directory: 1. Click the Business Segment or Activity to which you are adding the new SQLScript. 2. Select the Script command from the Add menu. The SQLScript Options dialog box is displayed. 3. Fill in the available fields. The fields and expected input are described below. 4. Click the OK button to complete the process of adding the SQLScript. The fields in the SQLScript Options dialog box are: Name Identifier for the SQLScript. The SQLScript must not have the same name as any other object in the Model. If Long Names are allowed for the Model, the name can be up to 30 characters. If Long Names are not allowed, the name cannot exceed 18 characters. If the Model uses Long Names, an additional short name field appears below the Name field. The maximum length of this field is 18 characters. The short name defaults to the first 18 characters of the long name. Description A short description of the SQLScript. Author The name of the programmer responsible for the embedded SQL. Using the SQLScript Editor Use the SQLScript Editor to add, change, or delete SQL commands in an SQLScript element. You can maintain SQL commands in the following SQLScript logic sections: SQL Pre-Amble SQL Main SQL Post-Amble
116 Defining the Business Model To open the editor for each of these sections: 1. Select the desired SQLScript in the Model Directory. 2. Select the Open Selected command from the File menu. The navigation dialog box is displayed for the selected SQLScript. 3. Click the button for the logic section you want to edit. The SQLScript Editor is displayed. Enter the SQL commands in free fomat in the editor into the appropriate SQLScript logic section (Pre-Amble, Main, Post-Amble). Each SQL statement must end with a semi-colon (;). Note: If you insert one or more rows in a table using the INSERT command, you may need to include the GLB_DTIME field. You will need to be able to obtain a unique value for GLB_DTIME for each record to be inserted. You can do this using a standard C function which is included in the Enterprise Application Environment library. Listing SQLScripts To see a list of SQLScripts defined for a Business Segment or Activity: 1. Double-click on the Business Segment or Activity in the Model Directory. 2. Select the SQLScript List option in the navigation dialog box. The SQLScript List displays the Name, Description, Date and Time of last revision, UserId, and Revision status of each SQLScript. Writing Business Rules Business Rules are text associated with an Element at any level of your system. They can include descriptions, conditions, or any information you require. The following are suggestions as to the type of information you may wish to record in Business Rules: Element Business Segment Functional Area Activity Ispec/Report Profile Data Item Information Mission statement, critical success factors Functional Area objectives and description Description of Activity, project assignments Processing rules (logic) to be performed Description, conditions, Profile data Explanation of the use of the Data Item
117 Defining the Business Model Global Logic Wildcard Element Information Description and use of the Global Logic Description of the relationship between the system Element and the outside object You can configure Developer to use the word processor of your choice to edit your Business Rules, or use Developer's Business Rules Editor. These options are discussed in the following subsections. Using the Business Rules Editor Use the Business Rules Editor to add, change, or delete Business Rules for any Element in the Model Directory. This editor offers standard word processing functions such as cut, copy, and paste, as well as options for specifying the layout of Report data or display items that are directed to terminal printers, video devices, or MCP based ROC remote printers. For example, the Business Rules Editor allows you to specify options such as typeface, font size, and page breaks. When you select any of these options, they appear as control codes in your text and are interpreted only in the printed or displayed output. The Business Rules Editor is therefore not a WYSIWYG editor. You can use the View menu to display the Business Rules without the control codes, but you can only edit the Business Rules with the control codes on. To edit Business Rules for an Element in the Model Directory: 1. Double-click on the Element for which you want to edit Business Rules. 2. Select Business Rules from the navigation dialog box. The Business Rules window is opened. 3. Key in your text. Standard word processing options are available from the Edit, Insert, Character, and Paragraph menus. 4. Save your changes by pressing F12 or selecting the Save option from the Text menu. To exit without saving your changes, select the Discard option from the Text menu. 5. Close the Business Rules window to return to the Model Directory. SOK/EOK Support in Business Rules When SOK/EOK Support is enforced for the Business Segment, after you select the Save command the Business Rules are checked for Kanji strings. SOK/EOK characters are not displayed on screen. When extracted, if the line is longer than 72 characters, when SOK/EOK characters are inserted, the line will be truncated and an error written to the log file. The error will contain the line number and location of the error
118 Defining the Business Model See SOK/EOK Support for further details. Marking Technical Documentation The Business Rules Editor allows you to mark text as technical operations documentation. When you print your Business Rules, including the technical documentation is optional. During a Business Rules editing session, to mark your text as technical documentation: 1. Position the cursor at the start of the text that you want to mark as technical documentation, and click. 2. Select the Technical option from the Paragraph menu. Unless you have chosen to suppress the display of control codes, {tech+} is displayed at the selected position in the current window. 3. To mark the end of the technical documentation, position the cursor, click, and select the Technical option from the Paragraph menu. The {tech-} control code is inserted into the text, indicating that the technical code is 'turned off'. Viewing Change Identification for Business Rules The change identification for each line of Business Rules can be viewed by selecting the Change Ids option from the View menu. Change identification can only be displayed in the following circumstances: Change identification is selected for the Business Segment. The [ChangeControl] parameter in the LINC.INI file is not set to display=none. The text is saved. Change identifications are inserted below each line of text in the window as a read-only line. While change identifications are displayed, you cannot edit, save, validate, or discard text. Printing Business Rules Business Rules can only be printed when the text has been saved. If you attempt to print the Business Rules text before saving it, a message will prompt you to save the text. To print Business Rules, the Business Rules window must be open. To print: 1. Select the Print option from the File menu. 2. Check the Technical check box if you want to include text marked as technical documentation in your listing. 3. Click on the Print Options button if you want to specify a title, header, footer, or other print options for your listing
119 Defining the Business Model 4. Click on the OK button to initiate the print job. Running a Word Processor from Business Rules To link an external word processor to the Business Rules Editor, include in the Business Rules text the full file name (with path such as C:\LDA\FILES\CUST.DOC) of a word processor file containing the desired text. You can automatically initiate the word processor and open the specified file. To make this option available, you need to include the full path and file name of a word processor executable as the WordProcessor option in your LINC.INI file. The syntax is: [BusinessRules] WordProcessor= word processor executable With this option specified, the Business Rules Editor includes a menu item in the Text menu, Run Word Processor. If you select this option, the Business Rules Text Editor assumes that the first item of the text is a file name and runs the specified word processor and opens the file. Alternatively, if a file name is embedded within the Business Rules text, it can be selected and the Run Word Processor menu item activated. With this option specified, Business Rules cannot be printed from within Developer. Instead you must activate the external word processor program and initiate the print from within that program. Writing Teach Screens Teach screens are screen-level help text made available to the user of runtime Enterprise Application Systems. Since they are associated with a screen, you can only define Teach screens for Ispecs. You may define many Teach screens for one Ispec. Developer provides a Teach Screen Editor to enable you to add, change, or delete Teach screen text for an Ispec in the Model Directory. This editor functions in a similar way to the Logic Editor and offers standard word processing functions such as cut, copy, and paste. Adding a Teach Screen To add a Teach screen for an Ispec in the Model Directory: 1. Double-click on the Component or Event for which you want to add a Teach screen. 2. Select Teach Screen List from the navigation dialog box displayed. The Teach Screen List window is opened. 3. Select Teach from the Add menu. The Teach Screen dialog box is displayed. 4. Key in a name for the Teach screen. 5. Click on the OK button. The Teach Screen List window is redisplayed with the new name included
120 Defining the Business Model 6. Double-click on the new Teach screen name. The Teach Screen Text window is displayed. 7. Key in your text. Standard word processing options are available. 8. Save your changes by pressing F12 or selecting the Save option from the Text menu. To exit without saving your changes, select the Discard option from the Text menu. 9. Close the Teach Screen List window to return to the Model Directory. SOK/EOK Support in Teach Screens When SOK/EOK Support is enforced for the Business Segment, SOK/EOK characters are inserted around Kanji strings dynamically as you type. SOK/EOK characters act as though they were attached to the adjacent Kanji character. If the Kanji character is selected, the SOK/EOK character is also selected. If the selection is pasted to another location, the SOK/EOK characters are automatically adjusted to the correct position where necessary. When extracted, if the line is longer than 72 characters, when SOK/EOK characters are inserted, the line will be truncated and an error written to the log file. The error will contain the line number and location of the error. See SOK/EOK Support for further details. Viewing Change Identification for a Teach Screen Viewing change identification in the Teach Screen Editor works in the same way as in the Business Rules Editor. See Viewing Change Identification for Business Rules for details. Printing a Teach Screen A Teach screen can only be printed when the text has been saved. If you attempt to print the Teach screen text before saving it, a message will prompt you to save the text. To print a Teach screen, the Teach Screen Text window must be open. To print: 1. Select the Print option from the File menu. 2. Click on the Print Options button if you want to specify a title, header, footer, or other print options for your listing. 3. Click on the OK button to initiate the print job
121 Defining the Business Model Documenting the Business Model You can print a report documenting the definition of any Element in your Business Model. To do this: 1. Double-click on the Element in the Model Directory you want to document. 2. Select the Print Specification option from the File menu. The Specification Listing Selections dialog box is displayed with available options for the Element you selected. 3. Select the types of information you want to include in your Specification Listing. 4. Check the Hierarchical check box if you want your Listing to be in hierarchical order. Choosing hierarchical order may result in some Elements being printed several times if they are associated with more than one higher-level Element. If the Hierarchical check box is not checked, the Listing output is produced in a flat structure. This means that each Element is printed only once, even if it is associated with several higher-level Elements. For example, if a Functional Area is the selected Element, the Functional Area is printed, followed by all Activities, then all Objects, and so on. 5. Check the Table of Contents check box if you require a table of contents to be printed. 6. Check the Expanded print check box if you want a page break after every section of the Listing. 7. Click on the Print Options button to customize the title, header, footer, date format, margins, first or last page of the Listing. 8. Click on the Listing Options button to specify details for printing logic, Business Rules, Graphs, Dictionary items, matrixes, screen layouts. From the Listing Options dialog box you can also change the language for the Elements to be printed. 9. Click on the Fonts button to change the font used in your Listing. 10. Click on the OK button of the Specification Listing Selections dialog box to initiate the report. Summary After completing this section, you can: Add, move, and delete Elements from the Model Directory. Add or delete a relationship between Elements using a Matrix. Define a Business Segment, a Functional Area, an Activity, an Ispec, a Report, a Report Frame, and a Profile
122 Defining the Business Model Define, write, and print a Teach screen for an Ispec. Define, write, and print Business Rules for any type of Element in your Model. Print a Specification Listing for any Element in your Model
123 Section 5 Defining Data Items This section describes how to add and update Data Items in your Business Segment using the Model Directory. A discussion of the Developer Data Dictionaries is also included here. About Data Items The generic term Data Item is used to describe an item that holds a value. A Data Item can have an associated data entry field on an Ispec screen layout. The value can be stored in the database, or it can exist only to be used as temporary storage. Data Items are the building blocks of Ispecs, Report Frames, and Global Logics. You can define them using the Model Directory, or using Painter during a screen painting session, if this option is enabled for your Business Segment. Defining a Data Item can include these steps: 1. Defining the name, length, and edit characteristics of the item. This is the basic information about the item. You can save the definition at this point, or go on to add more. 2. Defining the data attributes. Data attributes include information such as whether input to a field on a screen is required, whether an alphanumeric field should be uppercased and what decimal and separator characters should be used for numeric fields. 3. Defining the display attributes. These attributes determine how the Data Item will appear in Painter Character mode (which emulates Host screens and Report layouts) and Graphics mode (for workstation screen layouts). These attributes include typeface, font size, background and foreground colors, brightness, and underscoring. 4. Defining the presentation attributes. These attributes define the arrangement of fields, labels, and valid values for a Data Item in Graphics mode, depending on how the item is defined. 5. Adding the Data Item to a Data Dictionary. If the Enforce Dictionary option is enabled for your Business Segment, you must add a Data Item to either the Local Dictionary or the Global Dictionary before you can use it in a screen layout
124 Defining Data Items The limitations/behaviors of EAE when a data item is created under a GLG are given below: When "Enforce Dictionary" option of a Business Segment is set to Yes and "Enforce Database only" check box is checked, following are the behaviors: 1. Data item can be created with any type of usage if the name of the data item is exactly same as the local/global dictionary data item. 2. If the dictionary enforcement is not applied the data item can be created with the usage INPUT/INQUIRY only. For any other usage types it pops up an error message "Item not in Dictionary" Types of Data Items The different types of Data Items and groups of Data Items used by Enterprise Application Systems are listed in the following table. Type Purpose Ordinate Data Item Keyword Dictionary item Setup Data Item Global Setup Data Item System Data Item Arrays Groups Literals A key for a Standard, Table, or Direct Component Standard data A Data Item that has multiple data entry fields (Term Items) and Display Items (Term Displays) A Data Item that has been added to one of the Developer Data Dictionaries Temporary storage item for an Ispec, Report, or Performable Global Logic Temporary storage item for all Ispecs, Reports, or Performable Global Logics in a Business Segment. Contained within an internal logic block called a Global Setup Data Block Defined Data Item holding system information, or providing system interface values Multiple storage for Data Items, Setup Data Items, Global Setup Data Items or Components Groups of Setup Data Item or Global Setup Data Item values Values used directly by the System, without requiring any named storage area Ordinates A unique Data Item value is used to identify each record of a Standard or Table Component. This value is stored in the Ordinate of the Component. Ordinate values must be stored in the database, but need not be entered through screen input
125 Defining Data Items An Ordinate differs from an ordinary Data Item in that the uniqueness of its value is preserved. Since Ordinates never contain duplicates, quick and unambiguous access to Component records is provided. Memo Components can have Ordinates, although these are Profile Ordinates. Data Items Data Items are the most common means of holding data values. Data Items contain values that can be manipulated by logic. Some Data Items may be visible on a screen for data input and output, and others may be stored in the database for later retrieval. Dictionary Items After a new Data Item is created, it can be added to a Data Dictionary. Defining Data Items as Dictionary items helps to enforce standard usage and makes the task of maintaining a Business Segment easier. When a Data Item is defined in a Dictionary, its length and edit characteristics cannot be overwritten. The Data Item will have the same characteristics wherever it is used. There are two types of Dictionary: Local and Global. Local Dictionary items can be used anywhere in a specific Business Segment. Global Dictionary items can be used in any Business Segment within the Model. See The Data Dictionaries on page 5-48 for details on how to use the Dictionaries. Keywords Keywords allow users to associate multiple data fragments with a single Data Item. When the Data Item is displayed on a screen, the data fragments appear to the viewer as individual Data Items. A Keyword can contain the following components: Displays (Term Displays) Data fragments (Term Items) Each data fragment can be changed individually, but internally to the application the single Keyword Data Item contains the aggregate of the data fragments. Setup Data Items Setup Data Items are used as temporary storage. They are not stored on the database, nor do they receive values from the screen. There are two types of Setup Data Items: Setup Data Items (local to an Ispec, Performable Global Logic, or Report) Global Setup Data Items (available to any Ispec, Performable Global Logic, or Report in a Business Segment)
126 Defining Data Items A Setup Data Item is associated with, and is unique to, a particular Ispec, Report, or Global Logic. This means that different edit characteristics can be applied to the same Setup Data Item when it appears in another Ispec, Performable Global Logic, or Report. A different initial value can also be specified. System Data Items System Data Items are created automatically for each Business Segment. They provide access to important system information such as the current date or the status of the system (for example, whether an error has occurred or an action is invalid). System Data Items provide an interface between user logic and Enterprise Application Environment. System Data Items are described in your Unisys Enterprise Application Programming Reference Manual as well as in Developer online help. Arrays Arrays are used to store multiple occurrences of data with the same characteristics and usage. They are accessed by between one and three subscripts. An example of an array might be a table of branch codes for a bank. An array can be made up of Data Items, Setup Data Items, or Global Setup Data Items. Initialising an Array: You can initialize part of an array by specifying an initial value while defining the SD/ GSD. For example, if you define an array of size 2500 with a initial value of "A", then the first occurrence of the array data item will have the value "A", and the rest of the array will be uninitialised. If you wish to initialize the whole array with spaces or zeroes, use one of these methods: Do not specify an initial value. Use the Clear.Array command. Note: Specifying an initial value of space or zero will not clear the whole array. Groups For Setup Data Item and Global Setup Data Items, you can group several items together and treat them as a single alphanumeric item. That item can be referenced as a unit, or its parts (subgroups) can be accessed separately. An example of a Group Setup Data Item might be a date which includes day, month, and year Data Items. A Group Setup Data Item is alphanumeric, although subgroup items can have numeric edit types or a mixture of edit types. Its length is the sum of the lengths of its subgroups
127 Defining Data Items In a Group Setup Data Item, individual Setup Data Items without initial values are initialized at the appropriate point in the Runtime Cycle. If any of the individual Setup Data Items in the group has an initial value, the remaining alphanumeric Setup Data Items are initialized to spaces and the numeric Setup Data Items to zero. With the exception of OS 2200 based Systems, if none of the individual Setup Data Items in the group has an initial value, all individual Setup Data Items are initialized to spaces. On OS 2200 based Systems, if none of the individual Setup Data Items in the group have an initial value, alphanumeric Setup Data Items are initialized to spaces and the numeric Setup Data Items to zeros. Note: You should not initialize numeric Setup Data Item to a non-numeric data or interpret the alpha values in a GROUP Setup Data Item by a numeric Setup Data Item, as Developer will give different results depending on the host and compiler architecture For example, define a Group Setup Data Item, SD-SRC-GP that contains a numeric Setup Data Item, and SD-NUM. In your logic, initiliaze SD-SRC-GRP with QRSTUV. The value of the SD-NUM will interpret as "123456" on Windows, "892345" on MCP, and "000000" on OS2200.The situation for signed numerics is even more complicated as the sign is encoded in different ways on different hosts and compilers. Developer will try its best to emulate much of this behavior depending on the host type set in the Business Segment Options and or in the LINC.INI file. Sometimes, this emulation may be imperfect. Therefore, it is strongly recommended that you must not depend on the values obtained in this way either in Developer or on an EAE deployed runtime as the results may change in subsequent releases due to different In OS2200, program aborts can occur if values obtained in this way are used in arithmetical operations. Literals A literal is a value used directly by the System, without requiring any named storage area. A literal can be used in many logic commands in place of Data Items. Literals can also be used to define the characteristics of Setup Data Items. Literals can include any alphanumeric or special characters (including the space character), except parentheses. Literals are enclosed by parentheses. They must consist of at least one character and not exceed 50 characters in length. Literals assume the same edit type as the Data Item with which they are associated. You cannot move a numeric literal with decimals and a sign to an alphanumeric Data Item. (If you have a requirement to do this, append a trailing space to the literal.) You cannot include alphabetic characters in a literal being used in arithmetic. If a literal is compared to a National Item, it will be treated as a National literal
128 Defining Data Items A hexadecimal value can also be included in literals. The value is evaluated as an EBCDIC code, but may not be used for screen formatting. The use of hexadecimal codes is limited to non-screen functions; for example, sending to a printer. A hexadecimal value consists of two digits (0 to 9, A to F) delimited characters. Note: For a System running on UNIX, do not use the hexadecimal The null and line feed (LF) characters these literals represent are translated literally by the COBOL compiler, and result in errors in your generated System. A numeric literal longer than 18 characters is treated as an alphanumeric literal. Any signs or decimal points are included in the literal length. For Setup Data Items or Global Setup Data Items with initial values, signs and decimals are not included when calculating the length of the item. For example, the following is valid: SD; SD-CONST ( ) ED; + DE; 2 However, the following MOVE; command is invalid, since the literal is interpreted as alphanumeric, as its length is greater than 18. MOVE; ( ) SD-CONST The following table lists examples of literals. Literal Description (*****) Alphanumeric literal (12) Unsigned numeric literal (-12) Signed numeric literal (-12.34) Signed numeric literal with decimals (@7C@) Hexadecimal value for the (@F2@) Hexadecimal value for the literal 2 (A@C2@C) Hexadecimal value for the literal ABC Adding a Data Item to an Ispec or Global Logic To add a Data Item to an Ispec or a Global Logic using the Model Directory: 1. Select the Ispec or Global Logic by clicking on it. 2. Select the Data Item option from the Add menu. The Screen Data Item dialog box is displayed. 3. Key in the required information. The fields and expected input are described below
129 Defining Data Items Name Key in an identifier for the Data Item. Alphanumeric, maximum length 12. Review Naming Elements: Reserved Words on page 4-1 before naming a new Data Item. Same As If you key in the name of an existing Data Item here, Developer will copy all the attributes of the existing item to the new one. Leave this blank if you wish to specify the attributes for the new item. Note: If the Data Item you are copying from is a Component array Data Item, the new item you create will be a Simple Data Item by default. Usage Select a usage type from the drop-down list. The usage types are: Type Default Inquiry Input I-O Output Description Data Item takes the same usage as the Ispec. Display only. Cannot be entered on screen, is not stored in database. Value entered on screen. Input/Output. Value entered on screen, stored in database. Value stored in the database. Edit Select an edit type definition from the drop-down list. The edit types are: Type Description Alpha Credit Date Kanji Number Signed Wide Alphanumeric (default). Signed (CR or DR) numeric. Default is CR. Date. Kanji data. This option is displayed only if you have selected Japanese character set support for your Business Segment and set a 2 byte CLEAR.WHEN character. Unsigned numeric. Signed (CR or DR) numeric. Default is DR. Hanaka-Katakana data. This option is displayed only if you have selected Japanese character set support for your Business Segment and your target host is UNIX. + Signed (CR or DR) numeric. Default is +. - Signed (CR or DR) numeric. Default is
130 Defining Data Items Note: For MCP and OS 2200 based Systems, EDIT; W Data Items are treated in the same way as alphanumeric items. For Systems running on UNIX, EDIT; W Data Items require double the amount of internal storage (for example, an item is displayed as length 10 on the screen but requires 20 bytes of storage). EDIT; W Data Items use an alphanumeric CLEAR.WHEN character. You cannot use a Hankaku-Katakana character as the alphanumeric CLEAR.WHEN character. Length Key in a numeric value for the length of the Data Item. The default is 1. The following table contains limits for Data Items. Maximum Length Type of Data Item Normal Ispec Big Buffer Ispec Alphanumeric Usage Inquiry, Alphanumeric Usage Output, Alphanumeric Ispec, Numeric, with NO.DECIMAL.KEYED Ispec, Numeric, with DECIMAL.KEYED Date Exactly 6 by default (can be specified as 8 to include the century) Exactly 6 by default (can be specified as 8 to include the century) Note: For Systems with a target host of UNIX, an ORACLE restriction prevents data items of type long from being indexed. (A long data item has a length greater than 4000 characters. Each Ispec in a System running on UNIX can have only one long data item.) This means that such a data item should not be declared as an Ordinate of a Component or Profile. In addition, the total length of an index key formed by concatenating all keys must be less than 240 characters. Decimals Key in the number of decimal places (for numeric items only). Ordinate Check this check box if you want to define this Data Item as an Ordinate. Note: If the Data Item is used in a Report Frame, it cannot be used as the Ordinate of an Ispec. You can use the Data Item Analysis Design Audit function to find any Ordinates that are used in Report Frames
131 Defining Data Items Presentation Select a presentation type for the Data Item in Painter Graphics mode. The types are field, image, check box, push button, radio button, list box and combo box. Presentation types are discussed in detail in Defining Presentation Attributes on page CopyFrom Order This field refers to the order in which a Data Item cell is populated on a graphical screen. It displays 1-22 or for big buffer enabled CopyFrom Ispecs for Unix, OS2200, and Windows OS. Note: This field is visible for CopyFrom Data Item cells only. For MCP, this field displays 1-99, for big buffer enabled CopyFrom Ispecs. Note: This field is visible for CopyFrom Data Item cells only. Record Serial Number Checking this check box on the Screen Data Item dialog box defines the Data Item as the Record Serial Number (RSN) for the Ispec. There can only be one RSN Data Item per Ispec. If this check box has been checked for a Data Item in the Ispec it is disabled for all other Data Items. A Data Item cannot be both the RSN and the Ordinate. The Ordinate check box is disabled if the Record Serial Number check box is checked, and vice versa. Only one RSN Data Item can be defined for the EVENT structure. Therefore, once this option is set for one Event Data Item, it cannot be set for a Data Item in any other Event. Checking the Record Serial Number check box sets and disables the following fields: Field Value Usage Edit Output Numeric Length 12 This option applies to MCP-based hosts only. It is disabled if MCP is not selected in the Target Host options of the Business Segment Options dialog box. If the MCP target host option is unchecked after the RSN data item is defined, the Record Serial Number check box remains enabled. Data Items defined as RSN are displayed in the Model Directory using the System color, which is red by default. An RSN Data Item can be referred to in logic as a read only Data Item
132 Defining Data Items When defining a Data Item into which RSN values can be moved, you can use GLB.RSN in the Same As field to ensure they have the correct attributes. If using a Data Item that has not been defined with GLB.RSN, you must ensure that it is large enough to store the RSN value. The RSN functionality is only included in the files generated from Builder if the Extended Edition check box is checked on the Default DASDL page of the Business Segment Options for ClearPath MCP. If the Extended Edition check box is not checked, or if the system is generated to a host platform other than MCP, the Data Item is generated as a simple Data Item with Edit = Numeric, Usage = Output, and Length = 12. After defining these fields you can click the OK button to save the definition, or you have the option of defining the data attributes, display attributes, and presentation attributes of the Data Item. These topics are described in the following subsections. You can also click the Next button to define another Data Item. Defining Data Attributes To define data attributes for a Data Item: 1. Click the Data Attributes button on the Screen Data Item dialog box. The Screen Data Item - Data Attributes dialog box is displayed. 2. Key in the required information. The fields and expected input are described below. Data Display An optional field for a more descriptive name for the Data Item. If provided, this name will be used in error messages. No Lookup An optional field to specify the name of the Automaint Memo Component for which you wish to suppress the automatic lookup of the Ordinate. The name you specify must be an existing Component. To enter more than one Component, separate the names by spaces. Alphanumeric, maximum length 25. LIFP Ispec This field is enabled only when the Data Item is an Ordinate of a Multiple Ordinate Component. Use this field to specify the name of the Multiple Ordinate Component in which the lookup of the Ordinate is to be suppressed. Only Multiple Ordinate Ispec names can be entered in this field
133 Defining Data Items Entering a value in the LIFP Ispec field reverses normal Developer behavior which is to validate all the Ordinates against the Automaint Profile if data is entered in any of the Ordinates. Data Items that are Ordinates of a Multiple Ordinate Component are treated logically as part of a single Ordinate. Therefore, if you apply LINK;IF.PRESENT to any of these Data Items, validation of all the Ordinates is performed if data is entered for any of the Data Items. Lock Sign Check this check box to specify that a signed field is to be locked at run time. The numeric value preceding the signed field may be entered or modified, but the sign itself may not. Link If Present Check this check box to allow the user to leave blank a screen Data Item that is also an Ordinate in Standard or Table Components. Checking this box reverses normal Developer behavior, which is to automatically validate a Data Item that is an Ordinate in another Standard or Table Component. By checking the box you suppress the look up, and thus the invalid item message that would otherwise result if the field is spaces or zero. Required Check this check box to specify that input to this field is required at run time. Secure Check this check box to specify that input to this field is not to be displayed. Not Entered Check this check box to specify that the value displayed in this field at run time is not to be changed. Memo Data The Memo Data feature is available in the MCP environment only and makes use of the DMS II feature. Data Items can be defined as Memo Data. This automatically produces and maintains a separate database structure for Data Items which are stored only if they are not spaces or zeros. No other coding is needed. The Memo Data attribute should only be applied to infrequently used data items. Memo data items are stored in a separate dataset. Each Component with Memo data has an associated dataset, while Memo data items for all Events are stored in one dataset. When the Ispec is processed, a record is written to the Memo dataset only if a value has been moved to one of the Memo data items. When an Ispec is read into memory, the Memo dataset is read only if any of the Memo data items are present
134 Defining Data Items The Memo Data attribute can be defined only when the data item is first created. The data item must be either Usage Input-Output or Usage Output. The Memo Data attribute cannot be applied to Ordinates or data arrays; nor can it be used in Profiles, either as Ordinates, Profile Data, or as part of a condition statement. Array Check this check box to specify that the Data Item is to be a Component array Data Item. Once you have checked this check box you must define the subscripts for the array using the Selected By dialog box. Once you have defined the subscripts, unchecking the check box turns off the array specification and changes the array Data Item into a Simple Data Item. Any subscript Data Items are deleted unless they are also subscripts of another array. If a subscript Data Item has been used as a Same As Data Item, the array check box will be disabled. Note: Component arrays and their subscripts cannot be Memo Data. If the array check box is checked and subscripts have been defined, the Memo Data check box is disabled. For more information on Component array Data Items, see Component Arrays on page 5-43 later in this section. Selectors Use the Selectors button to access the Selected By dialog box to define the subscripts for your Component array Data Item. For more information on Component array Data Items, see Component Arrays on page 5-43 later in this section. Decimals Keyed Select a radio button to specify whether a decimal character must be keyed in the field at run time. The options are Yes, No, and Default. Default means that the value for this field will be the value specified in the Business Segment Options dialog box. Decimal Character Select a radio button to specify the character to be used as a decimal delimiter in numeric fields. The options are Dot (period), Comma, and Default. Default means that the value for this field will be the value specified in the Business Segment Options dialog box
135 Defining Data Items Left Fill Numerics Select a radio button to specify whether numeric values are to be entered from the left in the field at run time. The options are Yes, No, and Default Default means that the value for this field will be the value specified in the Business Segment Options dialog box. Separator Character Select a radio button to specify the type of separator to be used to delimit groups of three digits in whole number values in the Data Item field at run time. The options are Default, None, and Character. When you select the Character option, enter the type of character you wish to be used in the box. This character may be any value except alphabetic characters or digits. A value of N in this field means that no separator character is to be used. Default means that the value for this field will be the value specified in the Business Segment Options dialog box. Zero Suppress Select a radio button to specify whether leading zeros are to be suppressed for numeric fields. The options are Yes, No, and Default. Default means that the value for this field will be the value specified in the Business Segment Options dialog box. Clear When Select a radio button to specify the initialization value of a Data Item. The options are Default, None, and Character. The system considers the Data Item to be initialized if it is filled with the Clear When character. For example, if the Clear When character is specified as X, the field is initialized when it is filled with Xs. Default means that the value for this field will be the value specified in the Business Segment Options dialog box. If you select the Character option, enter a single character that you wish to use in the box. This entry must agree with the data type of the field. On a system with a doublebyte character set, you can enter a single Kanji character. Caution: If the CLEAR WHEN character for the Data Item is zero (for numeric items) or space (for alphanumeric items), the AUTO.CLEAR; command has no effect
136 Defining Data Items Uppercase Select a radio button to specify whether input to this field is to be converted to uppercase. The options are Default, Yes, and No. Numeric Format This option is valid when OS 2200 is the only target host type selected.the field indicates the format of numeric Data Items. The values are: Value D S I N Description DECIMAL format, 1 to 18 digits, 1 byte per digit, plus sign SMALLINT format, 1 to 5 digits, no decimals, 2 bytes INTEGER format, 1 to 10 digits, no decimals, 4 bytes NUMERIC format, 1 to 10 digits, 4 bytes If this field is blank, the value is set to the value in the Binary Numeric field in the Ispec Options dialog box. National Item This field applies to ClearPath MCP and UNIX operating system target hosts only. The National Item attribute enables an alphanumeric Data Item to be sorted in a preferred national collating sequence, specified by the CCSVersion field on either the: Default DASDL Business Segment Options for ClearPath MCP Environment Business Segment Options for the UNIX Operating System In this field, if you select: Yes, the Data Item is a National Item. No, the Data Item is not a National Item. Default, the Data Item inherits the setting of the parent Ispec or Report. This attribute can only be applied to alph Data Items (not Group Data Items). Note: When the target host is a UNIX operating system, care must be taken when applying the National Item attribute to Data Items used as Ordinates in Profiles. Each Profile maps to an index within the database. Defining an item as a National Item can increase its length within an index, by a factor of two or more. This could cause ORACLE error Maximum key length exceeded
137 Defining Data Items This error is due to an ORACLE restriction that an index cannot exceed roughly onehalf (minus some overhead) the available data space in a data block. The data block size is specified at the creation of the database in the initialization file and cannot be changed. If this limit occur you can either remove the National Item attribute or recreate the database with a larger data block size. After defining these fields, click the OK button. The Screen Data Item Options dialog box is redisplayed. Defining Display Attributes To define display attributes for a Data Item: 1. Click the Display Attributes button on the Screen Data Item dialog box. The Screen Data Item - Display Attributes dialog box is displayed. 2. Key in the required information for the display of the Data Item. The fields and expected input are described in the following subsections. Character Mode Options The Character mode options define the host display attributes for the Data Item. They also apply in Developer Test if you have not defined a graphics screen. The Character mode options to be specified for the Data Item include: Attribute Description Bright Under Reverse Reset Box Blink Underscore Upperscore Dim Leftbar Highlighting. Underlining. Reverse video highlighting. Terminates all current highlighting and color attributes immediately following the Data Item for which this is defined. Encloses Data Item in a box. Blinking. Only for OS 2200 hosts on compatible terminals. Displays and prints the Data Item with a horizontal delimiter beneath. Underscore can be used with Leftbar, Rightbar, and Upperscore to produce boxes. Only for OS 2200 hosts on compatible terminals. Displays and prints the Data Item with a horizontal delimiter above. Only for OS 2200 hosts on compatible terminals. Dimmed video. Only for OS 2200 hosts on compatible terminals. Displays and prints the Data Item with a vertical bar to the left
138 Defining Data Items Attribute Rightbar Description Only for OS 2200 hosts on compatible terminals. Displays and prints the Data Item with a vertical bar to the right. Foreground Select a foreground color for the Data Item from this drop-down list. Available colors are Red, Blue, Ebony (black), Magenta, Cyan, White, Yellow, and Green. A value of Default means that the settings specified in the Foreground Color field on the Business Segment Options dialog box will be used. The default foreground color for a Business Segment is Ebony. Background Select a background color for the Data Item from this drop-down list. Available colors are Red, Blue, Ebony (black), Magenta, Cyan, White, Yellow, and Green. A value of Default means that the settings specified in the Background Color field on the Business Segment Options dialog box will be used. The default background color for a Business Segment is White. Graphics Mode Options The Graphics mode options define the Developer Test display attributes for the Data Item. However, Developer Test uses the Character mode options if you have not defined a graphics screen. The Font field displays the current font for the selected Data Item. To change the typeface, font size, or color, click the Change button and define your requirements in the Font dialog box. Use the Graphics mode Forecolor and Backcolor buttons to select the Developer Graphics mode foreground and background colors. Each button displays the Color dialog box. See When to Use Graphics Mode on page 6-6 for details on how to use the Color dialog box. Note: Changing the Font attributes (such as color, style, size, etc), Forecolor, or Backcolor of a Data Item overrides values set at the Business Segment level. Once Painter's display attributes are changed, all new Data Items added to screens will use those settings until their display attributes are individually changed, or reset to Default. Check the Hide check box to hide selected CopyFrom Data Items and Data Item cells. Note: Data Item cells are enabled by checking the Grouped CopyFrom check box on the Form Characteristics dialog box. To access the Form Characteristics dialog box, select the Form Characteristics command from the Attributes menu
139 Defining Data Items Defining Presentation Attributes On the Screen Data Item dialog box you defined the presentation type for the Data Item using the Presentation drop-down list. The types of presentation that can be selected are: field, image, check box, push button, radio button, list box, and combo box. To define additional presentation attributes for displaying the Data Item on a screen layout in Graphics mode of the Painter, click the Presentation button on the Screen Data Item dialog box. The Screen Data Item - Presentation dialog box is displayed. The information you need to define for each presentation type is described in the following subsections. Field The information to be specified for a Data Item defined as a field includes: Underbar Check this check box to display the Data Item with underlining. Border Check this check box to display the Data Item in a box. Checking this check box will automatically check the 3D Border check box to display the Data Item with a three-dimensional border. 3D Check this check box to display the selected Data Item with a three-dimensional border. This check box is checked by default when you check the Border check box. Uncheck it if you do not want 3D borders. Tab Number Optional. Assigns the order in which fields are accessed on a graphics screen. See Using Tab Numbers on page 5-25 for details on using this feature. Multi Line Check this check box so that the selected Data Item can be multi lined (that is, can span multiple lines). Once checked, expand the Data Item in Painter to the required number of lines
140 Defining Data Items Password Check this check box to define the Data Item as a Password field. Once checked, asterisks (*) display when the user completes the field. Display Value Specifies an initial value for the edit field of the Data Item. This value is intended for development purposes only. It is displayed in Developer Test to provide an indication of what the form will look like with representative data shown in the associated field. If default field values are required at Runtime, use Pre-Screen logic and Pre-LINC logic to initialize the field instead. Position the text in the field using the Justify Text radio buttons. Justify Text Select a radio button to specify Left, Center, or Right justification for the text entered in the Display Value field. Define Help Click the Define Help button to enter help text for the Data Item. Image To present a Data Item as an image, select the: Resize Image radio button to specify that the image is to be resized to fit the painted image. Resize Box radio button to specify that the painted area is to be resized to fit the image. About Images Selecting to present a Data Item as an image enables you to identify an image in logic rather than by a constant value assigned to each display item. Since you can move an identifier to a Data Item in logic, you can define the identifier as a Global Setup Data Item, with the initial value of the GSD being the image identifier. The image can then be used by moving the identifier into the Data Item in Pre-Screen Logic. If you define an image as a display item rather than a Data Item, you must define the image identifier in every item. This makes maintenance difficult if you need to change the identifier. On the Character mode screen, images are displayed as actual file names. On the Graphics mode screen, images are displayed as rectangular regions filled with the bitmap. Note: An image cannot be entered, and it has no tab stop position
141 Defining Data Items Identifying Images Images are identified by: A full path and file name. The file name alone if the file is located in the Developer Test database directory (for unit testing). The format required for each identifier name@dos The image name if the full path name (and file), or the file name. For Note: If the image is a display item rather than a Data Item, only specify the path and file name. Do not use signs or construction. Defining a Data Item as an Image To define a Data Item as an image: 1. Within a Global Logic or an Ispec, define a Setup Data Item or a Global Setup Data Item and set its initial value to the image identifier (as above). 2. Add the required screen Data Item. Specify its type as Usage Inquiry, alphanumeric, and its presentation as Image. 3. Enter the required Pre-Screen Logic to move the identifier into the Data Item. For example: MV; G-LOGO LOGO MV; (@LOGO.BMP@DOS) LOGO Check Box, Push Button, and Radio Button The information required for a Data Item to be presented as a check box, a push button, or a radio button includes the following fields. Layout If there is to be more than one check box, push button, or radio button for the Data Item, select a radio button to specify whether they are to be laid out horizontally or vertically. Label Position Select a radio button to specify whether labels are to appear to the right or to the left of the check box or radio button. Not required for a push button as the label appears inside the button
142 Defining Data Items Label Descriptive text or label. See Specifying Labels for a Check Box, a Push Button, or a Radio Button on page 5-20 for details. Checked and Unchecked If a Data Item only has one check box, you can specify values in these fields. The Unchecked value is entered in the Data Item field when the check box is not checked. The Checked value is entered in the Data Item field when it is checked. For example a Data Item Paid could have a checked value of Yes and an unchecked value of No. If you specify more than one label, the value in the Data Item field is encoded. For example, if the Data Item has three check boxes and you only check the last two boxes, the value of the Data Item would be 011. Tab Number Optional. Assigns the order in which fields are accessed on a graphics screen. See Using Tab Numbers on page 5-25 for details on using this feature. Click the Define Help button to provide help text for the Data Item. Specifying Labels for a Check Box, a Push Button, or a Radio Button To specify the labels for a check box, push button, or radio button, use the Label edit field and the list box below it. Enter a label for each box or button. The label is displayed next to the check box. Each label that you enter is displayed as one line in the list box. The check boxes will be in the same order as the list box lines. The Label edit field works on the currently selected list box line. If you specify only one label, you can also specify values for the label in the Unchecked and Checked fields. The Unchecked value is entered in the Data Item field if the check box is not checked. The Checked value is entered in the Data Item field if it is checked. If you specify more than one label, the value that is entered in the Data Item field is encoded. To add a new label, key in the text in the Label edit field and click the Insert button. This inserts the new label immediately after the currently selected item in the list box. To edit an existing label, select the related line in the list box, edit the values in the Label edit field, and click the Change button to make the change. To delete a label, select the related line in the list box, and click the Delete button. To move a label and value pair up and down the list box, select the line in the list box, and use the Move Up or the Move Down buttons
143 Defining Data Items Shortcut Keys A shortcut (or hot ) key is a fast way to perform the action of a Data Item. For example, if a shortcut key is defined for a push button Data Item, activating the shortcut key has the same effect as pushing the button. Shortcut keys appear as standard labels with an underscore under a letter. Holding the Alt key and pressing that letter activates the shortcut key. For example, a label displaying as Test, with the letter s underlined, has that letter as the shortcut key. Pressing Alt + s activates the action for that Data Item. Defining Shortcut Keys To define a shortcut key for a label, insert an ampersand (&) character to the left of the letter you want to be the hot key. For example, to define the s in Test as a shortcut key, enter Te&st in the Label field. Note: To use an ampersand in a label without defining it as a shortcut key, escape it with another ampersand. For example, to define a label of Yes&No, enter Yes&&No in the Label field. Ampersands cannot be defined as shortcut keys. Check Box Operation Check boxes offer the display and operation of a Windows check box control (single or multiple) associated with a specific Data Item. Any type of Data Item can be a check box. When the screen is transmitted, the Data Item corresponding to the check box is filled with 0 (unchecked) or 1 (checked). When there is only one check box for that Data Item, you can specify the Checked and Unchecked values for the Data Item. When there are multiple check boxes, the related Data Item must have at least one character for each check box. Thus a Data Item defined as alphanumeric with a length of 4 and a presentation type of Check box with four check boxes will cause the first character of the Data Item to correspond to the first check box (set to zero or one), the second character will correspond to the second check box, and so on. If the corresponding Data Item is not enterable (for example, Usage Inquiry or Not Entered), the check boxes will be disabled and used for display only
144 Defining Data Items List Box and Combo Box Defining a Data Item as a list box or a combo box allows it to be displayed a drop-down list, presenting a number of valid values to the user. Note that after you define a list box or combo box, during your screen painting session in Graphics mode, you may wish to 'stretch' the size of the box downwards, to increase the number of values that can be displayed in it. A vertical scroll bar will appear in the box at runtime if there are more entries than there are lines in the box. In the Screen Data Item - Presentation dialog box, for a combo box you must specify which type it is: Combo Box Type Simple Drop down Drop down list Description A drop-down list is always expanded to list Display items. You can edit the items in the list. The combo box consists of a single line. The user clicks the left mouse button on that line to display the drop-down list. The user can edit the list items. The combo box consists of a single line. The user clicks the left mouse button on that line to display the drop-down list. For list boxes or combo boxes, you can specify a Tab Number to assign the order in which fields are accessed on a graphics screen. See Using Tab Numbers on page 5-25 for details on using this feature. Click the Define Help button to provide help text for the Data Item. When defining a list box, the 3D check box on the Screen Data Item - Presentation dialog box is automatically checked to give the list box a three-dimensional appearance. Uncheck it if you do not want 3D list boxes. Use the Horizontal Scroll check box to add horizontal scrollbars. The graphics mode of the Painter displays this attribute for list boxes. For combo boxes, this attribute is only visible when data is selected in Developer Test or Graphical Interface Workbench. Most of the information on the Screen Data Item - Presentation dialog box refers to the definition of the contents of the list or combo box. There are three methods of defining these contents: Specifying the contents in the Screen Data Item - Presentation dialog box. Using the LBX or LBX* options to define the contents at run time with the SENDLIST Logic commands. Specifying a file that contains the contents. Each of these methods is explained in the following subsections
145 Defining Data Items Specifying List Box, Combo Box Contents To specify the contents of the list box or combo box in the Screen Data Item - Presentation dialog box, click the Define Items radio button. To add an item: 1. Key the text or label into the Item field, and key in its associated database value in the Value field. 2. Click the Insert button. This adds the item/value pair immediately after the currently selected line in the list box. To edit an existing item/value: 1. Select the required line in the list box by clicking on it. 2. Edit the values in the Item field and the Value field. 3. Click the Change button. To delete an item/value from the list: 1. Select the required line in the list box by clicking on it. 2. Click the Delete button. To move an item/value in the list: 1. Click the line to be moved in the list box. 2. Click the Move Up or Move Down buttons to reposition the line. For a combo box only, you can optionally specify Default Value and Validate Entry. Default Value Key in text to be displayed in the combo box entry field when the host does not send any data. If the host sends data, that will be displayed instead. If the value that you enter is too long, it will be truncated at run time. The default value is the text default. Validate Entry Check this check box to ensure that the value the user enters in the field is one of the combo box list values
146 Defining Data Items Using LBX or LBX* Options for List Box, Combo Box Contents Choose the LBX or the LBX* option to specify that the list or combo box items will be defined at run time with the SENDLIST logic commands. When using the LBX; attribute, the name of the list or combo box object is ispec. Data Item. The name of the file created when the logic containing the SENDLIST command is invoked has the format LBXn.dat. This name is displayed in the File field in the same dialog box. When using the LBX*; attribute, the name of the list or combo box object is *. Data Item. The name of the file created when the logic containing the SENDLIST command is invoked has the format LBX$n.dat. This name is displayed in the File field in the same dialog box. For details of the SENDLIST.DYNAMIC and SENDLIST.STATIC commands, see your Unisys Enterprise Application Programming Reference Manual. Specifying a File for List Box, Combo Box Contents Use the File option button and field to specify that the list box or combo box items will be defined in the specified file. If the file named is not in the database directory, include the path in the file name. The format of this file must be ASCII, with fields delimited by tabs. The following information must be provided when you select this option. Item Displayed in List Specifies which column from the data file to display in the list box or combo box. Standard list boxes can use this field to specify the display of a concatenation of columns from the data file. See Sample Data File Format at the end of this subsection. Value Sent to Host Specifies which column from the data file to send to the host when the user selects the associated list item at run time. Standard list boxes can use this field to specify the display of a concatenation of columns from the data file. See Sample Data File Format at the end of this subsection. Start Line Only for list boxes. Specifies the number of the first displayable line in the data file. Use Start Line if your data file has non-displayable data at the beginning of the file, such as header information
147 Defining Data Items PowerClient Repository Object Specifies the name of the data file (object) in the Graphical Interface Workbench repository. A repository object name can be up to 24 characters long and can consist of any alphanumeric characters including embedded spaces. The entry in this field is not validated by Developer; you will get an error at run time if you specify a name that does not exist. Alternatively, use the Object Name from Host field to indicate that the name of the data file will be supplied by the host application program at run time. Object Name from Host Select this to specify that the host application program will send the data file (object) name to the form at run time. This enables your application program to display a different Data Item in this form depending on the circumstances. Alternatively, use the PowerClient Repository Object Name field to explicitly name the data file to be used. Sample Data File Format Specify the fields in the repository object (data file) that provide the data displayed. Enter the number or numbers of the fields (counting from the left) separated by commas. If you specify more than one output field, the system inserts a space between each. There is a limit of 40 fields as the contents of the list must fit in Windows global memory. Consider a repository object with the following tabular format: Time Date City Postcode ID Sydney 2000 SYD Melbourne 3000 MEL You want to create a list box that displays Sydney 2000 or Melbourne 3000 as the choices, and returns SYD or MEL to the application. You would specify Item Displayed in List as 3,4; Value Sent to Host as 5; and Start Line as 2. For a combo box or drop-down list box, you can only specify one column value in each field, so Item Displayed in List becomes just 3. Using Tab Numbers If you decide to use tab numbers, you should define a tab number for every field on a screen, making sure there are no duplicate numbers. Tab numbers must be in the range of 1 to 998 and do not have to be consecutive. Tab numbers must be unique for each field within the Ispec. A value of 0 indicates that a tab number relative to the position of the field in the character screen will be assigned by Developer
148 Defining Data Items Avoid using fields with set tab numbers together with fields with unset (0) tab numbers in the same Ispec. If any Global Logics are inserted into the screen, you should take into account the tab numbers of fields in the Global Logic. Notes: 1. Be careful when specifying tab numbers for Global Logics to avoid duplicate tab numbers when the Global Logic is inserted into an Ispec. To avoid duplicate tab numbers, you can leave all tab numbers unset (0) for all the fields in the Ispec and Insertable Global Logic or specify high generic tab numbers for GLG items. 2. If you are using tab numbers, you should also assign a tab number to the MAINT field in Standard and Automaint Components. 3. Signed numeric fields get created at run time as two separate fields: a numeric entry part and a separate sign field part. The sign field will automatically be assigned a tab number one greater than the tab number defined for the numeric part. Therefore, when assigning tab numbers to forms with signed numeric fields, any field following a signed numeric field should have a tab number at least two greater than the signed numeric field. The fields in a COPY.FROM copy region have a tab number based on the corresponding field in the COPY.FROM template area. You can change the tab numbers of fields in the COPY.FROM template area, and the tab numbers of the corresponding fields in the copy area will also be changed. The tab numbers for the COPY.FROM area fields are automatically generated when the screen is created at run time. Tab Order command Use the Tab Order command from the Options menu to access the Tab Order submenu. Note: Use the Tab Numbers command from the View menu to display tab numbers on the screen. The Tab Order submenu moves the tab order of the selected item: Forward Backward To Front To Back Adding a Data Item to a Report Frame To add a Data Item to a Report Frame using the Model Directory: 1. Select the Report Frame by clicking on it. 2. Select the Data Item option from the Add menu. The Frame Data Item dialog box is displayed. 3. Key in the required information. The fields and expected input are described below
149 Defining Data Items In Reports you can define Data Items with the same name in several Frames. In your Report logic, use OF; frame to identify which Data Item is being referenced. If OF; frame is not used, the current Frame is assumed. Developer allows you to use a Dictionary Data Item in a Report Frame and directly generate a system using Builder from Developer into a Host Runtime environment. Note: If the Data Item is used as the Ordinate of an Ispec, it cannot be used in a Report Frame. You can use the Data Item Analysis Design Audit function to find any Ordinates that are used in Report Frames. When a Dictionary Data Item is added to a Report Frame, it is treated similarly to any Data Item which uses the SAME.AS; property. The main restriction which this imposes is that the Length and Decimals values cannot be modified. The fields in the Frame Data Item dialog box are: Name Key in an identifier for the Data Item. Alphanumeric, maximum length 12. Review Naming Elements: Reserved Words on page 4-1 before naming a new Data Item. Same As If you key in the name of an existing Data Item here, Developer will copy all the attributes of the existing item to the new one. Leave this blank if you wish to specify the attributes for the new item. Edit Select an edit type definition from the drop-down list. The edit types are: Type Description Alpha Credit Date Kanji Number Signed Wide Alphanumeric (default). Signed (CR or DR) numeric. Default is CR. Date. Kanji data. This option is displayed only if you have selected Japanese character set support for your Business Segment and set a 2 byte CLEAR.WHEN character. Unsigned numeric. Signed (CR or DR) numeric. Default is DR. Hanaka-Katakana data. This option is displayed only if you have selected Japanese character set support for your Business Segment and your target host is UNIX
150 Defining Data Items Type Description + Signed (CR or DR) numeric. Default is +. - Signed (CR or DR) numeric. Default is -. (Blank) Signed numeric. Print nothing if value is zero. X Z Unsigned numeric. Print nothing if value is zero. Unsigned numeric. Suppress leading zeros, print 0 if value is zero. $ Signed numeric. Print nothing if value is zero, print floating $ if value is not zero. * Signed numeric. Print asterisks if value is zero. Note: For MCP and OS 2200 based Systems, EDIT; W Data Items are treated in the same way as alphanumeric items. For Systems running on UNIX, EDIT; W Data Items require double the amount of internal storage (for example, an item is displayed as length 10 on the screen but requires 20 bytes of storage). EDIT; W Data Items use the alphanumeric CLEAR.WHEN character, although you may not enter a Hankaku-Katakana character to be your alphanumeric CLEAR.WHEN character. Length Key in a numeric value for the length of the Data Item. The default is 1. The maximum length for a numeric Data Item is 18, and for an alphanumeric Data Item the length of the printline. Decimals Key in the number of decimal places (for numeric items only). Decimal Character Select a radio button to specify the character to be used as a decimal delimiter in numeric fields. The options are Dot (period), Comma, and Default. Default means that the value for this field will be the value specified in the Report Options dialog box. Separator Select a radio button to specify the type of separator to be used to delimit groups of three digits in whole number values in the Data Item field at run time. The options are Default, None, and Character
151 Defining Data Items When you select the Character option, enter the type of character you wish to be used in the box. This character may be any value except alphabetic characters or digits. A value of N in this field means that no separator character is to be used. Default means that the value for this field will be the value specified in the Report Options dialog box. Blank When Zero Select a radio button to specify whether blanks are to be printed when the field contains zeros. The options are Yes, No, and Default. Default means that the value for this field will be the value specified in the Report Options dialog box. Floating Sign Select a radio button to specify whether the sign is to be printed immediately before the first significant digit of the value of the signed Data Item in the Report. The options are Yes, No, and Default. Default means that the value for this field will be the value specified in the Report Options dialog box. National Item Note: This attribute is effective only for MCP based target hosts. The National Item attribute enables an alphanumeric Data Item to be sorted in a preferred national collating sequence, specified by the CCSVersion field on the Default DASDL Options tab of the Business Segment options for MCP dialog. If you specify any Data Item to be a National item, you must specify a CCSVersion. This attribute may only be applied to an alphanumeric Data Item. Print If Present Check this check box to specify that a line is to be printed if the Data Item value is not spaces, i.e. if data is present. Numeric Select a radio button to specify whether the numeric item is to be stored as Binary or as Binary Coded Decimal. The options are None, Binary, and BCD. The BCD (Binary Coded Decimal) data attribute causes individual digits to be stored as their binary equivalents, thus packing two digits per byte. This saves space in Extract files containing numeric data. If you reset a Data Item to a non-numeric edit type, select None to reset the Numeric option from BCD or Binary to None
152 Defining Data Items Display Attributes Check the appropriate check box to select these display attributes for the Data Item: Attribute Description Bright Under Reverse Reset Highlighting. Underlining. Reverse video highlighting. Terminates all current highlighting and color attributes immediately following the Data Item for which this is defined. Big Prints output in large characters (pitch 66). This attribute applies only to Reports on AP310, AP300K, AP1300K, and AP2300K terminal printers on MCP based target hosts, and on printers with the appropriate capability on UNIX based hosts. This attribute is not supported in Developer Test. You must explicitly reset this attribute after its use. Underscore Upperscor e Only for OS 2200 hosts on compatible terminals. Displays and prints the Data Item with a horizontal delimiter beneath. Underscore can be used with Leftbar, Rightbar, and Upperscore to produce boxes. Only for OS 2200 hosts on compatible terminals. Displays and prints the Data Item with a horizontal delimiter above. Pitch Key in a value to specify the number of characters per line for printed Report output. The default is 132. Control Codes Click the Control Codes button to open the Control Codes dialog box. Key in a value in the Control Code field, and use the Insert, Change, and Delete buttons to build a list of values. Click the OK button to close the dialog box. The Control Codes option is used to load Output Control codes into your Model. The control codes are used to associate user-defined highlighting characteristics for Report data or display items that are directed to terminal printers, video devices, or MCP based ROC remote printers. For host-specific information on terminal printer Reports and the control codes file, refer to the section on Report Operations in: Unisys Enterprise Application Runtime for ClearPath MCP Administration Guide Unisys Enterprise Application Runtime for ClearPath OS 2200 Administration Guide
153 Defining Data Items Unisys Enterprise Application Runtime for the UNIX Operating System Administration Guide After defining these fields, click the OK button to return to the Model Directory, or click the Next button to define another Data Item for the Report Frame. Modifying a Data Item To change the definition of a Data Item: 1. Double-click the Data Item in the Model Directory. 2. Click the Options button in the navigation dialog box displayed. The Screen Data Item Options or the Frame Data Item Options dialog box is displayed. 3. Make the required changes. The fields and options are described in Adding a Data Item to an Ispec or Global Logic on page 5-6 or in Adding a Data Item to a Report Frame on page Note that you are not allowed to change the name of a Data Item in an Event or if the Data Item is defined in a Data Dictionary. Deleting a Data Item To delete a Data Item from the Model Directory: 1. Click the Data Item in the Model Directory. 2. Click the Delete button. You cannot delete a Data Item from an Object when the Data Item is also the Ordinate of a Profile that the Object is over. Setup Data Items A Setup Data Item is a temporary Data Item local to the Ispec, Report, or Performable Global Logic in which it is declared. Setup Data Items defined in an Insertable Global logic are associated with the inserting object (Ispec or Report). The same is true for Setup Data Items used to define the parameter interface of a Performable Global Logic that is Callable. These are known as Parameter Data Items. A Setup Data Item may be used in any type of logic for the Ispec, Report, or Global Logic in which it is declared. For example, a Setup Data Item may be used in Pre- Screen, Pre-LINC, or Main Logic for an Ispec
154 Defining Data Items The maximum length of a Setup Data Item name is 20 characters, minus the length of the Ispec, Report, or Performable Global Logic name. The same name can be used for Setup Data Items in different Ispecs, Reports, or Global Logics - however, it can not be the concatenation of an Ispec with a Profile or Data Item name. For example, you could not define a Setup Data Item as either C1-DA1 or C1DA1 if Ispec C1 with a local Data Item DA1 already existed. Setup Data iitems with the same name may still have different edit characteristics and initial values. Types of Setup Data Items The table below describes the types of Setup Data Item and their usage: Type Simple Same.As Group Array Parameter Usage Use a simple Setup Data Item to store a single value. Use the Same.As type to copy the definition of an existing Setup Data Item. The existing Setup Data Item can be of any type. Use a Group Setup Data Item to store a single value that may then be accessed in parts. For example, a Setup Data Item SD-DATES is used to store dates in the form ddmmmyy. It consists of the Setup Data Items SD-DAY, SD-MON, and SD- YEAR. When a new date is moved into SD-DATES, the day, month, and year are immediately available in SD-DAY, SD-MON, and SD-YEAR. Group Setup Data Items are alphanumeric, although subgroup items may have other edit types. The length of a Group Setup Data Item is the sum of the lengths of its subgroups. Use a Setup Data array to store multiple values. Access an individual value by specifying values for the indexes of the array. Indexes are numeric Setup Data Items. A Setup Data array may have up to three dimensions. Each dimension has a size and an index. The maximum size of each dimension is 9999, and the maximum size of an array is 65,000 characters. Your declaration may be explicit, by providing a size and index for each dimension, or implicit, by copying the definition of another Setup Data array. Use a Parameter Data Item in a Callable Global Logic to create an input or output parameter of the subroutine. When you create a Callable Global Logic, it automatically includes a Group Setup Data Item called glg-io GROUP. Any subgroup items in this group become the interface to the external routine when the Callable Global Logic is generated. Parameter Data Items can be defined as usage Input, Output or I-O. You can create Group Setup Data Items within the glg-io GROUP, for example to group the Parameter Data Items by usage
155 Defining Data Items There are some restrictions on the use of Group Setup Data Items: Do not move a numeric value to a Group Setup Data Item if any of its subgroup items has the DECIMALS; attribute. Do not use Insertable Global Logics to include parts of the definition of Group Setup Data Items. In Developer it is not possible to include part of the definition of Group Setup Data Items by using an Insertable Global Logic. Therefore if you transfer a System that uses this method to Developer, you will receive unexpected results. Values of Setup Data Items Setup Data Items fall into one of three categories based on how their values are maintained: Setup Data Items with initial values Setup Data Items without initial values Setup Data arrays These categories are described in the following subsections. Setup Data Items with Initial Values A Setup Data Item with an initial value is assigned the value of the literal only when your System or Report is started. If the value is changed by logic, the initial value is not automatically restored. Do not alter Setup Data Items with initial values. Setup Data Items without Initial Values Setup Data Items without initial values are handled differently in Ispecs and in Reports. In an Ispec, a Setup Data Item without an initial value is set to spaces or zeros before Pre-Screen Logic and Pre-LINC Logic. If an Ispec does not include Pre-LINC logic, Setup Data Items are initialized before Main Logic. This means that a value moved into a Setup Data Item in Pre-Screen Logic is not retained for Pre-LINC or Main Logic. In a COPY.FROM Ispec, Setup Data Items are initialized in the first copy only. This behaviour differs from earlier Host Builder generated systems. Note: Group Setup Data Items are treated as alphanumeric items. Subgroup items are initialized to spaces or zeros as appropriate. Use the System Data Item GLB.WORK to carry values between Ispecs
156 Defining Data Items In a Report, Setup Data Items without initial values are initialized to spaces or zeros at the beginning of the Report. Note: Group Setup Data Items are treated as alphanumeric items. Subgroup items are initialized to spaces or zeros as appropriate. Setup Data Arrays To access values of an array, define the indexes of the array and then access the array as a simple Setup Data Item. If invalid values have been moved into the indexes, GLB.STATUS is set to ***** when the array is referenced. For a single command (such as the MOVE; command), execution will continue from the next command in your logic. For an Automatic Entry (AUTO;WRITE), the array will not be updated, but the remainder of the transfer will be actioned. The value of each array subscript is initialized to zero at only two places in the Runtime Cycle: at the beginning of Pre-Screen Logic and at the beginning of Pre-LINC Logic. At all other times, you are responsible for maintaining the value of the array subscript. Adding a Setup Data Item To add a Setup Data Item to an Element using the Model Directory: 1. Double-click the Element in the Model Directory. 2. Select the Setup Data Items option in the navigation dialog box displayed. The Setup Data Item List window is displayed 3. Select the Setup Data option from the Add menu, or click the Add an Element button. The Setup Data Options dialog box is displayed. 4. Specify a name, description, and type for the item. 5. If you are defining a Group type Setup Data Item: Click the Sub Item button. The Setup Data Options dialog box is redisplayed for you to add a Setup Data Item to the Group. Key in the required values for each Setup Data Item (the fields are described below). Click the Sub Item button to define another Setup Data Item to the Group, or click the OK button to return to the Setup Data Item List window. If you are defining a Simple, Same.As, or Array type Setup Data Item: Key in the fields required in the Setup Data Options dialog box depending on the type of item (the fields are described below). Click the OK button to return to the Setup Data Item List window
157 Defining Data Items Edit Select an edit type definition from the drop-down list. The edit types are: Type Description Alpha Credit Date Number Signed Alphanumeric (default). Signed (CR or DR) numeric. Default is CR. Date. Unsigned numeric. Signed (CR or DR) numeric. Default is DR. + Signed (CR or DR) numeric. Default is +. - Signed (CR or DR) numeric. Default is -. Length Key in a numeric value for the length of the Setup Data Item. The default is 1. Decimal Places Key in the number of decimal places (for numeric items only). Initial Value Key in an initial value for the item. The default is that the field is blank when the dialog box is opened. Alphanumeric, maximum length 58. Do not enter an initial value for an array. National Item Note: This attribute is effective only for MCP based target hosts. The National Item attribute enables an alphanumeric Setup Data Item to be sorted in a preferred national collating sequence, specified by the CCSVersion field on the Default DASDL Options tab of the Business Segment options for MCP dialog. If you specify any item to be a National item, you must specify a CCSVersion. This attribute may only be applied to an alphanumeric Setup Data Item (not a Group Setup Data Item). Same as Item If you key in the name of an existing Setup Data Item here, Developer will copy all the attributes of the existing item to the new one. Leave this blank if you wish to specify the attributes for the new item
158 Defining Data Items Selected Like If you key in the name of an existing Setup Data array here, Developer will copy all the attributes of the existing item to the new one. Leave this blank if you wish to specify the attributes for the new item. Dim(ension) Name Key in the name of a Setup Data Item to be the index of an array. Dim(ension) Size Key in the size of a Setup Data Item to be the index of an array. The maximum size of a dimension is Editing a Setup Data Item To edit a Setup Data Item using the Model Directory: 1. Double-click the Element that contains the item. 2. Select the Setup Data Items option in the navigation dialog box displayed. The Setup Data Item List window is displayed. 3. Double-click the Setup Data Item you wish to edit. The Open navigation dialog box is displayed. 4. Select Options. The Setup Data Item Options dialog box is displayed. 5. Edit the fields as required. 6. Click the OK button to return to the Setup Data Item List. Viewing the Setup Data Item List In the Setup Data Item List window, the Developer menus offer a number of ways for you to view the Setup Data Items or to find a specific item: Menu Command Result Edit Find (Alt+F3) Prompts you for the name of a Setup Data Item to search for in the list. Highlights the item if found. Repeat Find (F3) Repeats the last Find command. View All Types Displays all entries. Some Types Show in Lists Prompts you to specify which types of Setup Data Items you wish to see. Select Same As, Selected Like, or Selected By to see the list sorted by these fields
159 Defining Data Items Editing the Setup Data Item List In the Setup Data Item window, the Edit menu offers you the options to copy, move, reorder, or delete items from the list. Limits The following table contains a summary of the limits for Setup Data Items for the different target hosts. Limit OS 2200 MCP UNIX/Windows Number of Setup Data Items No limit No limit No limit Size of an alphanumeric Setup Data Item 9,999 9,999 9,999 Size of a Setup Data Item with alphanumeric literal Size of a numeric Setup Data Item Size of a Setup Data Item with numeric literal Total size of a Setup Data array (characters) 65,000 65,000 65,000 Size of all Setup Data Items with initial values No limit No limit No limit Size of all Setup Data Items without initial values No limit See text No limit Setup Data Items in an Ispec No limit No limit No limit Setup Data Items in Report No limit No limit No limit Setup Data Items in a Callable Global Logic See text See text See text Size of Setup Data Items on MCP based Systems Setup Data Items without initial values have a maximum limit of 99 Ispecs with greater than 64K byes of Setup Data Items or the equivalent size in one Ispec. Setup Data Items in an Ispec on OS 2200 based Systems There is no limit on the number of Setup Data Items (other than the Builder symbol table limit of approximately 140,000). However, since Setup Data Items are included in every Ispec and Report (COBOL common storage), their maximum combined size, plus the following, must not exceed the HVTIP program limit: Size of the Ispec (including Global Setup Data Items) Any Global Logic in that Ispec (in words)
160 Defining Data Items Setup Data Items in a Callable Global Logic If you intend to access a Callable Global Logic using the Component Enabler interface, you can only use 253 Setup Data Items to define the parameters of the Callable Global Logic. Also, if a parameter is longer than 256 bytes, only the first 256 bytes are transferred. These limits only apply if you use the Component Enabler interface. They are not enforced by Developer, but they are reported when you perform a Design Audit. Global Setup Data Items Global Setup Data Items are temporary Data Items which may be referenced anywhere in the logic of Ispecs, Global Logics, or Reports. Global Setup Data Items are associated with a Business Segment. Global Setup Data Blocks Global Setup Data Items are contained in internal logic blocks called Global Setup Data Blocks (GSD Blocks). GSD Blocks enable grouping of Global Setup Data Items by related objects. For example, you may create a GSD Block containing only Global Setup Data Items referenced by one Ispec. When that Ispec is recompiled for generate purposes, only those Global Setup Data Items grouped in that GSD Block would be included, rather than all Global Setup Data Items in the Business Segment. Global Setup Data Items can only be defined within GSD Blocks. When migrating from a previous release, where any Global Setup Data Items, or Global Work Setup Data Items exist in the Model file, Developer Release 3.1 or later will create two default GSD Blocks, called GLB-SDS and GLB-WORK-BLOCK. The existing Global Setup Data Items are added to GLB-SDS, and any existing Global Work Setup Data Items are added to GLB-WORK-BLOCK. After migration, you may wish to create new GSD Blocks and reorganize your Global Setup Data Items in these new blocks. Types of Global Setup Data Items As with Setup Data Items, a Global Setup Data Item can be one of four types: Simple, Same.As, Group, and Array. See Types of Setup Data Items on page 5-32 for an explanation of these types
161 Defining Data Items Values of Global Setup Data Items As with Setup Data Items, Global Setup Data Items fall into one of three categories based on how their values are maintained: Global Setup Data Items with initial values (literals) Global Setup Data Items without initial values Global Setup Data arrays See Values of Setup Data Items on page 5-33 for a description of how these values are maintained. Adding a Global Setup Data Block To add a Global Setup Data Block to a Business Segment using the Model Directory: 1. Double-click the Business Segment in the Model Directory. 2. Select the GSD Block List option in the navigation dialog box displayed. The Global Setup Data Block List window is displayed. 3. Select the GSD Block option from the Add menu, or click the Add an Element button. The GSD Block Options dialog box is displayed. 4. Specify a name, description, and author for the item. 5. Check the Part of GLB.WORK check box to make this GSD Block a Global Work Setup Data Block. Use this if you intend to use this GSD Block to pass information between Ispecs using the System Data Item GLB.WORK. Any information or initial values in Global Setup Data Items contained within this GSD Block will be overwritten by the contents of GLB.WORK. 6. Click the OK button to return to the Global Setup Data Block List window. Adding a Global Setup Data Item To add a Global Setup Data Item to a Business Segment using the Model Directory: 1. Double-click the Business Segment in the Model Directory. 2. Select the GSD Block List option in the navigation dialog box displayed. The Global Setup Data Block List window is displayed. 3. Double-click the GSD Block to which you are adding the Global Setup Data Item. 4. Select the GSD List option in the navigation dialog box is displayed. The Global Setup Data Item List window is displayed. 5. Select the Global Setup Data option from the Add menu, or click the Add an Element button. The Global Setup Data Options dialog box is displayed. 6. Specify a name, description, and type for the item
162 Defining Data Items If you are defining a Group type Global Setup Data Item, follow the instructions in Adding a Global Setup Data Item, then do the following: 1. Click the Sub Item button. The Global Setup Data Options dialog box is redisplayed for you to add a Global Setup Data Item to the Group. 2. Key in the required values for each Global Setup Data Item (the fields are described below). 3. Click the Sub Item button to define another Global Setup Data Item to the Group, or click the OK button to return to the Global Setup Data Item List window. If you are defining a Simple, Same.As, or Array type Global Setup Data Item, follow the instructions in Adding a Global Setup Data Item, then do the following: 1. Key in the fields required in the Global Setup Data Options dialog box depending on the type of item (the fields are described below). 2. Click the OK button to return to the Global Setup Data Item List window. Edit Select an edit type definition from the drop-down list. The edit types are: Type Description Alpha Credit Date Number Signed Alphanumeric (default). Signed (CR or DR) numeric. Default is CR. Date. Unsigned numeric. Signed (CR or DR) numeric. Default is DR. + Signed (CR or DR) numeric. Default is +. - Signed (CR or DR) numeric. Default is -. Length Key in a numeric value for the length of the Global Setup Data Item. The default is 1. Decimal Places Key in the number of decimal places (for numeric items only)
163 Defining Data Items Initial Value Key in an initial value for the item. The default is that the field is blank when the dialog box is opened. Once you specify an initial value, the Translatable check box is activated, which enables you to define this Global Setup Data as translatable. Alphanumeric, maximum length 58. Do not enter an initial value for an array. National Item Note: This attribute is effective only for MCP based target hosts. The National Item attribute enables an alphanumeric Global Setup Data Item to be sorted in a preferred national collating sequence, specified by the CCSVersion field on the Default DASDL Options tab of the Business Segment options for MCP dialog. If you specify any item to be a National item, you must specify a CCSVersion. This attribute may only be applied to an alphanumeric Global Setup Data Item (not a Group Setup Data Item). Same as Item If you key in the name of an existing Global Setup Data Item here, Developer will copy all the attributes of the existing item to the new one. Leave this blank if you wish to specify the attributes for the new item. Selected Like If you key in the name of an existing Global Setup Data array here, Developer will copy all the attributes of the existing item to the new one. Leave this blank if you wish to specify the attributes for the new item. Dim(ension) Name Key in the name of a Global Setup Data Item to be the index of an array. Dim(ension) Size Key in the size of a Global Setup Data Item to be the index of an array. The maximum size of a dimension is Editing a Global Setup Data Block To edit a Global Setup Data Block using the Model Directory: 1. Double-click the Business Segment that contains the item. 2. Select the GSD Block List option in the navigation dialog box displayed. The Global Setup Data Block List window is displayed
164 Defining Data Items 3. Double-click the Global Setup Data Block you wish to edit. The Open navigation dialog box is displayed. 4. Select Options. The GSD Block Options dialog box is displayed. 5. Edit the fields as required. 6. Click the OK button to return to the Global Setup Data Block List. Editing a Global Setup Data Item To edit a Global Setup Data Item using the Model Directory: 1. Double-click the Business Segment that contains the item. 2. Select the GSD Block List option in the navigation dialog box displayed. The Global Setup Data Block List window is displayed. 3. Double-click the GSD Block that contains the Global Setup Data Item you wish to edit. The Global Setup Data Block dialog box is displayed. 4. Select GSD List. The Global Setup Data List window is displayed. 5. Double-click the Global Setup Data Item you wish to edit. The Open navigation dialog box is displayed. 6. Select Options. The Global Setup Data Item Options dialog box is displayed. 7. Edit the fields as required. 8. Click the OK button to return to the Global Setup Data Item List. Viewing the Global Setup Data Item List In the Global Setup Data Item List window, the Developer menus offer a number of ways for you to view the Setup Data Items or to find a specific item. See Viewing the Setup Data Item List on page 5-36 for a description of these options. Editing the Global Setup Data Block List In the Global Setup Data Block List window, the Edit menu offers you the options to copy, move, or delete items from the list. Editing the Global Setup Data Item List In the Global Setup Data Item window, the Edit menu offers you the options to copy, move, reorder, or delete items from the list
165 Defining Data Items Limits The following table contains a summary of the limits for Global Setup Data Items. Limit OS 2200 MCP UNIX/ Windows Number of Global Setup Data Blocks Number of Global Setup Data Items No limit No limit No limit Size of an alphanumeric Global Setup Data Item 9,999 9,999 9,999 Size of a Global Setup Data Item with alphanumeric literal Size of a numeric Global Setup Data Item Size of a Global Setup Data Item with numeric literal Total size of a Global Setup Data array (characters) 65,000 65,000 65,000 Size of all Global Setup Data Items with initial values No limit No limit No limit Size of all Global Setup Data Items without initial values No limit 6,336K bytes No limit Global Setup Data Items in an Ispec No limit No limit No limit Global Setup Data Items in Report No limit No limit No limit Number of Global Setup Data Items on OS 2200 based Systems There is no limit on the number of Global Setup Data Items (other than the Builder symbol table limit of approximately 140,000). However, since Global Setup Data Items are included in every Ispec and Report (COBOL common storage), their maximum combined size, plus the following, must not exceed the HVTIP program limit: Size of the largest Ispec (not including Global Setup Data Items) Size of any Global Logic in that Ispec (in words) Size of Global Setup Data Items on MCP based Systems Total size of all Global Setup Data Items without initial values has a maximum of 6,336K bytes. Component Arrays Array Data Items are a data type available in Components that allow for storage of multiple values. They are defined by up to three subscript Data Items, which act as the index for accessing the array data. Array Data Items enable you to process information in a tabular form, accessing individual items in the array using the subscript values
166 Defining Data Items The following is an example of a possible use for array Data Items. Storing an amount for each day of the year. To store separate amounts for each day of the year without using arrays, 365 Data Items would be required (for example TOTAL1, TOTAL2, and so on). If you use a Component array called TOTAL subscripted by the selector DAY, move a value from 1 to 365 into DAY before accessing TOTAL, to obtain the amount for the relevant day. Alternatively, you could use a three-dimensional array with subscripts MONTH (12 occurrences), WEEK (5 occurrences), and DAY (7 occurrences). If the data array is TOTAL, move the appropriate values for the MONTH of the year (1 through 12), week of the MONTH (1 through 5), and day of the week (1 through 7) into MONTH, WEEK, and DAY respectively, before accessing the Data array TOTAL. Rules for Defining Component Array Data Items The following list outlines the rules for defining Component array Data Items: Array Data Items are valid in Components only. Both array and subscript Data Items may only be Usage Input-Output or Usage Output. Array Data Items have a maximum name length of 8 characters. Subscript Data Items have a maximum name length of 10 characters. If long names are defined for the model, the maximum long name length is 30 characters. The maximum number of occurrences (or size) of array Data Items is Array subscript Data Items must be large enough to hold the maximum number of occurrences of the array. Array subscript Data Items cannot be of Edit types Wide, Kanji, Alpha or Date. Array Data Items cannot be used in the logic array commands (AUTO.ARRAY, CLEAR.ARRAY, FLAG.ARRAY, MOVE.ARRAY and MOVE.AUTO.ARRAY.) Array and subscript Data Items cannot be Memo Data. Array Data Items cannot be used as Profile Data Items, although subscript Data Items can. Array Data Items cannot be used as Profile Ordinates or as Ordinates of a Component. Array subscript Data Items cannot be deleted while they are subscripts of an array Data Item. Array Data Items cannot be defined in insertable Global Logics. You can change an array Data Item to a Simple Data Item as long as any subscript Data Items are not used as Same As Data Items. If you do change an array Data Item, any subscript Data Items of that array are deleted unless they are used as subscripts in another array
167 Defining Data Items Similarly, you can change the name of a subscript Data Item in an array as long as it is not used as a Same As Data Item. If the subscript is not being used in another array, it is renamed with the new name you specify, otherwise a new subscript Data Item is created. Defining Component Array Data Items Component array Data Items are defined in the Screen Data Item - Data Attributes dialog box.to define a Data Item as an array: 1. Click the Selectors button to open the Component Array Selected By dialog box. 2. Complete the required fields on the Component Array Selected By dialog box to define the subscripts for your array data. You can define up to three subscripts. The Component Array Selected By dialog box contains the following Dimension (Dim) fields which must be completed for each subscript Data Item: Dimension Long Name Enter the long name of your array subscript. This field is displayed only if long names are allowed for the model. Maximum name length is 30 characters. Dimension Name Enter the name of the Data Item you want to be the array subscript. Array subscript Data Items have a maximum name length of ten characters. Size Enter the size of your array subscript. The subscript must be big enough to hold the largest number of numeric occurrences the array Data Item will contain. For example, if the array Data Item has a length of 100, then three is the largest possible number of occurrences, so you should enter at least three in the Size field. The maximum number of occurrences an array Data Item is allowed is Notes: 1. You must fill out the subscript dimension fields in order. Filling out field Dim2 without first filling out field Dim1 will result in an error. 2. If the subscript name you define already exists, then existing definitions for that Data Item will be used. Otherwise a new Data Item will be automatically created in the Repository with the following defaults: Name; Edit; Length; The value in the Dimension Name field. Number The value in the Size field
168 Defining Data Items Usage; The same as the usage defined for the array Data Item. Using Component Array Data Items Component array Data Items are used by setting the values of your array subscript Data Items and then referencing the array using logic commands. Logic Commands Incompatible with Component Array Data Items Below is a list of logic commands which are incompatible with Component array Data Items. While it is possible to define an array Data Item as an operand in these commands, it will be processed as a Simple Data Item. If these commands are used with an array Data Item, the value used in processing the command will either be the last value contained in the array Data Item, or its initial value if none had been previously moved to it. If the command outputs to the array Data Item, the value will not be stored in the array. This applies when testing your system in Developer Test, and when generating to a Runtime for the Windows operating systems host. The following commands are incompatible with Component array Data Items: ABORT ACCEPT ADHOC.MODE ADVANCE AUTO.CLEAR CALL CASE CRITICAL.POINT CURSOR Complex DATE.CONVERT (offset field) DISCOUNT.CASH (action field) DOC.MODE END EXTRACT INITIALIZE MOVE.AUTO RECALL
169 Defining Data Items ROC.MODE RUN SET.DB SET.TITLE SLDYN SLSTA SLEEP SORT START STN.INFO SWITCH.TO WAKE.UP Testing a System Using Component Array Data Items Array Data Item values are stored in the Component record. When the Component record is read or written, all values in the array are loaded in or stored in the database. Valid subscripts must be provided to access an array Data Item. Moving invalid values into the subscript Data Items will cause GLB.STATUS to be set to five asterisks (*****) when the array is referenced by a command. In the case of a single command (such as a MOVE;), execution will continue from the next command in the logic. When adding a record, the array value will only be stored when the subscript Data Item value is valid. If the subscript value is larger than the defined size of the array, GLB.STATUS is set to five asterisks (*****). If multiple records are being added as part of your logic (i.e. multiple MOVE.AUTO; commands), the array data and subscript values will be stored in temporary memory space until all subscript values are validated. If one of the subscript values is invalid, GLB.STATUS is set to five asterisks (*****) and only the last valid value for both the array and subscript values will be written to the array record. Changing records is very similar to adding new records. If, when changing records subscript values are invalid, GLB.STATUS is set to five asterisks (*****), and no update will be performed. If changes are made to the length of either the array Data Item or its subscript Data Items in Developer, your test database in Developer Test will require a reorganization. See Reorganizing a Test Database on page 10-7 for further details
170 Defining Data Items If you are running Developer Test in Logical Reorganization mode, Component array Data Items will function. However if the number of subscript Data Items referencing the array have been changed, attempts to write values to the array will be ignored. Note: If you are developing a System for deployment on a UNIX or a Windows operating system host, you should be aware that these platforms do not support the reloading of Component array Data Items during a database reorganization. The Data Dictionaries Developer has two types of Data Dictionaries: Local and Global. The Global Dictionary contains Data Items used by any Business Segment within a Model. The Local Dictionary contains Data Items used within a specific Business Segment. An item that is included in a Data Dictionary can be used in other Ispecs, but its length and edit characteristics cannot be changed, enforcing standard usage of the item. After you define a new Data Item, if you want to include it in a Dictionary you must explicitly add it. The Ordinate of a Standard Component, however, is automatically included in the Local Dictionary on creation. You may be required to add a Data Item to a Dictionary before you can use it in an Ispec or Global Logic screen layout. This option is specified using the Enforce Dictionary field in the Business Segment Options dialog box. Note: There is no limit to the number of Dictionary Items you can define in Developer. Business Rules in Dictionary Items Note that if you add an existing Ispec Data Item to the Local Dictionary, or promote an item from the Local Dictionary to the Global Dictionary, the Business Rules associated with the item are not promoted with it. If you wish to maintain the Business Rules associated with an item, you must add them explicitly after the item is promoted to the Dictionary. Dictionary Data Items and Report Frames Developer does not allow you to use a Dictionary Data Item in a Report Frame. See Adding a Data Item to a Report Frame on page 5-26 for information on this restriction. Limits The total number of Ispecs, Reports, Global Logics, and Dictionary items must be less than 999,
171 Defining Data Items Opening a Local Dictionary To view the contents of a Local Dictionary: 1. Double-click the appropriate Business Segment in the Model Directory window. 2. Select the Data Dictionary option from the navigation dialog box. The Local Data Dictionary window appears, listing the contents of the Dictionary. Opening the Global Dictionary To view the contents of the Global Dictionary: 1. Double-click the Model in the Model Directory window. 2. Select the Global Data Dictionary option from the navigation dialog box. The Global Data Dictionary window appears, listing the contents of the Dictionary. Viewing a Dictionary Once you've opened a Dictionary window, the Developer menus offer a number of ways for you to view the Data Items or to find a specific item: Menu Command Result Edit Where used Prompts you for the name of a Data Item to search for in the Dictionary. Displays a list of occurrences of the Data Item, the name and type of its parent. Find (Alt+F3) Repeat Find (F3) Prompts you for the name of a Data Item to search for in the Dictionary. Highlights the item if found. Repeats the last Find command. View All Displays all entries. Unused Database Sort by Name Sort by Edit Sort by Length Displays Data Items not associated with a higher-level element. Displays only the Data Items stored in the database, that is, usage Input or Input-Output. Sorts Data Items alphabetically by name. Sorts Data Items by edit type. Sorts Data Items by length
172 Defining Data Items Adding a Data Item to the Local Dictionary To add a Data Item to the Local Dictionary: 1. Double-click the appropriate Business Segment in the Model Directory window. 2. Select the Data Dictionary option from the navigation dialog box. The Local Data Dictionary window appears, listing the contents of the Dictionary. 3. Select the Data Item option from the Add menu. The Data Item Options dialog box is displayed. 4. Key in the Name of the Data Item. 5. Press Tab. The length and edit characteristics of the Data Item are displayed. You can edit the fields listed below. 6. Click the OK button to return to the Data Dictionary window, or click the Next button to add another Data Item. If you add a Data Item with a reserved word as its name to a Data Dictionary, a warning is displayed before the add operation is completed. Note: Large Data items can only be added to the Local Data Dictionary of a Business Segment that has Big Buffer Ispecs enabled. Large Data Items are those that are greater than the maximum limits for Data Items in normal (non-big Buffer) Ispecs. Description Description of the Data Item. Data Display This is an optional field for a more meaningful name for the Data Item, to be used in error messages. Length Key in a numeric value for the length of the Data Item. Decimals Key in the number of decimal places (for numeric items only). Adding a Data Item to the Global Dictionary To add a Data Item to the Global Dictionary: 1. Double-click the Model in the Model Directory window. 2. Select the Global Data Dictionary option from the navigation dialog box. The Global Data Dictionary window appears, listing the contents of the Dictionary. 3. Select the Data Item option from the Add menu. The Data Item Options dialog box is displayed
173 Defining Data Items 4. Key in the Name of the Data Item. 5. Press Tab. The length and edit characteristics of the Data Item are displayed. You can edit the fields listed below. 6. Click the OK button to return to the Data Dictionary window, or click the Next button to add another Data Item. If you add a Data Item with a reserved word as its name to a Data Dictionary, a warning is displayed before the add operation is completed. Description Description of the Data Item. Data Display This is an optional field for a more meaningful name for the Data Item, to be used in error messages. Length Key in a numeric value for the length of the Data Item. Decimals Key in the number of decimal places (for numeric items only). Modifying a Dictionary Data Item To change a Data Item in a Dictionary: 1. Open the appropriate Dictionary window. 2. Double-click the required Data Item. The Data Item Options dialog box is displayed. 3. Update the fields as required. 4. Click the OK button. Deleting a Dictionary Data Item To delete a Data Item from a Dictionary: 1. Open the appropriate Dictionary window. 2. Click the required Data Item. 3. Press the Delete key, or select Delete from the Edit menu
174 Defining Data Items Adding Business Rules to a Dictionary Data Item You can optionally add Business Rules to a Data Item in the Local Dictionary or the Global Dictionary. To do this: 1. Open the appropriate Dictionary window. 2. Click the required Data Item. 3. Select the Business Rules option from the navigation dialog box displayed. The Business Rules window is displayed. See Using the Business Rules Editor on page 4-79 for details on how to key in text using this editor. Adding Value Logic to a Dictionary Data Item Value logic is edit logic that you can define in order to restrict the values a Data Item might have. You can optionally add value logic to a Data Item in the Local Dictionary or the Global Dictionary. To do this: 1. Open the appropriate Dictionary window. 2. Double-click the required Data Item. 3. Select the Value Checking Logic option from the navigation dialog box displayed. The Value Logic List window is displayed. 4. Select the Value Logic option from the Add menu. The Dictionary Value Logic dialog box is displayed. 5. Fill in the Dictionary Value Logic dialog box to define one line of logic. If you need more than one line, click the Next button. The dialog box is redisplayed for you to enter the next line. Note that lines of logic must be mutually exclusive. 6. Click the OK button to close the dialog box. 7. Move, copy, or delete lines of logic as needed in the Value Logic List window using commands from the Edit menu. Printing a Dictionary Report To print off information about the Data Items in a Dictionary: 1. Open the appropriate Dictionary window. 2. Select the Print option from the File menu. 3. Specify the type of information you want to include in the printed report: Business Rules, Value Logic, and/or Used In (for the names of Ispecs in which each Dictionary item is used). 4. Click the OK button to start the print
175 Defining Data Items Summary After completing this section, you can: Add a Data Item to an Ispec, Report Frame, or Global Logic and specify all its attributes. Edit or delete a Data Item. Define Setup Data Items and Global Setup Data Items. Add a Data Item to a Data Dictionary
176 Defining Data Items
177 Section 6 Painting Screens This section describes how to use the Developer Painter to define and maintain layouts for Report Frames and for Ispec and Global Logic screens. In this section you will find: Introduction to the Painter Before You Start Accessing the Painter Character Mode and Graphics Mode Effects of Making Changes Using the Painter Using the Draft Build Option Summary of Mouse and Key Actions in Painter Painting Host Subsystem Screens Introduction to the Painter Features of the Developer Painter include: Choice of Character or Graphics mode. Support for different fonts, character styles, and color. Support for delimiter suppression and separator characters. A text cursor to enable keyboard entry operation. Full compatibility with the Graphical Interface Developer. Support for graphical user interface screens in Developer Test and migration of forms to and from Graphical Interface Workbench. Definition of many presentation attributes when data is defined using the Screen Data Dialog box. The screen data usage enables the entry of attributes, display attributes, and presentation attributes
178 Painting Screens Provision of a fast method to define Data Item place holders (Painter Draft Data Items). This provides you with two advantages: Decreases the time taken to define a screen Enables you to quickly paint a draft version of a screen without having to fully define it Design Audit reports on Draft Data Items. Single-line character mode Keyword Painter. Before You Start Before you start using the Painter, you may need to: Create the Object to be painted You must create a Global Logic, Ispec, Keyword, or Report Frame before you try to use the Painter to define its layout. See Defining the Business Model on page 4-1 for details. Add Data Items to the Data Dictionary If the Enforce Dictionary option in the Business Segment Options dialog box is set to Yes or SAS (Same.As), you must add Data Items to the Data Dictionary before you include them in an Ispec or Global Logic screen layout. See The Data Dictionaries on page 5-48 for information on adding items to a dictionary. Change parameters in the LINC.INI file The LINC.INI file contains parameters to enable you to change the presentation of your Painter windows. For more details, see your Unisys Enterprise Application Developer Installation and Configuration Guide. Accessing the Painter To access the Painter, use one of the following methods: Use the Model Directory by double-clicking on the Element for which you want to open a screen painting session, then selecting the Painter option in the navigation dialog box. Enter a Go command by pressing the F9 key, and entering PA Ispec name in the Go field. The Character mode screen for your Ispec layout is displayed. Select the Go toolbar button, and enter GPA Ispec name in the Go field. The Graphics mode screen for your Ispec layout is displayed, if one exists. If there is no Graphics mode screen for that Ispec, the Character mode screen is displayed
179 Painting Screens Accessing Graphics Mode Directly By default, when you access the Painter, you are in Character mode. If you prefer to go directly into Graphics mode whenever you access the Painter, set the mode parameter in the [Painter] section of your LINC.INI file as follows: [Painter] mode=graphics When mode is set to graphics, the Painter will open in Graphics mode if a graphical screen exists for the specified object. If no graphical screen exists, the mode defaults to Character. Similarly, if the parameter does not exist in the LINC.INI file, or is a value other than character or graphics, then mode will default to Character. The Painter Toolbar The Painter toolbar shares a number of buttons with the standard Developer toolbar described in Toolbar Buttons on page In addition there are a number of buttons specific to Painter functions. These are: Add a new Display Item Add a Draft Data Item Add a new Data Item Add a Rectangle Add a Line Delete selected text or item(s) Select the background color Make selected item bold (bright) Underline selected item Make selected item reversed Reset selected item Toggle between character mode and graphics mode screens Note: Some toolbar buttons are disabled if their function is not appropriate for a particular window
180 Painting Screens The Control Palette Use the Control Palette to add Graphical Control Objects to your screen. You do not have to create a Data Item to add a Graphical Control Object. To display the Control Palette, use the Control Palette command from the Options menu. The Control Palette shares a number of buttons with the Developer Painter toolbar. In addition there are: Add a Push Button Add a Radio Button Add a Check Box Add a Combo Box Add a List Box Add a Field Add an Image Character Mode and Graphics Mode You can use the Painter in two modes: Character mode, for creating Enterprise Application Runtime screens, Report layouts, and Keywords Graphics mode, for modifying screen layouts for Graphical Interface Workstation Different types of items are handled differently in Character mode and Graphics mode. The table below summarizes these differences: Item Type Character Mode Graphics Mode Notes Data Items Can be added. When SOK/EOK support is enforced for the Business Segment, Kanji Data Items are surrounded by SOK/EOK characters represented by the k character. Cannot be added, but automatically appear when added in character mode. If you change the length of a Data Item, the change is reflected in both modes. Draft Data Items Can be added. Not visible Automatically added when created as true Data Items
181 Painting Screens Item Type Character Mode Graphics Mode Notes Display items Can be added. When SOK/EOK support is enforced for the Business Segment, Kanji strings are surrounded by SOK/EOK characters represented by a space. Can be added. A Display item added in one mode is not added to the other. Note: SOK/EOK characters are only displayed on screen, they are not stored in the Repository. See SOK/EOK Support on page 4-19 for further details of SOK/EOK character insertion. When to Use Character Mode Use Character mode to: Produce screen layouts intended for character-based terminals (80 columns x 24 rows). Add Data Items to a layout. (You cannot add Data Items in Graphics mode.) Add Draft Data Items and Display items to a layout. Produce Report Frame layouts. (You cannot create Report Frame layouts in Graphics mode.) Add Term Items and Term Displays to a Keyword layout. Create layouts for later modification in Graphics mode. Data Items can be added only in Character mode. A bullet character is displayed on a Character mode screen to indicate attributes. Notes:The following restrictions apply when working in Character mode: A maximum 80-column by 24-row layout Support for monospaced fonts only Any font change applies to all items in a layout, not just a specific item Big Buffer Ispecs are not supported by Character Mode. To add and order Data Items within a Big Buffer Ispec screen, use the Data item List instead. Data Items can be dragged and dropped to and from the Copy From section of the Data Item List
182 Painting Screens When to Use Graphics Mode Use Graphics mode to produce screen layouts for display on a workstation; for example, in Developer Test or Graphical Interface Workbench. Graphics mode in the Painter provides support for: Multiple fonts and point sizes Character styles Presentation styles Overlap of Data Item and Display item fields without restriction Infinitely-adjustable horizontal and vertical dimensions Notes: The following restrictions apply when working in Graphics mode: Data Items cannot be added in Graphics mode. Display items can be added only in Graphics mode. The strikeout effect from the Fonts dialog box is not supported in Graphics mode. Cut-and-paste editing is not available in Graphics Mode. Big Buffer Ispecs with more than 1000 Data Items are not supported by Graphics mode. Graphics mode is not available for Keywords. The Graphics mode layout is a separate copy of the form layout. When Graphics mode is first accessed for a form, the contents of the Character mode layout are copied to the Graphics mode layout. From this point on, the two layouts (Character and Graphics) can be maintained independently of each other. Note: The default layout for Data Items in Big Buffer Ispecs is to occupy each row sequentially from row 25. The initial 25 rows are left unoccupied in order to accommodate any inserted Global Logic Data Items. Keep in mind that a row is a concept, as per rows in the character screen. Thus, 25 rows in a Big Buffer Ispec will be represented as 25x<vertical grid size>. For example, by default, the vertical grid size is 16 pixels. So, 25 rows will be positioned at 25x16=400 pixels/lines on the Big Buffer graphics painter. When you create a Graphics mode screen, Developer Test will use this screen until such time as it is removed, unless you set the charmodeonly parameter in the LINC.INI file. To remove the Graphics mode copy of the layout, use the Remove Graphics Screen option from the Options menu. The Character mode version cannot be removed. To specify default values for all graphical forms, open the Graphical Form Characteristics dialog box from the Business Segment Options dialog box
183 Painting Screens Graphical Form Characteristics dialog box Use the fields in this dialog box to set default values for all graphical forms. These attributes can include the following: Choose to display horizontal or vertical scroll bars. Show or hide the Header field on the form. Show or hide the current accounting month on the form. Background color of the form. Font type, size, color, and back color of items. Define attributes for all newly created forms using the New Form Item Attributes dialog box. Enable text background transparency so that all text on a form has a transparent background. Choose whether the cursor should automatically tab to the next field when the current field is full. Indicate whether the form should transmit data only up to the position of the cursor in the tabbing order, or transmit the entire form. Select whether Data Item length changes are automatically synchronized in Graphics mode. Note: If you check the Character Screen check box, the graphical screen will be created from the character screen defaults for background color of Forms and Data Items, and the foreground color and font. Color dialog box Clicking the Forecolor or Backcolor button displays the Color dialog box. Use the Color dialog box to define the foreground or background color for the selected item. Combo Box Type Default OS User Specified Description Uses the colors set at the Business Segment level. Uses the colors defined by the Operating System. Allows you to specify a color. Click the Select button to choose a color. Note: The Default and OS options are disabled at the Business Segment level
184 Painting Screens Automatic Synchronization of Graphical Fields Although the Graphics mode of the Painter is a separate copy of the form layout for Character mode, an option is available to synchronize Data Items between modes. Setting this option means that a change to the Data Item length in Character mode (or in the Model Directory) is automatically reflected in either mode of the Painter, without requiring a refresh. This option applies only to fields. Combo boxes, list boxes, buttons and check boxes are unaffected. You can choose to automatically synchronize graphical fields in all cases, or to synchronize only Data Items which use fixed-width fonts. This option is useful because the new graphical field length will be calculated as new length * character width. Character width is relative to the font used in the field, so length changes to Data Items which display using a proportional-width font will be calculated using an approximation only (about one third between the average character width and the maximum character width.) This may not be desirable, so you would instead choose to automatically synchronize fixed-width font fields only. To disable automatic synchronization for a selected object only, check the Disable Auto Synchronize Graphical Field Length check box from the Form Characteristics dialog box from the Painter. This will override Automatic Synchronization if it has been set in the Business Segment Options. New Form Item Attributes The New Form Item Attributes dialog box allows you to define the initial individual data or display items attributes for when they are first created. It contains the primary selectable attributes for each type of presentation. These consist of: Field Presentation Underbar, Border (3D) and Justify Check box Presentation Layout and Label Position Push button Presentation Layout only Radio button Presentation Layout and Label Position List box Presentation 3D and Horizontal Scroll Combo box Presentation Type and Horizontal Scroll To modify the settings of an individual item once it has been created with these initial values, open Painter, select the item, open the Screen Data Item dialog box and make the required changes to the attributes. To modify the settings for an individual form once it has been created with these initial values, open Painter, from the Attributes menu choose Form Characteristics, then make the required changes to the values
185 Painting Screens If you have changed the attributes of any form or items, you can reset them back to the default values by selecting the items and choosing Reset Defaults from the Attributes menu. This displays a dialog box which allows you to select the attributes for those items which you want to reset. Note that if the selected item has not been changed from the default value, or no item is selected, the Graphical Items attributes are disabled, and only the Graphical Form options can be changed. Choosing a Mode Use the Graphics Mode option from the View menu to select a mode. If the option has a check mark against it, you are in Graphics mode. If not, you are in Character mode. Change from one mode to the other using one of these methods: Select the Graphics Mode option from the View menu. Click the Change Mode button on the toolbar. Effects of Making Changes Locking a Layout When you access a layout, the layout is opened in view mode. If you make any changes, you automatically lock the layout. Locking a layout prevents other users from making changes, although they can still view the unchanged layout. In multi-user mode, a padlock icon on the left side of the toolbar indicates that you have locked the layout. In single user mode, a padlock icon is not shown. When you exit from the Painter, the lock is released and other users currently viewing the layout are notified that their view is not current. To view your changes these users should refresh the layout by pressing the F5 key (Window Refresh command). You can also use the Lock Selected option from the File menu to apply a manual resource lock to the object layout you are painting. Until this lock is removed no other user can modify the object. Saving Changes When you change a layout all changes are saved immediately. To see the effect of changes made outside the Painter, you may have to refresh the Painter window. Select the Refresh option from the Window menu, or press the F5 key
186 Painting Screens Overlapping Fields To protect your system from overlapping Data Item fields, you cannot use drag-anddrop to place a Data Item over another Data Item. Developer does not permit you to place a new Data Item so that there are less than three characters between the first delimiter of the new Data Item and the first delimiter of a nearby Data Item. However, increasing the size of a Data Item might cause it to overlap a nearby Data Item field. When this happens Developer will display a confirmation message box. The overlapping field will be truncated on the Painter screen and in Developer. The only corrective action is to move or resize one or both fields. If the Allow Field Truncation check box on the Business Segment Options dialog box is reset, then the field overlaps will not be allowed at all. The automatic insertion of SOK/EOK characters may cause fields to overlap. When determining the length and positioning of Kanji Data Items you must take into account the two character spaces SOK/EOK characters occupy. This is also the case for Display items, where you must take into account that an extra two characters will be added for each Kanji string the item contains. If fields will overlap due to the insertion of SOK/ EOK characters a error message will be given and you will not be able to save the item. See SOK/EOK Support on page 4-19 for further details. Using the Painter To define the layout of a screen, a Report Frame, or a Keyword using Painter, you will add, move, copy, and delete several different types of items in the layout work area. These items are: Data Items Display items Draft Data Items Global Logics Items that hold a value. If the Enforce Dictionary option is enabled, you must add a new Data Item to your Business Segment and then explicitly add it to a Data Dictionary before you can use it on a screen. If the Enforce Dictionary option is not enabled, you can add a new Data Item to your Business Segment during a screen painting session. The instructions in this subsection assume that you can add a Data Item using the Painter Character mode. Text that does not change, a literal. Dummy Data Items to show the placement and size of real Data Items to be defined later. You can even enter text for a Draft Data Item in order to create a draft screen that includes realistic data values. A Draft Data Item can be converted into a Data Item or a Display item. A Global Logic can be inserted into an Ispec screen layout. Details on how to add these items to your screen layout are described in the following subsections. Draft Data Items are described in Using the Draft Build Option on page
187 Painting Screens Adding a Data Item in Painter You must be in Character mode to add a Data Item. To add a Data Item: 1. Specify the position of the new Data Item. You can do this a number of ways: Click the Add Data Item toolbar button, then position the cursor, and click. Position the cursor and right-click. Position the cursor and select the Data Item option from the Add menu. Position the cursor and press F8. 2. Complete the Screen Data Item Options or Frame Data Item Options dialog box. Full details of these dialog boxes are contained in Adding a Data Item to an Ispec or Global Logic on page 5-6 and in Adding a Data Item to a Report Frame on page Click the OK button. The new Data Item becomes the current item. 4. Double-click the Data Item to change its attributes, if appropriate. Developer does not permit you to place a new Data Item so that there are less than three characters between the first delimiter of the new Data Item and the first delimiter of a nearby Data Item. Adding a Display Item To add a Display item: 1. Specify the position of the new Display item. You can do this a number of ways: Click the Add a new Display Item toolbar button, then position the cursor, and click. Position the cursor and click. Select the Display Item option from the Add menu, position the cursor and click. 2. Enter the text of the Display item. Notes: For additional lines, press the Enter key. The maximum length for a text of the Display item on a graphical screen is 255 characters. This limitation is also valid for a big buffer enabled ispec. The maximum length for a text of the Display item on a character screen is 80 characters. 3. Press the Enter key
188 Painting Screens 4. Change attributes of the new Display item if required. Note: Changing the Font attributes (such as color, style, size, etc), Forecolor, or Backcolor of a Display item overrides values set at the Business Segment level. Once Painter's display attributes are changed, all new Display items added to screens will use those settings until their display attributes are individually changed, or reset to Default. In Character mode, the bullet character is displayed before Data Items to indicate attributes. Display items that have the RESET; attribute are displayed with a bullet character at the end of the Display item. A Display item that consists of only dots (periods) is treated as a Draft Data Item. Note: To add a Display item that is an image, see Image on page Adding a Graphical Control Object You must be in Graphics mode to add a Graphical Control Object. To add a Graphical Control Object: 1. Select the Control Palette option from the Options menu. The Control palette displays. 2. Click a toolbar button on the Control palette. 3. Position the cursor and click, to specify the position of the new Graphical Control Object. 4. Complete the Graphic Control dialog box. Details of the fields on the Graphic Control dialog box can be found in the Developer online help. 5. Click the OK button. 6. Double-click the Graphic Control Object to change its attributes, if appropriate. Selecting an Item To select an item, click the item. The item becomes the current item and is highlighted. The Ctrl+Enter key combination selects the item at the text cursor position. You can perform actions such as copy, paste, and delete on the current item
189 Painting Screens Selecting Multiple Items To select multiple items: 1. Hold the left mouse button down as you drag the mouse. A box appears as you drag the cursor. 2. Release the left mouse button when the box includes all the items you want to select. All the items in the box are highlighted as if each had been selected individually. You can perform actions such as copy, paste, and delete on your selection of items. They can also be moved as a unit. To add to or remove from your selection of items: 1. Hold down the Ctrl key. 2. Click the item to be added or removed. Moving Selected Items To move one or more selected items on a screen layout: 1. Select the item or items. 2. Drag one of the items to its new position. A box is displayed, enclosing all the items being dragged. 3. Release the mouse button. The items are repositioned. To protect your system from overlapping Data Item fields, Developer does not allow you to use drag-and-drop to place a Data Item over another Data Item. Modifying a Data Item To change the definition of a Data Item on a screen layout: 1. Double-click the item to be changed. The Screen Data Item or Frame Data Item navigation dialog box is displayed. 2. Click the Options button. The Screen Data Item Options or Frame Data Item Options dialog box is displayed. 3. Make the required changes. Full details of these dialog boxes are contained in Adding a Data Item to an Ispec or Global Logic on page 5-6 and in Adding a Data Item to a Report Frame on page
190 Painting Screens Modifying a Display Item To change the text of a Display item on a screen layout: 1. Click the item. 2. Key in the changed text. An edit box opens on the Display item. 3. Click the OK button. Note: Changing the Font attributes (such as color, style, size, etc), Forecolor, or Backcolor of a Display item overrides values set at the Business Segment level. Once Painter's display attributes are changed, all new Display items added to screens will use those settings until their display attributes are individually changed, or reset to Default. Modifying a Graphical Control Object To change the definition of a Graphical Control Object on a screen layout: 1. Double-click the object to be changed. The Graphical Control dialog box is displayed. 2. Make the required changes. 3. Click the OK button. Deleting Items To delete a Data Item, Display item or Graphical Control Object from a screen layout: 1. Click the item to be deleted. 2. Select the Delete option from the Edit menu. You cannot delete a Data Item from an Object if the Data Item is the Ordinate of a Profile that the Object is over. Inserting Global Logics A Global Logic for which you have defined a layout in Painter can be inserted into an Ispec screen layout. The Data and Display items from the Global Logic are then automatically included on the Ispec layout. You would do this insertion first on a temporary basis in Painter to make sure that the inserted items fit properly in the layout. To make the insertion permanent, you must insert it in the logic of the Ispec. To insert a Global Logic layout into an Ispec screen layout, use the Edit Insert Global Logic option from the Global Logics list box. The inserted Global Logic cannot have a background color. The inserted Data and Display items appear in the layout within a dotted line rectangle
191 Painting Screens When you are satisfied with the position of the inserted items, confirm the insertion by including the INSERT; command in the logic of the Ispec. Note: If you do not include the INSERT; logic command, details of the insertion will be lost when the Business Segment is extracted from Developer. For details of the INSERT; command, see your Unisys Enterprise Application Programming Reference Manual. Inserting Keywords A Keyword for which you have defined Term Items and Term Displays can be inserted into the screen layout of an Ispec or Insertable Global Logic. The Term Items and Term Displays from the Keyword are then automatically included on the Ispec or Insertable Global Logic layout. The Graphics Painter can also be used to modify the graphical and presentation attributes of individual Keyword Term Items and Term Displays. In the Character Painter, you cannot select individual Term Items or Term Displays; selecting any item of a Keyword in the Character Painter will select the entire Keyword. You cannot modify the definition of a Keyword in the Ispec or Insertable Global Logic where it is inserted. If you delete any Term Item that makes up a Keyword in the Graphics Painter, you will delete the entire Keyword from both the Character and Graphics Painter. You can delete Term Displays in the Graphics Painter without deleting the entire Keyword. If you delete the last remaining item (either Term Item or Term Display) from a Keyword definition, it will be removed from any Ispec or Insertable Global Logic where it is inserted. If you remove the last Term Item from a Keyword definition, and the Keyword has been inserted in an Ispec or Insertable Global Logic as a usage output Keyword, it will be removed from that Ispec or Insertable Global Logic. Using the Draft Build Option The Draft Build option of Painter enables you to create a draft layout of your screen without having to define the real Data Items that will comprise the finished screen. Use the Draft Build option for quick screen design and prototyping. You can only access the Draft Build option in Character mode. On your screen layout you can define Draft Data Items with a length and optional text. Draft Data Items are not displayed on Graphics mode screens
192 Painting Screens About Draft Data Items Draft Data Items are displayed on the screen layout with a broken (dashed) underline. Draft Data Items: Are not available in Developer Test, or any Developer application that ignores Display items; for example, Function Point Analysis. Are available in Design Audit, which reports on Draft Data Items painted on incomplete screens. Support the same attributes as Display items; that is, foreground and background color, bright, underline, reverse, reset, box, blink, underscore, upperscore, dim, leftbar and rightbar attributes. Are duplicated if they lie on COPY.FROM lines, and are not allowed in the copied area. Can coexist with true Data Items on a screen. Can be loaded and extracted to and from Developer only. Can be cut and pasted (but only into Character mode screens). Are not displayed in the Graphics mode screen, Model Directory, matrixes, or Data Item lists. The default length of Draft Data Items is the length of the Draft Data Item text. The default Edit type for a Draft Data Item is EDIT;A. Defining a Draft Data Item You must be in Character mode to add a Draft Data Item. To add a Draft Data Item to a screen layout: Position the cursor on the screen where you want the field to begin and press Shift+F8. Double-click the Draft Data Item text to edit it using the Draft Data Item dialog box, or the Frame Draft Data Item dialog box. You can enter text for each Draft Data Item. The text can be anything, and you can use it to create a draft screen that includes realistic data values, or to set the default name, edit, length, decimals, and usage during the build phase. Your text can be a series of periods indicating the length of the item, as in host Fastbuild
193 Painting Screens The maximum length of text for Draft Data Items is 80 characters. The required format for text to be used in the build phase is listed in the following table. Format Default Value NAME Edit = A, Length = size of Draft Data Item, Decimals = 0 NAME,EDIT Length = size of Draft Data Item, Decimals = 0 NAME,EDIT,LENGTH Decimals = 0 NAME,EDIT,LENGTH,DECIMALS NAME,EDIT,LENGTH,DECIMALS, USAGE USAGE can be INQ, INP, I--O, or OUT When using the mouse to define Draft Data Items, the following mouse actions are supported: Click when the cursor arrow is positioned over an Object, to select that Object. If the cursor arrow is positioned over an empty area of the screen, a flashing text cursor is displayed at that position. This cursor can then be manipulated with the keyboard to define the current entry or edit position. If you enter all periods for Draft Data Item text, or the text is terminated with a Shift+Tab or a Shift+Enter, a Draft Data Item is created. Shift+click to finish the definition of a Draft Data Item. Shift+right click to define a Draft Data Item with a length of 1. Converting a Draft Data Item to a Display Item To turn a Draft Data Item into a Display item: 1. Position the cursor over the Draft Data Item. 2. Press Shift+Enter to convert it to a Display item. It makes no difference whether you select the Draft Data Item or not; the function works according to the position of the cursor. You can also use the Shift+Enter key combination to convert a Display item into a Draft Data Item. Converting a Draft Data Item to a Data Item To turn one or more Draft Data Items into Data Items, select the required Data Items, and then select the Build option from the Edit menu
194 Painting Screens Printing Draft Data Items You can print a specifications report on Draft Data Item position, length, and optional text. Draft items have the text DRAFT as a prefix to their attribute details. Design Audit of Draft Data Items The Data Analysis section of the Design Audit can report on layouts, Global Logics, and Report Frames containing Draft Data Items on incomplete layouts. Summary of Mouse and Key Actions in Painter The following table lists the mouse and keyboard actions supported by the Painter. Mouse Keyboard Action N/A F1 Help. N/A F2 Add rectangle. N/A F3 Bring to front. N/A Shift+F3 Send to back. N/A F4 Move to next field. N/A Shift+F4 Move to previous field. N/A F6 Align left. N/A Shift+F6 Align right. N/A F7 Align top. N/A Shift+F7 Align bottom. Click Ctrl+Enter Select item on which the cursor is positioned. Drag N/A If the mouse is over a selected item, start a move operation, otherwise start a multiple select operation. CTRL+click N/A Add or remove item from current selection. Double-click N/A Select and edit an item. Right-click F8 Add Data Item at cursor position, using dialog box. SHIFT+right-click Shift+F8 Add Draft Data Item at cursor position, using dialog box. Drag N/A Add Data Item at cursor position using dialog box. The size of the drag box will be the length of the Data Item. SHIFT+drag N/A Add Draft Data Item at cursor position, using dialog box
195 Painting Screens Mouse Keyboard Action N/A Arrow key Move the text cursor in the direction of the arrow key. N/A Shift+Arrow key If the text cursor is over a Data Item, the length of the Data Item is changed. N/A Enter Move the text cursor to the next line. N/A Shift+Enter Toggle the item under the text cursor; for example, if the item is a Draft Data Item, convert it to a Display item. N/A Tab Move to next tab stop. N/A Shift+Tab Move to previous tab stop. N/A Any Character If the cursor is over a Display item or Draft Data Item, edit the item. If the cursor is over an empty area of the screen, add a Display item or Draft Data Item. N/A Backspace Move the cursor back one character. If the text cursor is at the end of a Display item or Draft Data Item, edit the item. N/A Ctrl+Z Undo last move operation. N/A Ctrl+B Build selected items. N/A Delete Delete selected items. N/A Ctrl+G Character mode / Graphics mode toggle. The following table lists the mouse and keyboard actions when editing Display items or Draft Data Items. Mouse Keyboard Action N/A Arrow key Move the text cursor in the direction of the arrow key. If Up or Down arrow, finish the entry of a Display item. If Shift+Up or Shift+Down, finish the entry of a Draft Data Item. N/A Enter Finish the entry of a Display item, move to the start of the item, and down one line. N/A Shift+Enter Finish the entry of a Draft item, move to the start of the item, and down one line. N/A Tab Finish the entry of a Display item, and move to the end of the item. N/A Shift+Enter Finish the entry of a Draft Data Item, and move to the end of the item
196 Painting Screens Mouse Keyboard Action click N/A Finish the entry of Display item, and move the text cursor to the position at which the mouse was clicked. Shift+click N/A Finish the entry of Draft Data Item, and move the text cursor to the position at which the mouse was clicked. N/A Esc Cancel the current add or edit. Painting Host Subsystem Screens Host subsystems are utilities such as ROC and Ad Hoc, that are used by deployed systems. Developer enables you to load the character-based screens associated with the host subsystems and to create graphical screens that compliment the screens of your system. In order to create graphical screens for the required host subsystems, you need to explicitly add them to your Developer model. Included in the Developer installation are six model files that contain the subsystem screens for each host. These files reside in the same directory as the sample.mdl file. File ROCWIN.mdl contains the following ROC files for Windows operating system based hosts: ALIAS ROC-M ROC-Q ROC-A ROC-N ROC-T ROC-H ROC-O ROC-W ROC-I ROC-P ROC-X File ROCUNIX.mdl contains the following ROC files for the UNIX operating system based hosts: ALIAS ROC-M ROC-Q ROC-A ROC-N ROC-T ROC-H ROC-O ROC-W ROC-I ROC-P ROC-X
197 Painting Screens File ROC2200.mdl contains the following ROC screens for ClearPath OS 2200 based hosts: ROC-A ROC-N ROC-T ROC-H ROC-O ROC-W ROC-I ROC-P ROC-X ROC-M ROC-S File ROCMCP.mdl contains the following ROC screens for ClearPath MCP based hosts: ROC-A ROC-L ROC-R ROC-C ROC-M ROC-T ROC-F ROC-N ROC-W ROC-H ROC-O ROC-X ROC-I ROC-P File ADHOCMCP.mdl contains the following Ad Hoc screens, which apply only to ClearPath MCP based hosts: ADH-A ADH-F ADH-K ADH-B ADH-G ADH-L ADH-C ADH-H ADH-M ADH-D ADH-I ADH-S ADH-E ADH-J File SECTOS2200.mdl contains the Ispec SEC-T, which applies only to ClearPath OS 2200 based host. Using the Subsystem Model Files In order to use the subsystem model files, load the appropriate model file into Developer. ROC and Ad Hoc Files These model files are intended to be loaded into Developer as individual Business Segments. This means you need to load the required file only once and can create a consistent look across all the relevant screens to be accessed by your runtime systems. Each screen is loaded as a Component Ispec and has an existing character-based screen
198 Painting Screens The ROC files also include a number of Insertable Global Logics containing one or more painted items. They may be used in several Components or several times in the same Component. Note: If you delete fields from a screen it will not work correctly. You can use Builder to perform a Component Enabler Bundle generate of the required screens. This requires you to have Component Enabler installed on your machine. See your Enterprise Application Builder Guide for further details. Builder generates only the graphical screens for the Ispecs. You cannot perform a full System generate of a subsystem Business Segment. This means that adding logic to or changing options of objects has no impact on the generated product. Note: You must have a ROC-capable runtime system deployed on the host in order to use the model files to add ROC screens to your system. You must also have generated Bundles for the runtime system for use with the Presentation Client. See your Enterprise Application Component Enabler Developer s Guide for information on the Presentation Client. Java based generators are removed from the Client Tools AB Suite release. The EAE Developer is modified to invoke the C# generator dll's instead of the Java generators. The clients supported by AB Suite Client Tools cannot be generated using Java based Generators any more. The EAE Developer will still support bundle generate using customized Java Generators developed by users. When the User Defined View Generator property is blank or unspecified, as default: The Presentation Client view generator for C# version, GenerateForm.dll is invoked. To invoke the customized Java based Generator, the Jave Class name needs to be specified with fully qualified name. To use a ROC or Ad Hoc file: 1. Load the required file into Developer. A Business Segment is added to the model. 2. Optionally, use Developer Painter to paint the desired Ispec screens. 3. In the Systems directory, add a new System selecting the Business Segment containing the painted ROC or Ad hoc Ispecs. Create a Generate Set for the System with the appropriate host type. 4. Double-click the Business Segment node of the newly created System, to display the Business Segment options dialog box. 5. On the Component Enabler tab, check the Component Enabler Capable check box
199 Painting Screens 6. For MCP, Windows, and UNIX hosts; specify the same Application Name, Package Prefix, and Output Directory as you specified for the runtime system. For OS 2200 hosts; specify the same Package Prefix and Output Directory as you specified for the runtime system. For the Application Name, specify the ROC system name for the host environment (see your system administrator for the system name under which ROC has been installed). 7. Create a Component Enabler Bundle containing the required Ispecs. You must use the same name as used for the Bundle in the runtime system. 8. Perform a Bundle generate. The graphical screens for the Ispecs in the Bundle are generated. 9. Copy the generated.class and.asp files to the location wfrom here the IIS server will use them. Note: The generated SelectIspec.asp file should NOT be copied because the newly generated file contains only the roc screens. Note: On ClearPath OS 2200, ROC is a separate Enterprise Application Environment system. This means that when ROC is invoked it is "switched to", and when you exit (BY) ROC you are switching back to the original system. As part of the switch, the name of the application being switched to is passed to the client used to access the correct Component Enabler components. When switching to and from ROC, the application name sent is the name the system was deployed as on the host. For switching to work correctly, the application name used to generate the Component Enabler components must be the same as the name used to deploy the system. The SEC-T File The SECTOS2200.mdl file is different from the other subsystems in that it must be included as part of a system. The file is a partial extract file so you can load it into an existing Business Segment. This enables you to paint a different graphical screen for each system in which it is included. Graphical Interface Workbench If you have previously modified subsystem screens using Graphical Interface Workbench or PowerClient, you can use the Workbench to Developer utility to transfer these screens to Developer. For details on using the Workbench to Developer utility see Transferring Forms from Workbench to Developer on page C-4. If required, you can also transfer screens modified in Developer to Graphical Interface Workbench, or PowerClient, using the Developer to Workbench utility. See Transferring Forms from Developer to Workbench on page C
200 Painting Screens Summary After completing this section, you can: Access the Painter from Developer. Understand when to use Character mode and when to use Graphics mode. Switch between Character mode and Graphics mode. Add, move, copy, and delete items on a screen or Frame layout. Paint screens for host subsystems
201 Section 7 Defining Global Logic About Global Logic A Global Logic is an object that can be used by Ispecs and Reports. A Global Logic can have a screen layout and logic, but it cannot function on its own. Global Logic can be used in Pre-Screen, Pre-LINC, or Main Logic. The use of Global Logic can help to enforce screen format and processing standards in your system. Common routines and formats can be defined once, then used throughout the system where needed. There are two types of Global Logic: Insertable and Performable. Insertable Global Logic These are Global Logics with screen items, logic, or both. They can be used in Ispecs and in Reports, and when inserted become part of the Ispec or Report. Insertable Global Logic cannot be inserted into other Insertable Global Logics. Insertable Global Logics with painted screens cannot be inserted in Performable Global Logics and are not suitable for use in Reports. Insertable Global Logics can use data retrieved by the host Ispec or Report. Performable Global Logic These are Global Logics consisting only of logic. A Performable Global Logic can be called by Ispecs or by Reports, but they do not become part of the calling entity. Performable Global Logics can be inserted into another Performable Global Logic or an Insertable Global Logic. A Performable Global Logic must handle its own data retrieval as it is not part of the entity which calls it. You can also use Global Setup Data Items as a convenient way to pass data to and from these Global Logics, unless they are defined as Callable. For Callable Global Logics an interface for passing data is defined using specialized Setup Data Items. Because the Global Logic is external to the Runtime System, Global Setup Data Items are always initialized on invocation and their values cannot be passed between the Global Logic and the Runtime System
202 Defining Global Logic Adding a Global Logic You can add Global Logic to a Business Segment, a Functional Area, or an Activity, making the Global Logic available to lower-level Ispecs and Reports. To add a Global Logic using the Model Directory: 1. Click on the Business Segment, Function, or Activity to which you want to add the Global Logic. 2. Select Global Logic from the Add menu. The Global Logic Options dialog box is displayed. 3. Key in the fields described below. 4. Click on the OK button to return to the Model Directory, or click on the Next button to define another Global Logic. After defining a Global Logic, you may want to add Data Items to it, paint a screen for it, or define logic for it. Follow the instructions in Adding a Data Item to an Ispec or Global Logic on page 5-6 to add Data Items to a Global Logic. Painting a screen for an Insertable Global Logic and setting up logic for Global Logics are described in the subsections below. Name Identifier for the Global Logic. The entry in this field must not begin with a number or a minus sign (-) and must not be the name of an existing Global Logic in the selected Element. This field is Alphanumeric. If long names are allowed for the Model, the name can be up to 27 characters. If long names are not allowed, the name cannot exceed 17 characters. If the Model uses long names, an additional shorter name field appears below the Name field. The maximum length of this field is 17 characters. The shorter name defaults to the first 17 characters of the long name. For a Callable Global Logic, the name is restricted to 8 characters, and cannot contain a hyphen. Review Naming Elements: Reserved Words on page 4-1 before naming a new Global Logic. Notes: For MCP based Systems, using a name that is the same as an entrypoint implemented in an Enterprise Application Environment library (such as LINCSUPPORT) will cause the COBOL syntax error ILLEGAL DUPLICATE NAME when you generate the System. If this occurs, you must rename the Global Logic
203 Defining Global Logic Ensure that the report names, global logic names and data item names must not use the format <ispec>-rec. This conflicts with an internal naming system. Using the format <ispec>-rec for report names, global logic names and data item names results in a generate failure. Description A short description of the Global Logic. Maximum length 30 characters. Author Your name to identify you as the author of the Global Logic, for use in listings. Alphanumeric, maximum length 20 characters. No validation is performed on the value entered in this field. Performable/Insertable Select one of these radio buttons to define the Global Logic as Performable or Insertable. Callable Check this check box to define the Global Logic as Callable. This means that the Global Logic is generated as an external routine which can be called directly by other 3GL applications as well as Enterprise Application Environment. This check box is only available for new Performable Global Logics. When you define an Insertable Global Logic, the check box is disabled. It is also disabled if you open the Global Logic Options Dialog Box for an existing Global Logic. To define the interface for passing data to and from the routine, go to the Setup Data Item List Window and add Setup Data Items to the parameter group called glg-io GROUP that is automatically included there. Note: As Callable Global Logics are external to the Runtime System, calling them from Runtime may be slightly slower than calling standard Performable Global Logics. By default this check box is unchecked. Defining an Insertable Global Logic Screen To define a screen layout for an Insertable Global Logic: 1. Double-click on the Insertable Global Logic in the Model Directory. 2. Select the Painter option in the navigation dialog box. Developer Painter is opened for the selected Insertable Global Logic. See Painting Screens on page 6-1 for details on using the Painter to define a screen layout
204 Defining Global Logic Defining Logic for Global Logic To define the logic for an Insertable or Performable Global Logic: 1. Double-click on the Global Logic in the Model Directory. 2. Select the Logic option in the navigation dialog box. The Developer Logic Editor is opened for the selected Global Logic. See Using the Logic Editor on page 8-6 for details on using the Editor to define logic. Listing Global Logic To see a list of Global Logic defined for a Business Segment, Functional Area, or Activity: 1. Double-click on the Business Segment, Function, or Activity in the Model Directory. 2. Select the Global Logic List option in the navigation dialog box. The Global Logic List displays the Name, Type, Description, Date and Time of last revision, UserId, and Revision status of each Global Logic. Printing Global Logic To print a Global Logic from the Model Directory: 1. Click on the Global Logic that you want to print. 2. Select the Print Specification option from the File menu. The Specification Listing Selections dialog box is displayed. See Documenting the Business Model on page 4-83 for details on completing the fields in this box. 3. Click on the Listing Options button. The Listing Options dialog box is displayed. 4. Check the Line Numbers check box if you want to include the logic line numbers in the printed report. 5. Check the Expand GLG check box if you want the logic lines for Insertable Global Logics to be included in the printout. (See the example below.) 6. Click on the OK button to return to the Specification Listing Selections dialog box. 7. Click on the OK button to initiate the print job
205 Defining Global Logic When you check the Expand GLG check box, the logic is printed with Insertable Global Logics expanded in-line. Global Logic lines will include an asterisk character (*), and the expanded logic will have its own line numbers, as shown in the following table. Logic With Line Numbers MV; GLB.SPACES NAME INS; ACTION-LINE RECALL; Logic Expanded With Line Numbers MV; GLB.SPACES NAME INS; ACTION-LINE 00001* MV; GLB.SPACES ACTION 00002* MV; (2) RESULT RECALL; Using Global Logic in Developer This subsection covers a number of topics relating to the use of Global Logics in Developer. Setup Data Item Length The maximum length of a Setup Data Item name for an Ispec, Report, or Performable Global Logic is 20 alphanumeric characters, minus the length of the Ispec, Report, or Performable Global Logic name. For an Insertable Global Logic, the maximum length of a Setup Data Item name is calculated as follows: If the Global Logic is not inserted in any Ispec, Report, or Performable Global Logic, the maximum length of the name is 18 alphanumeric characters. This allows for a minimum of two characters for the Ispec, Report, or Performable Global Logic into which it may be inserted. If the Global Logic has already been inserted in an Ispec, Report, or Performable Global Logic, the maximum length of the name is 20 alphanumeric characters, minus the maximum length of the name of the Ispec, Report, or Performable Global Logic into which it is inserted. You cannot insert a Global Logic if the length of the name of one of its Setup Data Items plus the name of the Ispec, Report, or Performable Global Logic into which it is inserted is greater than 20 characters
206 Defining Global Logic In-Line Insertion of Insertable Global Logics Insertable Global Logics are expanded in-line when your inserting logic is validated. Errors in Insertable Global Logic are reported once only, without reference to any inserting Ispecs or Report Frames. When the Global Logic is inserted (and assuming this error is not resolved on insertion), the INSERT; statement is marked with the following error: INSERT contains errors Double-click on the INSERT; statement in your logic to expand it, displaying a read-only copy of the Global Logic in-line. At the same time, the above error will be expanded to show the full list of errors against the Global Logic. You can then select one of these errors, and the related logic line in the expanded Global Logic is automatically highlighted. Double-click on the INSERT; statement again to collapse the expanded Global Logic. Note: Double-clicking on the INSERT; statement acts as a toggle, alternately expanding and collapsing the Global Logic. Only Insertable Global Logics can be expanded and collapsed in this way. Insertable Global Logics in Big Buffer Ispecs When a Big Buffer Ispec is validated, its existing size does not take into account the size of any Insertable Global Logics it may contain. Consequently, if the size of a Big Buffer Ispec (without Insertable Global Logics included) is less than the specified maximum, no error notification is given, even though its total size including Insertable Global Logics may exceed the maximum. Relations Relations whose source is an Insertable Global Logic are duplicated for every insertion of that Global Logic. Validating Insertable Global Logics in Isolation Insertable Global Logics can be validated in isolation. However, two types of error may result: Logic errors. You should correct logic errors. Errors that occur because the Global Logic is validated in isolation. For example, if the logic contains a JUMP.TO; command and the corresponding LABEL; command is not in the same logic, an error will be flagged on validation. You can ignore errors that occur because Global Logic is validated in isolation
207 Defining Global Logic When the Global Logic is inserted, the INSERT; command will be marked with an error if you have not resolved any logic errors. Provided all errors have been resolved on insertion of the Global Logic (for example, the inserting logic provides the required label), your logic can be run. Although Insertable Global Logics can be validated in isolation, you do not have to do so in order to run your system, as long as the Ispecs and Report Frames where these logics have been inserted are validated. Because of this, Insertable Global Logics are not validated in either of the following cases when you: Check the Validate Logic After Load check box from the Model Load Options dialog box (if loading in Developer). Use the VALIDATELOGIC command (if loading with Developer Console). By default, Insertable Global Logics are not displayed in the Logic Status window. If you want them displayed in the Logic Status window, select the Some Types option from the View menu to access the Show dialog box. You can select Insertable Global Logics and Performable Global Logics separately in this dialog box. Note: If Insertable Global Logics are not validated, any relations that might have resulted from that logic are not created. Effects of Changing an Insertable Global Logic If the logic of an Insertable Global Logic is changed, all logic in which it is used is marked as Not Validated, since its correctness can no longer be assumed. Before your system can be run, all such logic must be revalidated. To assist you in this situation, the Logic Editor will prompt you with Validate all inserting Ispecs and Frames? whenever a Global Logic is saved using the Save or the Validate & Save command from the Logic Editor Logic menu. If you respond Yes to this, all inserting logics are revalidated. In addition, the entire logic is marked as Not Validated when an Insertable Global Logic that includes logic is: Changed to a Performable Global Logic Changed from an Performable Global Logic Deleted
208 Defining Global Logic Behavior of Ispec-Only Objects in Reports Performable Global Logics containing Ispec-only constructs can be inserted in Reports, but these are ignored when the Report is run; that is, the constructs have no effect at all when executed from a Report. The following Logic commands apply only to Ispecs: ABORT; RECALL ADHOC.MODE; RECALL; ROC.MODE; RUN; SWITCH; The CURSOR; command is also valid only in Ispec logic, but is not valid in Performable Global Logic. The SERIAL; Ispec-only construct can be used with the LOOK.UP; and DETERMINE; commands, but it is ignored if it is used in a Performable Global Logic that is inserted in a Report. A number of Ispec-only System Data Items can be used in a Performable Global Logic that is inserted into a Report, but their usage and values are not guaranteed. These System Data Items are: GLB.ACTIONKEY GLB.BALANCE GLB.COPY GLB.DESTXNID GLB.EOP GLB.LANGUAGE GLB.MAXCOPY GLB.ORIGINISPEC GLB.ORIGINXNID GLB.PREVISPEC GLB.PRIORITY GLB.REQUEST GLB.SELFXNID GLB.SOURCE GLB.STALANG
209 Defining Global Logic GLB.SUBSYS GLB.UNIQUE GLB.USERCODE GLB.WORK Performable Global Logic in Ispecs and Reports Some logic commands work differently in Ispecs and Reports. When a Performable Global Logic uses one of these commands, the behavior is determined at run time, depending on whether the logic is inserted into an Ispec or a Report. The logic commands that work differently in Ispec and Report logic are: MESSAGE; SEND.MESSAGE; For example, LOOK.UP; of a non-existent key in an Ispec gives an automatic error, and stops processing the Ispec. In a Report, GLB.STATUS is set, and Report processing continues. The implementation of MESSAGE; and SEND.MESSAGE; in Developer differs from the implementation in host runtime environments. Message Boxes and status line messages are used in Developer. The behavior of these commands when used in a Performable Global Logic in Developer is determined at run time. Note: Ispec-only constructs are not allowed: In Report Logic (Main Logic or Frame Logic) In Insertable Global Logics used in Report Logic Error Reporting If you write to a Data Item that has not been read in a Performable Global Logic and then insert the Performable Global Logic into Ispec Main Logic, Developer Test cannot report the error if the Data Item has already been read in the Ispec s Pre-LINC logic. Limits The following table contains a summary of the limits for Global Logics for each target host. Limit OS 2200 MCP UNIX/ Windows Number of Global Logics 4,088 No limit No limit Logic Lines in a Global Logic 999, , ,
210 Defining Global Logic Limit OS 2200 MCP Global Logics in an Ispec No limit No limit (999 Performable Global Logics with Integrity) UNIX/ Windows No limit Nested Global Logics No limit No limit No limit Macro Global Logics in Module Master No limit No limit No limit Macro Global Logics inserts in Module 3,000 3,000 3,000 Size of an alphanumeric Data Item in a Global Logic 4,095 4,095 4,095 Number of Global Logics OS 2200 based Systems The sum of the number of separately compiled Global Logics and the number of Ispecs must be less than 4,088 for the HVTIP limit (calculated as 4,095 minus 7, for the seven subprograms). No other limits are known. Logic Lines in a Global Logic OS 2200 based Systems In practice, generate times and the HVTIP program limit will be reached before this (2,000 to 5,000 total lines in a Global Logic). Also, there is a limit of slightly less than one million total logic lines in Builder for all Specifications, and about two million lines of generated COBOL. Global Logics in an Ispec MCP based Systems There is a limit of 999 Performable Global Logics in an Ispec (or Global Logic) for an Integrity system. There is a limit of 9,000 on the total number of inserts of a Global Logic into another Global Logic. Windows, UNIX and OS 2200 based Systems For Performable Global Logics, there is a limit of 500 on the number of inserts of a Global Logic into an Ispec (including nested inserts)
211 Defining Global Logic Nested Global Logics The upper limit for nested Global Logics is the limit on the number of Global Logics in an Ispec. OS 2200 based Systems Separately compiled Global Logics cannot be nested more than five deep (EXEC TIP parameter). Summary After completing this section, you can: Explain the difference between Performable and Insertable Global Logic. Define a Global Logic. Understand how Global Logics are used in Systems
212 Defining Global Logic
213 Section 8 Using the Logic Editor This section describes the functions of the Developer Logic Editor. It gives information and instruction on how to define logic for processing screens and Reports, including entering, validating, and dealing with errors in your logic. In this section you will find: Accessing the Logic Editor Using the Logic Editor Using the Logic Status Window Changing Your Model Accessing the Logic Editor Use the Logic Editor to maintain the following types of logic: Pre-Screen Pre-LINC Main Edit (for Copy From Ispecs) Report Frame Global Logics To open the Editor for each of these types of logic: 1. Select the desired Object in the Model Directory. 2. Select the Open Selected command from the File menu. The navigation dialog box is displayed for the selected Object. 3. Click the button for the logic type you want to edit. The Logic Editor is displayed
214 Using the Logic Editor Logic Editor Display The Logic Editor display shows the: Logic Editor Window Errors Window Status Line Logic Editor Window Logic is displayed and edited in a scrollable text window that supports the standard editing functions. Note: Sequence numbers are not displayed and are not required with logic. The following sections describe the main features of the Logic Editor window. For details of entering logic, see Using the Logic Editor on page 8-6. The Editor Toolbar The Logic Editor window includes a separate toolbar that contains many of the most frequently used editing and formatting functions. Label Function Cut Copy Paste Undo Redo Find Find Next Find Previous Replace Increase Indent Decrease Indent Comment Deletes text and places it on the clipboard. Copies text and places it on the clipboard. Inserts text from the clipboard. Reverses the last action. Reverses the action of the undo command. Searches for a word or phrase in the text. Finds the next occurrence of the word or phrase. Finds the previous occurrence of the word or phrase. Replaces found text with a specified word or phrase. Moves the text to the next tab stop. Moves the text to the previous tab stop. Comments out the selected comment or converts the selected comment to text
215 Using the Logic Editor Automatic Completion of Names This feature is enabled using the Member list check box of the Editor command from the Options menu. A list box of context-sensitive member names is displayed when a PERIOD (.) is entered after an Ispec name or GLB. Object Member List Items Ispec GLB Data Items in the identified Ispec GLB system Data Items Functionality: Navigate through the member list using the scroll bar or the UP/DOWN ARROW keys. Shortcut to a particular item by typing the first few letters of its name. Press ENTER, the TAB key, or double-click a member list item to insert its name into the logic text. Press ESC or click outside the list box to cancel the member list. Press CTRL+SPACEBAR to display a list of context-sensitive item names. Cursor Position List Items Start of a line After a PERIOD (.) At any other position Commands Member list items Context determined unqualified Data Items and command options Automatic Indenting This feature is enabled using the Auto Indent check box of the Editor Options dialog box, accessed using the Editor command from the Options menu. Commands that begin a block (for example, DO.WHEN;) automatically indent the following line. New lines of code are automatically indented to the same level as the previous line. Commands that end a block (for example, END.EXIT;) are automatically unindented. Note: This feature does not consider the semantics of a command, and indenting anomalies may occur, particularly if coding does not conform to standard conventions. For example, an AUTO; WRITE command within a DO.WHEN; block is recognized as an end command and will unindent the block, even though this is not semantically correct
216 Using the Logic Editor Indentation can be manually adjusted using the Increase Indent and Decrease Indent buttons on the Editor toolbar, or from the Format menu. Tab spacing can be set using the Editor command from the Options menu. Expand/Collapse Logic Blocks This feature enables logic blocks to be expanded or collapsed at will. In conjunction with Automatic Indenting, this allows for increased readability of code. The box displayed next to a command that begins a block indicates whether the block is currently collapsed. If the block is currently expanded, a minus sign (-) is displayed in the box. If currently collapsed, a plus sign (+) is displayed in the box, and an ellipses (...) is appended to the command. Click on the box to switch states. Blocks can be nested, and are terminated at the closest unmatched end command. Notes: This feature does not validate the syntax of a block. You will still need to validate the logic for errors. Similar to Automatic Indenting, this feature does not consider the semantics of a command, and block-grouping anomalies may occur, particularly if coding does not conform to standard conventions. For example, an AUTO; WRITE command within a DO.WHEN; block is recognized as an end command and will terminate the block, even though this is not semantically correct. Expanding Global Logics You can expand the logic of an Insertable Global Logic when it is inserted into the logic of an Ispec. To expand Global Logic: 1. Select the INSERT; command preceding the Global Logic. 2. Select the Expand command from the Edit menu. A check mark appears beside the command. A read-only copy of the Global Logic is displayed highlighted on a gray background. To collapse the Global Logic perform the same steps. Line Numbers This feature is enabled using the Line numbers check box of the Editor command from the Options menu
217 Using the Logic Editor Line numbers are automatically updated as new lines of code are entered. Expanding or collapsing logic blocks does not affect line numbering. Any expanded Insertabled Global Logics retain their original line numbering. Syntax Highlighting The following elements of code are automatically highlighted in different colors. Text Comments Literals System Data Items Commands Block commands Block end commands Command options The following display environment elements of the Logic Editor window are also assignable. Background Line numbers Colors assigned to each element are adjusted using the Editor command from the Options menu. Multiple Editor Panes The Logic Editor window can be split into two horizontal panes using the Split command from the Window menu. Both panes retain fulll functionality, and their proportions can be adjusted by dragging the dividing split bar. The split bar is removed by dragging it to the top or bottom edge of the window, or by deselecting the Split command from the Window menu. Tabs As Spaces This feature is enabled using the As spaces check box of the Editor command from the Options menu
218 Using the Logic Editor Tab characters can either be inserted as tabs, or replaced with equivalent space characters to bring the cursor to the next tab boundary. Note: When loading an extracted LCIF file into Enterprise Application Builder, any tab characters in the logic text are automatically replaced by space characters. See the Load Facility in the Unisys Enterprise Application Developer Administration Guide for details of how logic is loaded. Errors Window Errors are displayed in a list window, below the logic text. You can show or hide this window by selecting the View Errors command from the View menu. For more details, see Dealing with Errors on page Status Line The status line displays: Number of errors found (each time the logic is validated). Warning messages. 'INS' for insert mode. Inserts text as you type, in front of existing text. 'OVR' for overtype mode. Replaces existing text as you type, one character at a time. Current line number and column. Using the Logic Editor The Logic Editor is used to create, edit, save and validate logic. Entering Logic The following points are important to consider when entering logic in the Editor window. Case sensitivity The Editor is case insensitive. Logic can be entered in any case, and lowercase characters will be converted to uppercase when you save or validate your logic. Text within literals or comments will not be converted
219 Using the Logic Editor Long names If long Object names are allowed in the Model, you must use the long names in the logic. If a literal is used in the RECALL; command, the long name must be used. For example, RECALL; (SALESPERSON) However, short names must be used for Reports and where Data Items are used to store Object names. For example, for an Ispec with a long name of SALESPERSON and a short name of SREP, MV; (SREP) D1 RECALL; D1 Only the short names of Reports can be used in the RUN; command. Line length Each line is limited to 72 characters. However, if the Extend Logic Lines option is set on the Business Segment Options dialog box, the allowable line length is extended to 240 characters. If long Object names are allowed in the Model, lines containing long names may be up to 240 characters. When the Editor is closed the long names are replaced with the corresponding short names, and the line length must then not exceed 72 characters. However, if the Extend Logic Lines option is set for the Business Segment the converted line can be longer than 72 characters. Validating You are responsible for validating your logic as there is no automatic validation (for example, syntax checking) as you enter text. For more details, see Validating Logic on page Automatic validation occurs as part of the generation process when a System is being generated to a target host using the Builder feature. See the Unisys Enterprise Application Builder Guide for further details. One logic command per line Enter only one logic command per line, except in the following circumstances: DETERMINE; commands can be entered over multiple lines. Make line breaks between Profile Ordinate values, so that the left parenthesis preceding the list of values is on one line of the command and the right parenthesis is on a subsequent line. The first left parenthesis must be on the first line of the command
220 Using the Logic Editor You can enter a LOOK.UP; GROUP command over multiple lines. Make line breaks in the command between Ordinate values, so that the left parenthesis preceding the Ordinate value is on one line of the command and the right parenthesis is on the next. The first left parenthesis must be on the first line of the command. You can enter COMPUTE; commands over multiple lines. The first left parenthesis must be on the first line of the command. Ispec Data Item brought into memory Developer does not enforce the requirement for an Ispec to be brought into memory with LOOK.UP; or DETERMINE; command if it contains Data Items that are to be modified, before the command is executed. This means that a file does not need to be read before you refer to Data Items contained in it. You can enforce this requirement in Developer Test by setting the CheckIspecRead parameter in the [RunTime] section of the LINC.INI file. Getting help To get help on a specific logic command, select the command in your text and press the F1 key. Using the Insert AUTO Command The Insert AUTO command automatically inserts the skeleton of an AUTO; command in your logic. The AUTO; skeleton includes all Usage Output and I-O Data Items in the target Ispec, listed in alphabetical order. The AUTO.ENTRY; and the AUTO; WRITE commands are also displayed. For example this is the skeleton for the DOX component in the sample system: AUTO.ENTRY; DOX AUTO; DOCUMENT AUTO; ISPECNAME AUTO; MAINT AUTO; WRITE
221 Using the Logic Editor The Ispec you define as the target Ispec must have the Auto Entry Capable option checked in its Option dialog box. To insert an AUTO; command: 1. Position the cursor where you want the AUTO; statement to be inserted. 2. Select the Insert AUTO command on the Options menu. 3. In the prompt dialog box, enter the name of the target Ispec, which must be defined as an AUTO.ENTRY Ispec, and click the OK button. The skeleton of an AUTO statement is inserted in the following format: AUTO.ENTRY; {Ispec} AUTO; {data item 1} AUTO; {data item 2}... AUTO; {data item n} AUTO; WRITE 4. Complete the AUTO; statements by inserting the names of source Data Items. 5. The space between the AUTO; command and the destination Data Item name enables you to enter the Data Item or the literal. Using the Insert INQ Command Use the Insert INQ command to create logic for an Inquiry Ispec. A default set of MOVE; commands for the current Ispec is inserted. A DO.WHEN; command and an END.EXIT; command are also included. The logic tests if MAINT = GLB.INQ and then moves database values to screen items for the current Ispec. The following example is from the Main Logic of the REPT component in the sample system: DO.WHEN; MAINT = GLB.INQ MOVE; GLB.SPACES ACTION MOVE; REPT.REPORT REPORT MOVE; REPT.REPTCODE REPTCODE
222 Using the Logic Editor RECALL; END.EXIT; To use the Insert INQ command: 1. Position the cursor where you want the inquiry logic to be located. 2. Select the Insert INQ command on the Options menu. A default set of MOVE; commands appropriate for an Inquiry is inserted at the current cursor position. 3. Remove any unwanted lines of logic, and make any necessary modifications. Notes: 1. For Usage I-O fields, the database values are moved to the screen item. For Usage Input and Inquiry fields (such as ACTION and BALANCE in the following example), GLB.SPACES or GLB.ZEROS are moved to the screen item. Items are listed in alphabetic order. When the current Ispec is an Event, the source Data Items are prefixed by EVENT, rather than by the Ispec name. DW; MAINT = GLB.INQ MOVE; GLB.SPACES ACTION MOVE; CUST.ADRESS1 ADRESS1 MOVE; CUST.ADRESS2 ADRESS2 MOVE; CUST.ADRESS3 ADRESS3 MOVE; GLB.ZEROS BALANCE MOVE; CUST.CUSTNO CUSTNO MOVE; CUST.FIRSTNAME FIRSTNAME MOVE; CUST.SURNAME SURNAME RECALL; END.EXIT; 2. In Ispecs that do not have a system MAINT field (that is, Events and non-automaint Memo Components), the same skeleton is created, but without the enclosing DW; MAINT = GLB.INQ / END.EXIT; expressions. Automatic Insertion of SOK/EOK Characters SOK (Start of Kanji) and EOK (End of Kanji) are characters that surround Kanji character strings. Developer supports the automatic insertion of SOK/EOK characters for applications developed for MCP based hosts. SOK/EOK support is enforced when MCP is the only target host selected and the Japanese Char Set Support option is checked in the Business Segment Options dialog box. These characters are inserted in many fields throughout Developer as well as the Logic Editor. SOK/EOK characters are not stored in the Repository. SOK/EOK characters are inserted around Kanji strings in comments and literals dynamically as they are typed. SOK/EOK characters are represented by the characters specified in the [INTL] section of the LINC.INI file. If no characters are entered they are represented by ASCII spaces. Kanji Data Item long names are ignored as these names are converted to their short names before being extracted
223 Using the Logic Editor When extracting logic in which SOK/EOK characters are inserted, if the line length is longer than 72 characters, or 240 characters when Extend Logic Lines is set on the Business Segment Options dialog box, the line will be truncated and an error written to the log file. The error will contain the line number and location of the error. See SOK/EOK Support on page 4-19 for further information. Entering Setup Data Items Setup Data Items and Global Setup Data Items are temporary Data Items. Setup Data Items Setup Data Items are associated with individual Ispecs, Global Logics, and Reports. They can be entered into all types of logic for the Ispec, Global Logic, or Report for which they have been declared. In the Logic Editor, use the Setup Data command from the Go To menu to open the Setup Data Item List window for the current Ispec, Global Logic, or Report. In this list you can see the Setup Data Items available for the current Object. Global Setup Data Items Global Setup Data Items are associated with entire Business Segments. They can be entered into the logic of any Object with in the Business Segment. Use the Global Setup command from the Go To menu to open the Global Setup Data Item List window for the Business Segment. For full details of Data Items, see Defining Data Items on page 5-1 Defining Data Items. Changing Logic When you first access logic, the logic is opened in view mode, meaning you are viewing the logic but are not changing it. As soon as you make a change, you automatically lock the logic. Locking logic prevents other users from making changes, although they may still view the unchanged logic. Note: In multiuser mode, a padlock icon on the left side of the Tool Bar shows you have locked the logic. In single user mode, no icon is shown
224 Using the Logic Editor Validating Logic Logic is not validated as you enter it in the Editor window. Logic is validated when: You initiate validation manually, using one of the validate commands. An object is loaded, in either of the following cases, if: The Validate logic check box is checked (if loading in Developer). The VALIDATELOGIC command is issued (if loading with Developer Console). You generate the System. See the Unisys Enterprise Application Builder Guide. When logic is validated the following checks are performed: Syntax Checking Checks whether a line of logic has a valid command and the appropriate number of parameters. Semantic Checking Checks whether a command is valid, that is, if Data Items and Objects in logic exist and have valid attributes. For example, whether an Ispec named in an AUTO.ENTRY; command allows Automatic Entry, or whether arguments of an ADD; command are numeric. Validate and Save Commands In the Logic Editor you have five options for dealing with the validation and saving of your logic. Select one of the following commands from the Logic menu to specify which option you require: Validate Logic is validated and any errors are displayed. Logic and errors are not saved and relationships implied by the logic are not created. A dialog box is displayed indicating the progress of the validation. You can use this dialog box to cancel the validation. Validate and Save Logic is validated and any errors are displayed. The logic and details of the errors are saved and any relationships implied by the logic are created. A dialog box is displayed indicating the progress of the validation. You can use this dialog box to cancel the validation
225 Using the Logic Editor Validate and Save Whole Object All logic within the selected object is validated without opening a Logic Status List window. When validation is complete a dialog box is displayed showing the number of logics that validated successfully and the number that are in error. The logic and details of the errors are saved and any relationships implied by the logic are created. A dialog box is displayed indicating the progress of the validation. You can use this dialog box to cancel the validation. Save Logic is saved without any validation. Discard Logic entered since the text was last saved is discarded. A prompt dialog box is displayed allowing you to continue with the discard or to cancel the process. Note: Logic must be saved and validated before you can execute it in Developer Test. Dealing with Errors If errors are found during the validation of logic, the Error window, containing a read-only list of errors, is displayed below the Logic Editor window. Using the Next Error command (F4) and the Previous Error command (Shift+F4) on the Go To menu, you can step through the errors. The current error message is highlighted, and the corresponding line of logic containing the error is selected in the logic window. Note: Only the first five errors in a line of logic are detected. Correcting Errors If you add or delete lines of logic while you are correcting errors, an incorrect line of logic may be selected when you highlight an error in the Error window. To avoid this, adopt one of the following techniques: Work from the last error back through the list of errors using the Previous Error command. Validate the logic after making each change. Getting Help on Errors Context-sensitive help for errors can be activated from the logic or error panes by highlighting the error and pressing the F1 key
226 Using the Logic Editor Overflow Errors There is a limit to the amount of logic a single Object can contain. The limit is set by the maximum size of the Developer internal symbol tables. These grow according to the size and complexity of the logic attached to an Object. In this context logic means all the various types of logic attached to the Object (including insertable logic). Consider the following: There is a limit on the size of each type of logic, and another on how large the sum of the logics can be. The limit you are likely to encounter first is on the total size of a logic object that can be loaded into Developer Test for testing. This limit is 64 KB. If you encounter that limit, you will not be able to test that particular Ispec in Developer Test, but you may be able to move it to the host and test it there. The next limit you are likely to encounter is on the total number of lines of code that Developer can open. The next most-likely limit is on the number of references within the code. In each case, you must reduce the size or complexity of the code. Try deleting blank lines and comment lines; each of these creates an entry in the debug symbol table. Viewing Definitions Using the Definition command on the GoTo menu you can access the navigation dialog box for elements directly from the Logic Editor. The Definition command is enabled when you select one of the following items in Main, Edit, Pre-Screen, Pre-LINC, Report Frame, or GLG logic: Component Event Frame Data Item Global Logic Global Setup Data Item Profile Report Report Frame Screen Data Item Setup Data Item The item selected must be in the Business Segment to which the logic belongs. You cannot access the definition of reserved items. A message box is displayed if the item you select is reserved
227 Using the Logic Editor Validation If the logic has not been validated or has been changed since the last validation, a validate automatically occurs each time you select to view the definition of an element. The time this takes depends on the size of your logic. Due the validate, you will not be able to undo any previous changes once you select the Definition command. The process is faster if you validate and save your logic before you select the Definition command. Definitions are found regardless of whether there are errors in your logic. Multiple Definitions If the name selected in the logic can be qualified with different parents, there may be uncertainty as to which definition to display. Selecting the first occurrence of the name displays the correct navigation box. Selecting the second or subsequent occurrence of the name may display the Select Definition dialog box. This dialog contains a list of candidate items that the selected element could be. Select the appropriate item to display the navigation dialog box. Viewing Change Identification To view the change identification for each line of logic, select the Change Ids option from the View menu. Change identification can only be displayed in the following circumstances: Change identification is set in Security for the Business Segment. The Display parameter, in the [ChangeControl] section of the LINC.INI file, does not equal 'none'. The logic has been saved. Errors are not displayed. Change identifications are displayed beside each line of changed logic in a separate readonly pane. The information displayed depends on the setting of the Display parameter in the [ChangeControl] section of the LINC.INI file. While change identifications are displayed: Logic cannot be edited. Logic cannot be saved, validated, or discarded. Errors cannot be displayed
228 Using the Logic Editor Using the Logic Status Window Use the Logic Status window to display the status of each unit of logic for all Ispecs, Global Logics, and Reports in a Business Segment. You can choose to view the logic for either an individual Object by selecting it form the Model Directory or for all Objects in a Business Segment by selecting the Business Segment. A unit of logic may be in one of the states listed in the following table. Status Not validated n errors No errors Meaning Logic has not been validated since it was last saved. Logic validated and contains n errors. Logic validated and contains no errors Notes: Logic is not automatically validated during loading of an LCIF file unless specified. This means all logic in a Business Segment loaded into Developer initially may not be validated. Only valid logic may be executed at run time. Validating Logic To validate logic using the Logic Status window: 1. Select an Object or Business Segment in the Model Directory. 2. Select the Open Selected command from the File menu to display the Open Navigation dialog box. 3. Click the Logic Status List button to open the Logic Status List window. The logic types for the selected Object are displayed. 4. Select the required logic using one of the methods in the following table. Method Action Ctrl+/ key Click left Ctrl+click left Shift+click left Select all logic. Select a single type of logic. Add a single type of logic to the selection. Add all types of logic from the currently-selected logic to the newly-selected logic
229 Using the Logic Editor 5. Use the Validate & Save command from the Logic menu (or F12 key) to validate the logic. Each selected type of logic is validated and saved. When validation is complete a dialog box is displayed showing the number of logics that validated successfully and the number that are in error. Changing Your Model Interaction of Design and Logic You can design a relation between Ispecs by drawing it on a graph. You can also implement a relation between Ispecs by including the appropriate logic. Any relations created or changed in logic are reflected in the graphs that display these relations. For example, if an Ispec performs an Automatic Entry to another Ispec, any graph that includes the two Ispecs will show an AUTO relation between them. Thus there are two distinct types of relations: Design relations (drawn by the user) Logic relations (deduced from logic) To distinguish between these two types of relations when drawn in graphs, a lowercase a is used to represent design relations, and an uppercase A is used to represent logic relations. Effects of Making Changes in Logic Logic relations take precedence over design relations. If a relation is designed and then subsequently implemented in your logic, the design relation is deleted when your logic relation is created. When changing and testing logic on the workstation you must close down Developer Test and restart it to enable it to pick up the new logic. If you simply exit the session without closing Developer Test, the system will continue to execute the old logic. Effects of Making Changes to Your Model Developer ensures that your logic remains sensitive to changes to your Model. If the Model is changed, the logic may be marked as in error. For example, your logic may include an Automatic Entry to an Ispec, and this logic may be validated without error. However, if you later remove the receiving Ispec from the Model, your logic is automatically marked as being in error. The Ispec may not be used in Developer Test until the error is resolved
230 Using the Logic Editor Similarly, changes you make to the Model may cause logic errors to be removed. For example, a Data Item referenced in logic may not exist, and the logic is marked as being in error. If the Data Item is subsequently added, the logic error is removed automatically. If you refresh or reopen the Editor, you will see that the error has been removed. You do not need to validate the logic to remove the error. Summary After completing this section you can: Use the Logic Editor to create, edit, save, and validate logic. Expand an Insertable Global Logic within your logic. Use Setup Data Items and Global Setup Data Items in logic. View errors found during logic validation. View change identification information for each line of logic. Use the Logic Status window to display the status of logic
231 Section 9 Refining Your System Design This section describes how to review the design of your Business Segment using two Developer facilities: the Design Audit function and Function Point Analysis. In this section you will find: Design Audit Function Point Analysis Design Audit You can use the Developer Design Audit function to audit your Model at Business Segment, Functional Area, or Activity level. Different options apply at each level of the Model hierarchy. What the Design Audit Does The Design Audit function analyzes your Model. It lists any items that may indicate poor design and that will impact performance in your generated system. A Design Audit report can consist of the following: Statistics Statistical information relating to a selected Element is listed. The statistics section is included in all Design Audit reports. It consists of information such as the number of Elements. Use of reserved words This lists any occurrence of a reserved word used in your selected Element which would cause errors when your Model is generated to a host environment. Reserved words are specific to the platforms that you specify in the Design Audit dialog box. The target platforms for which a Design Audit may be run are: MCP environment OS 2200 environment UNIX based processors Windows environment Workstation
232 Refining Your System Design Data Item analysis This lists Data Items with similar names and attributes in different Objects, which may be duplicate Data Items resulting from such things as typing mistakes. A soundex English-based algorithm identifies possible duplicates. If the possible duplicates also have the same length and data usage, and are contained in different Ispecs, they are reported. The analysis also identifies: Data Items that are in the Local Dictionary but are not used Draft Data Items Data Items overlapped by an inserted Data Item Report Frames with more than 204 Display items Report Frames with more than 450 painted items Items on 24th line of screen (if you have selected OS 2200 in the Design Auditor dialog box) Data Dictionary items used in Report Frames Event analysis (Business Segment level only) An Event analysis consists of the following: Event set record layout. Lists the Data Items in the Event set, and the Data Item lengths. Event set disk usage. Lists the Events in the Event set, with their monthly volumes and disk utilization. Event set Data Item usage. Lists the Data Items in the Event set, with the counts of the number of Events in which they occur. Object usage analysis At Business Segment, Functional Area, and Activity level, the Object usage analysis consists of: Ispecs not referenced This lists the Ispecs in the selected Element that are not referenced. These are Ispecs that have Usage Output or Usage Input-Output, and that are never recalled or validated against, that have no Profiles over them, or that have nothing referencing them (no source relations). Ispecs which do nothing This lists the Ispecs in the selected Element that have no relations to or from them. Ispecs with no Data Items This lists the Ispecs in the selected Element that do not contain any Data Items. Ispecs that could become Usage Input
233 Refining Your System Design This lists the Ispecs in the selected Element that are Usage Input-Output, and that have no Data Items which are Usage Input-Output or Usage Output. Orphans (Business Segment level only) This lists the Objects in a Business Segment that are not associated with a Functional Area or Activity. Profile analysis Profiles never referenced These are the Profiles in the selected Element that are not over another Object; that is, they have no over target relationship. Profiles with no Ordinates This lists the Profiles in the selected Element that have no Ordinates. Profiles only in Reports These are the Profiles that are only used in Reports. It is possible to replace these Profiles with sorted Extract files. Profile rationalization This lists the Profiles in the selected Element that could possibly be rationalized. These are Profiles over an Object that have the same Ordinates, for example. Profiles with duplicates allowed This lists the Profiles in the selected Element that allow duplicates. Name Validation This checks that the concatenation of the names of Ispecs, Reports, and Global Logics and the names of their Data Items are not used as the names of any other Object. It also identifies any Ispec names containing unsupported characters, such as a hyphen (-). Translation Truncations This checks whether the movement or changing of screen Data Items has caused the items to overlap or truncate translated Display items. If you check this check box, the Design Audit sends a report to the printer each time it locates a truncated field. This check box is activated only if a language other than the primary language has been defined in the Multi-language list. Long Name Validation This checks that Global Logics are correctly converted from long names to short names during the extract process so that they can be loaded to the host. The conversion is invalid: If an insertable Global Logic is isolated, unqualified names will not convert correctly. Long names can only be converted when the Global Logic is inserted in an Ispec or a Report
234 Refining Your System Design If one insertable Global Logic is inserted in more than one Ispec or Report and the long name conversion produces different short names. If the extracted Global Logic has not been validated, the conversion will change any undefined long names into system generated names. Extended Logic Lines This checks for lines of logic that are greater than 72 characters. This includes logic lines in long name repositories, that when converted to short names exceed 72 characters. Lines can only be longer than 72 characters if the Extend Logic Lines check box is checked on the Business Segment Options dialog box. This option is useful when the Model is to be extracted from Developer and loaded onto the host. Any extended lines are split into lines of 72 characters and are loaded as separate lines. The logic may not validate. The audit report lists the object, the logic type, and the line numbers that contain lines greater than 72 characters. Performing a Design Audit To perform a Design Audit for your currently selected Element: 1. Select the Design Audit option from the Analysis menu. The Design Audit dialog box is displayed. 2. Select the target platform(s) for which a reserved word check is to be done. You should perform a reserved words analysis for all platforms for which your System will be generated. Developer reserved word checking is more rigorous than in the host Enterprise Application Environment. For example, Report is regarded as a reserved word in Developer; but in the host environments, Report is not a reserved word in Memo Components, but it is in an Event. 3. Select the options you require for the Design Audit for your selected Element. All options applicable to your selected Element are selected by default. De-select any options you do not want for the Design Audit. The options are: Reserved words Data Item analysis Event analysis Object usage analysis Profile analysis Name validation Translation truncation Long name validation
235 Refining Your System Design 4. Click on the Print Options button to display the Print Options dialog box. Specify your required print options and font selections for the title, page headers and footers, text, lists, and chapter and section headings. Click on the Change Identification Options button if you wish to select change identification information to be printed. 5. Click on the OK button to confirm your selection. Click on the Cancel button to abandon your selection. Function Point Analysis Function Point Analysis (FPA) is a technique for estimating the size of an existing or future information system, using a unit of measurement called a Function Point. This subsection does not describe the theory of Function Point Analysis; see current industry literature for this information. This subsection describes how FPA is implemented in Developer, and how to use it. The Function Point Analysis methodology in Developer counts raw function points for each Ispec, Profile, and Report (Element) in a Business Segment, Function, or Activity. The number of file types and data elements referenced are counted for each element. These two values are then used to determine the complexity of the Element for the following five categories of FPA: External input type External output type External inquiry type Logical internal file type External interface file type Raw function points are produced by weighting each element for complexity. The complexity may be simple, average, or complex for each category. The value of the complexity is determined by computing the number of file types and Data Items. This number is used to look up the complexity in the related FPA complexity table for the category. The raw function point counts are totalled for all the FPA categories (in the Business Segment). This total raw count is then weighted by the 14 FPA processing factors to give the final adjusted function point measure
236 Refining Your System Design Performing a Function Point Analysis You may perform a Function Point Analysis at any time for an Activity, a Functional Area, or at the Business Segment level. The Elements that are included in the Function Point count for each level are shown in the following table: Level Business Segment Functional Area Activity Included in the count All Objects in the Object dictionary All Objects in Activities in the Functional Area All Objects within the Activity To initiate a Function Point Analysis and printed report for an Element: 1. Click on the Activity, Functional Area, or Business Segment in the Model Directory for which you want to perform a Function Point Analysis. 2. Select Function Point Analysis from the Analyze menu. The Function Point Analysis dialog box is displayed. 3. Fill in the required information. The fields and expected input are described below. 4. Click on the OK button. This initiates the Function Point Analysis and sends the report to your designated printer. FPA Complexity Factors Click on the appropriate radio button to give a weighting to each of the characteristics listed. The weighting factor codes are: Factor Description 0 Not present, or no influence if present 1 Incidental influence 2 Moderate influence 3 Average influence 4 Significant influence 5 Strong influence throughout The default weighting is 0. For example, if you want code reuseability to have an average influence in the Function Point Analysis results, select the 3 button in the Code Reuseability row
237 Refining Your System Design FPA Detail Check this check box if you require a detailed FPA report. A detailed report includes: List of all Ispecs, Reports, Profiles, and Wildcards, including references, Data Items and usage, inputs, outputs, inquiries, files, and interfaces for each External Inputs External Outputs External Inquiries Interfaces to Other Systems Processing complexity Total unadjusted function points Total degree of influence Adjustment factor Final function point count If you do not check this check box, the report will not include the list of Ispecs, Reports, Profiles, and Wildcards. Extract Check this check box if you want the output to be extracted to a file. A Function Point Analysis extracted to a file is in a comma-separated value (CSV) format suitable for use in a spreadsheet or word processing application. The name of the FPA extract file defaults to element name.csv, where element name is the first eight characters of the name of the Element for which the Function Point Analysis was performed. You may alter the prefix of the extract file name, but not the.csv suffix. The extract file is written to the drive and directory in which the Developer data files are located. You may alter this destination if you wish. Details of the extract file layout are described in Layout of the FPA Extract File on page Fonts Click on the Fonts button to specify the font type, point size, and attributes (such as bold or underlining) for the printed output. Print Options Click on the Print Options button to open the Print Options dialog box to specify title, header, footer, date format, margin, and first and last page numbers to be printed. Click on the Setup button in the Print Options dialog box to specify printer details, paper size and orientation
238 Refining Your System Design Change Identification Options Click on the Change Identification Options button in the Print Options dialog box to open the Change Identification Options dialog box. Change identification information about an object is collected when the object is created and when it is updated. For each object that records change identification, this information includes: User identifier that created the object Station identification (PC Network name) used to create the object Date and time that the entity was created Patch identifier used during creation User identifier that last updated the entity Station identifier used to make the last update Date and time of the last update Patch identifier used during last update Adjusting the Function Point Counts It may be necessary to adjust the FPA count produced by Developer for the following reasons: Standard Components are counted as three inputs and one inquiry. This is due to the MAINT field, which allows ADD, CHG, and DEL as well as INQ (and NEX, BAC, and so on). You may decide to provide this functionality in non-standard Components which Developer then treats as one input. Developer counts all Reports as one output. You may have more than one output. Interfaces are not counted by Developer. You can adjust the FPA counts in one of two ways: 1. Extract the FPA to a file that can be edited using a spreadsheet or a word processing application. 2. Perform a manual adjustment of Function Point Counts. To manually adjust the Function Point Count for an Element: 1. Double-click on the Element in the Model Directory. 2. Select the FPA Counts option in the navigation dialog box. The Function Point Counts dialog box is displayed with counts for External Inputs, External Outputs, External Inquiries, Logical Internal Files, and External Interface Files in categories S (simple), A (average), and C (complex). If the System defined counts check box is checked, the displayed values are the system-defined counts
239 Refining Your System Design 3. Key over the values you wish to adjust. 4. Check the System defined counts check box if you have adjusted the FPA counts for the Element but wish the Developer (system-defined) counts to be used for a Function Point Analysis. 5. Click on the OK button. User-defined counts are marked with an asterisk (*) on the Function Point Analysis report. How Developer Counts Function Points File References Developer classifies file references for an element as reference references and update references as follows: Components, Events, Inquiries, and Reports Validate and reference relations are classified as reference references. Flag, delete, and auto relations are classified as update references. Profiles Each Ispec that a Profile spans is classified as one reference. Data Items Developer classifies each Data Item for an element as input, output, input/output, or inquiry, as follows: Components, Events, and Inquiries The input, output, input/output, and inquiry Data Items are counted. Profiles The Ordinates in the Profile are counted as outputs. Reports Each Data Item for each Frame in the Report is counted as an inquiry. Input Complexity Input complexity is calculated as follows: Components (without Ordinates) and Events These may be one of the following types: Usage Input/Output, or Usage Output Usage Inquiry with update references The total references (references and updates) and the number of Data Items are used to evaluate complexity in the Input Complexity table
240 Refining Your System Design Components with Ordinates Are calculated the same way as Components and Events, but performed three times to account for ADD, CHG, and DEL functionality. The following table shows the Input Complexity: Number of References Less than 5 Data Items 5-15 Data Items More than 15 Data Items Less than 2 Simple Simple Average Exactly 2 Simple Average Complex More than 2 Average Complex Complex Output Complexity The output complexity is calculated as follows: Reports The reference references and the number of Report Frame Data Items are used to evaluate complexity in the Output Complexity table. Events, Components, Inquiries, and Profiles None. The following table shows the Output Complexity: Number of References Less than 6 Data Items 6-19 Data Items More than 19 Data Items Less than 2 Simple Simple Average 2 through 3 Simple Average Complex More than 3 Average Complex Complex Inquiry Complexity The Inquiry Complexity is calculated as follows: Components and Events that are Usage Inquiry and have no update references The total references (references and updates) and the number of Data Items are used to evaluate complexity in the Inquiry Complexity table. Developer does not distinguish between input and output references as the standard FPA table does. Components that have Ordinates (to account for INQ functionality) As for Components and Events. Profiles and Reports None
241 Refining Your System Design The following table shows the Inquiry Complexity: Number of References Less than 5 Data Items 5-15 Data Items More than 15 Data Items Less than 2 Simple Simple Average Exactly 2 Simple Average Complex More than 2 Average Complex Complex File Complexity The file complexity is calculated as follows: Components and Events that are not Usage Inquiry One logical record type is counted for each Data Item, and the number of output and input-output Data Items is used to evaluate the complexity in the File Complexity table. Profiles As for Components and Events. Reports None. The following table shows the File Complexity: Record Type Less than 20 Data Items Data Items More than 50 Data Items Exactly 1 Simple Simple Average Interface Complexity Interface complexity is not counted in Developer. You must adjust the FPA count manually. See Adjusting the Function Point Counts on page 9-8 for details on how to perform this adjustment. COPY.FROM Ispecs Ispecs which contain COPY.FROM lines have their input, output, and inquiry complexities increased by one level. Adjustment of Raw Function Points Developer adjusts the total raw function points for all Ispecs, as for standard Function Point Analysis
242 Refining Your System Design Layout of the FPA Extract File The FPA Extract file is created when you select the Extract FPA option from the Function Point Analysis dialog box. The extension of this file is.csv. The file has fields separated by commas and is suitable for loading into Microsoft Excel. It has three types of records: detail records, total records, and complexity factor records. The layout of each type of record is explained in the following subsections. Records in the FPA Extract file appear in the following sequence: 1. Detail records for Ispecs 2. Detail records for Reports 3. Detail records for Profiles 4. Detail records for Wildcards 5. Total records 6. Complexity factor records Detail Record Field Characteristics Values 1. Name LE 10 ED A N/A 2. Type LE 1 ED A C, E, R, P, W 3. User defined LE 1 ED A * for user-defined counts, space otherwise 4. Usage LE 7 ED A I-O, Input, Output 5. References (Update) LE 5 ED N N/A 6. References (Inquiry) LE 5 ED N N/A 7. Data Items (I-O) LE 5 ED N N/A 8. Data Items (Output) LE 5 ED N N/A 9. Data Items (Input) LE 5 ED N N/A 10. Data Items (Inquiry) LE 5 ED N N/A 11. Ext.inputs (Simple) LE 5 ED N N/A 12. Ext.inputs (Average) LE 5 ED N N/A 13. Ext.inputs (Complex) LE 5 ED N N/A 14. Ext.outputs (Simple) LE 5 ED N N/A 15. Ext.outputs (Average) LE 5 ED N N/A 16. Ext.outputs (Complex) LE 5 ED N N/A
243 Refining Your System Design Field Characteristics Values 17. Ext.inquiries (Simple) LE 5 ED N N/A 18. Ext.inquiries (Average) LE 5 ED N N/A 19. Ext.inquiries (Complex) LE 5 ED N N/A 20. Master files (Simple) LE 5 ED N N/A 21. Master files (Average), Master files (Simple) LE 5 ED N N/A 22. Master files (Complex), Master files (Average) LE 5 ED N N/A 23. Interfaces (Simple), Master files (Complex) LE 5 ED N N/A 24. Interfaces (Average), Interfaces (Simple) LE 5 ED N N/A 25. Interfaces (Complex), Interfaces (Average) LE 5 ED N N/A 26. Interfaces (Complex) LE 5 ED N N/A Total Record Field Characteristics Values 1. Total description LE 36 ED A "Count" "Weight" "Total" 2. Empty LE 1 ED A N/A 3. Empty LE 1 ED A N/A 4. Empty LE 5 ED A N/A 5. Empty LE 5 ED A N/A 6. Empty LE 5 ED A N/A 7. Empty LE 5 ED A N/A 8. Empty LE 5 ED A N/A 9. Empty LE 5 ED A N/A 10. Empty LE 5 ED A N/A 11. Ext.inputs (Simple) LE 5 ED N N/A 12. Ext.inputs (Average) LE 5 ED N N/A 13. Ext.inputs (Complex) LE 5 ED N N/A 14. Ext.outputs (Simple) LE 5 ED N N/A 15. Ext.outputs (Average) LE 5 ED N N/A 16. Ext.outputs (Complex) LE 5 ED N N/A 17. Ext.inquiries (Simple) LE 5 ED N N/A
244 Refining Your System Design Field Characteristics Values 18. Ext.inquiries (Average) LE 5 ED N N/A 19. Ext.inquiries (Complex) LE 5 ED N N/A 20. Master files (Simple) LE 5 ED N N/A 21. Master files (Average) LE 5 ED N N/A 22. Master files (Complex) LE 5 ED N N/A 23. Interfaces (Simple) LE 5 ED N N/A 24. Interfaces (Average) LE 5 ED N N/A 25. Interfaces (Complex) LE 5 ED N N/A Complexity Factor Record Field Characteristics Values Factor description LE 40 ED A N/A Factor value LE 1 ED N 0 through 5 Summary After completing this section, you can: Run a Design Audit for a Business Segment, a Functional Area, or an Activity. Run a Function Point Analysis for a Business Segment, a Functional Area, or an Activity. Adjust the Function Point count produced by Developer to suit your requirements
245 Section 10 Testing Your System This section describes how to test screens and Reports using Developer Test. The Debugger, a feature of Developer Test, is described separately in Debugging Your System on page In this section you will find: Introduction to Developer Test Getting Started in Developer Test Managing Your Test Database Database Backup and Recovery Managing the Transaction Logs Testing a System Using a Test Database on a Host Machine Configuring Developer Test for Remote Subroutine Calls Running Systems and Reports from a Shortcut Sending and Receiving NOFORM Files Using Component Enabler with Developer Test Configuring Developer Test to Run HUB Transactions Introduction to Developer Test Developer Test emulates a host runtime environment on a workstation, enabling the user to test screens and logic before generating an Enterprise Application System or uploading it to a target host. Developer Test will by default emulate the target host selected in the Business Segment options. If more than one host type is selected, the LINC.INI Runtime TargetHost parameter will be used, if it is the same as one of the selected host types. If the TargetHost parameter is not defined or is set to an invalid host type, the first host type in the Business Segment Target Host list will be used. A working session in Developer Test might involve these tasks: Creating a test database Opening a session
246 Testing Your System Selecting a screen and submitting a transaction from it Running a Report Accessing the Debugger to test logic Closing the session These tasks are described in the following subsections. Getting Started in Developer Test Accessing Developer Test Click on the Developer Test shortcut in your Developer program list. Test is not accessed from within Developer. The Background Window is displayed when Developer Test is initiated. This window has a menu bar at the top and a status line at the bottom for the display of messages. Display of the status line can be toggled off and on by selecting the Show Status Line option on the System menu. Message Display If a single message is returned from the system, it appears in the status line. If more than one message is returned, the Messages/Errors window is displayed with all messages available for viewing. The Messages/Errors window can also be opened manually by selecting the View Messages/Errors option from the System menu. The Messages/Errors window may be left open. New messages are displayed when received. When running a Report, the Messages/Errors window is displayed automatically. A complete list of Developer Test messages is available in the online help. New Window Display When a new window is opened during a Developer Test session, you can choose to have the current active window reduced to an icon, which is displayed at the bottom of the Background window, or changed to an inactive window. To specify this, select the Options menu. When the Minimize on Change option appears with a check mark next to it, a new window will be reduced to an icon when a new window is opened. Click on the Minimize on Change option to specify that the active window become inactive when a new window is opened
247 Testing Your System Setting Logging Level Before you begin using Developer Test, you should define the level of error and informational logging you want for your Developer Test sessions. To set logging: 1. Select Logging from the File menu. The Logging dialog box is displayed. 2. Select the Logging Off radio button if you do not want any logging done. Select the Logging On radio button if you want logging. When you select this option, the Log Levels and Log File button are enabled. 3. Check at least one Log Level check box, or click on the Set All button to select them all. The options are: Information Status Warning Severe Error Fatal Dialog Debug Set All Logs information events, such as system startup. Logs status events, such as confirmation messages. Logs warning messages, such as Repository deadlocks. Not currently used. Logs error messages. Logs a detailed dump of LINCDEV.ERR for fatal Developer errors. Logs information returned from the call to each dialog box. Selecting this option will cause a high volume of information to be logged. Not currently used. Sets all Log Levels on. Selecting this option will cause a high volume of information to be logged. 4. The default log file name and location are displayed. To specify another file name or directory, click on the Change Log Filename button and specify the required information in the Windows file dialog displayed. 5. Click on the OK button to set the logging details. Setting Developer Test Language Developer allows you to create screens, Teach screens, and Report Frames in any language that has been defined for your Business Segment. You can test different language versions of these objects by changing the language for your Developer Test session at any time. To select a language for your Developer Test environment: 1. Select the Select Language option from the System menu. 2. Select a language from the drop-down list of valid languages. 3. Click on the OK button
248 Testing Your System Screens, Teach screens, and Report Frames will be displayed in the selected language. Note that if you display multiple instances of the same screen in Developer Test and then change the language, only the current window is refreshed with the new language. Defining Your Printer Setup If you plan to send Report output to printers as part of your testing, you will need to map printer names (logical printers) to printers in your Windows setup (physical printers). Note: The SEND.PRINT; command used in host Systems to send Reports to printers is not supported in Developer Test. Adding a Logical Printer To add a logical printer: 1. Select the Printer Setup option from the File menu. The Printer Mapping dialog box is displayed. 2. Key in the name of the logical printer in the Logical Printer text box. 3. Click on the Configure button. A list of printers configured for Windows is displayed. 4. Click on the Setup button to change the Windows configuration of the printer. 5. Click on the Assign button to assign the Windows printer to your logical printer. 6. Click on the Exit button to return to the Developer Test Background window. Removing a Logical Printer To remove a logical printer definition: 1. Select the Printer Setup option from the File menu. The Printer Mapping dialog box is displayed. 2. Click on the name of the logical printer in the Logical Printer text box. 3. Click on the Delete button. 4. Click on the Exit button to return to the Developer Test Background window. Modifying a Logical Printer To modify a logical printer definition: 1. Select the Printer Setup option from the File menu. The Printer Mapping dialog box is displayed. 2. Click on the name of the logical printer in the Logical Printer text box. 3. Click on the Configure button. A list of printers configured for Windows is displayed. 4. Click on the Setup button to change the Windows configuration of the printer
249 Testing Your System 5. Click on the Assign button to assign a Windows printer to your logical printer. 6. Click on the Exit button to return to the Developer Test Background window. Opening a Session To open a Developer Test session, select the Open Session option from the File menu. If there is a default screen for the selected System, it is displayed. If there is no default, the Screen Selection window is displayed. Closing a Session To close a Developer Test session, select the Close Session option from the File menu, or sign off from the System in the usual manner for your host system (for example, using the BYE command). Signing off from Developer Test To sign off from Developer Test, select the Exit option from the File menu. SOK/EOK Support in Developer Test SOK/EOK Support automatically inserts SOK and EOK characters around Kanji strings contained in Data Items defined as edit type alpha. SOK/EOK Support is enforced when Japanese Char Set Support is set on the Business Segment options dialog box, and either MCP is the only Target Host selected for the Business Segment or the TargetHost parameter is set to A in the [RunTime] section of the LINC.INI file. SOK/EOK Support affects the following parts of Developer Test. SOK/EOK characters are represented by ASCII spaces: Part Debugger Source Window Debugger Watch Window Change Value Dialog Box Conditional Breakpoint Dialog Box Ispec Screens Comment SOK/EOK characters are inserted around Kanji strings contained in literals and comments. SOK/EOK characters are inserted in watch item contents. SOK/EOK characters are inserted in watch item contents. SOK/EOK characters are inserted in the Literal field of the Right Operand. SOK/EOK characters are inserted in Display Items and the contents of Data Items
250 Testing Your System Field lengths are calculated in real time, meaning that the expected length of the string is calculated immediately and input is refused if the maximum length is exceeded. This has particular impact where you enter Kanji strings. There must be two spaces free for each Kanji string to accommodate the SOK/EOK characters. SOK/EOK characters are stored in the Developer Test database. If you want to share the database with platforms other than MCP you should set the SOKEOK parameter in the [Runtime] section of the LINC.INI file to N. This disables SOK/EOK support in Developer Test even if the conditions for SOK/EOK support are met. Truncation Policy The insertion of SOK/EOK characters may cause truncation. Truncation occurs without warning. If there are not enough bytes to display SOK/EOK characters correctly, the last Kanji character is replaced with an EOK character, an ASCII space, or both. Truncation will not occur for Screen Data Items or literals contained in logic. Managing Your Test Database Creating a New Test Database To create a new test database for your System: 1. Select the Database Utilities option from the File menu. 2. Select the Create New Database option from the drop-down menu. The Select a System dialog box is displayed. 3. Click on the name of a System in the Systems list box if the name displayed in the System Name field is not the required one. 4. Click on the OK button. The Runtime Utilities dialog box is displayed showing the directory location of your database. If the database already exists, you are informed that creating the database will overwrite the existing data. 5. Click on the OK button to create the database, or click on the Cancel button to abandon the database creation. Populating a Test Database To provide test data, you must load a previously created extract file, write code, or use a NOFORM file to supply the data. See Sending and Receiving NOFORM Files on page for information on using these files
251 Testing Your System Reorganizing a Test Database You may need to perform a physical reorganization of your test database, transforming the physical data from the existing database into a form which matches a new database schema. You have the option to perform a reorganization only for database structures that have changed, or for selected structures. You can also rebuild indexes for a test database. Note that reorganization requires free file space equivalent to the size of the largest data file in the database. The reorganization process may take a considerable time, depending on data file populations and complexity. Reorganizing Modified Database Structures To reorganize modified database structures: 1. Select the Database Utilities option from the File menu. 2. Select the Reorganize Existing Database option from the menu. 3. Select the Modified Structures Only option from the menu. The Select a System dialog box is displayed. 4. Click on the name of a system in the list box. 5. Click on the OK button to initiate the reorganization. Reorganizing Selected Database Structures To reorganize selected database structures for a System: 1. Select the Database Utilities option from the File menu. 2. Select the Reorganize Existing Database option from the menu. 3. Select the Reconstruct Selected Structures option from the menu. The Select a System dialog box is displayed. 4. Click on the name of a system in the list box. The Reconstruct Selected Structures dialog box is displayed showing a list of Ispecs belonging to the System as well as three Repository control data structures (AUDUSR, CRITIC, and UNIQUE). These three structures should be included in your regular reorganizations. If you omit these structures, your reorganization will complete sooner, but your database will respond progressively more slowly. 5. Select structures to be included in the reorganization by clicking on the structure name in the Ispec List, then clicking on the >> button to include it in the Selected Subset area. Select as many structures as you require. 6. Click on the OK button to initiate the reorganization. Rebuilding a Database Index To rebuild the index of a test database: 1. Select the Database Utilities option from the File menu. 2. Select the Reorganize Existing Database option from the menu
252 Testing Your System 3. Select the Rebuild Indexes option from the menu. The Select a System dialog box is displayed. 4. Select a System name from the System list box, or key in a name in the System Name field. 5. Click on the OK button to initiate the rebuild. Saving a Single Ispec To save a single Ispec, it is recommended that you write Reports to do the extract and load. However, if required, it is possible to save a single Ispec as follows: 1. Copy all the files for the Ispec to another directory. For example, for an Ispec named CUST, you would copy all files with this naming format: CUST*.*. 2. Create a new database for the Ispec. 3. Copy the files back to the original database. 4. Rebuild the indexes. Database Backup and Recovery It is your decision when to back up your test database files. You should back them up before and immediately after a reorganization. Regular and frequent back up of database files will reduce the time required for a recovery and will protect against the corruption of the transaction log file, which would make a full recovery impossible. When Developer Test terminates abnormally, make sure that no other users are signed on to the database and check for incomplete transactions. If any incomplete transactions exist, your database may be corrupt. You should restore the most recent backup copy of the database, then perform a roll-forward recovery using the current transaction log file. These steps will restore your database to the state prior to the abnormal termination. Note that after recovery, no attempt is made to redisplay your last uncommitted screen after a crash in mid-transaction. Error conditions are displayed in a dialog box. The steps required for backup and recovery are described in the following subsections. Note: You must close all sessions before performing a backup or recovery on the database files. Backing Up a Database To back up a database: 1. Make sure all sessions are closed. 2. Select the Database Utilities option from the File menu. 3. Select the Backup or Restore option from the menu
253 Testing Your System 4. Select Backup Entire Database or Backup Selected Subset from the menu. The Select a System dialog box is displayed. 5. Select a System name from the System list box, or key in a name in the System Name field. 6. Click on the OK button. The Backup Directory Name dialog box is displayed. 7. Key in the path of an existing directory that will be your backup directory. 8. Click on the OK button. If you are backing up the entire database, the backup task is initiated. If you are not backing up the entire database, the Backup Selected Subset dialog box is displayed showing a list of Ispecs belonging to the System as well as three Repository control data structures (AUDUSR, CRITIC, and UNIQUE). These three structures should be included in your backup. Do the following: Select structures to be included in the backup by clicking on the structure name in the Ispec List, then clicking on the >> button to include it in the Selected Subset area. Select as many structures as you require. Click on the OK button to initiate the backup task. Displaying Incomplete Transactions To display a list of database transactions which have started but not yet completed: 1. Select the Database Utilities option from the File menu. 2. Select the Database Transaction Statuses option from the menu. The Select a System dialog box is displayed. 3. Click on the name of a system in the list box. 4. Click on the OK button. The In-Progress Transaction List is displayed. 5. Click on the OK button to return to the Background window. When no other users are logged on to the Developer Test system and there are sessions and Ispecs and/or Reports listed in the In-Progress Transaction List, this indicates that some transactions have terminated abnormally, possibly causing data corruption. You may need to restore the database from backup and perform a roll-forward recovery. See Restoring a Database on page 10-9 and Performing a Roll-Forward Recovery of the Transaction Log on page for details. Restoring a Database To restore a database: 1. Make sure all sessions are closed. 2. Select the Database Utilities option from the File menu. 3. Select the Backup or Restore option from the menu
254 Testing Your System 4. Select Restore Entire Database or Restore Selected Subset from the menu. The Select a System dialog box is displayed. 5. Select a System name from the System list box, or key in a name in the System Name field. 6. Click on the OK button. The Backup Directory Name dialog box is displayed. 7. Key in the path of the backup directory. 8. Click on the OK button. If you are restoring the entire database, the restoration task is initiated. 9. If you are not restoring the entire database, the Restore Selected Subset dialog box is displayed showing a list of Ispecs belonging to the System as well as three Repository control data structures (AUDUSR, CRITIC, and UNIQUE). These three structures should be included in your restoration. Do the following: Select structures to be included in the restoration by clicking on the structure name in the Ispec List, then clicking on the >> button to include it in the Selected Subset area. Select as many structures as you require. Click on the OK button to initiate the backup task. Performing a Roll-Forward Recovery of the Transaction Log A roll-forward recovery means that transactions from the current transaction log are reapplied to a restored database file, bringing the database back to the state is was in immediately before an abnormal termination of processing. To perform a roll-forward recovery of the transaction log: 1. Make sure all sessions are closed. 2. Select the Database Utilities option from the File menu. 3. Select the Database Roll-Forward Recovery option from the menu. The Select a System dialog box is displayed. 4. Select a System name from the System list box, or key in a name in the System Name field. 5. Click on the OK button. 6. Key in the name and location of the transaction log to be recovered in the Recovery Log File Name field. 7. Click on the OK button. Managing the Transaction Logs Developer Test maintains a transaction log of activity against the test database. Each update of a database file results in one or more entries to the transaction log
255 Testing Your System Browsing a Transaction Log The current Developer transaction log file may be browsed at any time using the Log File Browse utility. This creates a formatted copy of the transaction log file and calls Windows Write to display its contents. To browse a log file: 1. Select the Database Utilities option from the File menu. 2. Select the Log file browse option from the menu. The Select a System dialog box is displayed. 3. Select a System name from the System list box, or key in a name in the System Name field. 4. Click on the OK button. The Log Tracker dialog box is displayed. 5. Key in the directory and log file name in the Recovery Log File Name field if required. 6. Recover.txt is the default name for the output file displayed in the Output File Name field. Change this value if required. 7. Click on the Time Interval button if you want to limit the range of transactions to be shown by specifying a time range. The Select Time Interval dialog box is displayed. To specify a time range: Key in the From date and To date in numeric day/month/year format, for example 15/12/1999. Note that the date field will be pre-filled with a four digit year. If you enter a two digit year, Developer will convert the year to four digits based on the current century. Key in the From time and To time in numeric HH:MM:SS format, for example 09:45:30. Click on the OK button to close the Select Time Interval dialog box. 8. Click on the OK button in the Log Tracker dialog box to start the browse. A window is opened displaying the selected transaction log entries. 9. Close the browse window to return to the Background window. When you have finished browsing the file and have no further use for it, you should delete it using File Manager. Archiving a Transaction Log Developer Test maintains a transaction log in a specified location. Each update of a database file results in one or more entries to the transaction log. When no disk space is available, Developer Test displays a message telling you this. Any further transactions are inhibited until the transaction log file has been archived and disk space made available
256 Testing Your System To archive a transaction log file: 1. Select the Database Utilities option from the File menu. 2. Select the Backup or Restore option from the menu. 3. Select the Archive Transaction Log option from the menu. The Select a System dialog box is displayed. 4. Select a System name from the System list box, or key in a name in the System Name field. 5. Click on the OK button. 6. Key in the name and location of the transaction log to be archived, or use the standard Windows facility to select a file name. 7. Click on the Save button. The Archive Transaction Log dialog box is displayed. 8. Check the Truncate Log after archive copy taken check box to empty the transaction log after the archive is taken. Uncheck this check box if you want future transactions added to the existing transaction log file. 9. Click on the OK button to start the archive task. Restoring an Archived Transaction Log You may need to restore an archived transaction log file, for example when you have restored a subset of the test database. To restore an archived transaction log file: 1. Select the Database Utilities option from the File menu. 2. Select the Backup or Restore option from the menu. 3. Select the Restore Transaction Log from the menu. The Select a System dialog box is displayed. 4. Select a System name from the System list box, or key in a name in the System Name field. 5. Click on the OK button. 6. Key in the name and location of the transaction log to be restored, or use the standard Windows facility to select a file name. 7. Click on the Save button to initiate the restore. Testing a System After starting a Developer Test session, use the options in the menu to display screens, run Reports, and view Teach screens for the System
257 Testing Your System Viewing Messages To view messages and errors for a session: 1. Select the View Messages/Errors option from the menu. The Messages/Errors window is displayed. 2. View the messages. 3. Click on the Cancel button to return to the System. Selecting a Screen (Ispec) To select and display the screen for an Ispec: 1. Select the Select Screen option from the menu. The Select a Screen dialog box is displayed. 2. Key in the name of the required screen in the Screen Name field, or select a name from the Ispecs list box. Note: Developer Test only supports Big Buffer Ispecs that are equal to, or less than bytes in size. Big Buffer Ispecs larger than this can not be specified in the Screen Name field, nor will they appear in the Ispecs list box. 3. Check the New Window check box if you want the screen to appear in a new window. If this check box is not checked, the screen will replace the current one. 4. Click on the OK button to display the screen. Displaying Character Mode Screens To test Character mode screens in Developer Test, you may need to set the CharModeOnly parameter to Y in the LINC.INI file. Ordinarily Developer Test displays Graphics mode screens if they exist and shows Character mode screens only if there is no Graphics screen available. Setting CharModeOnly causes Developer Test to display only the Character mode screens. Sending a Transaction Using a Screen To send a transaction using a screen: 1. Select the required screen. 2. Fill in the screen fields as appropriate. The Cut, Copy, and Paste options are available from the Edit menu. 3. Press ENTER to send the transaction to the System. Note: Ensure the cursor is not on a multi-line field when ENTER is pressed, otherwise the transaction is not submitted
258 Testing Your System Entries in the fields are not sent until ENTER is pressed. This means you are able to make entries in fields in any order, and to edit the entries if required. It also means that several fields may contain errors when the transaction is sent. Accessing the Debugger To access the Debugger to find problems with Ispec logic, select the Debug System option from the menu. To access the Debugger for a Report, see Running a Report on page The Debugger is described in Debugging Your System on page Running a Report To run a Report: 1. Select the Run Report option from the menu. The Run a Report dialog box is displayed. 2. Key in the name of the required Report in the Report field, or select a name from the Reports list box. 3. Fill in the available fields in the dialog box. The fields and expected input are described below. 4. Click on the OK button to start the Report run. Restart Check the Restart check box if you want the Report to restart after an incomplete run. Session Number If you checked the Restart check box, key in the session number of the Report to be restarted in the Session Number field. Obtain the session number from the ERRLOG.TXT file, which is in the same directory as your System database files. Debug Check the Debug check box to start the Debugger for the selected Report. If the Debugger is currently running, this check box is selected by default. Restore on Message Check the Restore on Message check box to display messages from the Report as they occur
259 Testing Your System Notify on completion Check the Notify on completion check box to display a message when the Report finishes running. Language The language you set for your Developer Test session (see Setting Developer Test Language on page 10-3) is displayed in the Language list box. If you want to run a different language version of the Report, select another language from the list box. The language is validated when the Report is initiated. If Report Frames corresponding to the selected language are not available, Report Frames in the primary system language are used. Parameter Complete the Parameter field if you want to pass parameters to the Report. Up to 254 characters can be entered. Note: Developer Test can process a limit of 10,000 records when running a Report. This is due to a limit of 10,000 locks per structure in Developer Test. To circumvent this restriction, you can code a CRITICAL.POINT; command before the 10,000 record limit is reached. Replying to Messages for Input To view messages for a session and respond to messages for input to a Report: 1. Select the View Messages/Errors option from the menu. The Messages/Errors window is displayed. 2. View the messages. 3. Make an entry in the Response text box. 4. Click on the Send button to send the reply. Controlling a Running Report When a Report is running a Report icon appears. Use this icon to control the Report job. To cancel a running Report: 1. Maximize the Report icon. 2. Select the Report Abort option from the Report menu. 3. You are prompted to confirm that you want to abort the specified Report
260 Testing Your System To stop a sleeping Report: 1. Maximize the Report icon. 2. Select the Attempt Closedown option from the Report menu. 3. You are prompted to confirm that you want to close down the specified Report. Responding to ACCEPT; Commands A Report may include ACCEPT; commands to enable the user to pass information to it while it is running. When an executing Report encounters an ACCEPT; command, it stops running until a reply is received. In Developer Test, when an ACCEPT; command is encountered a dialog box appears. Key in the requested information and click on the OK button to continue Report processing. For more information about the ACCEPT; command, see your Unisys Enterprise Application Programming Reference Manual or the Developer online help. Dealing with Missing Extract Files If a Report running in silent mode tries to open and read an extract file but is unable to locate it, a dialog box is displayed which prompts you select one of the following options: Abort Retry Ignore Abort the Report run Try again to locate the file Continue processing without the file To specify that a silent Report is to continue processing if an extract file cannot be located, set the AskIfFileAbsent parameter in your LINC.INI file to N. If a Report is unable to write an EXTRACT; file for any reason, the Report will go to End of Job after sending an entry to the ERRLOG.TXT file. Viewing a Teach Screen To view a Teach screen for a screen: 1. Select the View Teach Screen option from the menu. The View a Teach Screen dialog box is displayed. 2. Select the name of an Ispec from the Ispecs list box. The Teach screens available for the selected Ispec appear in the Teach Screens list box. 3. Select a Teach screen to view
261 Testing Your System 4. Click on the OK button. The specified Teach screen is displayed in a Messages/ Errors window. 5. Click on the OK button to close the window. Running in Logical Reorganization Mode When the Developer Test interpreter is invoked and an attempt is made to access an Ispec or a Profile for which the Repository definition does not match its physical definition, you are informed that further execution of Developer Test will be in Logical Reorganization mode. A logical reorganization allows a System with a new database schema to be run against the existing database schema; for example, prior to a deferred physical reorganization. However, in logical reorganization mode you can continue testing only against the unchanged part of the database. This feature allows one user to continue testing his work even though another user has changed a different part of the database. When Developer Test informs you that it will be operating in Logical Reorganization mode, you can take one of the following actions: Close the System session and perform a physical reorganization of your database. See Reorganizing a Test Database on page 10-7 for instructions on how to do this. Continue in Logical Reorganization mode and do a physical database reorganization later. Developer Test will display a warning advising you that data loss, truncation, and zero/space fill of fields may occur until a physical reorganization is performed. To guard against data loss, it is recommended that you back up the database files prior to and immediately following a reorganization, as a reorganization invalidates any existing transaction log files. Calling External Routines Ispecs and Reports may include CALL; commands to invoke external routines that are held locally in a Dynamic Link Library (DLL), or remotely on a host platform using the Remote Subroutine Server. In this way external code can be executed from within logic. The CALL; statement includes the name of the routine to be called and the name of the DLL where the routine resides. If a called routine or its DLL cannot be located during execution of an Ispec or Report, Developer Test displays a message to this effect. Check that both the routine and the DLL exist and are correctly specified in the CALL; statement before executing the logic again. For more information about the CALL; command, see Configuring Developer Test for Remote Subroutine Calls on page 10-25, your Unisys Enterprise Application Programming Reference Manual, and the Developer online help
262 Testing Your System Simulating Function Keys (OS 2200 Host Only) You can use the function keys to simulate function key operation on an OS 2200 based host if the TargetHost parameter in the [Runtime] section of your LINC.INI file is set to The following function keys are available: Key Function F2 F3 F4 F6 F13 F21 F22 Open the Select a Screen dialog box Displays multiple error messages Displays available Teach screens Refreshes the current screen Transmits the screen to the System Closes your session, retaining the current Ispec name and user Closes your Developer Test session. The value of the pressed key is stored in the System Data Item GLB.ACTIONKEY. Running System Global Logic The following System Global Logics can be run in Developer Test: STARTUP Logic to be executed before you start using your system. CLOSEDOWN Logic to be executed when you finish using your system. Note: If you add your own logic in the CLOSEDOWN System Global Logic, you must ensure that GLB.STATUS is set to GLB.SPACES at the end of logic for the system to stop. For example, if you use a DT command in the CLOSEDOWN logic and if the DT command fails to find a record, GLB.STATUS is set to ***** on error. The system will interpret the error in GLB.STATUS as failure to execute the CLOSEDOWN logic and will not stop. Therefore, you must set GLB.STATUS to GLB.SPACES (i.e., MV; GLB.SPACES GLB.STATUS) at the end of the CLOSEDOWN logic for the system to stop. CLOSEUPDATE Logic to be executed when an update program terminates (host feature). To automatically run these System Global Logics during your Developer Test session, set the RunStartup, CloseDown, CloseUpdate parameters in the LINC.INI file. Note: CLOSEDOWN and CLOSEUPDATE are only performed if the session is closed (with Close Session command from the File menu, or using BYE or EXIT). They are not performed if Developer Test is directly exited (with the Exit command from the File menu)
263 Testing Your System To manually run one of these System Global Logics: 1. From the Test menu, select Run System Logics. 2. Select Run STARTUP, Run CLOSEDOWN, or Run CLOSEUPDATE as required. Using a Test Database on a Host Machine From Developer Test, you can connect to a database deployed on a host machine using Host Database Access (HDBA). This allows you to test a fully functioning system with a complete set of data. You can still use the local test database for unit testing and audit and recovery purposes. For Enterprise Application Developer Release 3.3 you cannot connect to a UNIX operating system based host. Caution This facility is for testing purposes only. Do not use it with your deployed production databases. Applying untested code to a production database could destroy the integrity of the database, risk loss of data, and risk database corruption. Note: Roc is not supported by Developer Test and therefore cannot be used when accessing a deployed test database on a host machine. Preparing Your System in Developer Before you can connect to a test database on a host machine you must configure and generate your system. In order for external and internal calls to be executed on the local or Developer Test system, GLB.MACHINE must be set to P in the [Sysdata] section of the LINC.INI file. If GLB.MACHINE is not set to P, external and internal calls will attempt to be performed on the target host, rather than the Developer Test system. This applies to both UNIX and Windows operating system based hosts. In order for Developer Test to access the deployed system database there are several Generate Set options you must set. See your Unisys Enterprise Application Builder Guide for further details on setting Generate Set options
264 Testing Your System To configure your system in Developer: 1. If you are generating to a Windows or OS 2200 based host, check the Generate Host Database Access Interface check box on the Generate page of the Business Segment Options dialog box. This tells Builder to generate the code for the Developer Test Host server, which is an extension of the Remote Subroutine Server (LRSS) and allows Developer Test to access the deployed system database. See Preparing to Connect to a Test Database on a Host Machine on page for details of configuring the server on the host. 2. If you are generating to a Windows based host, you can also check the Enable interface with install check box. This enables the deployed database to be accessed by Developer Test. If you do not set this option prior to generating the system, you must use the Runtime Administration Client Customize Options for the deployed system to enable the database. See your Runtime Administration Client online help for further detail of the Customize Options page. For details of configuration required on the host platforms see Preparing to Connect to a Test Database on a Host Machine on page Generate your system. See you Unisys Enterprise Application Builder Guide for details of generating and deploying systems. See Configuring Developer Test for Remote Subroutine Calls on page for details of configuring Developer Test to use LRSS. Preparing to Connect to a Test Database on a Host Machine Developer To enable Developer Test to access the deployed system database: 1. In the Developer Systems directory, select the Business Segment of the required System. 2. Select the required Generate Set. 3. Double-click the Business Segment of the required system. 4. On the Developer Test page, check the Enable Host Database Access check box and enter the Port number of the LRSS/Developer Test Host server. This populates the Open Session dialog box in Developer Test. This can be done at any time and does not require the System to be generated
265 Testing Your System ClearPath MCP Installing the OLE DB Provider In order to access a host test database from Developer Test you must install the OLE DB Data Provider for ClearPath MCP on your Developer machine. You can find the latest Interim Correction release and installation instructions on the Unisys Support website at Creating the Capabilities File Before you can start using a ClearPath MCP test database, you must first create a CAPABILITIES file in the OLEDB subdirectory of the database on the host. This file gives you write access to the system. Use CANDE to create the file: 1. Press the home key and type ON CANDE<transmit>. 2. Press the home key and type MAKE <Database Name>/OLEDB/CAPABILITIES DATA<transmit>. This recreates the file as a data (text) file. 3. Press the home key and type SEQ<transmit>. This sequences the file so you can enter the required entries. 4. A screen is displayed with a column of numbers. Enter the following after the first line: <USERID> UPDATE INSERT DELETE<transmit>. You must enter one line for each user that requires access. User ids must be in uppercase. 5. Press the home key and type SAVE<transmit>. You can also create an entry with a user id of ELSE, which allows access to user ids that have not been explicitly included. If this file is not created, or a user does not have an entry, read-only access is provided. See your OLE DB Data Provider for ClearPath MCP documentation for further details on using the CAPABILITIES file. DETERMINE; and LOOK.UP; Loops If you update the current record (using the FLAG; command) within a DT; or LU; loop, and then PURGE; the record within the same iteration of the loop, or if you change the ordinate of the profile record read via a FLAG; command, then the next iteration of the loop will not retrieve the next record, but will skip a few records
266 Testing Your System ClearPath OS 2200 Configuring the Developer Test Host Server In order to enable a deployed database for access by Developer Test, you must edit the configuration file TSUname*TSUname.CONFIG. The following SGS parameter must be added to the file for each system database you want Developer Test to access: SGS Label Subfield Details SYSTEM NAME Specify the name of the system whose database is to be accessed by Developer Test. ENABLE ENV Specify TRUE to allow the deployed system database to be accessed by Developer Test. Specify FALSE to disable Developer Test access to the deployed database. The default is FALSE. This parameter is optional. The specified value must match the NAME subfield of an existing ENV SGS. The security type defined for that ENV is used. If a name is not specified the default is RSI security. The above parameters are entered in the following format: LABEL SUBFIELD,<value> SUBFIELD,<value> for example; SYSTEM NAME,HDBASYS ENABLE,TRUE ENV,SR33ENV The SYSTEM SGS parameter is just one of the parameters required to configure the TCP/ IP server associated with the LRSS/Developer Test Host Server.See Testing a System with Developer Test in your Unisys Enterprise Application Runtime for ClearPath OS 2200 Administration Guide for details of editing the TSUname*TSUname.CONFIG file. Using the LRSS Utility Program You can also use the LRSS Utility Program to dynamically configure systems for access by Developer Test. The following commands can be used when the program is running: ADD SYSTEM system name [SECURITY Security System Name] ENABLE SYSTEM system name DISABLE SYSTEM system name [IMMEDIATE] REPORT SYSTEMS
267 Testing Your System See Testing a System with Developer Test in your Unisys Enterprise Application Runtime for ClearPath OS 2200 Administration Guide for further details of the LRSS Utility Program. Network Addresses When connecting to LRSS, Developer Test uses the host address specified in the selected Generate Set (that is, the address of the Builder Server). On ClearPath OS 2200, LRSS and the Builder Server can be configured to use different communications interfaces (either CMS or CPComm) and so it is possible that LRSS could have a different network address from that of the Builder Server. If this is the case, Developer Test cannot connect to the host database. It is recommended you use the same communications interface for both LRSS and the Builder Server. Windows Operating Systems Configuring Developer Test Host Server The Developer Test Host server is an extension of the Remote Subroutine Server (LRSS). The LRSS page on the Servers Properties property sheet enables you to configure the following parameters for the server: Port Number Specify the port number from which the server will accept connections. Timeout Specify the number of milliseconds the server will wait for an externally called process to return before assuming the process has hung. Log Level Enter a value from 0 through 5 to specify the level of logging. The higher the number the greater the detail. Max Files Specify the number of log files to keep. The oldest files are discarded when this number is reached. Size Specify the approximate maximum size for a log file. Once the size is reached, a new file is created. User Dll Path (Required for Internal Calls) The Internal Call requires the user to bind their internal functions to the LRSS. This is accomplished by supplying a dll which is loaded into the LRSS for Internal Calls. If the dll is not specified, Internal Calls are not available
268 Testing Your System Accessing Your Test Database Once you have enabled your system in Developer and on the host, you can start a Developer Test session. To access your test database: 1. Create a local Developer Test database. See Managing Your Test Database on page 10-6 for details on creating a local database. Note: When using Developer Test to access data in a host database, the database structures defined in the local Developer Test database are used. Therefore, the local Developer Test database must be reorganized after the host database definition is changed. See Reorganizing a Test Database on page Select the Open Session command on the File menu. The Open a Session dialog box is displayed. 3. Check the View Host Database Access Enabled Systems check box. The list window displays all the Generate Sets for the Business Segment for which the Enable Host Database Access option is set. 4. You can also check the View Remote Call Enabled Systems check box to display the Generate Sets for which the Enable Remote Calls option is set. See your Unisys Enterprise Application Builder Guide for details. 5. Select a Generate Set from the list. Login details required by the host type of the selected Generate Set are displayed. 6. Enter the required login details and click the OK button. Developer Test accesses the host system using the configuration options specified on the Generate and Developer Test pages of the Generate Set. Note: 1. Performance will be affected by the speed of your network connections, the traffic on your network, and by the size of files being retrieved from the database. 2. If you receive the error " Failed to initialise Host System" you may need to re-register your dmsiiaccessor.dll file using the regsvr32 command. You can also access a deployed System or Report from the command prompt or a Windows shortcut. See Running Systems and Reports from a Shortcut on page Component Enabler and Graphical Interface Workbench For details of accessing a deployed test database from Component Enabler see Testing a Deployed Test Database on page For details of accessing a deployed test database from Graphical Interface Workbench see Accessing a Deployed Test Database Through Developer Test on page C
269 Testing Your System Accessing a Transferred System Developer Test can access a deployed system that has been moved from its original host by completing the following procedure: 1. In the Systems directory define a host with the name, address, and port number of the new host to be accessed. 2. Define a Generate Set which references the new host. 3. Open the Generate Set options for the Business Segment. 4. On the Developer Test page, check the Enable Host Database Access check box, and enter the Port number of the LRSS / Developer Test Host Server.. See your Unisys Enterprise Application Builder Guide for details. Note: It is not necessary to regenerate the system to the new host. Configuring Developer Test for Remote Subroutine Calls Developer Test interprets the CALL; command logic and attempts to resolve the subroutine being called. The function may either exist locally, that is, on the same machine, or on a remote host machine, which can be UNIX, MCP (A Series), or OS Remote Windows operating systems machines can be considered local by simply mapping a drive. The configuration settings for the Remote Subroutine Server (LRSS) are derived from options set in Developer. This is a change from previous releases where configuration options were set by editing the LINC.INI file. The following table lists the options used to configure LRSS. Option Description Location Host Name or TCP/IP address Specifies the host on which the server resides. Developer Systems Defined in the Generate Set wizard or the New Host wizard. Host Type Specifies the host platform. Developer Systems Defined in the Generate Set wizard or the New Host wizard. Port Specifies the port number of the LRSS server on the host. Developer Systems Business Segment options dialog box Developer Test page
270 Testing Your System Option Description Location Enable Remote CALL statements Data translation routines Primary Disk Secondary Disk Language Enables Developer Test to access the subroutine on the target host. Populates the Developer Test Open a Session dialog box when the Use Remote Calls check box is checked. Allows user-developed hook routines to be invoked to provide a means of translating Windows character sets to the matching character representation on the target host. This option prompts Developer to look for hook routines to invoke. It looks for hook routines just before sending data to the remote host, and immediately after retrieving data from successfully called functions on the host. This option is specific to MCP hosts. Specifies the primary disk family where LRSS should search to resolve the called routine. This option is specific to MCP hosts. Specifies the secondary disk family where LRSS should search to resolve the called routine if it cannot be resolved on the Primary Disk. This option is specific to MCP hosts. Specifies the language LRSS is to use to display error messages. Developer Systems Business Segment options dialog box Developer Test page Developer Systems Business Segment options dialog box Developer Test page Developer Systems Business Segment options dialog box Developer Test page Developer Systems Business Segment options dialog box Developer Test page Developer Systems Business Segment options dialog box Developer Test page
271 Testing Your System Option Description Location Code Set This option is specific to MCP hosts. Specifies the name of a Coded Character Set (CCS) to be used for translating the GLB.PARAM data. You can also use the Ccsversion name defined on the MCP host. Data from the client is translated from an ASCII based CCS to an EBCDIC based CCS, and vice versa for data from the server. You can specify either an ASCII or EBCDIC CCS, and the mapping between CCSs will be performed as described in the MCP/AS MultiLingual System (MLS) Administration, Operations, and Programming Guide. If a CCS is not specified, translation is based on the host system's Ccsversion. If the host system has no Ccsversion defined, translation is from ASCII to EBCDIC. Developer Systems Business Segment options dialog box Developer Test page Security environment This option is specific to OS 2200 hosts. Specifies the type of authentication LRSS should use for connection. Developer Systems Business Segment options dialog box Developer Test page Map Library Names for CALL statements Specifies that when Developer Test encounters a CALL statement, it will map the specified library name to rcall. This applies when Developer Test is emulating the CALL statement locally. The option is ignored when the CALL statement is processed remotely on the host. Developer Business Segment options dialog box Developer Test options The Developer CALL; command, as defined in user logic, directs Developer Test to invoke the search for the called function, based on the LRSS configuration settings. Developer Test will report errors if the syntax is invalid when compared to the host type being emulated. It is also up to the user to make sure that the correct Target Host has been selected in the Business Segment options dialog box in Developer. If Developer Test discovers discrepancies between the Business Segment Target Host option and the actual target host, an error is reported. For more information about the CALL; command see your Unisys Enterprise Application Programming Reference Manual and the Interfacing to Other Systems section of your Unisys Enterprise Application Runtime Administration and Operations Guide
272 Testing Your System Errors and Logging Errors can only be discovered at runtime when the CALL; logic is being executed. Errors that are produced by Developer will be displayed in dialog boxes while Runtime is operating. In these cases clicking OK will stop the transaction, while clicking Cancel will skip past the CALL; command to the next logic command. Errors produced by Remote Subroutine Server on the host are logged to the Developer log file. A message is displayed that tells you whether the CALL; command failed to complete on the Remote Subroutine Server host or if the Remote Subroutine Server has failed. To start Remote Subroutine Server logging, open the Logging dialog box from the Developer Test File menu. Select Error logging to log the messages that are going back and forth to the server. When the CALL; statement syntax is invalid for the host type specified, a message to that effect is displayed on the status bar. Restrictions Being able to remotely call subroutines from host platforms is a great advantage when testing an Enterprise Application Environment system. However, with this powerful feature comes a few restrictions that the user should be aware of. Recovery Transactions in Developer which include a CALL; statement cannot be guaranteed atomicity. For UNIX and A Series, the called routine on the host is wrapped in its own transaction. That means a Developer rollback will not rollback the host transaction. The transaction either completes successfully or fails. For OS 2200, the called routines are wrapped within a Developer transaction. That is, rollbacks within the Developer transaction will rollback the host transaction. However, the Transaction Commit is not a two-phase commit. A failure at Transaction Commit in Developer cannot guarantee that the host transaction is rolled back. Security It is important that users are aware of the full functionality of any subroutines that are called. If a subroutine updates the host Runtime Environment in some way when run from the host, it will perform exactly the same updates from Developer Test. Be especially careful of any subroutines that update or change data in the database on the host, for example, Runtime subroutines
273 Testing Your System Performance Since the CALL; statement can now involve establishing connections to a remote host, and the called subroutine has to receive, process, and return information, transactions involving CALL; are slower than usual. Running Systems and Reports from a Shortcut Systems and Reports can be run from a shortcut, independent of your Developer Test session. You can also access deployed Systems and Reports via a shortcut. See Using a Test Database on a Host Machine on page for details of accessing a deployed host database. Complete the following procedure to create a shortcut for running a System or Report: 1. Click the Start button, point to Settings, then click Taskbar & Start Menu. The Taskbar and Start Menu Properties dialog box is displayed. 2. Click the Advanced tab. 3. Click Add in the Customize Start Menu group. The Create Shortcut wizard is displayed. 4. In the Type the location of the item field, enter the appropriate command. Note: This command can also be used to initiate a System or Report from a command prompt. To initiate a System from a shortcut, the command should be in the following form: <system program> [<LINCRUN.EXE switches>] <business segment> To initiate a deployed System from a shortcut, the command should be in the following form: <system program> [<LINCRUN.EXE switches>] <system>:<generate set> To initiate a Report from a shortcut, the command should be in the following form: <report program> [<LINCRPT.EXE switches>] <business segment> <report> To initiate a deployed Report from a shortcut, the command should be in the following form: <system program> [<LINCRPT.EXE switches>] <system>:<generate set> <report> <system program> is the full path name, in quotation marks, of the LINCRUN.EXE file. For standard installations, it is in the folder where Developer is installed. You can also use the Browse button to navigate to this file instead of typing it in. Note: If running from a command prompt, you should navigate to the folder containing the LINCRUN.EXE file and type LINCRUN, rather than the full path name
274 Testing Your System <report program> is the full path name, in quotation marks, of the LINCRPT.EXE file. For standard installations, it is in the folder where Developer is installed. You can also use the Browse button to navigate to this file instead of typing it in. Note: If running from a command prompt, you should navigate to the folder containing the LINCRPT.EXE file and type LINCRPT, rather than the full path name. <LINCRUN.EXE switches> are optional controls that can be listed in any order. The switches are listed in the following table, where square brackets indicate optional items: Switch -b[=<file>] -i[=]<path> -r[=]<path> Description Run in debug mode with settings from the optional file. See Managing Debug Session Settings on page for details. Path for the folder containing the LINC.INI file. Path for the folder containing the Repository. -s Run the STARTUP Global Logic for the Business Segment before the Pre-Screen logic of the Fireup Ispec. -u Run a Graphical Interface Workbench (DW) session for UNIX. -z Run a NOF or Component Enabler session. <LINCRPT.EXE switches> are optional controls that can be listed in any order. The switches are listed in the following table, where square brackets indicate optional items: Switch -a[=]<file> -b[= <file>] Description File containing responses to ACCEPT; logic commands. Run in debug mode with settings from the optional file. See Managing Debug Session Settings on page for details. -c Run a subroutine or coroutine, sets GLB.STATION to BATCH. -d Display (restore) the Report window when a message is received, as a Report is normally minimized while being run. -e Run a subroutine or coroutine with CANCEL set. For subroutines the CANCEL option only applies to OS 2200 subroutines. For coroutines the CANCEL option is always set for MCP coroutines
275 Testing Your System Switch Description -f Run in Direct Print mode, so that when using DEPCON, PRINT.FRAME; logic commands pass-through hexadecimal control characters. -g Run from a dialog box, rather than a RUN logic command, as this affects how parameters are passed. -h[=]<handle> -i[=]<path> -l[=]<number> -m[=]<file> Windows handle for the process. Refer to the description below of the -z switch for calling subroutines and coroutines. Path for the folder containing the LINC.INI file. Run in the language specified by the language number. File for output of MESSAGE logic commands. -n Suppress notification upon completion of the Report. -o[=]<file> -p[=]<file> Default output file. File containing the value passed to the RUN; PA {parameter} logic command. -q Run in quiet (silent) mode, an extract file provides answers to ACCEPT; logic commands and messages requesting user input are suppressed. If the required extract file is not found, a dialog box is displayed. See Dealing with Missing Extract Files on page for details. -r[=]<path> -s[=]<session> -w[=]<password> -x[=]<name> Path for the folder containing the Repository. Restart with the session number, obtained from the ERRLOG.TXT file in the folder containing the Runtime database files. Host password for accessing a database on the host. Node name used in file names when calling, which is also the network name of the machine. Refer to the description below of the -y switch for calling machines. -y[=]<caller> Name of the caller. Refer to the description above of the - x switch for callable nodes. -z[=]<handle> Windows handle of the calling process. Refer to the description above of the -h switch for callable subroutines and coroutines
276 Testing Your System When accessing a host database there is an additional switch that can be used as either <LINCRUN.EXE switches> or <LINCRPT.EXE switches>. The -t switch includes sub-options for host specific authentication information. The switch is included in the following format: -t{sub-option} The braces are only an example of the start/end sentinals that can be used. If any character is included after the -t, then that character is used. For example, -t@-usmithj -psample@ Sub-options Host Description -u[=]<usercode> All The valid user code for the selected host. -p[=]<password> All The password associated with the specified user code. -a[=]<accesscode> MCP The access code set for the target host installation. -q[=]<accesscode password> MCP The password associated with the specified access code. -c[=]<chargecode> MCP The charge code set for the target host installation. -d[=]<domain name> Windows The domain name of the target host. -t[=]<authentication string> OS 2200 User defined authentication string. Data that will be passed to any validation routines configured in the Remote Subroutine Server. This option must include start/end sentinels of its own, as it may potentially contain any characters, including spaces and hyphens; for example, -t={-t%test sample%} <business segment> is the name of the Business Segment. <report> is the name of the Report. <system> is the name of the target System on the host database. <generate set> is the name of the generate set defined for the System. An example command for a shortcut is: "C:\Program Files\Enteprise Application Developer\lincrpt.exe" -i=work -d SAMPLE CUSTLIST The equivalent command for a command prompt is: C:\Program Files\Enteprise Application Developer> lincrpt -i=work -d SAMPLE CUSTLIST 5. Click Next. The Select Program folder screen is displayed. 6. Select an existing folder, or click New Folder to specify a new folder, in which to place the shortcut
277 Testing Your System 7. Click Next. 8. Type in the name for the shortcut. 9. Click Finish. 10. Click OK in the Taskbar and Start Menu Properties dialog box. 11. Click the Start button, point to the folder you specified previously, and right-click the name you assigned to the shortcut. 12. Select Properties from the shortcut menu. The Properties dialog box appears. 13. In the Start in field, enter the full path name in quotation marks, of the folder containing the Runtime database files. For example: "C:\Program Files\Enteprise Application Developer\Work" 14. Click OK. 15. To run the System or Report, click the Start button, point to the folder you specified previously, and click the name you assigned to the shortcut. Sending and Receiving NOFORM Files NOFORM files may be used to load data into Ispecs without keying in data on a screen. To specify the file names of NOFORM input and output files: 1. Select the NOFORM File I-O Processing option from the File menu. The Specify NOFORM Input & Output File Names dialog box is displayed. 2. Key in the name of the NOF input file in the Input File Name text box. 3. Key in the name of the NOF output file in the Output File Name text box. 4. Select a radio button to specify how much input is to be written to the output file. The options are: No input written to output Error input written to output All input written to output Only status line messages are written to the output file. Error transactions and status line messages are written to the output file. All transactions and status line messages are written to the output file. 5. Click on the Process button to process the input file. To interrupt the processing of the NOF input file, click on the STOP button. To cancel processing of the NOF input file, click on the CLOSE button
278 Testing Your System Using Component Enabler with Developer Test The Enterprise Application Remote Access server enables you to develop and test systems by creating a TCP/IP connection between a Component Enabler Client and Developer Test. Sessions can be started from the same machine as the installation of Developer Test or from a separate machine running the Component Enabler Client. Once a connection is made the Remote Access server passes transactions between the Component Enabler Client and Developer Test. See Unisys Enterprise Application Component Enabler Developer's Guide for details of using the Component Enabler Client. Before you can make a connection you must configure the Remote Access server and create Views, which correspond to specific Business Segments in your system, using the Developer Test Component Enabler Configuration utility. See the Unisys Enterprise Application Remote Access Guide for full details. The connection request made to the Remote Access server by the Component Enabler Client contains the desired View name. The Remote Access server determines the required Business Segment and the Developer Test session is initiated using this information. Component Enabler applications use Bundles to control and organize components. You can create and generate a system from Developer that contains all the necessary code to be used by Component Enabler. See Unisys Enterprise Application Builder Guide for details of creating and generating a Component Enabler application with Developer. Accessing Developer Test 1. Configure the Remote Access server. 2. Ensure you have a fully generated and deployed application available. 3. Open the Developer Test Component Enabler Listener in one of the following ways: In your Developer working directory, double-click on the RATLSvr.exe. On the Windows Start menu, select Programs > Enterprise Application Developer > Developer Test Remote Server > Server. 4. Start the Component Enabler Client and connect to the Remote Access server. This automatically initiates Developer Test. 5. When prompted, enter the appropriate usercode and password. Note: Developer Test cannot display Teach Screens requested from the Component Enabler Client or Graphical Interface Workbench
279 Testing Your System Testing a Deployed Test Database To access a test host database from Component Enabler through Developer Test: 1. Perform all the necessary set up activities for accessing a test database as described in Preparing Your System in Developer on page and Preparing to Connect to a Test Database on a Host Machine on page From Developer, create and generate the Bundles for your System. See your Enterprise Application Builder Guide for details. 3. Using the Developer Test Remote Server Configurator (Remote Access Server), create a View for your System, ensuring you complete the fields in the Host Data Access group. See your Enterprise Application Remote Access Guide for full details of creating Views. 4. Start the Developer Test Component Enabler Listener from the Windows Start menu, by selecting Programs > Enterprise Application Developer > Developer Test Remote Server > Server. 5. Start the Component Enabler Client and connect to the Remote Access Server View you created in step 3. This automatically initiates Developer Test. 6. The login details required by the host need to be returned in different ways depending on which of the Component Enabler end user interfaces is in use: Presentation Client The login details required by the host are displayed. Enter the login details and click Log in. Note: Note: You can optionally also set the required attributes via the Component Enabler Configuration Assistant, under the Login Details->Host Tags for your system. ASP Client Edit your global.asa file to set the required attributes. For example, to connect to a database deployed on a Clearpath/MCP host, include the following code: 30 If a good response, say HI to the LINC system If iresult = 101 Then 101 indicates you have to supply login info. Dim objloginattrs set objloginattrs = objloginattrsref.getobject() objloginattrs.set "US", USERNAME objloginattrs.set "PW", PASSWORD objloginattrs.set "DO", DOMAIN HDBA Attributes/Clearpath MCP objloginattrs.set "USCODE", "YourUserCode" objloginattrs.set "USPW", "Password for YourUserCode" objloginattrs.set "ACCODE", "" objloginattrs.set "ACPW", "" objloginattrs.set "CHCODE", "" iresult = objlinc.login (objloginattrs, objloginattrsref, objstatusline) End If
280 Testing Your System Note: you must include the entries for ACCODE, ACPW and CHCODE, even if you set them to empty strings as shown in the example above. The attributes that may be required for other system types are: USID (OS 2200) AUTH (OS 2200) DOMA (Windows) Visual Basic Client Edit the EAEEnvironment.cls file to set the required attributes in the Connect function. For example, to connect to a database deployed on a Clearpath/MCP host, include the following code: If intresult = 101 Then The connection was OK, but we have to do a login Get the login attributes from the reference object. Set objloginattrs = objloginattrsref.getobject() Set login attributes (case depends on the type of host we are using) intresult = objloginattrs.set("us", mstrusercode) intresult = objloginattrs.set("pw", mstrpassword) If Not mstrdomainname = "" Then intresult = objloginattrs.set("do", mstrdomainname) End If HDBA Attributes/Clearpath MCP intresult = objloginattrs.set("uscode", "YourUserCode") intresult = objloginattrs.set("uspw", "Password for YourUserCode") intresult = objloginattrs.set("accode", "") intresult = objloginattrs.set("acpw", "") intresult = objloginattrs.set("chcode", "") Login pass the login attributes. The second argument can be a ObjectRef, which can be set to a second set of login attributes if the server decides it needs more information. intresult = mobjlinc.login(objloginattrs, UserCodeRef, mobjstatus) End If Note: you must include the entries for ACCODE, ACPW and CHCODE, even if you set them to empty strings as shown in the example above. The attributes that may be required for other system types are: USID (OS 2200) AUTH (OS 2200) DOMA (Windows) Developer Test retrieves the required System details from whatever Component Enabler client is in use, and attempts to connect to the deployed test database. Either the Fire-up Ispec screen or the Select a Screen dialog box is displayed
281 Testing Your System Troubleshooting If you are unable to connect to a deployed test database, use the following suggestions to help diagnose the cause: Try connecting to the deployed test database directly from Developer Test, without using Component Enabler. Try connecting remotely using only the local test database. If Component Enabler displays the message Error logging in to server: Error 205, use the Windows Event Viewer to obtain a detailed description of the error. The error is logged as an information type application event for Ratlsvr.exe. The most likely event is an authentication error due to incorrect login details. If Component Enabler displays the message Error Connecting to server: Error 902, the most likely cause is a System/OptionSet does not exist error due to an incorrect System or Option Set value in the View Details dialog box of the Developer Test Remote Server Configurator. When the Developer Test error logging facility is enabled, the error is logged as ERROR : Remote Host Database Access - System:OptionSet = "xxx:yyy" does not exist!. Configuring Developer Test to Run HUB Transactions Developer Test can perform External Automatic Entry commands (AUTO.ENTRY) that send HUB transactions to the deployed Enterprise Application Runtime systems and to the Business Integrator External Components. Developer test can also act as a Server for the External Automatic Entry commands from Enterprise Application Runtime systems. Developer Test to Developer Test External Automatic Entry commands are also available from Release Terminology You should clearly understand the following terminology, which is used throughout this subsection. Developer Hub Transaction Manager (DeveloperHTM) This program routes HUB packets to and from Developer Test Systems. It connects to deployed Enterprise Application Runtimes and Business Integrator External Components when the destination is not another Developer Test system. In addition, incoming HUB packets from Windows Runtime on the local machine and from remote machines (via HubSocket) are all sent to this program before being distributed to the correct Developer Test. DeveloperHTM is started and stopped automatically as required. HubSocket This receives HUB packets from remote machines and sends them to the destination Windows Runtime, Business Integrator External Components or Developer Test on the local machine
282 Testing Your System Configuring Environment for Developer Test The term environment is referred in different ways in many operating systems. In Enterprise Application Environment, the following system data items contain the environment name: GLB.DESTENV, GLB.ORIGINENV and GLB.SELFENV. Environments are not used in MCP. In OS2200, environment refers to the Runtime name. In UNIX, environment refers to the ORACLE SID. In Windows, environments refers to the ORACLE or the SQL Server SID. Business Integrator External Components all use the value EXT for environment. As of release , all Developer Test systems have the value 00 which is not configurable at present. On Windows Runtime, environment also refers to a particular installation of Windows Runtime on a machine. This means that in Windows, there is Environment=SID and Environment=Windows Runtime installation. Each installation is given a name (i.e., environment name) during installation. You can generate many Enterprise Application Environment Systems to a particular Windows environment. A separate instance of HubSocket is created for each Windows Runtime to enable the systems in that environment to operate as a Server with external systems. However, only one HubSocket can serve a particular TCP/IP port; therefore if you wish to HUB multiple installation environments on the same machine, they must be configured to use different TCP/IP ports. As each environment can only communicate with itself and with remote systems that listen on the same TCP/IP port; it is impossible for systems in different Windows runtime environments on the same machine to communicate with each other, directly or through a remote machine. A set of systems connectable via a common TCP/IP port is called a HUB Ring. Systems in different Windows Runtime Systems on the same machine cannot belong to the same HUB Ring. You can configure Developer Test to participate in any one environment on a machine (It is this environment that appears in the External Systems Detail Dialog Box.). Editing the Configuration File When Developer is installed, a HubSocket is installed for its default environment called DEVTEST. This is determined by the ntlinc.cfg file that is created in the Config subdirectory of the Developer Installation directory. This file contains the port number that the HubSocket will use to listen for HUB packets. Example of ntlinc.cfg File The following example shows lines from the ntlinc.cfg file: LINCIIDIR=C:\Program Files\Enterprise Application Developer LINCII_ENV=DEVTEST HUB_PORT=
283 Testing Your System The LINCII_ENV variable is used by HubSocket to locate systems when it receives a remote message. So this has to match the environment name of the system in the External Systems Dialog. In practice, it is advised not to change the environment in the ntlinc.cfg file. This is because you need to unregister HubSocket, change the value, and register it again. It is best recommended to change the value in the External Systems dialog box rather than in the ntlinc.cfgfile. Modifying the ntlinc.cfg File DeveloperHTM now can log all significant events occuring to it, including HUB packets passing through it. Therefore, you have to edit the ntlinc.cfg file to set up a log of transactions. The entries are as follows: DT_EVENT_LOG=1 0 DT_DEBUG_LOG=1 0 DT_LOG_PATH= <full filename> EVENT level messages are entries that are useful when setting up HUB for Developer Test. They are fully translatable. "DEBUG" level messages are in English and intended to be useful when preparing to send material with an UCF. "DEGUG" level includes full contents of all HUB packets. Windows Runtime and Business Integrator also install a HubSocket. All HubSocket executables are equivalent, that is they contain identical code at the same release level. When Windows Runtime is installed, you have to specify a name for the environment. By default, Business Integrator installs its HubSocket for environment called _EXT_COMP. HUB routing is based on the names of the machines connected to the HUB Ring; therefore, the client machine must know how to find the server machine. This will usually be through DNS, WINS or the hosts file on the client machine. In the same way, the server machine needs to be able to find the client machine. This will work automatically in most cases; however, if one of the machines is not known to the other (as the machine is a PC connect via VPN) then manual configuration of the network may be necessary. Some network architectures also may not work with HUB at all. Contact your Network Administrator for more information. Examples of HUB Transcations with Developer Test Note: The following are only examples of some scenarios. There may be other ways to achieve the same result. In these examples HUBFROM is the HUB client and HUBTO is the HUB server. The following scenarios are covered in this topic: Scenario 1 - HUB from Developer Test to Developer Test on same machine Scenario 2 - HUB from Developer Test to Windows Runtime on same machine Scenario 3 - HUB from Windows Runtime to Developer Test on same machine
284 Testing Your System Scenario 4 - HUB from Developer Test to Business Integrator External Component on same machine Scenario 5 - HUB from Developer Test to Developer Test on different machine Scenario 6 - HUB from Developer Test to MCP Scenario 7 - HUB from MCP to Developer Test Scenario 1 To HUB from Developer Test to Developer Test on the same machine, perform the following steps: 1. Stop the HubSocket. This is an optional step. 2. Register HUBFROM System as External System with environment as DEVTEST and with HUB enabled. 3. Register HUBTO System as External System with environment as DEVTEST and with HUB enabled. 4. Set GLB.DESTINATION = (HUBTO), GLB.DESTENV=(00), and GLB.DESTHOST= GLB.SELFHOST in the HUBFROM logic. Scenario 2 To HUB from Developer Test to Windows Runtime on the same machine, perform the folloiwng steps: 1. Use Windows Runtime HubSocket started with environment as EAE Register HUBFROM System as External System with environment as EAE33 and with HUBenabled. 3. Generate HUBTO System to EAE33 environment, with SID=D1 and with HUB enabled using Enterprise Application Runtime Administration Client. 4. Set GLB.DESTINATION = (HUBTO), GLB.DESTENV=(D1), and GLB.DESTHOST= GLB.SELFHOST in HUBFROM logic. Scenario 3 To HUB from Windows Runtime to Developer Test on the same machine, perform the folloiwng steps: 1. Use Windows Runtime HubSocket started with environment as EAE Generate HUBFROM System generated to EAE33 environment, with SID=D1 and with HUB enabled using the Enterprise Application Runtime Administration Client. 3. Register HUBTO System as External System with environment as EAE33 and with HUB enabled. 4. Set GLB.DESTINATION = (HUBTO), GLB.DESTENV=(00), and GLB.DESTHOST= GLB.SELFHOST in HUBFROM logic
285 Testing Your System Scenario 4 To HUB from Developer Test to Business Integrator External Component on the same machine, perform the following steps: 1. Use External Component HubSocket started with environment as _EXT_COMP. 2. Register HUBFROM System as External System with environment as _EXT_COMP and with HUB enabled. 3. Define HUBTO as an External Component. 4. Set GLB.DESTINATION = (HUBTO), GLB.DESTENV=(EXT), and GLB.DESTHOST= GLB.SELFHOST in HUBFROM logic. Scenario 5 To HUB from Developer Test to Developer Test on different machines, perform the following steps: 1. Register HUBFROM System on CLIENT as External System with a suitable environment (for example, the DEVTEST environment) and with HUB enabled. 2. On HUBTO machine (machine name = SERVER), use Developer Test HubSocket started with environment as DEVTEST (does not have to be same as other machine). 3. Register HUBTO System on SERVER as External System with environment as DEVTEST and with HUB enabled. 4. Set GLB.DESTINATION = (HUBTO), GLB.DESTENV=(00), and GLB.DESTHOST= (SERVER) in HUBFROM logic. Note: Ensure that the HUB_PORT number in the config of the CLIENT (Used by DeveloperHTM) is the same as the HUB_PORT number on the SERVER (Used by HubSocket). Scenario 6 To HUB from Developer Test to MCP, perform the following steps: 1. Use Developer Test HubSocket Started with environment as DEVTEST. 2. Register HUBFROM System as External System with a suitable environment (for example, the DEVTEST environment) and with HUB enabled. 3. On MCP machine (name MCP1), generate HUBTO System and generate the HUB. 4. Set GLB.DESTINATION = (HUBTO), GLB.DESTENV=GLB.SPACES, and GLB.DESTHOST = (MCP1) in HUBFROM logic. Note: Ensure that the HUB_PORT number in the config of the CLIENT (Used by DeveloperHTM) is the same as the HUB_PORT number on the SERVER (Used by HubSocket)
286 Testing Your System Scenario 7 To HUB from MCP to Developer Test, perform the following steps: 1. On MCP machine, generate HUBFROM System and enable the HUB. 2. On SERVER machine, use Developer Test HubSocket started with environment as DEVTEST. 3. Register HUBTO System as External System with environment as DEVTEST and with HUB enabled. 4. Set GLB.DESTINATION = (HUBTO), GLB.DESTENV = (00), and GLB.DESTHOST = (SERVER) in HUBFROM logic. Note: Ensure that the HUB_PORT number in the config of the CLIENT (Used by DeveloperHTM) is the same as the HUB_PORT number on the SERVER (Used by HubSocket). Summary After completing this section, you can: Start up Developer Test and initiate a session. Set error and informational logging levels. Set the language for your Developer Test session. Define a logical printer for testing Reports. Create or reorganize a test database. Backup or restore a test database, and perform a roll-forward recovery of the transaction log. Browse, archive, or restore a transaction log. Select a screen and send a transaction using that screen. Run a Report and control a running Report. Access the Debugger to test Ispec or Report logic. Call subroutines from a remote host when testing a System. View a Teach screen. Use Component Enabler with Developer Test to test a System. Configure Developer Test to Run HUB Transcations
287 Section 11 Debugging Your System This section describes how to use the Developer Test Debugger to test logic for screens and Reports before generation. In this section you will find: Introduction to the Debugger Accessing the Debugger Displaying Logic: the Source Window Displaying Data Item Values: the Watch Window Displaying Current Logic: the Traceback Window Using Breakpoints Using the LOG; Command Using Debug Mode Managing Debug Session Settings Introduction to the Debugger The Debugger enables you to observe the runtime behavior of logic. You can use the Debugger to: View all logic for an Ispec, a Report Frame, or a Global Logic. Step through logic line by line. Continue normal execution, with or without displaying each line as it is executed. Define conditions for halting logic execution (breakpoints). Monitor the content of Data Items during logic execution (watches). Change the value of a Data Item used in the logic. Save breakpoint and watch settings for future testing sessions. The Debugger does not perform any logic validation, but it does check whether an Ispec has been read or not. As each line of logic is executed, the system checks that any Ispec database items being used have actually been read into memory. This will highlight situations where you may access a database item early in the logic and not actually read the Ispec until later in the logic
288 Debugging Your System A typical testing situation using the Debugger might be: 1. Access the Debugger after signing on to Developer Test. 2. Set up breakpoints in the logic of your Ispec, Global Logic, or Report. 3. Return to Developer Test and run the Ispec, Global Logic, or Report. 4. Use the Debugger to analyze the flow of logic, and to display and change values of Data Items. 5. Save the debug settings. Accessing the Debugger Access the Debugger from within Developer Test in one of the following ways: Check the Debug option of the Run a Report dialog box. Select System from the menu bar, then select Debug System from the dropdown menu. Press the Ctrl-D key. Start a Report using the Run Report command on the System menu while the Debugger is active. This activates the Debugger for your Report. Start a standalone Report using the -b filename to initiate the Debugger and run the Report. For more details on running standalone Reports, see your Unisys Enterprise Application Programming Reference Manual. Note: You can also access the Debugger from a command prompt or Windows shortcut. For details, see Running Systems and Reports from a Shortcut on page and the description of the -b switch in particular. When you activate the Debugger, the Home window is displayed. This window is divided into three areas: Watch Window Use the Watch Window to display the values of Data Items from an Ispec, Report, or Global Logic. You may choose to see the values from the screen, the database, or from the Automatic Entry buffers. You may also display System Data Items. Traceback Window Use the Traceback Window to identify the Ispec, Report, or Global Logic being executed. Source Window Use the Source Window to study the logic of an Ispec, Report, or Global Logic. The commands that appear at the bottom of the Source Window enable you to control how logic is displayed. A status line appears at the bottom of the Home window
289 Debugging Your System To exit the Debugger without closing the Debugger session, select Ispec window from the Option menu. To exit the Debugger and close the Debugger session, select Exit from the File menu. If you have any breakpoints or watches defined, you will be asked if you want to save them. Displaying Logic: the Source Window Use the Source Window to study the logic of an Ispec, Report, or Global Logic. Selecting Logic for Display To specify the logic to be tested: 1. Select the Ispec, Frame, or Global Logic option from the Source menu. The Select Ispec Logic, Select Report Logic, or Select Global Logic dialog box is displayed. 2. Specify the name of the required Ispec, Frame, or Global Logic. Note: Developer Test, and therefore the Developer Test Debugger, only supports Big Buffer Ispecs that are equal to, or less than bytes in size. Big Buffer Ispecs larger than this can not be specified, nor will they appear in the Ispecs list box. 3. For an Ispec, click on a radio button to specify the type of logic you require (Pre- Screen, Pre-LINC, Edit Logic, or Main Logic). 4. Click on the OK button. The specified logic is displayed in the Source Window. Note: To test the Pre-Screen logic of the Fireup Ispec of a System, complete the following procedure: 1. Initiate the System from a command prompt or Windows shortcut, but you should omit the name of the Business Segment from the initiating command. For details about this procedure, see Running Systems and Reports from a Shortcut on page 10-29, and the description of the -b switch in particular. 2. Click the Step In button on the main Debugger window. 3. Select Open Session from the Developer Test File menu. 4. Select the required Business Segment and click OK. How Logic Is Displayed When you run your Ispec, Global Logic, or Report, this is how the logic is displayed in the Source Window: The next line of logic to be executed is highlighted. When you step through logic, the lines of logic are scrolled to keep the highlighted command visible. If a command is spread over more than one line, only the first line is highlighted
290 Debugging Your System If a command is spread over too many lines to appear in the window, only the first line or lines of the command are shown. Loop commands are highlighted only once, although statements within the loop are highlighted for each iteration of the loop. Note: Logic is not displayed in the Source Window if it contains syntax errors. Controlling the Display of Logic Use the command buttons at the bottom of the Source Window to control the flow of logic displayed. The command buttons and their keyboard equivalents are described in the table below: Command Button Key Result Continue F5 or C Executes logic without display. Begins execution at the current command and stops at the next breakpoint or at the end of the transaction. Step In F8 or S Executes the current command and stops at the next executable line of logic. Stops at the first line of the Global Logic of an INSERT; or Frame of a PRINT.FRAME; command. Next F10 or N Executes the current line of logic. Stops at the next executable line of logic, or the first line of another Ispec or Global Logic. Animate A Displays and executes logic, highlighting each line as it is executed. To control the speed at which lines are displayed, select Option from the menu bar, then select Animate. Click and drag on the bar to adjust the speed of execution. Halt F12 or H Interrupts the execution of logic. There are a number of mouse actions that enable you to move the pointer or select text within the Source Window. These are: Action Key Result Double-click Moves the pointer.this action also sets or clears a breakpoint. Double-click right Space Selects the current word and accesses the Watch Add Item command. Also moves the pointer. Drag left Shift+Left Arrow Selects text to cursor on a line. Drag right Shift+Right Arrow Selects text to cursor on a line
291 Debugging Your System Note: To select an item in the Source window, you only need to position the mouse pointer over the item. The item will become highlighted, and you can then add it to Watch window by selecting Add Item from the Watch menu. However, if you move your mouse slowly over the Source window, other items may be accidentally selected. Moving your mouse pointer to an empty portion of the Source window will also cause any selected items to be deselected. The Option menu offers the following choices for controlling the display of logic in the Source Window: Command Skip Statement Font Line Numbers Animate ISPEC window Result Skips to the next executable line of logic without executing the current line. Note that using this command on a PRINT.FRAME; or INSERT; command means that the Frame or inserted logic is not executed. Using the Skip Statement command on a DETERMINE; or LOOK.UP; command that contains the SERIAL; option may lead to unexpected results. The SERIAL; option must be executed in the first cycle of a Copy.From Ispec (that is, when the value of GLB.COPY is 1). Choose the Default font, or, by selecting the Other option, select from a range of fixed-width fonts available on your machine. Displays or removes line numbers against lines of logic. Sets the speed at which logic is displayed when animated. Returns you to the current Ispec window. Displaying Data Item Values You can display the current value of selected types of Data Items in the Source window by positioning your pointer on the item name. A pop-up window appears displaying the edit type, length, and value of the item. The window closes automatically after 20 seconds. Values can be displayed in this way for Data Items with the following edit characteristics: Alpha Numeric Date Japanese data Group Data Items EDIT;A EDIT;N EDIT;S EDIT;+ EDIT;- EDIT;CR EDIT;DR EDIT;D EDIT;W EDIT;K These are treated as EDIT;A
292 Debugging Your System Displaying Data Item Values: the Watch Window The Debugger allows you to monitor the state of a Data Item during logic execution. To do this, you define a watch on the Data Item. When logic execution stops, the value of that Data Item is displayed in the Watch Window. Adding a Data Item To specify a Data Item for display in the Watch Window: 1. Select the Add Item option from the Watch menu. The Add Watch Item dialog box is displayed. 2. Key in the name of the Data Item to be defined as a watch item. If you selected a Data Item name in the Source Window, this name will appear as a default. 3. Select the type of the Data Item. For an Ispec the choices are: Screen SD/GSD Database Auto System item Screen (memory) Setup Data Item or Global Setup Data Item Database Data Item (database memory area) Data Item in the Automatic Entry buffer System Data Item For a Report the choices are: Screen SD/GSD Database Auto System item Report Frame Data Item (memory) Setup Data Item or Global Setup Data Item Database Data Item (database memory area) Data Item in the Automatic Entry buffer System Data Item 4. If you selected Database or Auto for an Ispec Data Item, select the Ispec name in the Ispecs list box. 5. If you selected an Extract file Data Item for a Report, enter the name of the Extract file (a letter in the range A through Z) in the Extract File field
293 Debugging Your System This dialog box includes two check boxes which you can optionally use to set breakpoints, that is, instruct the Debugger to stop logic execution in certain circumstances: 1. Check the Halt before reference check box if you want the Debugger to halt logic execution before the line in which the specified Data Item appears. This is a reference breakpoint. 2. Check the Halt after change check box if you want the Debugger to halt logic execution after the specified Data Item is updated. This is a change breakpoint. Click on the OK button to close the dialog box. See Using Breakpoints on page 11-9 for more information about breakpoints. Removing a Watch Item To remove a watch on a Data Item: 1. Select the Data Item in the Watch Window by clicking on it once. 2. Select the Remove Item option from the Watch menu. To remove all Data Items from the Watch Window, select the Remove All option on the Watch menu. Removing a watch item automatically removes reference and change breakpoints from the item. Changing the Value of a Watch Item To change the value of a watch item in the Watch Window: 1. Select the Data Item in the Watch Window by clicking on it once. 2. Select the Change Value option from the Watch menu. The Change Item Contents dialog box is displayed. 3. Key in the new value for the Data Item in the Contents field. 4. Click on the OK button to close the dialog box. Setting a Breakpoint on a Data Item From the Watch Window you can set breakpoints for a Data Item, that is, instruct the Debugger to stop logic execution in certain circumstances. To set a halt condition (breakpoint) on a Data Item using the Watch Window: 1. Select the Data Item in the Watch Window by clicking on it. 2. Click on the Breakpoint menu
294 Debugging Your System 3. If you want the Debugger to halt logic execution before a line in which the specified Data Item appears, select the Set Reference option. This sets a reference breakpoint. 4. If you want the Debugger to halt logic execution after the specified Data Item is updated, select the Set Change option. This sets a change breakpoint. You can de-select an option by clicking on it a second time. See Using Breakpoints on page 11-9 for more information about breakpoints. How Watch Items Are Displayed A numeric Data Item is displayed in the Watch Window with: A leading sign if the edit type is signed A decimal point if any decimal places are declared, regardless of any DECIMAL.KEYED data attribute Separators not displayed Zero filling to indicate the size of the item An alphanumeric Data Item is displayed inside double quotes (" ") to make leading and trailing spaces visible. System Data Items GLB.STATUS and GLB.ERROR are displayed by default. For a Copy.From Ispec, GLB.COPY is also displayed. Expanding or Shrinking an Array or Group Item To expand an array or group item in the Watch Window, double-click on the Data Item name. Clicking twice a second time will shrink or close the expanded item. You can also perform this task by selecting the Data Item in the Watch Window, then selecting Expand Item or Shrink Item from the Watch menu. Note that there may be some delay when expanding or shrinking a large array. Displaying Current Logic: the Traceback Window Use this window to identify the Ispec, Report, or Global Logic being executed.the current Ispec, Report, or Global Logic (whose logic is displayed in the Source Window) is at the top of the list. If you select an Ispec, Report, or Global Logic in the Traceback Window, the logic for the selected item is displayed in the Source Window
295 Debugging Your System Using Breakpoints Breakpoints are useful aids for analyzing your logic, causing the Debugger to stop logic execution when the conditions you specify are met. Include breakpoints at important points in your logic in order to observe the flow of logic and determine the values of Data Items. Breakpoints are not valid for: Blank lines Lines that contain only comments END; or END.EXIT; or END.NO.PRINT; commands Continuation lines for multiple-line logic commands (for example, DETERMINE;GROUP commands) There are four types of breakpoints: Simple (line) breakpoint - Logic execution stops before a specific line of logic. Conditional breakpoint - Logic execution stops before a line of logic if certain conditions are met. Reference breakpoint - Logic execution stops before a line of logic in which a specified Data Item is referenced (read or updated). Change breakpoint - Logic execution stops after a line of logic in which a specified Data Item is updated. Adding a Line Breakpoint To add a line breakpoint to your logic: 1. Select logic for display in the Source Window. See Selecting Logic for Display on page Add a breakpoint to a line of logic in one of the following ways: Double-click on the line of logic. Select the line of logic by clicking on it once, then press the B key. The letter B appears against the line if the breakpoint is valid. Removing a Line Breakpoint To remove a line breakpoint from your logic: 1. Activate the Source Window by clicking on it. 2. Remove a breakpoint from a line of logic in one of the following ways: Double-click on the line of logic
296 Debugging Your System Select the line of logic by clicking on it once, then press the B key. Select the Edit option from the Breakpoint menu. Select the line breakpoint from the list and click on the Remove button. Adding a Conditional Breakpoint A conditional breakpoint is a set of conditions under which logic execution will be stopped during a debugging test run. If you set a condition on a Data Item, its value is checked only when the Data Item is explicitly referenced in the logic. For example, the value of a Data Item can be checked in a MOVE; statement, but not in EXTRACT; or DETERMINE; logic. To add a conditional breakpoint to your logic, select the Add Conditional option from the Breakpoint menu. The Conditional Breakpoint dialog box is displayed. Any number of subconditions, or DO;WHEN clauses, can be defined for a conditional breakpoint. You must define one clause at a time. As clauses are defined, they appear in the Breakpoint Conditions list box at the bottom of the dialog box. Clauses can be reordered as needed. During logic execution, evaluation of the clauses occurs in top-tobottom order, as it does in the Enterprise Application runtime environment. To define a DO.WHEN; clause: 1. Specify a Left Operand. The Data Item names available in the drop-down list box for Item depend on the values selected in the list boxes below it and on whether the Data Item has been used in the code (thereby making it 'visible' to Runtime). To specify a Left Operand: Select an Item Type from the list box below Item. For a Report, you can optionally specify the name of the Extract File (a letter in the range A through Z). For an Ispec, select a Source Name from the list box. Specify the name of a Data Item in the Item list box for the Left Operand. 2. Click on a radio button to select a Relation for this clause. 3. Specify a Right Operand. The Data Item names available in the drop-down list box for Item or Literal depend on the values selected in the list boxes below it and on whether the Data Item has been used in the code (thereby making it 'visible' to Runtime). To specify a Right Operand: Select an Item Type from the list box below Item or Literal. For a Report, you can optionally specify the name of the Extract File (a letter in the range A through Z). For an Ispec, select a Source Name from the list box. Specify a literal or the name of a Data Item in the Item or Literal field. Literals may be enclosed in parentheses
297 Debugging Your System 4. Specify a Connector from the drop-down list box: If you wish to add an AND clause following this one, select AND. If you wish to add an OR clause following this one, select OR. If you do not wish to add another clause following this one, leave this blank. 5. Click on the Add button. The clause you have defined is added to the Breakpoint Conditions list box below. If the clause is valid, a green check mark appears to its left. If the clause is not valid, a red exclamation mark appears to its left. A valid clause can become invalid when you add subsequent clauses, for example, if you add a clause following a clause with no connector. Edit or reposition an invalid clause to correct it. See Modifying Conditional Breakpoints on page for details on editing DO.WHEN; clauses. 6. When you have correctly defined all DO.WHEN; clauses for this breakpoint, click on the OK button. The fields and their input options are discussed below: Item Type Qualifies the Data Item. For an Ispec Data Item the choices are: Screen SD/GSD Database Auto System item Screen (memory) Setup Data Item or Global Setup Data Item Database Data Item (database memory area) Data Item in the Automatic Entry buffer System Data Item For a Report Data Item the choices are: Screen SD/GSD Database Auto System item Report Frame Data Item (memory) Setup Data Item or Global Setup Data Item Database Data Item (database memory area) Data Item in the Automatic Entry buffer System Data Item Relation If you select Numeric or Not numeric for the Relation, the system will test whether the Item defined as the Left Operand is numeric or not numeric. Do not specify a Right Operand in this case
298 Debugging Your System Other Relation options define a relationship between the Item defined on the left side of the box and the Item or Literal on the right. These options are: = Equal NOT = Not equal > Greater than >= Greater than or equal to < Less than <= Less than or equal to Reordering DO.WHEN; Clauses for a Conditional Breakpoint DO.WHEN; clauses are added to the Breakpoint conditions list box of the Conditional Breakpoint dialog box in the order in which you define them. To reorder the clauses: 1. Select a clause in the Breakpoint Conditions list box by clicking on it. 2. Use the Up arrow and Down arrow buttons to reposition the clause in the list. Note that reordering the DO.WHEN; clauses for a breakpoint may change a valid clause into an invalid one, for example, if a clause with a connector of AND or OR becomes the last clause. In this case you must edit one or more of the clauses. See Modifying Conditional Breakpoints on page for details on editing DO.WHEN; clauses. During logic execution, evaluation of the clauses occurs in top-to-bottom order, as it does in the Enterprise Application runtime environment. Modifying Conditional Breakpoints To modify a conditional breakpoint: 1. Select the Edit option on the Breakpoints menu. The Edit Breakpoints dialog box is displayed, listing all current breakpoints, including their types. 2. Click on the breakpoint to be modified. 3. Click on the Change button. The Conditional Breakpoint dialog box is displayed. Note that you cannot modify a line, reference, or change breakpoint. If you select one of these breakpoints, the Change button will be disabled. To modify an existing DO.WHEN; clause: 1. Click on the clause in the Breakpoint conditions list box to select it. Its conditions appear in the upper part of the dialog box. 2. Change the fields in the top of the dialog box as required
299 Debugging Your System 3. Click on the Edit button. The modified clause appears in the Breakpoint conditions list box. To add a new DO.WHEN; clause: 1. Specify the information in the top part of the Conditional Breakpoint dialog box to define the clause, as described in Adding a Conditional Breakpoint on page Click on the Add button. The clause is added to the bottom of the list in the Breakpoint conditions list box. 3. Reorder the clauses, if required. To delete a DO.WHEN; clause: 1. Click on the clause in the Breakpoint conditions list box to select it. 2. Press the Delete button. Adding a Reference or Change Breakpoint To add a reference breakpoint (stop before reference to Data Item) or a change breakpoint (stop after update to Data Item): 1. Select the Edit option on the Breakpoints menu. The Edit Breakpoints dialog box is displayed, listing all current breakpoints and their types. 2. Select Reference from the Type list box if you want to define a reference breakpoint. Select Change from the Type list box if you want to define a change breakpoint. 3. Click on the Add button. Depending on your choice of Type, the Add Reference Breakpoint or the Add Change Breakpoint dialog box is displayed. 4. Specify the name of a Data Item in the Item Name list box. Note that the Data Item names available in the drop-down list box for Item Name depend on the values selected in the Item Type and the Source Name list boxes. 5. Select an Item Type from the list box below Item Name. 6. For a Report, you can optionally specify the name of the Extract File (a letter in the range A through Z). For an Ispec, select an Source Name from the list box. 7. Click on the OK button. The values for Item Type are the same as those described for Adding a Conditional Breakpoint on page Removing a Conditional Reference, or Change Breakpoint To remove a conditional, reference, or change breakpoint: 1. Select the Edit option on the Breakpoints menu. The Edit Breakpoints dialog box is displayed, listing all current breakpoints and their types. 2. Click on the breakpoint to be removed
300 Debugging Your System 3. Click on the Remove button. Note that no message or dialog box is displayed for you to confirm the remove command. Removing All Breakpoints There are two ways to remove all breakpoints from your Debugger session: Select the Remove All option from the Breakpoint menu. Select the Edit option on the Breakpoints menu, then click on the Remove All button in the Edit Breakpoints dialog box. Enabling and Disabling Breakpoints The operation of individual breakpoints can enabled or disabled. To do this: 1. Select the Edit option on the Breakpoints menu. The Edit Breakpoints dialog box is displayed, listing all current breakpoints and their types. 2. Check the check box to the left of the breakpoint to enable it or disable it. The breakpoint is enabled if the check box is checked. To enable or disable all breakpoints, see Using Debug Mode on page Using the LOG; Command The LOG; command provides you with a facility for writing information about Data Items to the log file during logic execution. During a test run, when specific system events happen, the LOG; command can write one or two Data Items to the log. You can use an editor such as Notepad to analyze the log file, or print the file for reviews or meetings. Using this facility, you can execute a long-running program or report without supervision and check the results later. The forms of the LOG; command are: LOG; LOG; WARNING LOG; ERROR LOG; HALT Writes entry to the log for informational events. Writes entry to the log for warning-level events. Writes entry to the log for error events. Writes entry to the log for error events and, if the LOG;HALT stop function is enabled, halts logic execution. (See Using Debug Mode on page ) The LOG; command works in conjunction with Developer Test logging (see Setting Logging Level on page 10-3). Logging must be turned on for the LOG; command to be executed during a test run. In addition, the logging levels set for
301 Debugging Your System Developer Test determine which forms of the LOG; command are to be executed. For example, if Error level logging is not selected, no entry will be written to the log for a LOG; ERROR command. Note: The LOG; command is available only in Developer. Host implementations ignore the command. The LOG; HALT Command LOG; HALT is a special instance of the LOG; command. In addition to writing an entry to the log in an error situation, LOG; HALT will stop logic execution and display a message in the status line. This halt function can be enabled or disabled using the Enable LOG; HALT option on the Breakpoint menu of the Debugger. Note, however, that as long as Developer Test logging is enabled, LOG; HALT will always write an entry to the log, even when the stop function is disabled. Syntax of the LOG; Command The syntax of the LOG; command is as follows. Optional items are in square brackets. LOG; ERROR Data Item 1 [Data Item 2] LOG; WARNING Data Item 1 [Data Item 2] LOG; HALT Data Item 1 [Data Item 2] LOG; Data Item 1 [Data Item 2] Either Data Item can be a literal. Enclose literals in parentheses. An entry written to the log file for a LOG; command includes: date and time Ispec, Report, or Global Logic name version logging level (ERROR, WARNING, HALT, INFO) Data Item 1 Data Item 2 (optional) For example: LOG; ERROR (No Cust-ID in table.) CUSTID LOG; ERROR NAME gives log entries: 25Sep99 15:17:12 CUST ERROR: No Cust-ID in table. CUSTID = (0009) 25Sep99 15:17:12 CUST ERROR: Name = ( )
302 Debugging Your System Using Debug Mode The Debugger allows you to instruct the Developer Test interpreter to stop logic execution in a number of ways: By defining reference breakpoints and change breakpoints on a Data Item By defining breakpoints for a specific line or in specified conditions By including the LOG; HALT command in your logic At some point during testing, however, you may want to switch off these debugging behaviors and let the code run uninterrupted. You have the option to switch off all breakpoints and the option to switch off the stop function of the LOG; HALT command. To switch off the operation of all breakpoints, click on the Breakpoints menu. The Enable All option is checked (enabled) by default when the Debugger is started. Click on this option to disable it. To switch off the stop function of the LOG; HALT command, click on the Breakpoints menu. The Enable LOG; HALT option is enabled when checked. Click on this option to disable it. Note that LOG; HALT will always write an entry to the log, even when the stop function is disabled. Click on a disabled debug mode option to enable it again. Managing Debug Session Settings After setting up breakpoints and watches for a debugging session, you may want to save these settings for future test sessions. The Debugger allows you to save these settings in a file, to load the file when needed, or to clear out current debug settings. Each file contains one set of debug breakpoints, watches, and options (that is, the status of the Enable All and Enable LOG;HALT options). Saving Debug Settings To save the current debug settings to a file: 1. Select the Save settings option from the Debugger File menu. A standard Windows dialog box is displayed. 2. Specify a directory where the file is to be saved and a file name.by default the debug settings file will be kept in the current working directory. The default file name is based on the Business Segment name, for example Business Segment.DBG. Change these defaults if required. 3. Click on the Save button
303 Debugging Your System Loading Debug Settings To load a file containing debug settings: 1. Select the Load settings option from the Debugger File menu. A standard Windows dialog box is displayed. 2. Specify the file name to be loaded and its location. 3. Click on the Open button. If you invoke Debugger from a command line or Windows shortcut, you can also specify a debug settings file. For details, see Running Systems and Reports from a Shortcut on page 10-29, and the description of the -b switch in particular. Clearing Debug Settings To delete all current debug settings from the Debugger: 1. Select the Clear Settings option from the Debugger File menu. The Clear All Debug Settings dialog box is displayed. 2. Click on the Yes button to clear the settings. Click on the No button to open the SAVE Debug Settings dialog box and save the settings to a file. Click on the Cancel button to close the dialog box without performing either action. To delete a debug session settings file, you must use File Manager as this function is not available in the Debugger. Summary After completing this section, you can: Initiate the Debugger from within the Developer Test environment. Understand the functions of the Source, Watch, and Traceback windows. Select logic for display and execute the logic, controlling its display. Set watch items for which the Debugger will display values. Set breakpoints within logic. Change the values of watch items. Save debug session settings as a file, or load a debug settings file. Return to Developer Test from the Debugger
304 Debugging Your System
305 Section 12 Viewing Differences and Merging This section describes how to view the specifications of objects in the Developer Repository, revisions in the Version Control Bank, and LCIF format files. Using the LCIF Viewer you can also compare two objects, revisions, or files side by side. With the Developer merge facility you can combine two objects, revisions, or files by reviewing each difference between the two items and selecting which variant will be included in the final merge item. This section includes: Introduction to the LCIF Viewer Viewing Differences Viewing Specifications Extracting To Show Differences or View Specifications Merging Changing Display Attributes Introduction to the LCIF Viewer The LCIF Viewer enables you to view and compare objects from within the Developer application through either the Model Directory or Version Control Explorer. With the LCIF Viewer you can: View the specifications of selected objects, revisions, and.mdl files. Compare two objects in the Repository. Compare a revision in the Version Bank with an object in the Repository. Compare an object in the Repository with a revision from the Version Bank. Compare two revisions in the Version Bank. Compare an object in either the Repository or the Version Bank with an LCIF file. Compare two.mdl files. The options available will vary according to whether you have Version Control installed. See your Unisys e-action Enterprise Application Developer Version Control Guide for information about the features and use of Version Control
306 Viewing Differences and Merging The.mdl file you select to view or compare must either be the result of using the Extract for Difference/View command or be one of the temporary.mdl files created in the Version Control temporary directory as a result of an Add, Get, Check Out, or Check In to or from the Version Bank. See Extracting To Show Differences or View Specifications on page for further details of the Extract for Difference/View command. If you select an.mdl file created with the standard extract function, records may be omitted or additional records included when it is displayed in the LCIF viewer. Note: In this section, objects refer to entities in the Repository accessed through the Model Directory. Revisions refer to particular revisions in the Version Bank accessed through the Version Control Explorer. Viewing Differences The LCIF Viewer enables you to view differences between: Objects Revisions An object or revision and an LCIF file Two LCIF files Revision differences can only be viewed if you have Version Control installed. Note: In order to exclude logic relationship records when viewing differences, enter ShowRelations=0 in the [Differences] section of your LINC.INI file. Viewing the Differences Between Objects and Revisions To view differences: 1. Select an object from the Model Directory or a revision from the Version Control Explorer. 2. Select the Show Differences command on the Tools menu. The Differences Option dialog box is displayed. 3. From the options select whether you want to compare an object, revision, or a file and click the OK button. The fields and options are described below. The View Differences dialog box is displayed. See Using the View Differences Dialog Box on page 12-4 for further details. The Differences Options dialog box contains the following fields. Some options may be disabled according to whether Version Control is installed and the location of your first item selected
307 Viewing Differences and Merging Compare Name and Revision Fields The Name field displays the name of the selected object. The Revision field displays the revision number of the selected object. If you select an object from the Repository and it has not been added to the Version Bank, the Revision field displays the text Not Controlled. Corresponding Object in Developer Repository Radio Button This radio button is only enabled if you select a revision in the Version Control Explorer. The selected revision is compared with the corresponding object currently loaded in the Developer Repository. Its name and revision number are displayed in the second Name and Revision fields. Corresponding Revision in Version Bank Radio Button This radio button is only enabled if you select an object in the Model Directory and you are logged into the Version Control Explorer. The selected object is compared with the revision loaded from the Version Bank. Its name and revision are displayed in the second Name and Revision fields. Other Object/Revision Radio Button Click this radio button to enable the Object in Developer Repository radio button and the Revision in Version Bank radio button. Object in Developer Repository Radio Button Click this radio button to select a second object of the same type within the Model of the Developer Repository. This radio button is only enabled if you have selected an object in the Model Directory. Click the Browse button to display the Select An Object dialog box. The name and revision number of the second selected object are displayed in the second Name and Revision fields. Revision in Version Bank Radio Button Click this radio button to select a second revision of the same type in the Model of the Version Bank. This radio button is only enabled if you have selected a revision in the Version Control Explorer. Click the Browse button to display the Select An Object dialog box. The name and revision number of the second selected object are displayed in the second Name and Revision fields
308 Viewing Differences and Merging Name and Revision Fields The Name field displays the name of the second selected object. The Revision field displays the revision number of the second selected object. If you select an object from the Repository and it has not been added to the Version Bank, the Revision field displays the text Not Controlled. An LCIF File Radio Button Click this radio button to select an LCIF file to compare against the previously selected object. Click the Browse button to display the Select an MDL File dialog box. Select the file you want to compare and click the OK button. The name of the file is displayed in the LCIF File field. Viewing Differences Between Files To view the differences between two.mdl files: 1. While holding down the Shift button select the Show Differences command on the Tools menu. The Select First MDL File dialog box is displayed. 2. Select a directory and file from those listed and click the Open button. The Select Second MDL File dialog box is displayed. 3. Select a directory and file from those listed and click the Open button. The files are displayed in the View Differences dialog box. See Using the View Differences Dialog Box on page 12-4 for further details. Using the View Differences Dialog Box The View Differences dialog box displays the files of the objects being compared in the Left and Right View panes. These panes display the line numbers of the LCIF file and are synchronized so you can view each difference side by side. The cursor defaults to the left pane. It points to the first difference in the LCIF file. Use the Tab key to move the cursor to the right pane and to the other fields in the dialog box. Sections in Files Using the fields at the top of the dialog box you can view the different sections and sub sections of the files. The following table shows the parts of the files for each type of object. Section Object Definition All objects and Report Frames
309 Viewing Differences and Merging Section Object Business Rules Frame Teach Screen Pre-Screen Logic Edit Logic Pre-LINC Logic Main Logic Long Name Pre-Screen Logic Long Name Edit Logic Long Name Pre-LINC Logic Long Name Main Logic All objects Report Frames Ispecs Ispecs Ispecs Ispecs Ispecs and Global Logic Ispecs Ispecs Ispecs Ispecs and Global Logic Use the additional section fields to view the subsections of the Frame and Teach Screen sections. In the Frame section you can select the number of individual Frames and view the Definition, Business Rules and Main Logic sections of the selected Frame. In the Teach Screen section you can select the name of an individual Teach Screens. Sections that contain one or more differences are displayed with a triangle icon in the drop down list. Displaying Differences Differences are displayed following standard conventions: Additional lines are displayed as added text and a blank line is added in the corresponding position on the opposite pane. Deleted lines are displayed as deleted text and a blank line is added in the corresponding position on the opposite pane. Changes to blocks of continuous text are displayed as changed text. Differences in the Definition section of an LCIF file are defined further in the following ways: Left and right records with the same identifiers are treated as changes. Left and right records with different identifiers are displayed as added and deleted text. See the Developer Online Help for details of identifiers
310 Viewing Differences and Merging Note: Differences between the format of LCIF files created by separate Developer releases can be disregarded using the Ignore LCIF Format Changes option. See Changing Display Attributes on page The following are the default colors used to highlight differences: Changed text is displayed in violet. Deleted text is displayed in red. Added text is displayed in green. These colors can be changed. See Changing Display Attributes on page Locating Text or Line Numbers Use the buttons on the toolbar to move to the next or previous difference, to search for specific text in either file, and to get help about the dialog box. Double-clicking on the Line Number field in the bottom right hand corner of the dialog box displays the Navigation dialog box. Use this dialog box to go to a specific line number. You can choose to navigate to a logical line number of the current file or to an actual line number in the current viewer pane. Displaying Record Dialog Boxes Double-clicking on a record in either of the panes displays the Record Differences dialog box. This dialog box displays the fields contained in individual records and the differences between the objects. Differences are displayed according to the same conventions as the View Differences dialog box. Use the toolbar buttons to move to the next or previous difference. Note that the Internal Identifier field in the 00 record is not visible to the end user and is replaced by asterisks. It will not display as a difference. If only one of the panes contains the record, the Record View dialog box is displayed. This dialog box displays the fields contained in an individual record. This behavior is only available in the Definition section of the files. The shortcut keys are Ctrl Enter. Note: For further details on the records contained in LCIF files, contact your support center for a copy of the LCIF help file
311 Viewing Differences and Merging Creating a Differences Report You can create reports of the differences between objects, revisions, and objects in LCIF files. You can also create reports of the differences between two versions of a specification. Reports are extensible Markup Language (XML) files. When a report is created, an extensible Style sheet Language (XSL) style sheet is used to translate the XML. The two XSL style sheets supplied with Developer (DiffReport.xsl and DiffReportShort.xsl) translate XML files into HTML. This enables you to view and print the report from an Internet browser. XML files can be used for multiple purposes. For example, you can develop other applications that use your reports, or you can convert your reports to a number of different output types (for example, MS Word, plain text, and HTML), each for different purposes. Note: In order to exclude logic relationship records when creating a differences report, enter ShowRelations=0 in the [Differences] section of your LINC.INI file. For Elements You can create XML reports of the differences between any objects, revisions, or LCIF files that are available from the View Differences dialog box. To create a report, click the Create Differences Report tool bar button on the View Differences dialog box to display the Create Differences Report dialog box. Refer to the Developer online Help for further information. For Specifications You can create XML reports of the differences between versions of a specification. You can compare specifications from the repository contents, LCIF files, and if you have Version Control installed, from the Version Bank in branch search order or by version label. To create a report, select the specification model or Business Segment in the Model Directory. Alternatively, if you are logged into Version Control, you can select the specification model or Business Segment in the Version Control Explorer. Then select the Create Specification Differences Report command from the Tools menu to display the Create Specification Differences Report wizard. Refer to the Enterprise Application Developer Version Control Guide and the Version Control online Help for more information about creating specification differences reports. Note: Creating a specification differences report is the only way that you can view differences across an entire specification
312 Viewing Differences and Merging Setting up your Browser to View your Reports The advantage of using the XML file format is that it is very flexible, enabling you to use your reports in various ways. For example, you can view your reports from your internet browser. As internet browsers are set up to view HTML files, you need to set up your browser to enable it to view the XML reports. The set up requirements depend on which browser you use: Microsoft Internet Explorer 6, or later versions Your XML reports are displayed automatically. You do not need to meet any additional set up requirements. Microsoft Internet Explorer 4.01 with Service Pack 1, or later versions prior to Microsoft Internet Explorer 6 To view your XML reports from Internet Explorer, you need to install the current Microsoft XML parser and run xmlinst.exe. Both these files are available for download from the Microsoft Web site at (search for Downloads for XML/XSL). Running xmlisnt.exe tells Internet Explorer which version of the Microsoft XML parser to use. Other browsers To view your XML reports from any other internet browser, you need to install an XML transformation (XMLT) utility. These are available for download from the Web. Use the following procedure to set up versions of Internet Explorer prior to version 6 to display XML files: 1. Ensure that Developer is installed on the workstation you wish to use to display your differences report XML files. Two predefined XSL style sheets that you can use to format your differences reports are installed automatically to the Developer working directory. 2. Ensure that Internet Explorer 4.01 with Service Pack 1, or later, is installed. 3. Download the latest Microsoft XML parser and xmlinst.exe from the Microsoft Web site. 4. Double-click the Microsoft XML parser to install it. 5. Double-click xmlinst.exe to extract the files. The default extract directory is C:\TEMP. 6. Double-click the extracted xmlinst.exe file to run it. The xmlinst.exe file provides information to Internet Explorer about the correct XML parser version to use. Note: If you install a different version of Developer at a later date, you must run xmlinst.exe again, otherwise Internet Explorer will not be able to display your differences reports
313 Viewing Differences and Merging You can now create your reports in Developer. The XSL style sheets control the appearance of the reports. Viewing your Reports The attribute settings in the Display Attributes dialog box control how your report will appear. You can change the display attributes of the font and colors of added, changed, deleted, and highlighted text in the report, the character encoding format if required, and whether to ignore name differences and/or LCIF format changes. Refer to the LCIF Viewer online help for information about how to change attribute settings in the Display Attributes dialog box. Changing the Location of your Reports If you copy or move a report to a different location, you must ensure that it can still use the XSL style sheet that you used to create the report. If you used one of the predefined style sheets supplied with Developer to create the report, copy the steeliest to the same directory location. Otherwise, the report will not display. If you used a custom style sheet to create a report, the report stores the style sheet location in the XML source, so you will be able to use the style sheet as long as the location information is correct. Viewing Specifications The LCIF Viewer enables you to view the specifications of: An object A revision A specific LCIF file You cannot view revisions if Version Control is not installed. Viewing Objects or Revisions To view the specification of an object or a revision: 1. Selecting an object in the Model Directory or a revision in the Version Control Explorer. 2. Selecting the View Specification command on the Tools menu. The LCIF View dialog box is displayed. See Using the LCIF View Dialog Box on page
314 Viewing Differences and Merging Viewing A Specific File To view the specification of a specific.mdl file: 1. While holding down the Shift button select the View Specification command on the Tools menu. The Select A MDL File dialog box is displayed. 2. Select the MDL File you wish to view and click the Open button. The file is displayed in the LCIF View dialog box. See Using the LCIF View Dialog Box on page Using the LCIF View Dialog Box The LCIF View dialog box displays the source file of the selected object. Sections in Files Using the fields at the top of the dialog box you can view the different sections of the files. The following table shows the parts of the files for each type of object: Section Object Definition Business Rules Frame Teach Screen Pre-Screen Logic Edit Logic Pre-LINC Logic Main Logic Long Name Pre-Screen Logic Long Name Edit Logic Long Name Pre-LINC Logic Long Name Main Logic All versionable objects and Report Frames All versionable objects Report Frames Ispecs Ispecs Ispecs Ispecs Ispecs and Global Logic Ispecs Ispecs Ispecs Ispecs and Global Logic Use the additional section fields to view the subsections of the Frame and Teach Screen sections. In the Frame section you can select the number of individual Frames and view the Definition, Business Rules and Main Logic sections of the selected Frame. In the Teach Screen section you can select the name of an individual Teach screen
315 Viewing Differences and Merging Locating Text or Line Numbers Use the toolbar buttons to find specific text in the file and to get help about the dialog box. Double-clicking on the Line Number field in the bottom right hand corner of the dialog box, displays the Navigation dialog box. Use this dialog box to go to a specific line number in the file. Displaying Record Dialog Box Double-clicking on a record displays the Record View dialog box. This dialog box displays the fields contained in an individual record. This behavior is only available in the Definition section of the files. The shortcut keys are Ctrl Enter. Note: For further details on the records contained in LCIF files, contact your support center for a copy of the LCIF help file. Extracting To Show Differences or View Specifications If you have Developer Version Control installed, it is not necessary to explicitly extract an object in order to view the source specifications or show differences. The normal function of the Show Differences command and View Specification command extracts the object or revision in a format which is suitable for showing and viewing. The Extract for Differences/View command on the Tools menu is required primarily for Developer where Version Control is not installed and it provides a utility to extract objects to show differences or view specifications so that the objects are available in the correct format. However, an ancillary function of this command available to Version Control allows you to extract an object from another Repository to an intermediate directory. You can then: View the specifications of the object or file. Show the differences between the extracted object and an object of the same type. Show the differences between the extracted object and a revision in your Version Bank. Merge the extracted object and an object of the same type. This function is particularly useful in a multi-user environment when more than one user has worked on an object or file
316 Viewing Differences and Merging To extract an object: 1. Logon to the Repository or Version Bank from which you wish to extract an object or revision. 2. Select the object or revision. 3. Click the Extract for Differences/View command on the Tools menu. The Windows folder list is displayed. 4. Select the directory into which you want the extracted.mdl file to be stored. 5. Click the Save button. 6. To view the file specifications hold down the Shift key and select the View Specifications command on the Tools menu. See Viewing Specifications on page 12-9 for further details. 7. To show the differences between this file and an object or revision, logon to the Repository/Version Bank that contains the item with which you want to compare the extracted file and select the Show Differences command. See Viewing Differences on page 12-2 for further details. 8. To show differences directly between the extracted file and another.mdl file, hold down the Shift key and select the Show Differences command. See Viewing Differences on page 12-2 for further details. Merging Two types of merge operation are supported in Developer: You can merge an object in the Developer Repository or an LCIF format file with A revision in the Version Bank An object in the Repository An LCIF format file The result is an LCIF format (.mdl) file which can be saved to a specific directory and optionally loaded into the Repository. Merges of revisions require Version Control to be installed, but Repository objects or LCIF files can be merged in Developer without Version Control. See Merging Two Files on page and Merging Revisions, Objects, or Files on page for details on how to perform this type of merge. You can merge two latest revisions of an object from different branches of the Version Bank, resulting in a new revision. This type of merge is available only if you have Version Control installed. See your Unisys Enterprise Application Developer Version Control Guide or Version Control online help for information about this type of merge
317 Viewing Differences and Merging Merging Revisions, Objects, or Files Using the Merge Options Dialog Box you can merge: A revision OR An object in the Repository OR An LCIF file with: A revision OR An object in the Repository OR An LCIF file You can merge revisions only if you have Version Control installed. To perform a merge operation: 1. Select an object from the Model Directory or a revision from the Version Control Explorer as the first item to be merged. 2. Select the Merge command on the Tools menu. The Merge Options Dialog Box is displayed with the Name of the selected item. If you selected a revision, the Revision number is also shown. The options available in the dialog depend on your choice of item in step From the With (B) options, select a second item for the merge: an object, a revision, or an LCIF file. 4. If you select the Other Object/Revision or an LCIF File radio button, click on the Browse button to locate the second item. 5. If you are not merging two revisions: The Keep Result File check box is checked by default, so that the file resulting from the merge will be saved. You should leave this checked. The default Merge Result file name appears below the Keep Result File check box. To change this information, click on the Browse button to open the Merge Result Dialog Box and specify a name and location for the new file. Check the Load Result into Developer Repository check box if you want the new (merge) file to be loaded into the Repository when the merge has successfully completed. 6. Click on the OK button. The Merge Dialog Box is displayed with the older item shown in the left pane and the later item in the right pane. 7. Review each difference between the two items and select the variant that you want to include in the merge file or revision. 8. Click on the Merge Done button
318 Viewing Differences and Merging 9. If you are merging two revisions, the Version Control Merge Description Dialog Box is displayed with the name and revision numbers of the selected revisions shown in the Object A and Object B fields. Fill in the fields and click OK. The Merge Options Dialog Box contains the following fields. Some options may be disabled according to whether Version Control is installed and the location of your first item selected. Corresponding object in Developer Repository This radio button is enabled only if your first selection is a revision in the Version Control Explorer. Select this radio button if the item displayed in Merge A is a revision in the Version Bank, and you want to merge it with its corresponding object in the Repository. Corresponding revision in Version Bank This radio button is enabled only if your first selection is an object in the Model Directory and you are logged into the Version Control Explorer. Select this radio button if the item displayed in Merge A is an object in the Repository, and you want to merge it with its corresponding revision in the Version Bank. Other Object/Revision Select this radio button if the item displayed in Merge A is to be merged with a different (not corresponding) object in the Repository or revision in the Version Bank. Selecting this radio button enables the Object in Developer Repository and the Revision in Version Bank radio buttons. Object in Developer Repository This radio button is enabled only if your first selection is an object in the Model Directory. Select this radio button if the item displayed in Merge A is to be merged with a second object of the same type within the Model of the Repository. Click on the Browse button to select the second object for the merge. The name of your second selection is displayed in the Name field. If you select an object that has not been added to the Version Bank, the Revision field displays the text Not Controlled. Revision in Version Bank This radio button is enabled only if your first selection is a revision in the Version Control Explorer. Select this radio button if the revision displayed in Merge A is to be merged with a second revision of the same type in the Model of the Version Bank. Click on the Browse button to select the second revision for the merge
319 Viewing Differences and Merging The name and revision number of your second selection are displayed in the Name and Revision Number fields below. An LCIF File Select this radio button if the item displayed in Merge A is to be merged with an LCIF type file. Click on the Browse button to open the Select an MDL File dialog box and select the file to be merged. Keep Result File Check this check box to save the file that results from the merge operation. Click on the Browse button to specify a name and directory for the file. Load Result into Developer Repository Check this check box to load the resulting file into the Repository. Merging Two Files To merge two LCIF format (.mdl) files: 1. Hold down the Shift key and select the Merge command from the Tools menu. The Merge File Options Dialog Box is displayed. 2. Specify the first file to be merged in Source File 1. Key in the path and file name, or click on the Browse button to open the Select an MDL File Dialog Box. 3. Specify the second file to be merged in Source File 2. Key in the path and file name, or click on the Browse button to open the Select an MDL File Dialog Box. 4. Specify the new file to be created by the merge in the Target File field. Key in the path and file name, or click on the Browse button to open the Merge Result Dialog Box. 5. Check the Load Result into Developer Repository check box if you want the new (merge) file to be loaded into the Repository when the merge has successfully completed. 6. Click on the OK button. The Merge Dialog Box is displayed with the older revision shown in the left pane and the later revision in the right pane. 7. Review each difference between the two files and select the variant that you want to include in the merge file. 8. Click on the Merge Done button
320 Viewing Differences and Merging Using the Merge Dialog Box Use the Merge Dialog Box to review the differences between the two files, objects, or revisions selected for a merge, and for each difference to select the variant to be included in the final (merge) revision or file. The Merge Dialog Box is presented after you have selected two items for a merge using the Merge File Options Dialog Box, the Merge Options Dialog Box, or by selecting two revisions from the Version Control Explorer. The Merge Dialog Box displays the files or objects selected for merging. The older object appears in the Left View pane and the more recent object in the Right View pane. As you select the variants to be included in the merge, these appear in the pane at the bottom of the window. The Left and Right View panes display the line numbers of the object or file and are synchronized so you can view each difference side by side. The cursor defaults to the left pane. It points to the first difference between the two items. Use the Tab key to move the cursor to the right pane and to the other fields in the dialog box. Sections in Files Using the fields at the top of the dialog box you can view the sections and subsections of the files that have differences. The following table shows the parts of the files for each type of object: Section Object Definition Business Rules Frame Teach Screen Pre-Screen Logic Edit Logic Pre-LINC Logic Main Logic Long Name Pre-Screen Logic Long Name Edit Logic Long Name Pre-LINC Logic Long Name Main Logic All objects and Report Frames All objects Report Frames Ispecs Ispecs Ispecs Ispecs Ispecs and Global Logic Ispecs Ispecs Ispecs Ispecs and Global Logic Use the additional section fields to view the subsections of the Frame and Teach Screen sections. In the the Frame section you can select a Frame by number and view the Definition, Business Rules, and Main Logic sections of the selected Frame. In the Teach Screen section you can select the name of an individual Teach Screen
321 Viewing Differences and Merging Sections that contain one or more differences are displayed with a triangle icon in the drop-down list. Displaying Differences Differences are displayed following standard conventions: Additional lines are displayed as added text and a blank line is added in the corresponding position on the opposite pane. Deleted lines are displayed as deleted text and a blank line is added in the corresponding position on the opposite pane. Changes to blocks of continuous text are displayed as changed text. Differences in the Definition section of an LCIF file are defined further in the following ways: Left and right records with the same identifiers are treated as changes. Left and right records with different identifiers are displayed as added and deleted text. The following colors are the default colors used to highlight differences: Changed text is displayed in violet. Deleted text is displayed in red. Added text is displayed in green. The following colors are the default colors for displayed text in the bottom pane: Text selected from the left pane is displayed in blue. Text selected from the right pane is displayed in brown. These colors can be changed. See Changing Display Attributes on page Locating Text or Line Numbers Use the buttons on the toolbar to move to the next or previous difference, to search for specific text in either section, and to get help about the dialog box. Double-clicking on the Line Number field in the bottom right hand corner of the dialog box displays the Navigation dialog box. Use this dialog box to go to a specific line number. You can choose to navigate to a logical line number of the current section or to an actual line number in the current viewer pane. Displaying Record Dialog Boxes Double-clicking on a record in either of the panes displays the Record Differences dialog box. This dialog box displays the fields contained in individual records and the differences between the objects
322 Viewing Differences and Merging Differences are displayed according to the same conventions as the View Differences dialog box. Use the toolbar buttons to move to the next or previous difference. Note that the Internal Identifier field in the 00 record is not visible to the end user and is replaced by asterisks. It will not display as a difference. If only one of the panes contains the record, the Record View dialog box is displayed. This dialog box displays the fields contained in an individual record. This behavior is only available in the Definition section of the files. The shortcut keys are Ctrl Enter. Note: For further details on the records contained in LCIF files, contact your support center for a copy of the LCIF help file. Selecting Differences for Merge As you review each difference between the items in the left and right panes, you must select which variant is going to be included in the merge file or revision which will be created. Use the Select Left and Select Right buttons on the toolbar to make this selection. As you make your choices, the selected text is displayed in the bottom pane of the window. When all changes have been reviewed and no unresolved conflicts remain, the Merge Done button is activated on the toolbar. Click on this button to run the merge task. Cancelling the Merge To cancel the merge operation from the Merge Dialog Box, click on the x in the upper right corner of the window to close it. You will be prompted to continue or cancel. Follow the instructions in the prompt dialog box. Changing Display Attributes You can change the font and colors of added, changed, deleted, and highlighted text in the View Differences, LCIF View, and Merge dialog boxes. The display attributes of text selected from the left or right pane of the Merge dialog box can also be changed. Other display attributes that can be changed are: The Ignore LCIF Format Changes attribute determines if differences due to LCIF format changes between Developer releases are displayed in the View Differences or Merge dialog boxes. The Ignore Name Differences attribute determines if differences in objects being viewed or merged are displayed as additions and deletions to different objects, or as changes to the same object, in the View Differences or Merge dialog boxes. The Difference Report XML Encoding attribute determines the character encoding format of differences reports
323 Viewing Differences and Merging These attribute settings also control how your report is displayed, if you create a differences report. See Creating a Differences Report on page 12-7 for more information about differences reports. Use the Settings command on the Tools menu or click the Change Display Attributes tool bar button on the View Differences, LCIF View, or Merge dialog boxes to display the Display Attributes dialog box. Using the Display Attributes Dialog Box The Attributes pane lists the display attributes that may be customized. Click Reset Default to reset the selected attribute to the system default. The Preview pane displays the current font and color attribute settings. Click a preview item to highlight its corresponding attribute setting in the Attributes pane. Note: The preview of the Found attribute setting displays the Find Result Highlight Color, not the foreground color. To change color attributes: 1. Select one of the color attribute settings listed in the Attributes pane. 2. Click Change. The standard Windows color dialog box is displayed. 3. Select a different color or define a custom color. 4. Click OK. To change the font attribute: 1. Select Fixed Width Font in the Attributes pane. 2. Click Change. The standard Windows font dialog box is displayed. 3. Select a different font, and its style and size, from the list of fixed width system fonts available. 4. Click OK. To set the Ignore LCIF Format Changes attribute: 1. Select Ignore LCIF Format Changes in the Attributes pane. 2. Click Change. The Ignore LCIF Format Changes dialog box is displayed. 3. Select ON to ignore differences due to LCIF format changes between Developer releases when comparing objects in the View Differences or Merge dialogs. All LCIF files will appear as though they were created with the installed Developer release. Select OFF to include these differences. This is the default setting
324 Viewing Differences and Merging 4. Click OK. The View Differences or Merge dialog boxes must be closed and then reopened for this change to take effect. Note: Regardless of the setting of the Ignore LCIF Format Changes attribute, a Specification Difference Report displays: GSD Blocks as added, if GSD Blocks are not present in the first specification being compared. GSD Blocks are displayed as deleted if not present in the second specification. For example, GSD Block may not be present if a specification was created with a version of Developer prior to Release 3.1, or simply if GSD Blocks have yet to be added to the specification. LCIF file format Keyword differences between the two specifications. LCIF file format differences between a host-generated LCIF file and another specification (host-generated or otherwise). LCIF file format Fast Load Report data differences between the two specifications. To set the Ignore Name Differences attribute: 1. Select Ignore Name Differences in the Attributes pane. 2. Click Change. The Name Differences Setting dialog box is displayed. 3. Select ON to ignore name differences when comparing objects in the View Differences or Merge dialogs. All other differences are displayed as changes to the same object. Select OFF to include these differences. Differences between the objects being compared are displayed as additions and deletions. 4. Click OK. The View Differences or Merge dialog boxes must be closed and then reopened for this change to take effect. To set the Difference Report XML Encoding attribute: 1. Select Difference Report XML Encoding in the Attributes pane. 2. Click Change. The Difference Report XML Encoding dialog box is displayed. 3. In the text box, enter a character encoding format supported by your browser. Some examples are: For most Western European languages: ISO For Kanji: SHIFT_JIS 4. Click OK
325 Viewing Differences and Merging Summary After completing this section you can: Use the View differences dialog box to view differences between objects, revisions, and files. Use the LCIF View dialog box to view specifications of objects, revisions and files. Use the Create Differences Report dialog box to create an XML report of the differences between objects, revisions, and files. Extract objects and revisions to view differences and specifications. Use the Merge Options dialog box to merge a revision, a Repository object, or an LCIF file with an object or LCIF file. Use the Merge File Options dialog box to merge two LCIF files. Change the display attributes of the View Differences, LCIF View, and Merge dialog boxes. Set the Ignore LCIF Changes attribute using the Display Attributes dialog box. Set the Ignore Name Difference attribute using the Display Attributes dialog box. Set the Difference Report XML Encoding attribute using the Display Attributes dialog box
326 Viewing Differences and Merging
327 Section 13 Development Tasks and Topics This section covers the following: External Automatic Entries Use of Memo Components Versus Events Rationalizing Event Data Item Names Integrity Performance Considerations for Systems External Automatic Entries This subsection gives a general introduction to External Automatic Entries. For more details, depending on the host types concerned, see: Unisys Enterprise Application Runtime for ClearPath MCP Administration Guide Unisys Enterprise Application Runtime for ClearPath OS 2200 Administration Guide Unisys Enterprise Application Runtime for the Unix Operating System Administration Guide Unisys Enterprise Application Runtime for the Windows 2000 Operating System Administration Guide Apart from OLTP, and the Interdatabase Access feature available only on OS 2200 based hosts, Systems communicate using the HUB mechanism. The Systems can be on the same or different hosts. Transactions which initiate intersystem communication are fully recovered in the event of a system failure (except where the two-phase commit process abandons a transaction). If an Ispec is specified as an Auto Entry Ispec (from a field on the Component or Event Options screen), it can receive data from Internal Automatic Entries (from within the current database), External Automatic Entries (from another generated database), or through the screen layout. In the originating System, the message is assembled in the Automatic Entry buffer by using the various Automatic Entry commands (AUTO.ENTRY, AUTO, and AUTO; CONTRA). Automatic Entries from Ispecs and Reports are treated the same. The destination is established by moving an appropriate values to the System Data Items GLB.DESTINATION, GLB.DESTHOST, and GLB.DESTENV
328 Development Tasks and Topics Internal Automatic Entries For an internal Automatic Entry, GLB.DESTINATION is equal to GLB.SPACES or GLB.SELF and GLB.DESTHOST is equal to GLB.SPACES or GLB.SELFHOST. The Automatic Entry sends information from the Auto Entry buffer to the database by way of the database record buffer of the receiving Ispec. External Automatic Entries For an External Automatic Entry, both Systems must recognize all the Data Items being used in the message, and have them in the same sequence. After sending the Automatic Entry: 1. The originating program is then suspended, awaiting a response from the External Automatic Entry. 2. In the destination System, the message is received in the video buffer, and is processed as if it were normal screen input. If the Ispec is a Standard, Table, or Automaint Memo Component, the value of the System Data Item MAINT (ADD, CHG, DEL) also needs to be sent. All logic processing, except Pre-Screen logic, is performed for the Ispec. Note: This is different from Internal Automatic Entries, where the logic of the receiving Ispec is not performed. The Data Items GLB.ORIGIN, GLB.ORIGINHOST, and ORIGINENV are available, if required, to identify the source of the transaction. 3. Within the destination Ispec, a recall of a different Ispec (via the RECALL; command) is ignored. A recall of the same Ispec causes a reply to be returned to the sending System. Otherwise, a simple acknowledgment is returned, indicating that processing is completed. If GLB.ERROR is set to five asterisks (*****), only an error acknowledgment is returned at the completion of processing. 4. The originating System receives the response in its Automatic Entry buffer. If no data was returned in the reply and the AUTO; WRITE&CLEAR command was used to initiate the transaction, the Automatic Entry buffer is cleared. The System Data Items GLB.STATUS and GLB.HUBSTATUS are set to indicate the result of the processing of the message. The values returned to GLB.STATUS and GLB.HUBSTATUS are described in your Unisys Enterprise Application Programming Reference Manual. The MOVE.AUTO command can be used to access Data Items in the Automatic Entry buffer, so that the reply can be examined. Note: Interdatabase Access, available only on OS 2200 based hosts, should not be confused with External Automatic Entries. Interdatabase Access provides access to Enterprise Application Databases outside your current Enterprise Application System, enabling you to develop complex systems in small modules. It has faster performance than External Automatic Entries, but does not execute the logic in the external Ispec. See your Unisys Enterprise Application Runtime for ClearPath OS 2200 Administration Guide for full details
329 Development Tasks and Topics Use of Memo Components Versus Events A common topic of discussion among users is deciding whether business activities should be stored in Events or Memo Components. The discussion in this subsection is to help clarify the advantages and disadvantages of each approach. When Enterprise Application Environment was originally conceived, one of the design aims was that each business activity should be recorded only once (as an Event), yet each user's view of the information system should be continually updated. These views were implemented as Profiles. Profiles were required to span multiple Events. However, existing (and still current) database technology did not allow Profiles to span multiple data sets, so the concept of a single Event data set was created. The power of Profiles over the Event data set is enormous. There are instances of nearly complete applications being replaced by a single Profile (obviously, some reporting is still required). Introduction to Memo Components As the use of Enterprise Application Environment grew, the following problems became apparent: If an application needed to store 100 characters of delivery address, for example, then that 100 characters of space was allocated to every Event record. This had the effect of creating Event records that obviously contained large redundant data fields. Secondly, once the detailed Event record had reached the end of its useful life, there was no easy way to archive this history and delete the Event. For Systems using the Oracle database, there is a limit of 255 fields in a table. To solve these problems, the Memo Component was introduced. The delivery address can be stored in a separate Memo Component rather than the Event record. Alternatively, the Data Items can be defined as Memo Data in the Event itself. For MCP based Systems, this automatically produces and maintains a separate database structure for Data Items which are stored only if they are non-space or non-zero. Other than identifying the Data Item as Memo Data, no other coding is required. A Report can be written which summarizes Events, archives the summary data into Memo Components (the archive), and physically deletes the Event. A further problem of disk usage arose because programmers used unique names within Events. This caused many redundant data fields to be mapped onto the Event data set. This situation can be overcome by the technique of rationalizing Event data names (see Rationalizing Event Data Item Names on page 13-6)
330 Development Tasks and Topics It is significant that many users who express concerns about excessive disk usage for the Event data set do not have archiving built into their System, but retain the Event record as the history. If you wish to retain the detailed Event record as a history record (without summarizing and archiving) you should be aware of the cost of this method in terms of disk use and access times, at a very early stage of the system design. Many users (especially those well-versed in third generation languages and methodologies) have analyzed the database structure generated, and have concluded that the implementation of the Event data set is inefficient in terms of disk utilization. Most have decided that the most efficient implementation of business activities is where each Event has a matching Usage Output Memo Component, that is updated using the AUTO; ENTRY command or directly through screen input. In this implementation, Data Items in the Memo Component exactly match those of the Event, and consequently no redundant Data Items are stored on disk. This approach seems far more efficient in disk utilization than the Event data set approach, and it is also faster to reorganize a single Event. Advantages of the Event-Based Approach There are, however, considerable disadvantages to the Usage Output Memo Component approach that negate the real advantage of the Event data set and of the Enterprise Application Environment Philosophy. If each activity is split into its individual data set, each activity requires its own Profile for access. For example, to retrieve information for a customer, the Memo Component structure may require access using several Profiles, merging and perhaps sorting of data. With the Event data set structure, one Profile is sufficient to retrieve all the information relevant to a customer, in the order of occurrence. Each Profile has an overhead of disk and buffer memory, with the sum of the individual overheads being greater than the single larger Event Profile. In addition, if each business activity has its own database structure, the database compilations take longer and the database takes longer to open and close. Reorganization may be faster. For reporting and inquiry, two major problems arise with the Memo Component approach: 1. The user has to know where each of the business activities is stored, and has to include the appropriate logic for each Memo Component. 2. It is difficult to present the activities in the order in which they occurred. In an Eventbased system, a single logic command (DETERMINE;) can retrieve all Event records in the sequence in which they occurred. This has major significance when it comes to maintenance and enhancement of a Business Segment. For example, suppose an Event has to be added to comply with new government regulations. In an Event-based system, the Event is created and is added to
331 Development Tasks and Topics the appropriate Profiles. All existing Inquiry and Reporting routines now automatically pick up the new Event. Additional code is needed only where the new Event is required to be inquired or reported on specifically. In an System based on Memo Components, the Event and its associated Memo Component are created, the logic to update the Memo Component is added, and appropriate Profiles are added. Each inquiry and reporting routine has to have code added to access the new Memo Component, in addition to any code needed to inquire or report for the specific business activity. Consequently, maintenance and testing take much longer. It is vitally important that an organization must be able to manage change, and any information system must be responsive to change. Event-based Systems provide the ability to change quickly. Memo Component-based Systems take longer to change. Summary If the System is Event-based: The Event Data Item names should be rationalized. Uncommon Data Items should be stored in an associated Memo Component (or made Memo Data Items). Event records should be regularly summarized and archived in a Memo Component before being deleted. The System will be quicker to write, have fewer lines of code in both Ispec and Report logic, and be easier to change and enhance. If the System is Memo Component-based: Development time will be longer (because of the extra code in Ispec and Report logic). Testing will be more complex. Generation and compilation times will be longer. The Database will require more buffer memory for the additional structures. Maintenance will take longer (thereby building a maintenance backlog), and will require stringent quality control. More disk will be required for additional Profiles. Less disk will be required for data storage
332 Development Tasks and Topics Rationalizing Event Data Item Names The implementation of Events in the database is that each Usage Input-Output or Usage Output Event Data Item is mapped onto the Event data set once. The Event data set contains the unique Data Items from all Events in the Business Segment. Each individual record is identified by the value in the System Data Item ISPEC, which is included automatically in the record. The major advantage of this approach is that it allows Profiles to span more than one Ispec, providing a total view of all selected Events according to the design of the Profile. The provision of this view is fundamental to the Enterprise Application Environment Philosophy for building Information Systems. The selection of a name for each Data Item in each Event is important. Unnecessary use of unique names causes the Event data set to be oversized, wasting disk space in every record. Example An Event CASH has a Data Item CSH-AMNT. An Event CRED has a Data Item CRD- AMNT. Both Data Items CSH-AMNT and CRD-AMNT appear in every record in the Event data set. When a CASH Event is recorded, the Data Item CRD-AMNT is not used. In a CRED Event, the Data Item CSH-AMNT is not used. Clearly, this implementation is expensive in terms of disk usage, and requires more logic. Rationalization Rationalization of the Data Item naming is required, to maximize the usage of common data names within each Event. In the above example, if the Event CASH has a Data Item AMOUNT and the Event CRED has a Data Item AMOUNT, only the single field called AMOUNT is stored in the Event data set. Clearly, this improves disk utilization. Systems analysts who use various data analysis methodologies for systems design often insist that the name of each data element should be unique, and that the meaning of the data should be reflected in its name. They would prefer to use names like CSH-AMNT and CRD-AMNT. However, the names of data elements in Events are implicitly qualified by the Event name. Thus in the Event CASH, the Data Item AMOUNT always means CASH-AMOUNT, while in the Event CRED the Data Item AMOUNT means CRED-AMOUNT
333 Development Tasks and Topics In addition, the Data Display attribute can be associated with a Data Item, allowing you to associate a name for the Data Item that is unique for the context of that item. The data display is used for error communications with the operator, as well as being printed on the LDL listing. AMOUNT in Event CASH could have a data display of Cash Amount, while AMOUNT in Event CRED could have a data display of Credit Amount. It is very important to choose meaningful names for Event Data Items, bearing in mind that the name of the Ispec will provide the context for the Data Item. In many business information systems, most Event data sets contain Data Items like AMOUNT, QUANTITY, PRICE, and DETAILS. These names are general enough to enable them to be reused in other Events. Thus DETAILS may actually record NARRATION for a journal and DESCRIPTION for a parts Event. The Data Display attribute provides the unique identification which is visible to the user. Names such as NUM10DE2S may indicate a signed numeric field ten digits long with two decimal places, and may provide the ultimate rationalization of the Event data set, but they have no meaning, even in the context of an Event. Maintenance and enhancement of a system using such names borders on the impossible. Integrity The integrity facility is for Systems running in a multi-update environment. Integrity options influence the type of database record locking used, so that interference between concurrently executing transactions is minimized or eliminated. The implementation of Integrity depends on the host system software. MCP Environment Integrity Integrity and Data Invocation At the Ispec or Report level, if you select the Data Invocation option in the System Directory, data invocation code is only generated if Integrity is set to N. It is not generated for Ispecs or Reports with Integrity set to 1 or 2, nor for performable Global Logics. Record Access at Runtime The type of database record access used to read a record at runtime depends on the following conditions: The Integrity level set for the reading Ispec or Report. Whether the Ispec or Report can update a database record. How your database reads are coded (see Record Access Invoked by Logic, later in this section). Note: Database record access is affected by the Integrity level of the reading Ispec, Report, or Performable Global Logic. The Integrity level of the target Ispec or Report has no influence over the record access used
334 Development Tasks and Topics Types of Record Access The different types of database record access are described below: DMS FIND A DMS FIND reads through a lock held on a record. For example, a DMS FIND can access a record even if the record is being updated (which locks the record). You can change a DMS FIND to an exclusive read by using the SECURE; command with any DETERMINE; or LOOK.UP; command in Ispec or Report logic. DMS Secure, Shared Read Lock (Shared Lock, Read Lock) A Shared Read Lock allows multiple transactions to read the same record concurrently, and locks the record so that an update cannot occur. Records read while in transaction state remain locked until the end of transaction. If a record has a Shared Read Lock, another Shared Read Lock or a DMS FIND can access that record. DMS Secure, Exclusive Lock (Exclusive Read) An Exclusive Lock allows a record to be locked for the sole use of one transaction. Records read while in transaction state remain locked until the end of transaction. Only a DMS FIND can access an exclusively locked record. Record Access Invoked by Logic The following table lists the logic commands and the type of record access they invoke. Command Type Record Access DETERMINE; Read only Depends on Ispec or Report Integrity setting LOOK.UP; Read only Depends on Ispec or Report Integrity setting Automatic look up Read only Depends on Ispec or Report Integrity setting DETERMINE; with SECURE; Read only Exclusive Lock LOOK.UP; with SECURE; Read only Exclusive Lock Automatic Entry Updating Exclusive Lock FLAG; Updating Exclusive Lock Add, Change, Delete, Purge (MAINT field) Updating Exclusive Lock The KEYONLY; command option used with LOOK.UP; and DETERMINE; commands is ignored in Integrity Systems, and is not permitted with: The SECURE; command option in the same command Extract files DETERMINE; commands on Ispecs not using Profiles The DETERMINE; TOTAL command
335 Development Tasks and Topics Whenever a record is to be updated, it is re-read with an exclusive lock, regardless of the initial type of record access. This read ensures that the contents of the memory area for that record are current, as they may have been overwritten within your logic. How Integrity Affects Record Access in Ispecs and Reports Ispec and Report Integrity influences record access for the whole Ispec or Report when a DETERMINE; command, LOOK.UP; command, or automatic look up accesses the database record. If required, a different record access can be coded for a particular database read within that structure. The following points describe the influence that Ispec and Report Integrity settings have on the type of record access: Integrity = N By default, record locking does not occur on read accesses, as a DMS FIND is used to access the records. However, if the record is later updated using a FLAG; or AUTO; command, or the MAINT field, the record is read again with an exclusive lock. Record locking can also be imposed through Ispec, Report and Global Logic by using the SECURE; command option with any LOOK.UP; or DETERMINE; command. This exclusively locks the record, and any other Ispec or Report that then attempts to lock the same record is queued until the end of transaction, when the record is released. Integrity = 2 (Non-updating Ispecs) Non-updating Ispecs use a DMS FIND for all read accesses, in the Ispec logic. If they call Performable Global Logics they use a DMS SECURE; command. Integrity = 2 (Updating Ispecs and all Reports) If an Ispec or Report contains database updating commands, then when a record is first accessed with DETERMINE; or LOOK.UP; commands, a shared read lock is used. If the record is later updated within the same Ispec or Report, the record is read again with an exclusive lock. The first database access command processed causes the Ispec or Report to enter transaction state. Once transaction state is entered, shared read locks or exclusive locks are accumulated and are released at the end of transaction (or at CRITICAL.POINT; and SLEEP; commands in Reports). Integrity = 1 The type of lock that occurs with DETERMINE; or LOOK.UP; commands (without the SECURE; option) depends on whether the target Ispec can be updated within the scope of the calling Ispec or Report. (The scope of an Ispec includes Global Logic it performs, but excludes any Ispecs that can be recalled.) If the target Ispec can never be updated within the scope of the calling Ispec or Report, then a shared read lock is used. However, if the target Ispec can be updated within the scope of the calling Ispec or Report, an exclusive lock is used. The first database access command processed causes the Ispec or Report to enter transaction state. Once transaction state is entered, shared read locks or exclusive locks are accumulated and are released at the end of transaction (or at CRITICAL.POINT; and SLEEP; commands in Reports)
336 Development Tasks and Topics The following table shows what occurs when two concurrent transactions attempt to read the same target Record. Database record access is controlled by the Integrity level of the calling Ispec or Report, and is not affected by the Integrity level of the target Ispec, Report, or Performable Global Logic. (In the table, Existing Integrity Option refers to incoming transactions.) Existing Transaction Integrity Option Existing Transaction Target Ispec Integrity 1 Update Integrity 1 Read Only Integrity 2 Update Integrity Read Only Integrity N Update Integrity N Read Only 1 Update Wait Wait Wait Wait Read Read 1 Read only Wait Read Read Read Read Read 2 Update Wait Read** Read* Read Read Read 2 Read only Wait Read Read*** Read Read Read N Update Read Read Read Read Read Read N Read only Read Read Read Read Read Read The following designations are used in this table: Update A target Ispec can be updated by the reading Ispec, either explicitly by FLAG;, AUTO;, or PURGE; commands, or implicitly as any Usage Input-Output Ispec can update itself. Read only A target Ispec cannot be updated by the reading Ispec. Read Concurrent read access to a given record is permitted. Read* Both existing and incoming transactions are shared read locks (that is, both transactions can read the record), until the existing transaction attempts to perform an update. If the existing transaction has already started to perform an update, the record changes from a shared lock to an exclusive lock. Therefore, the incoming transaction cannot read the record and must wait until the existing record completes, possibly causing the incoming transaction to timeout. Read** If the incoming transaction attempts to update by trying to lock a record, but the existing transaction has already started an update (the record now has an exclusive lock), the incoming transaction cannot read the record and must wait. This may cause the incoming transaction to timeout
337 Development Tasks and Topics Read*** The record cannot be locked for update until the existing transaction has completed. This may cause the incoming transaction to timeout. Wait The incoming transaction waits until the record is unlocked. This occurs at the end of Ispec processing, or at a SLEEP; or CRITICAL POINT; command, or at the end of job for a Report. How Integrity can Minimize Interference Between Transactions Two examples of interference between transactions that can be minimized by using Integrity are: Concurrent Record Updating In the following situation, two transactions update the same database record at the same time. Transaction A reads a record. Transaction B reads the same record. Transaction A updates the record in the database. Transaction B updates the record in the database, overwriting Transaction A. This results in the update invoked by Transaction A being lost. Setting Integrity to either 1 or 2 eliminates any interference between these two transactions. In practical terms, when Integrity is set to either 1 or 2, both these transactions proceed as if they had been input serially. Integrity 1 is the recommended level when performing updates as it is less likely to cause deadlock situations. Updating Records during Multiple Reads In this situation, a transaction is in the process of reading a set of records (using a DETERMINE; or LOOK.UP; command) and a second transaction updates records within the set. Setting Integrity to either 1 or 2 eliminates any interference between these two transactions. In practical terms, when Integrity is set to either 1 or 2, both transactions proceed as if they had been input serially, as follows: Integrity 1 Transaction state is entered on the first read, causing all locks to be accumulated. Each record is also read with an exclusive lock, which means that any other transaction attempting to read the records is locked out until the end of transaction
338 Development Tasks and Topics Integrity 2 The same process applies as for Integrity 1, except that each record is initially read with a shared read lock, and then is exclusively locked on the update. This means that any other transaction attempting to update records is locked out until the end of transaction. It is possible for a deadlock situation to occur, but this is handled by DMS II. Due to the mechanisms of DMS II, it is possible to read a Profile using a DETERMINE; LAST command, and not retrieve the very last record. In this example, Ispec B executes a DETERMINE; LAST command to retrieve the last record, but because DMS retains the pointers while waiting for records to be freed, the record that is finally locked is no longer the last record: 1. Ispec A locks the last record. 2. Ispec B attempts to lock the last record, but waits, as the record is already locked. 3. Ispec A creates a record after the last record and frees all locked records at the end of transaction. 4. Ispec B locks the record it was trying to lock before, but now this is no longer the last record. To overcome this constraint, either select Integrity for these Ispecs, or include the SECURE; command option with the DETERMINE; LAST command. The effect of using the DETERMINE; LAST command in an Integrity System (or a DETERMINE; LAST command with the SECURE; option in a No Integrity System) is that the last record is locked or secured depending on the rules of integrity, and is then again locked or secured. If the record found is the same as the previous record found, then the very last record has been found. If, however, the record is different to the previous record found, then a record has been added after the last record. The last record is locked or secured again, and the process continues until a match is found, which means the very last record has been found. Other Ways to Minimize Interference Between Transactions In some situations, Integrity settings alone cannot prevent interference between transactions. Consider the situation in which a transaction is reading a set of records (using a DETERMINE; or LOOK.UP; command), and a second transaction creates new records within the set. If the second transaction updates the database, the first transaction can obtain inconsistent results. For example, the first transaction can be obtaining a Trial Balance report and the second transaction updating debit and credit entries. If the second transaction posts a debit entry to the database ahead of the current position of the Report and then posts a credit entry behind the current position of the Report, the Trial Balance may not balance
339 Development Tasks and Topics Setting Integrity to either 1 or 2 cannot completely remove interference between these two transactions. A recommended solution is to code using softlocks (that is, code in your own locking indications and logic). Another solution is to use the EXCLUSIVE.USE; command, but this can cause deadlocks. For details on the EXCLUSIVE.USE; command, see your Unisys Enterprise Application Programming Reference Manual. Other Issues Relating to Integrity The following issues impact record locking and the associated internal mechanisms: DMS II Handling of Deadlock Deadlocks and Coroutines Impact of Reports Recovery DMS II Handling of Deadlock A deadlock situation occurs when one or more transactions require the records that other transactions have locked. For example, a transaction has locked record A and then attempts to lock record B, while a second transaction has locked record B and then attempts to lock record A. DMS II automatically resolves a deadlock situation, regardless of your Integrity setting. When one of the transactions receives a deadlock, it is backed out and the database is returned to its condition prior to start of transaction. All records locked by the backed-out transaction are then unlocked, and the other transaction is then able to continue processing. The transaction that was backed out is replayed. If three successive deadlocks occur, replaying ceases. In the case of an Ispec, a message is displayed at your terminal, while for a Report, the process is cancelled. Deadlocks and Coroutines Deadlocks can be caused by coroutines in situations where the calling stack is in transaction state and a call is made to a coroutine that will also enter transaction state. In these circumstances the coroutine stack needs to take a DMS Syncpoint but cannot because control is with the coroutine. Impact of Reports Performance can be impacted by Reports that lock records for extended periods of time. This can cause certain online transactions to wait until the Report is completed. In some circumstances, the impact of this can be reduced by use of CRITICAL.POINT; or SLEEP; commands
340 Development Tasks and Topics Recovery Recovery is handled by the underlying Database Management system DMS II, which has features that ensure a record never has to be rolled out once it has been committed to the database. OS 2200 Environment Integrity The use of database locks overcomes the potentially adverse effects of having more than one user accessing your data at the same time. Some locks are imposed automatically by RDMS, and others are imposed by specific commands. System Integrity If you set the Integrity option at a System level, you impose a shared update locking strategy throughout your System. This has the same effect as putting SECURE; command options on all your reads. The Integrity option also imposes shared update locking on all the automatic reads. Automatic Locking If no commands are used to control database locks, RDMS Implicit locks are used. Explicit table locks are not used. For details of RDMS Implicit locks, see the appropriate section in your Relational Data Management System Administration Guide. Commands for Initiating Database Locking There are two logic constructs that can affect the type of database locks used: The EXCLUSIVE.USE; command places an Exclusive Update lock on the table containing the Ispec referenced. For an explanation of the consequences of using this type of lock, see your Relational Data Management System Administration Guide. The SECURE; command option places a Shared Update lock on the table containing the records being retrieved. For an explanation of the consequences of using this type of lock, see your Relational Data Management System Administration Guide. For more details, see your Unisys Enterprise Application Programming Reference Manual. Maintaining Database Integrity The following subsections describe the most common problems that can affect the integrity of an Enterprise Application Database
341 Development Tasks and Topics Concurrent Record Updating In the following situation, two transactions update the same database record at the same time: 1. Transaction A reads a record. 2. Transaction B reads the same record. 3. Transaction A updates the record in the database. 4. Transaction B updates the record in the database, overwriting Transaction A. This results in the update invoked by Transaction A being lost. To overcome this type of problem, add the SECURE; command option to the DETERMINE; commands used in these transactions. This places a Shared Update lock on the table containing the record being read, preventing other transactions from updating any records you have read. Other transactions are allowed to execute a DETERMINE; command with the SECURE; command option to read the same table, but cannot read any record you have already read. If you use the SECURE; command option when reading records, this must be used before any records in the table are updated. The Shared Update lock imposed by using the SECURE; command option remains in place until one of the following is encountered: End of the transaction End of the Report A database commit (Reports). This may be achieved using the SLEEP; or CRITICAL.POINT; commands. See your Unisys Enterprise Application Programming Reference Manual for a full description of these two commands. The following table shows the restrictions placed on Transaction B if it attempts to read a record which Transaction A has already read. The results are the same whether the transactions use DETERMINE; or LOOK.UP; commands. Transaction B Transaction A without SECURE; Transaction A with SECURE; Without SECURE; Can read and update Can read but not update With SECURE; Can read and update Cannot read nor update Updating during Multiple Reads Integrity can be affected when a transaction is reading a group of records, and a second transaction creates new records within the same group. If the second transaction creates records that appear both before and after the record the first transaction is reading, the first transaction obtains spurious results. Rerunning the first transaction without the second transaction present would produce a different result. This applies to processing performed by Ispecs or Reports
342 Development Tasks and Topics The problem can be overcome by including an EXCLUSIVE.USE; command at the beginning of the transaction or Report reading the group of records. This creates an Exclusive Update lock on the table containing the records, which prevents any other transaction or Report from reading, updating, or creating records in the table. The Exclusive Update lock remains in place until one of the following is encountered: End of the transaction End of the Report The END.USE; command followed by a database commit (in Reports), which can be achieved using the SLEEP; or CRITICAL.POINT; commands. See your Unisys Enterprise Application Programming Reference Manual for a full description of these two commands. Note: This solution could affect performance, as no other user can access any record in the table while the locking transaction or Report is active. An alternative is for the transaction or Report reading the group of records to set a flag in your database. This flag indicates that processing has started, and all other transactions or Reports attempting to create records in the table must wait until the flag is reset before proceeding. The way in which the transaction or Report is restated in order to re-check the flag depends on the purpose of the transaction or Report. Deadlock Situations A deadlock occurs when a transaction attempts to update record A and then record B, while a second transaction attempts to update record B and then record A. When each transaction has completed its first update, it attempts to lock the second record to be updated. Each transaction then finds the second record unavailable, and is not able to proceed. Deadlock situations are detected by UDS, and one of the transactions has its database updates rolled back and is then restarted. UDS decides which of the transactions is rolled back based on the configuration setting for DEADLOCK-RESOLUTION-CRITERIA. This enables the other transaction to complete. After the same transaction has been rolled back a number of successive times (up to 20 times), it is not restarted, and the transaction is passed to your MCB error program with a TIP 074 error code. Although a deadlock is resolved for you, rolling back and resubmission of a transaction takes time, and should be avoided if possible. To avoid deadlocks, use the SECURE; command option only where necessary, and for transactions which may update the same records, keep the same sequence of database updates
343 Development Tasks and Topics UNIX Integrity How Integrity is Implemented Integrity is based on row-level locking (which remains until the end of transaction). When a row is read: It cannot be updated until the lock is released. It cannot be read by an Integrity Ispec or Report until the lock is released. It can be read by a non-integrity Ispec or Report. A row is locked when a record is read by the transaction, and remains locked until the transaction is complete. This can result in many records in a single structure being locked. Caution Unlike MCP based Systems where only returned records are locked, on UNIX hosts all records referenced from the underlying SQL are locked. For this reason, the use of Integrity should be carefully evaluated. How No Integrity is Implemented Choosing to have no integrity means that no row-level locking is imposed when rows are read. When a row is updated, it is locked. Locked rows and tables are released when the transaction is complete. Handling Reports in an Integrity System Reports that lock records for extended periods of time can impact performance and cause certain online transactions to be held up until the Report is completed. Use the CRITICAL.POINT; command to reduce the impact of Integrity Reports. Integrity Issues The purpose of integrity facilities is to avoid, or at least limit the impact of, three potential problems: Concurrent Record Updating Integrity can be affected when two transactions update the same database record at the same time. In the following situation, two transactions update the same database record at the same time: Transaction A reads a record. Transaction B reads the same record. Transaction A updates the record in the database
344 Development Tasks and Topics Transaction B updates the record in the database, overwriting Transaction A. This results in the update invoked by Transaction A being lost. With Integrity set for a System, the problem of concurrent record updating is resolved automatically. In No Integrity Systems this problem is not addressed. Resolving it becomes your responsibility. Use the SECURE; option with LOOK.UP; and DETERMINE; commands to lock rows. The EXCLUSIVE.USE; command can be used to lock the required structures. Updating during Multiple Reads Integrity can be affected when a transaction is reading a group of records (using a DETERMINE; command) and a second transaction creates new records within the group. For example, the first transaction can be obtaining a trial balance report, and the second transaction updating existing debit and credit entries. If the second transaction posts a debit entry to the database ahead of the current position of the Report and then posts a credit entry behind the current position of the Report, the Trial Balance may not balance. Having Integrity set does not address the problem of updating during multiple reads. Resolving it becomes your responsibility. Use the EXCLUSIVE.USE; command to lock the required structures. Deadlocks A deadlock occurs when a transaction attempts to update record A and then record B, while a second transaction attempts to update record B and then record A. When each transaction has completed its first update, it attempts to lock the second record to be updated. Each transaction then finds the second record unavailable, and is not able to proceed. For Ispecs, the deadlock problem is resolved automatically. When a transaction receives a deadlock, it is backed out and the database is returned to its condition prior to the start of transaction. All records locked by the backed-out transaction are unlocked, and the other transaction will continue processing. For Reports, handling of deadlocks depends on how the Report was initiated. For details see your Unisys Enterprise Application Runtime for the Unix Operating System Administration Guide. In each case, deadlocks are reported to the error log. Windows Integrity How Integrity is Implemented Integrity is based on row-level locking (which remains until the end of transaction). When a row is read: It cannot be updated until the lock is released
345 Development Tasks and Topics It cannot be read by an integrity Ispec or Report until the lock is released. It can be read by a non-integrity Ispec or Report. A row is locked when a record is read by the transaction, and remains locked until the transaction is complete. This can result in many records in a single structure being locked. Caution MCP based Systems only lock returned records; on Windows hosts it depends on the database used. For Oracle all records referenced from the underlying SQL are locked, but for SQL Server only returned rows are locked (as for MCP). For this reason, you should carefully evaluate the use of Integrity depending on which database you use. How Non Integrity is Implemented Choosing to have no integrity means that no row-level locking is imposed when rows are read. When a row is updated, it is locked. Locked rows and tables are released when the transaction is complete. Handling Reports in an Integrity System Reports that lock records for extended periods of time can impact performance and cause certain online transactions to be held up until the Report is completed. Use CRITICAL.POINT; or SLEEP; commands to reduce the impact of Integrity Reports. Integrity Issues The purpose of integrity facilities is to avoid, or at least limit the impact of, two potential problems: Concurrent Record Updating Integrity can be affected when two transactions update the same database record at the same time. In the following situation, two transactions update the same database record at the same time: Transaction A reads a record. Transaction B reads the same record
346 Development Tasks and Topics Transaction A updates the record in the database. Transaction B updates the record in the database, overwriting Transaction A. This results in the update invoked by Transaction A being lost. With Integrity set for a System, the problem of concurrent record updating is resolved automatically. In No Integrity Systems this problem is not addressed. Resolving it becomes your responsibility. Use the SECURE; option with LOOK.UP; and DETERMINE; commands to lock rows. The EXCLUSIVE.USE; command can be used to lock the required structures. Updating during Multiple Reads Integrity can be affected when a transaction is reading a group of records (using a DETERMINE; command) and a second transaction creates new records within the group. For example, the first transaction can be a Trial Balance report, and the second transaction is updating existing debit and credit entries. If the second transaction posts a debit entry to the database ahead of the current position of the Report and then posts a credit entry behind the current position of the Report, the Trial Balance cannot balance. Having Integrity set does not address the problem of updating during multiple reads. Resolving it becomes the application developers responsibility,such as coding your own locking mecanism or using the EXCLUSIVE.USE; command to lock the required structures. Be aware that the EXCLUSIVE.USE command can increase the potential of deadlocks as it locks whole table structures. Other Issues A deadlock occurs when a transaction attempts to update record A and then record B, while a second transaction attempts to update record B and then record A. When each transaction has completed its first update, it attempts to lock the second record to be updated. Each transaction then finds the second record unavailable, and is not able to proceed. The deadlock problem is resolved automatically by the database. When a transaction receives a deadlock, it is backed out and the database is returned to its condition prior to the start of transaction. All records locked by the backed-out transaction are unlocked, and the other transaction continue sprocessing. Deadlocks are reported to the error log. Performance Considerations for Systems This section describes coding considerations to improve System performance. For more details about tuning system software to improve performance, see your Unisys Enterprise Application Administration Guide for the relevant runtime target host type
347 Development Tasks and Topics Rationalization of Profiles Each additional Profile over the Event Set or a Component increases the time taken and the mass storage used in updating, or inserting a record. Reduce the number of Profiles where possible. Position of database updates within Ispec logic Once a database record has been updated by a transaction, it is locked against all other types of access until the end of the transaction. All other transactions attempting to access the record are queued. For OS 2200 based Systems, if any of the Data Items updated are Ordinates of a Profile, parts of the index for the Profile are also locked. To reduce queuing, group all database updates together at the end of the Main logic for each Ispec. Order of Ordinates in Profiles For OS 2200 based Systems, changing a Data Item that is the most significant Ordinate of a Profile is more time-consuming than changing a Data Item that is the least significant Ordinate. Where possible, make the most frequently-updated Data Items the least significant Ordinates. Choosing the appropriate database access commands The choice of database access command largely depends upon your requirements for the System being created. However, a knowledge of how each command accesses the database assists in the selection of an appropriate command. For more details, see your Unisys Enterprise Application Programming Reference Manual. For UNIX based Systems, avoid the use of the DETERMINE; BACK and DETERMINE; LAST commands for large Profiles. Use DETERMINE; GROUP commands instead. Using the RECALL; Command in OS 2200 based Systems For OS 2200 based Systems, every RECALL; command creates an HVTIP call to an HVTIP subprogram. There is an overhead involved in each HVTIP call, so their numbers should be kept to a minimum. In most circumstances there is only one RECALL; command for each transaction. However, it is possible to use the RECALL; command to activate an Ispec from within Pre-Screen logic. To prevent multiple HVTIP calls, code the logic that determines the next Ispec to be called, within the Main logic of the current Ispec (rather than in the Pre-Screen logic of an intermediate Ispec). Garbage collection in the MCP environment You should perform regular garbage collection. For more details, see your Unisys Enterprise Application Runtime for ClearPath MCP Administration Guide. Group flags Group your flag statements together if possible; that is, try to have no other commands in between the flag statements. This will avoid multiple updates to the same structure
348 Development Tasks and Topics Using DETERMINE; and LOOK.UP; logic commands Ensure that your DETERMINE; and LOOK.UP; logic commands break in the correct places, so that they do not read unwanted records. Consider using the DETERMINE; GROUP command, where appropriate. On UNIX, for Oracle Systems, DETERMINE; BACK and DETERMINE; LAST commands can make significant demands on resources. See your Unisys Enterprise Application Runtime for the Unix Operating System Administration Guide for details. Use of CRITICAL.POINT; and SLEEP; commands For an MCP based System, use a CRITICAL.POINT; or SLEEP; command to force the end of transactions in a Report, where appropriate. This will avoid delays caused to other Reports, and particularly update programs, that are waiting on DMS II sync points. CRITICAL.POINT; is preferable to SLEEP; as it supports recovery. For UNIX based Systems, long transactions can cause problems on Oracle (such as running out of Roll Back segment space). Avoid duplicate records on Profiles For an MCP based System, duplicate records can be stored on Profiles. To improve performance of deletes on Profiles where duplicates are necessary, enter spaces in the DASDL Duplicates field. Rationalize the Event set For more details, see Use of Memo Components Versus Events on page 13-3 and Rationalizing Event Data Item Names on page Manual/Automatic LOOK.UP; Make sure your code does not contain LOOK.UP; commands that are also performed automatically
349 Appendix A Embedded SQL Scripts Description With the capability to use Embedded SQL, you can now code optimal data retrieval and update in many cases. Prior to the introduction of this feature, standard Enterprise Application Environment data access commands were structured around record-by-record processing from a DMSII database. You could use successive nested DETERMINE; commands to achieve the effects of a table join, but there was no optimization (though it was possible to optimize database access for individual commands). With the introduction of ESQL you can now access database tables directly by invoking ESQL constructs from within logic. ESQL can also use advanced constructs such as table joins, which avoids the need to use nested DETERMINE; commands, and updates over a selected set of rows which are efficient in appropriate circumstances. The ability to encode ESQL sequences means that you can make more efficient use of the database by allowing the database engine to use optimizations for data retrieval and/ or update. Embedded SQL features include: Ability to create and modify an SQL Script including its Setup Data Items Ability to use the new form of DETERMINE; ACTUAL command to invoke an SQL Script New ESQL variables for error handling Validation of logic containing invocation of SQL Script by DETERMINE; ACTUAL Load and extract of Model containing SQL Scripts Changes to Developer Test to ignore SQL Script usage Entry of relations in the SQL Script object Host load of a Model will ignore any SQL Script objects and any DETERMINE; commands which invoke an SQL Script A 1
350 Embedded SQL Scripts Details Defining Embedded SQL A new object type SQL Script allows you to define SQL to be used in the application. SQL Script is associated with the Business Segment in Developer. An SQL Script contains three text sections into which SQL can be entered: SQL Pre-Amble SQL to be performed once only at the beginning of this SQL invocation SQL Main SQL which will (potentially) be executed in a loop like a DETERMINE; loop retrieving the next row SQL Post-Amble SQL to be performed once at the end of this SQL invocation SQLScript also has its own set of Setup Data Items to be used as host variables in the SQL statement. Parsing There is no parsing of the SQL to detect any SQL errors. However, there is a lexical scan to replace unqualified names with their qualified equivalents during generation. Ispec names are replaced by their qualified equivalents, and host variable names are replaced by the COBOL name equivalent, using limited pattern recognition and context recognition capabilities. Interfaces The following graphical user interfaces are available in Developer to implement SQL scripts. For detailed information on each interface consult the on line help accessed from the help button of the dialog, or context help from a window or menu. Business Segment Model View The SQL Script is displayed as an object in the Developer Model. The object can be added to a Business Segment or Activity using the Add menu, as for any other object. It is identified by the symbol S. You can view a list of all Scripts from the Business Segment Navigation dialog box. Business Segment Add Menu The SQL Script object is grouped with the Wildcard in the Add Menu. If you have not selected a Target Host Type of UNIX or Windows in the Business Segment Options, you can create and maintain SQL Scripts but they will be reported when you perform a Design Audit. If you turn off the UNIX or Windows Target Host Type, Developer displays a warning message. If you try to generate the System to any target host other than UNIX or Windows, an error is reported. A
351 Embedded SQL Scripts SQL Script Options Dialog Box You can specify a Description and Author in the options when you create an SQL Script. You cannot use a name for an SQL Script that has been used for any other object in the Model. If Long Names are allowed for the Model, the name can be up to 30 characters. If Long Names are not allowed, the name cannot exceed 18 characters. If the Model uses Long Names, an additional short name field appears below the Name field. The maximum length of this field is 18 characters. The short name defaults to the first 18 characters of the long name. SQL Script Open Dialog Box From the SQL Script Navigation dialog box you can access the three logic sections, Setup Data Items, Business Rules, Ispec relations and focus graph. As the initial implementation of this feature will not incorporate a parse, the Ispec relations can be entered manually as logical Over relations. Entering Ispec relations manually enables the documentary integrity of the Model to be maintained. To access an SQL section, press the SQL Pre-Amble, SQL Main, or SQL Post-Amble button on the SQL Script Navigation dialog box. This opens a Logic Editor window where you can enter the SQL statements. SQL Script Setup Data Item List In the Setup Data Item List dialog box, you can define any Setup Data Items to be used as host variables that are referenced by the SQL. Any host variables you use in ESQL must be declared as Setup Data Items. If you have not defined a Setup Data Item for a host variable that is used in the SQL, preprocessor errors will occur. If the Setup Data Items defined in an SQL Script do not have initial values, they will be initialized at the start of Pre-Screen and Pre-Linc logic in Ispecs, and at the beginning of Reports. Using/Invoking Embedded SQL You can only refer to an SQL Script through a DETERMINE; ACTUAL command. The names of the SDs must be unique within the context in which the SQL Script is used. Any name conflicts are reported as [?????] DETERMINE causes conflicting or overlapping data items or SDs:. You can avoid conflicts, as in GLG SDs, by use of appropriate naming conventions. Note: When you are working with an external database, ensure that the external database table name is different from the Ispec name. When you are using DETERMINE; ACTUAL in the reports to invoke ESQL script and the script is trying to access a NON-LINC database, then the system in which ESQL script has been defined must first be generated A 3
352 Embedded SQL Scripts The SQL in an SQL Script is invoked using a new variant of the DETERMINE; command: DETERMINE; ACTUAL sqlscript logic END; The semantics of this variant of the DETERMINE; command are shown below: 1. Any internal variables, such as error result codes, are initialized. 2. The SQL contained in the SQL Pre-Amble text block is executed. 3. The SQL error return codes are checked. If warnings were detected, the DETERMINE; loop continues after storing the error/warning code information in new System Data Item variables for testing in later logic. If an error was detected the error handling routine is invoked and the program is aborted. If no record was retrieved GLB.STATUS is set to ***** and control passes to the end of the DETERMINE; loop to execute SQL Post-Amble (step 6). 4. Any SQL in the SQL Main text block is executed. If no record was retrieved and it was the first time through, GLB.STATUS is set to ***** and control passes to the end of the DETERMINE; loop to execute SQL Post-Amble. If warnings were detected, the error/warning code information is stored in the new System Data Items for testing in later logic. If an error was detected the error handling routine is invoked and the program is aborted. 5. If no errors have been detected, any logic commands within the DETERMINE; block are executed. 6. If the DETERMINE; block is exited by a BREAK; or END.EXIT; command, control passes to the end of the DETERMINE; loop and the SQL Post-Amble is processed. If the DETERMINE; block is exited by a BREAK; ALL command, control then passes to the end of the outermost loop. If the DETERMINE; block is exited by an END.EXIT; command, control then passes to the end of the current logic section (Pre-Screen, Pre-Linc, Main, Report Frame, or Report Main). 7. If the DETERMINE; loop is exited via a JUMP.TO; command, the SQL Post-Amble is executed before transferring control to the LABEL; destination of the JUMP.TO; command. 8. If the DETERMINE; loop is not exited via a BREAK; or JUMP.TO; command, execution iterates back to step 4 above. You may need to include SQL commands to be executed once only, rather than a loop. This type of SQL command also uses the DETERMINE; ACTUAL SQLScript command, but you must code an unconditional BREAK; command to exit the DETERMINE; loop after the first execution. The DETERMINE; command should take the following form: DETERMINE; ACTUAL sqlscript logic BREAK; : unconditional exit from the loop END; A
353 Embedded SQL Scripts In this case the SQL command should be contained only in the SQL Pre-Amble text block. The processing of the DETERMINE; command will follow the model shown above. Note: To prevent infinite loops, if SQL Main does not contain any logic, an unconditional BREAK; is forced immediately before the END; command. If a new logic command is created in the future to handle this non-looping case, the code shown will continue to function. Example of Selective Data Retrieval with Join The following example for the SQL Script LARGEPOL shows how you can iterate over data retrieved concurrently from two tables by means of a join operation: SQL Pre-Amble DECLARE Cur1 CURSOR FOR SELECT POL.ACCT CUST.NAME CUST.ADDRESS POL.VALUE FROM POL, CUST WHERE POL.ACCT = CUST.ACCT AND POL.VALUE > :MAXVALUE ; OPEN Cur1 ; This declares a cursor Cur1 over the set of data represented by the SELECT and WHERE clauses, and then OPENs the cursor. For instance you could get the name and address of every customer who has a policy with a value of > 1,000,000. SQL Main FETCH Cur1 INTO :POLACCT :CUSTNAME :CUSTADDR :POLVALUE; This fetches the next record into the host variables defined by the DECLARE CURSOR routine in SQL Pre-Amble. SQL Post-Amble CLOSE Cur1 ; This closes the Cur1 cursor. SQL Script Setup Data Items The following SDs need to be declared in the SQL Script as the host variables used in the SQL: POLACCT ED; A LE; 15 CUSTNAME ED; A LE; 30 CUSTADDR ED; A LE; 50 POLVALUE ED; N LE; 12 DE; 2 MAXVALUE ED; N LE; 10 Logic and How it Works The DETERMINE; command, and commands required to set it up, are coded in a Report as follows: MOVE; ( ) MAXVALUE : Used in SQL "LARGEPOL" DETERMINE; ACTUAL LARGEPOL ADD; POLVALUE POLTOTAL MOVE; POLACCT F-10ACCT MOVE: CUSTNAME F10-NAME A 5
354 Embedded SQL Scripts END; MOVE; CUSTADDR F10-ADDR PF; 10 Execution is as follows (assuming any necessary initialization of internal variables has already been done): SQL Pre-Amble is executed (DECLARE CURSOR). If errors are returned they are processed and rollback occurs. If warnings are reported the warning value is placed into the SQL Pre-Amble save area. If no record was retrieved, GLB.STATUS is set to ***** and control passes to the end of the DETERMINE; loop to execute SQL Post-Amble (step 5). SQL Main is executed (FETCH). If errors are returned they are processed and rollback occurs. If warnings are reported the warning value is placed into the SQL Main save area. If no record was retrieved and it was the first time through, GLB.STATUS is set to ***** and control passes to the end of the DETERMINE; loop to execute SQL Post-Amble (step 5). If no record was retrieved and it was not the first time through, GLB.STATUS is set to spaces and control passes to the end of the DETERMINE; loop to execute SQL Post-Amble (step 5). Logic within the DETERMINE; loop is executed. Control passes back to the DETERMINE; command to retrieve the next record (step 2). SQL Post-Amble is executed (CLOSE cursor). Example of Selective Update This example shows an update of all records which meet the selection criteria in a single table. SQL Pre-Amble UPDATE POL SET POL.PREMIUM = POL.PREMIUM * :PREMINCR WHERE POL.STARTDATE > ; This is a singleton SQL statement which increases the policy premium by 11.5% for all policies which started after November 3rd, SQL Main and SQL Post-Amble Empty Logic and How it Works Since you only want to execute this SQL once, you need to code an unconditional BREAK; command into the DETERMINE; block: MOVE; (1.115)PREMINCR : Used in SQL "PREMIUMUPD" DETERMINE; ACTUAL PREMIUMUPD logic BREAK; END; Execution is as follows (assuming any necessary initialization of internal variables has already been done): A
355 Embedded SQL Scripts SQL Pre-Amble is executed (UPDATE). If errors are returned they are processed and rollback occurs. If warnings are reported the warning value is placed into the SQL Pre-Amble save area. If no data items are available, GLB.STATUS is set to ***** and control passes to the end of the DETERMINE; loop to execute SQL Post-Amble. There is no execution code for SQL Main as it is empty. Logic within the DETERMINE; loop is executed. The BREAK; command is executed, forcing control to step 5. No execution code is generated for SQL Post-Amble as it is empty. SQL Script Interaction with Logic The DETERMINE; ACTUAL sqlscript command is treated as if it were a parameterless DETERMINE; command and an INSERT; of SQL Script. The SQL commands contained within the SQL Script are encapsulated into COBOL paragraphs which are performed from within the inline logic using the DETERMINE; loop semantics described above. The Setup Data Items belonging to the SQL Script are accessible from any logic in the Ispec or Report containing the DETERMINE; ACTUAL sqlscript command. If the same SQL Script is invoked from more than one place in an Ispec or Report its SDs are only defined once in the COBOL. Duplicate SDs will cause COBOL compile errors. The consequences of nesting a DETERMINE; ACTUAL sqlscript within another DETERMINE; ACTUAL sqlscript using the same SQL Script are indeterminate and unpredictable due to likely conflicts in cursor and host variable naming. It would be possible to create a duplicate SQL Script which has different cursor and host variable names which could then be nested into the original DETERMINE; loop. Setup Data Items The SDs defined in the SQL Script will be available to the logic. The internal mapping of the SQL Script SD data types (EDIT attribute) will be the same as if the SD was part of the standard database buffer to ensure that the appropriate automatic data type conversion between the SQL data type and its COBOL equivalent is done. SQL Error Handling The handling of errors will revolve around usage of the SQL Communication Area (SQLCA). In order to preserve SQL execution status so that the logic within and after the DETERMINE loop can interrogate it, special System Data Items are associated with using SQL Scripts, as follows: GLB.PRESQLCODE ED; N LE; 9 GLB.PRESQLSTATE ED; A LE; 5 GLB.PRESQLMESSAGE ED; A LE; 70 GLB.PRESQLWARN ED; A LE; A 7
356 Embedded SQL Scripts GLB.MAINSQLCODE ED; N LE; 9 GLB.MAINSQLSTATE ED; A LE; 5 GLB.MAINSQLMESSAGE ED; A LE; 70 GLB.MAINSQLWARN ED; A LE; 8 GLB.POSTSQLCODE ED; N LE; 9 GLB.POSTSQLSTATE ED; A LE; 5 GLB.POSTSQLMESSAGE ED; A LE; 70 GLB.POSTSQLWARN ED; A LE; 8 These are automatically added to any Ispec, GLG or Report when an SQL Script is referenced in any logic for that object. These special System Data Items are visible (if Show System Data Items is turned on) within the Ispec or Report Data item list if the Ispec or Report contains an invocation of an SQL Script. They can be referenced from any logic but are read-only. After each SQL statement is executed, the values of the SQLCA data fields SQLCODE, SQLMESSAGE, SQLWARN, and SQLSTATE (which is declared separately) are moved to the appropriate System Data Items so that they can be tested in logic. SQLCODE Value Execution 0 Successful 1 The statement ran, but a warning was generated. Check the values of the SQLWARN system data items to determine the type of error or 100 No data matching the query was found, or the end of the results set was reached. No rows were processed. The Not Found condition depends on the precompiler option MODE. With the default MODE of ORACLE, the value would be If the MODE is ANSI the value would be 100. <0 (negative value) The statement did not run, due to an application, database, system, or network error. Note: Negative values are processed by the WHENEVER ERROR command and never reach user logic. If an error occurs, as much information as possible is logged before the transaction terminates. SQLSTATE OpenESQL statements return SQLSTATE values as defined by the X/Open and SQL Access Group SQL CAE specification (1992). SQLSTATE is a five-character field that can be declared independently by an application. The table below lists SQLSTATE values that can be returned by OpenESQL statements. The value of SQLSTATE is made up of a two-character class value followed by a threecharacter subclass value. A class value of 01 indicates a warning and is accompanied by an SQLCODE of 01. The class value IM indicates an error or warning that derives from A
357 Embedded SQL Scripts ODBC. Other class values indicate errors and are accompanied by an SQLCODE of The subclass value 000 in any class is for implementation-defined conditions within that class. The assignment of class and subclass values is defined by ANSI SQL-92. Note: Although successful execution of a function is normally indicated by an SQLCODE of 0, the SQLSTATE also indicates success. SQLSTATE Error Success General warning Disconnect error Data truncated Privilege not revoked 01S00 01S01 01S02 01S03 01S04 01S05 01S06 Invalid connection string attribute Error in row Option value changed No rows updated or deleted More than one row updated or deleted Cancel treated as SQLFreeStmt with the SQL_CLOSE option Attempt to fetch before the result set returned the first rowset Wrong number of parameters Restricted data type attribute violation 07S01 Invalid use of default parameter Unable to connect to data source Connection in use Connection not open Data source rejected establishment of connection Connection failure during transaction 08S01 21S01 21S02 Communication link failure Insert value list does not match column list Degree of derived table does not match column list String data right truncation Indicator variable required but not supplied Numeric value out of range Error in assignment A 9
358 Embedded SQL Scripts SQLSTATE Error Datetime field overflow Division by zero String data, length mismatch Integrity constraint violation Invalid cursor state Invalid transaction state Invalid authorization specification Invalid cursor name Syntax error or access violation 3C000 Duplicate cursor name Syntax error or access violation Operation aborted IM001 IM002 IM003 IM004 IM005 IM006 IM007 IM008 IM009 IM010 IM011 IM012 IM013 S0001 S0002 S0011 S0012 S0021 S0022 Driver does not support this function Data source name not found and no default driver specified Specified driver could not be loaded Driver s SQLAllocEnv failed Driver s SQLAllocConnect failed Driver s SQLSetConnect-Option failed No data source or driver specified; dialog prohibited Dialog failed Unable to load translation.dll file Data source name too long Driver name too long DRIVER keyword syntax error Trace file error Base table or view already exists Base table not found Index already exists Index not found Column already exists Column not found A
359 Embedded SQL Scripts SQLSTATE Error S0023 S1000 S1001 S1002 S1003 S1004 S1008 S1009 S1010 S1011 S1012 S1015 S1090 S1091 S1092 S1093 S1095 S1096 S1097 S1098 S1099 S1100 S1101 S1103 S1105 S1106 S1107 S1108 S1109 S1110 S1111 No default for column General error Memory allocation failure Invalid column number Program type out of range SQL data type out of range Operation canceled Invalid argument value Function sequence error Operation invalid at this time Invalid transaction operation code specified No cursor name available Invalid string or buffer length Descriptor type out of range Option type out of range Invalid parameter number Function type out of range Information type out of range Column type out of range Scope type out of range Nullable type out of range Uniqueness option type out of range Accuracy option type out of range Direction option out of range Invalid parameter type Fetch type out of range Row value out of range Concurrency option out of range Invalid cursor position Invalid driver completion Invalid bookmark value A 11
360 Embedded SQL Scripts SQLSTATE Error S1C00 S1T00 Driver not capable Timeout expired Before executing of any of the SQL code sections in an SQL Script in the DETERMINE; ACTUAL sqlscript execution, WHENEVER statements are issued within the COBOL to specify the action to be taken when SQL errors or warnings are issued: EXEC SQL WHENEVER SQLERROR GO TO sqlscriptabort END-EXEC EXEC SQL WHENEVER SQLWARNING DO PERFORM sqlscript{pre MAIN POST}CHECKWARN END-EXEC EXEC SQL WHENEVER NOTFOUND DO GO TO end_of_dt_loop END-EXEC Using the DO PERFORM in the WHENEVER SQLWARNING allows control to return to the last executed SQL statement so it can continue where it left off. When an error occurs, there is no return to user logic, and the transaction rolls back. When a warning occurs, the appropriate System Data Items are populated with the status information from the SQLCA data area. Logic in the body of the DETERMINE; loop can then test whether the Pre-Amble or Main had any warnings. After the end of the DETERMINE; loop, logic can check for any warnings from the Post- Amble SQL statements. Note: If there are multiple SQL statements in any code section (Pre-Amble, Main, or Post-Amble) only the last set of status information will be saved for interrogation in the logic. Examples of checking in logic for SQL warnings are: DT; ACTUAL MYSQL DW; GLB.PRESQLCODE NOT = (0) : One of the SQL statements in the Pre-Amble caused a warning ME; GLB.PRESQLWARN GLB.PRESQLMESSAGE : We don t want to process this each time through the loop : so clear the condition MV; (0) GLB.PRESQLCODE END; DW; GLB.MAINSQLCODE NOT = 0 : One of the SQL statements in the Main SQL caused a warning ME; GLB.MAINSQLWARN GLB.MAINSQLMESSAGE : Clear the condition for next time through MV; (0) GLB.MAINSQLCODE END;... END; : end of DT; ACTUAL MYSQL : See if any warnings in the Post-Amble SQL DW; GLB.POSTSQLCODE NOT = (0) ME; GLB.POSTSQLWARN GLB.POSTSQLMESSAGE : Clear the condition MV; (0) GLB.POSTSQLCODE END; A
361 Embedded SQL Scripts Developer Test This feature is not implemented in Developer Test or the Developer Test Debugger. If a Model that uses Embedded SQL is executed in Developer Test or the Debugger, the entire DETERMINE; ACTUAL sqlscript END; sequence will be ignored, that is, effectively treated as comments. Model Extract/Load SQL Script objects are extracted during Model extract and loaded into Developer during Model load. If a Model containing SQL Script is loaded into host Builder on any platform, the SQL Script objects will not be loaded into the host repository and any DETERMINE; constructs which reference an SQL Script object will produce an error. If the logic of an Ispec, Report, or GLG references any Setup Data Items that belong to the SQL Script, they are flagged as syntax errors in the specification in host Builder. LCIF Format The new record 07 Script is described in the following table. I L Description Edit Length Position Comments Default # * Record type N # * Script name A 18 3 Not spaces and unique # * Script type A 1 21 S=SQL S # * Description A As input # * Author's name A As input Spaces # * Extract flags Whole object Business rules Logic A 3 72 (Y/N) (Y/N) (Y/N) * Change Id record follows A 1 75 (Y/N) N Total record length = 75 The following existing records are used: 73 Long Name Logic 30 Relationships 48 Setup Data Items A 13
362 Embedded SQL Scripts The following table shows the updated format of record 73. I L Description Edit Length Position Comments Default * Record type N * Logic Type A 1 3 M Main logic S Prescreen L Prelinc E Edit G Global Logic F Frame P Pre-Amble O Post-Amble * Ispec, Global Logic, Report, Script name A 18 4 Valid name * Frame Number N * Logic A Insert flag A Space/ Non- Space * Change Identifier A * Date Stamp N Total record length = 297 UNIX Enterprise Application Environment ESQL operates within the context of the existing transaction structure. For Ispecs, this means that any command which would cause an implicit or explicit commit of database changes is specifically not allowed. Since the SQL code is not parsed, you must ensure that no implicit or explicit commits are performed in the SQL code. To allow such a commit would destroy the atomicity of the transaction and potentially leave the database in an indeterminate state. For Reports, commands which force an implicit or explicit commit can be used, as such a capability is already available with the SLEEP; command. Any use of an implicit or explicit commit by an ESQL command, however, is at the user s risk. Licensing Use of Embedded SQL requires the use of ProCobol rather than MicroFocus Cobol to compile the programs which use ESQL. ProCobol is delivered as part of the Oracle Enterprise Version package. Since UNIX LINC customers need the Oracle Enterprise Version to run UNIX LINC, they will already have appropriate licensing of the ProCobol compiler. A
363 Embedded SQL Scripts Cursor Usage Runtime parsing of ESQL creates implicit cursors. For runtime efficiency it is necessary to retain the implicit cursors to avoid reparsing. In regards to parsing and binding, the ORACLE documentation on ESQL only mentions parsing and has suggestions on how to improve performance by the following options: OPEN_CURSORS Define in the init.ora file. The default is 64, Enterprise Application Environment specifies 250. MAXOPENCURSORS Precompiler option, default 10, maximum value = OPEN_CURSORS - 6. Specifies the number of concurrently open cursors that the precompiler tries to keep cached. HOLD_CURSOR Precompiler option, default NO. Specifies how the cursors for SQL statements and PL/SQL blocks are handled in the cursor cache. Note: The default value of NO means that the cursor is marked reusable after execution is complete but stays in the cursor cache. A value of YES means it is not marked for reuse, so another cursor must be found or allocated. RELEASE_CURSOR Precompiler option, default NO. Specifies how the cursors for SQL statements and PL/SQL blocks are handled in the cursor cache. Note: The default value of NO overrides HOLD_CURSOR and means that CURSOR memory is not released. A value of YES means that the cursor is freed immediately after use, even if HOLD_CURSOR is YES. This works as follows: Each ESQL statement has a cursor associated with it implicitly unless you define one explicitly by declare cursor. At any one time you can have MAXOPENCURSORS open, but if a request asks for MAXOPENCURSORS+1, a new cursor is created until either memory runs out or OPEN_CURSORS is exceeded. For implicit cursors, if HOLD_CURSOR=YES and RELEASE_CURSOR=NO, the parsed SQL statement is available until it is aged out of the cache or MAXOPENCURSORS is reached. For explicit cursors (using declare cursor ) the parsed SQL statement stays available until you close the cursor. If you need to reuse an explicit cursor, re-issue the open cursor without calling the close cursor. This avoids reparsing the SQL statement. Note: MAXOPENCURSORS should be specified when pre-compiling the routine which does the connection to the database. This is the value used for runtime irrespective of what value is specified for other compilation units A 15
364 Embedded SQL Scripts Generation Builder recognizes the new DETERMINE; ACTUAL sqlscript construct and generates appropriate code for Ispecs, Reports, and GLGs when the target environment for generation is UNIX or Windows. If the target for generation is not one of those two platforms an error message is output during Model Validation and the generation is aborted. The Ispec and Report generation skeletons contain additional codeids to trigger the inclusion of SQL Script related information in appropriate circumstances. When a DETERMINE; ACTUAL sqlscript construct is encountered during logic generation, code is generated as follows: 1. All SQL constructs are properly bracketed by the appropriate COBOL constructs (BEGIN SQL, END SQL). 2. WHENEVER statements are generated preceding the execution code for SQL Pre- Amble, SQL Main, and SQL Post-Amble. 3. The SQL code is generated in PERFORMable paragraphs elsewhere in the COBOL. The PERFORM statements will be generated inline in the logic. 4. Immediately following the execution (PERFORM) of SQL Main the SQLCode is checked to see if any records were retrieved. If no records were retrieved and it is the first time through, GLB.STATUS is set to ***** and control passes to the processing of SQL Post-amble. If no records were retrieved and it is not the first time through, control passes to the processing of SQL Post-Amble without setting GLB.STATUS. 5. SQL Error and Warning paragraphs are generated elsewhere in the COBOL program so that they can be jumped to via GO TO (errors) or PERFORMed (warnings). 6. The END; statement for the DETERMINE; ACTUAL sqlscript transfers control back to the execution of SQL Main. Constraints Standards Although the SQL is not parsed, it should conform to the SQL92 standard currently used by Oracle. Performance This feature enhances performance by allowing you to access the database in more efficient ways in appropriate cases. However, it is possible that poorly thought out SQL constructs could have a detrimental effect on database performance. If you do not have sufficient technical resources to gauge the impact of using this feature, you should not use it. A
365 Embedded SQL Scripts GLB_DTIME If you insert one or more rows in a table using the INSERT command, you may need to include the GLB_DTIME field. You will need to be able to obtain a unique value for GLB_DTIME for each record to be inserted. You can do this using a standard C function which is included in the Enterprise Application Environment library. Resilience / Recovery Using ESQL opens up the Enterprise Application database to uncontrolled update. It is possible to make updates that do not take account of the internal semantics that Enterprise Application Environment imposes on the table. Deletions may occur which render conditional profiles unusable or invalid. You should exercise maximum care to ensure that you do not corrupt the database or invalidate internal semantics. Duplicate Cursor Names The following restrictions apply to the duplicate naming of explicit cursors: For applications deployed to both UNIX and Windows operating systems, duplicate cursor names cannot be declared in the same SQL Script (in all logic sections - Pre- Amble, Main, and Post-Amble). For applications deployed to UNIX, distinct SQL Scripts can declare duplicate cursor names, provided the SQL Scripts with duplicate cursor names are not used in the same Ispec or Report. For applications deployed to Windows operating systems, duplicate cursor names cannot be declared in any logic section of any SQL Script. As SQL Scripts are not validated by Developer, the duplicate naming of explicit cursors, in contravention of the above restrictions, will result in compilation errors. Note: The rules that exist in the Net Express manual should be imposed on the use of embedded SQL Statements Purpose: The DECLARE CURSOR statement associates the cursor name with the specified. SELECT statement and enables you to retrieve rows of data using the FETCH statement. Two separately compiled programs cannot share the same cursor. All statements that reference a particular cursor must be compiled together. The DECLARE CURSOR statement must appear before the first reference to the cursor. The following rules apply to the SELECT statement: It cannot contain an INTO clause or parameter markers. It can contain input host variables previously identified in a declaration section. With some ODBC drivers, the SELECT statement must include a FOR UPDATE clause if positioned updates or deletions are to be performed A 17
366 Embedded SQL Scripts A
367 Appendix B Understanding the Runtime Cycle The process by which an Ispec screen layout is displayed and your Ispec logic is executed is known as the Runtime Cycle. The Runtime Cycle defines the order in which automatic logic and user-written logic are performed. The Runtime Cycle can be divided into two parts: What happens when a screen layout is requested. What happens when a screen layout is transmitted. In this appendix you will find: Runtime Cycle for Non-Copy.From Ispecs Runtime Cycle for Copy.From Ispecs Using Copy.From Ispecs Runtime Cycle for Non-Copy.From Ispecs The Runtime Cycle for non-copy.from Ispecs is shown below. Ispec Request initialize GSDs, SDs display screen layout transmit screen layout errors messages errors messages RECALL current Ispec Pre-screen (PS) initialize GSDs, SDs automatic edit Pre-LINC (PL) automatic validate Main logic (LS) automatic update refresh or RECALL other Ispec Runtime Cycle B 1
368 Understanding the Runtime Cycle Requesting an Ispec Screen Layout An Ispec screen layout is displayed as a result of one of the following: Request from the Select Ispec dialog box RECALL; command from another Ispec RECALL; command from within the logic of the Ispec Automatic refresh of the Ispec Before the screen layout is displayed, the following processes take place: 1. Both Global Setup Data Items and Setup Data Items without initial values are initialized. 2. Any user-written Pre-Screen logic is performed, although Pre-Screen logic is not performed if a MESSAGE; command has been performed or the Ispec has been recalled with a RECALL; command from its own logic. The pre-filling of fields on the screen, and the performing of security checking are examples of Pre-Screen logic. Transmitting an Ispec Screen Layout When a screen is transmitted, the following processes take place: Note: For a Component, entering FIR, LAS, NEX, BAC, or REC in the MAINT field is handled differently. See Transmitting an Inquiry on page B Both Global Setup Data Items and Setup Data Items without initial values are initialized. 2. Automatic editing logic is performed. This logic validates numeric fields, and removes separators and decimal points. Any errors are returned to the user. 3. Any Pre-LINC logic is performed. Pre-LINC logic is used to perform logic before automatic validation. Examples might be generating a customer number, or recalling another Ispec without processing the current Ispec. MESSAGE; or RECALL; commands encountered in Pre-LINC logic cause processing to stop at the end of Pre-LINC logic. 4. Automatic validation logic is performed. This includes validating Ordinates (often referred to as automatic look ups ), dates, and required fields; and performing logic defined with VALUE; commands. Any errors are returned to the user. 5. Main logic is performed. The majority of logic will be Main logic. Examples of such logic are checking stock on hand and checking a customer credit limit for a sale. B
369 Understanding the Runtime Cycle 6. Automatic update logic is performed. Database records for Usage Input-Output Ispecs are created automatically. After automatic update, one of three actions will be performed: If a RECALL; command was executed, the specified Ispec will be displayed. For more details, see Requesting an Ispec Screen Layout on page B-2. Note: If the current Ispec is recalled, its Pre-Screen logic is bypassed. If the Refresh Screen option is set for the Ispec, and no RECALL; command was encountered, the current Ispec is displayed. For more details, see Requesting an Ispec Screen Layout on page B-2. The Refresh Screen option is on the Ispec Options dialog box. If the Ispec does not have the Refresh Screen option set, and no RECALL; command is executed, the Select a Screen dialog (in Developer Test) or the Ispec Selection screen (in the deployed system) displayed. Transmitting an Inquiry When a screen is transmitted, with FIR, LAS, NEX, BAC, or REC in the MAINT field, the following processes take place: 1. Both Global Setup Data Items and Setup Data Items without initial values are initialized. 2. Automatic editing logic is performed on Ordinate values. This logic validates numeric fields, and removes separators and decimal points. Any errors are returned to the user. 3. The Ordinate values are used to retrieve a record from the database. 4. The current screen is displayed with the retrieved record. GLB.ERROR and the Runtime Cycle The value of GLB.ERROR impacts the processing performed by Runtime Cycle as follows: Automatic processing (edit, validation, or update) is not performed if the value of GLB.ERROR is set to *****. If GLB.ERROR is set to ***** at the end of Main logic, the automatic database update is not done. GLB.ERROR is initialized to spaces at the beginning of both Pre-Screen and Pre-LINC logic. For this reason automatic processing in Pre-Screen logic is done even if GLB.ERROR has been set to ***** in prior Pre-LINC or Main logic. A RECALL; or MESSAGE; command performed in Pre-LINC or Main logic will set GLB.ERROR to ***** and cause Pre-Screen processing to be bypassed. An explicit MOVE; of ***** to GLB.ERROR, however, will not cause Pre-Screen processing to be bypassed if Refresh is set for the Ispec B 3
370 Understanding the Runtime Cycle If GLB.SPACES is moved to GLB.ERROR following the execution of a RECALL; or MESSAGE; command, then database updates will be resumed, including automatic update after Main logic, and Pre-Screen processing will be performed if Refresh is set for the Ispec. If updates in Pre-LINC or Main logic are performed successfully, the message SUCCESSFUL ENTRY is displayed on the status line. However, if updates are disabled because GLB.ERROR is set to *****, the status line message reads THIS ENTRY DID NOT UPDATE regardless of any successful update that might take place in the ensuing Pre-Screen logic. This situation is unavoidable because the status line message is output after Main logic, at which point the system cannot know whether Pre-Screen logic will do any updating, successful or otherwise. Runtime Cycle for Copy.From Ispecs The Runtime Cycle is modified for Copy.From Ispecs. The Runtime Cycle for Copy.From Ispecs is illustrated below. terminal Pre-Screen cycle validate update transmit screen errors complete initialize SDs, GSDs Pre Screen logic (PS) initialize SDs, GSDs automatic edit Pre LINC logic (PL) automatic validate edit logic Main logic (LG) automatic update Runtime Cycle for Copy.From Ispecs The process involved in requesting a screen layout is similar to that for other types of Ispecs, except that it is performed multiple times. When the screen layout is transmitted, however, two passes are made through the logic of your Ispec. The first pass is known as the validate phase, and the second pass is the update phase. Requesting a Copy.From Ispec Screen Layout When a Copy.From Ispec screen layout is requested, the following process occurs: 1. Both Global Setup Data Items and Setup Data Items without initial values are initialized for the first copy only. B
371 Understanding the Runtime Cycle 2. Pre-Screen logic is performed once for each copy. 3. The screen layout is sent to the user. For the ways in which an Ispec may be requested, see Requesting an Ispec Screen Layout on page B-2. Transmitting a Copy.From Ispec Screen Layout When the screen layout is transmitted, two passes of the logic are made. The first pass is the validate phase, and the second pass is the update phase. The update phase is only performed if there are no errors in the validate phase. Validate Phase In the validate phase, the following process occurs: 1. Both Global Setup Data Items and Setup Data Items without initial values are initialized for the first copy only. 2. The following steps are performed as a group, once for each copy: If an error in any of steps b through e occurs, the remaining steps are not performed for that copy. a. Fields outside the Copy.From Area are set to the value sent from the user. b. Automatic editing is performed. c. Pre-LINC logic is performed. d. Automatic validation is performed. e. Edit logic is performed. Errors occurring in one copy never affect the processing of other copies. 3. If errors were detected in any copy, they are returned to the user. All error messages are stored until all copies have been processed. If a RECALL; command was encountered in any copy, the specified Ispec is recalled. Only the last RECALL; command is executed (after all copies have been processed). If no errors or RECALL; commands were encountered, and the System Data Item GLB.ERROR has the value of the System Data Item GLB.SPACES, the update phase is then performed. Update Phase In the update phase, the following process occurs: 1. Both Global Setup Data Items and Setup Data Items without initial values are initialized again for the first copy only B 5
372 Understanding the Runtime Cycle 2. The following steps are performed as a group, once for each copy: a. Fields outside the Copy.From Area are set to the values sent from the terminal. b. Automatic editing is performed again. c. Pre-LINC logic is performed again. d. Automatic validation is performed again. e. Edit logic is performed again. f. Main logic is performed. g. If the System Data Item GLB.ERROR has the value of the System Data Item GLB.SPACES, the automatic update is performed. 3. At the end of the update phase, one of three actions will be performed: An Ispec will be recalled. The current Ispec will be refreshed. The Select Ispec dialog box will be displayed. Note: An END.EXIT; command causes processing to stop at that point for the current type of logic section only (Pre-LINC, Edit, or Main logic). It has no effect on the processing of subsequent copies. Using Copy.From Ispecs The Copy.From facility provides a powerful means of displaying or entering multiple lines of data from one screen. This feature is invoked from the Ispec Options dialog box by indicating the lines to be repeated in the Copy from line # and Copy to line # fields, and the number of copies in the Max copies field. Invoking the Copy.From feature has three effects: The lines defined are repeated a specified number of times in the screen layout. The area they occupy is referred to as the Copy.From Area. You can set the display attributes for each line independently in the Display Attributes Dialog Box. Ispec logic is performed once for each group of repeated lines. Each group of repeated lines, plus those fields outside the Copy.From Area, is treated as if it is transmitted separately. B
373 Understanding the Runtime Cycle Using Copy.From for Inquiry The following example fills the screen with customer details, starting from a value stored in the System Data Item GLB.WORK (which is assumed to have been set up elsewhere). Business Segment GSD; GSD-WORK GROUP GSD; G-NAME LE; 20 GSD; G=NXTISP LE; 5 END.GROUP; Definition EVENT; NAMEQ USAGE; INPUT REFRESH; COPY.FROM; 6 COPY.TO; 6 MAX.COPIES; 15 Data Items DATA; STARTNAME LINE; 4 :: Above copy area DATA; CUSTOMER LINE; 6 NOE; LINK;IF.PRESENT DATA; NAM LINE; 6 US; INQUIRY Pre-Screen Logic ::The SERIAL option causes the DETERMINE command to ::start at the next record for subsequent copies. ::MOVEs are done inside the DETERMINE so that nothing ::is displayed if no records are found. DETERMINE; FROM CUSTNAMES (G-NAME) SERIAL; ::G-NAME comes from GLB.WORK automatically MOVE; CUST.CUSTOMER CUSTOMER MOVE; CUST.NAM NAM BREAK; END; DO.WHEN; GLB.COPY = GLB.MAXCOPY MOVE; CUST.NAM STARTNAME END; ::There is no requirement for a RECALL command in Pre-Screen logic Main Logic ::Allow user to transmit again with a different starting value DO.WHEN; GLB.COPY = GLB.MAXCOPY MOVE; STARTNAME G-NAME END; ::This will flow through to GLB.WORK In this example, all the inquiry logic is in Pre-Screen logic. This means that when the screen is first received, it will contain data. The following example shows how Main logic may be used to start the same inquiry. In this case the user must enter a value in the STARTNAME field to begin the inquiry. An Ispec named DUMMY is used to recall the next Ispec. (A DUMMY Ispec can also be used for security checking.) B 7
374 Understanding the Runtime Cycle Pre-Screen Logic Pre-Screen logic is used for inquiry, and can be invoked from the screen as described in the previous example. Main Logic MOVE; STARTNAME MOVE; ISPEC RECALL; (DUMMY) G-NAME G-NXTISP Pre-Screen Logic for DUMMY Ispec RECALL; G-NXTISP Using Copy.From for Updating In the following example, the screen for the INGDS Event accepts multiple inward goods entries for a given supplier. The PRODUCT and SUPPLIER fields are validated automatically, as they are Ordinates of Standard Components. The Data Items are defined in a Data Dictionary, which is why their edit attributes are not defined here. If all validation is successful, the stock on hand figure is updated, and a record is written to the database for each copy. Blank lines do not create records because the System Data Item GLB.ERROR is used to suppress the automatic update phase. Profile PROFILE; ON-HAND EVENT; SALE EVENT; INGDS ORDINATE; PRODUCT ORDINATE; TRANDATE ORDINATE; TRANTIME ORDINATE; LINENO Event EVENT; INGDS USAGE; IO COPY.FROM; 6 COPY.TO; 6 MAX.COPIES; 10 Data Items DATA; SUPPLIER LINE; 4 DATA; PRODUCT LINE; 6 DATA; QUANTITY LINE; 6 DATA; STOCKBAL US; OUTPUT DATA; TRANDATE US; OUTPUT DATA; TRANTIME US; OUTPUT DATA; LINENO US; OUTPUT LINK; IF.PRESENT B
375 Understanding the Runtime Cycle Pre-LINC Logic ::All validation of data input should be within Pre-LINC or Edit logic ::The RECALL, AUTO and FLAG commands may not be used in Edit logic DO.WHEN; PRODUCT = GLB.SPACES AND DO.WHEN; QUANTITY NOT = GLB.ZEROS MESSAGE; ERROR (Product must be entered) END.EXIT; DO.WHEN; PRODUCT NOT = GLB.SPACES AND DO.WHEN; QUANTITY = GLB.ZEROS MESSAGE; ERROR (Quantity must be entered) END.EXIT; ::Only Edit logic may contain MESSAGE; commands ::This logic inhibits automatic update for blank lines. The END.EXIT command ::stops processing for the current copy but does not affect subsequent copies. DO.WHEN; PRODUCT = GLB.SPACES AND DO.WHEN; QUANTITY = GLB.SPACES MOVE; (*****) GLB.ERROR END.EXIT; Main Logic ::Main logic updates the USAGE;OUTPUT fields ::G-NINE is a Global SD with an initial value of ( ) MOVE; PROD.STOCKBAL SD-STOCKBAL ADD; QUANTITY SD-STOCKBAL FLAG; SD-STOCKBAL PROD.STOCKBAL MOVE; GLB.TIME TRANTIME DATE.CONVERT; INPUT-DATE FORMAT; DDMMMYY MOVE; GLB.DC-DAYNUM TRANDATE MOVE; GLB.COPY LINENO ::INGDS record automatically written to the database for the current copy ::if GLB.ERROR not set Hints and Tips GLB.COPY and GLB.MAXCOPY The System Data Items GLB.COPY and GLB.MAXCOPY are used with Copy.From Ispecs. GLB.COPY contains the value of the current copy, and GLB.MAXCOPY contains the value of the maximum number of copies. Using LINK; IF.PRESENT and NO.LOOKUP Use the LINK;IF.PRESENT attribute on all Ordinates in the Copy.From Area. This inhibits automatic validation when no Ordinate values are entered. To prevent automatic validation even when a value is entered, use the NO.LOOKUP; attribute, particularly for Automaint Memo Components where a number of items are defined as Ordinates of the Automaint Profile B 9
376 Understanding the Runtime Cycle Setup Data Initialization Setup Data Items without an initial value are initialized before Pre-Screen and before Pre- LINC logic, when the value of the System Data Item GLB.COPY is 1 (that is, in the first cycle). To accumulate a value between copies, use a Global Setup Data Item and save it in GLB.WORK to maintain compatibility with host Enterprise Application Systems. Screen Area Initialization Outside the Copy.From Area Fields outside the Copy.From Area are set to the value transmitted by the user at the beginning of each copy. To move values to fields outside the Copy.From Area, and subsequently display these fields, the System Data Item GLB.COPY must have the value of the System Data Item GLB.MAXCOPY (the last cycle). For example: DW; GLB.COPY = GLB.MAXCOPY MOVE; DATANON-COPY-FIELD END; Accumulating a value between copies and displaying it in a field outside the Copy.From Area requires two steps: 1. Use a Global Setup Data Item to accumulate the value. This has to be stored in GLB.WORK to prevent other users from amending your data. 2. Move the Global Setup Data Item to the field on the screen when GLB.COPY has the value of the System Data Item GLB.MAXCOPY. Ensure that you include a RECALL; command, or the Refresh option if you want Pre- Screen logic to be performed. Copy.From Area If data is moved into the Copy.From Area in Main logic and subsequently displayed, one RECALL; command is sufficient for all copies to be displayed. For example, the following Main Logic would display all the required data. DETERMINE; FROM STARTNAME (CUSTNAMES) SERIAL; MOVE; CUST.NAME NAME MOVE; CUST.ADDRESS ADDRESS MOVE; CUST.NUMBER NUMBER BREAK; END; DO.WHEN; GLB.COPY = GLB.MAXCOPY MOVE; CUST.NAME STARTNAME END; RECALL; B
377 Understanding the Runtime Cycle Using the SERIAL; Command Option The SERIAL; command option must be executed in the first cycle of logic when the System Data Item GLB.COPY has a value of 1. Failure to do this can give unpredictable results. In the following example, two values are required from a Profile for each value of GLB.COPY. Event Definition EVENT; NAMEQ USAGE; INPUT REFRESH; COPY.FROM; 6 COPY.TO; 6 MAX.COPIES; 15 Data Items DATA; STARTNAME LINE; 4 :: Above copy area DATA; CUSTOMER1 LINE; 6 NOE; LINK; IF.PRESENT DATA; CUSTOMER2 LINE; 6 NOE; LINK; IF.PRESENT SD; SD-COUNT LENGTH; 2 EDIT; N Main Logic DETERMINE; FROM STARTNAME (CUSTNAMES) SERIAL; DO.WHEN; SD-COUNT = GLB.ZEROS MOVE; CUST.CUSTOMER CUSTOMER1 MOVE; CUST.NAM NAME1 END; DO.WHEN; SD-COUNT = (1) MOVE; CUST.CUSTOMER CUSTOMER2 MOVE; CUST.NAM NAME2 BREAK; END; ADD; (1) SD-COUNT END; Caution If the SERIAL; option is used in accessing a Profile, then that Profile must not be used elsewhere in the Ispec. This includes repeated accesses of the same command (inside the loop created by a BEGIN.LOOP; command, for example). If you include more than one SERIAL; read, subsequent reads will not access the same record as the first. Using the System Data Item GLB.ERROR In a Usage Input-Output Ispec, GLB.ERROR may be used to suppress automatic update on those copies for which no data has been entered. This should not be performed in Edit logic. This is because if GLB.ERROR is set anywhere in the validate phase, the entire update phase is inhibited for all copies B 11
378 Understanding the Runtime Cycle In the following example, if an error occurs, the MESSAGE; command sets GLB.ERROR to *****. Ispec Definition EVENT; SALE USAGE; IO COPY.FROM; 10 COPY.TO; 10 MAX.COPIES; 10 Data Items DATA; CUSTOMER LINE; 6 DATA; PRODUCT LINE; 10 DATA; QUANTITY LINE; 10 Pre-LINC Logic :The following conditions detect errors DO.WHEN; PRODUCT = GLB.SPACES AND DO.WHEN; QUANTITY NOT = GLB.ZEROS MESSAGE; ERROR (Product must be entered) END.EXIT; DO.WHEN; PRODUCT NOT = GLB.SPACES AND DO.WHEN; QUANTITY = GLB.ZEROS MESSAGE; ERROR (Quantity must be entered) END.EXIT; Main Logic :This condition prevents automatic update when there is no data :It must be outside Edit logic; otherwise the validate phase will fail DO.WHEN; PRODUCT = GLB.SPACES AND DO.WHEN; QUANTITY = GLB.ZEROS MOVE; (*****) GLB.ERROR END.EXIT; MULTIPLY; PROD.PRICE QUANTITY GIVING; AMOUNT Using the END.EXIT; Command The use of the END.EXIT; command has no effect on the processing of subsequent copies. In Pre-Screen logic, an END.EXIT; command will cause processing to stop for the current copy, but subsequent copies will be processed. In Pre-LINC logic, if GLB.ERROR is set to ***** and an END.EXIT; command is encountered, then processing will stop for the current copy, but subsequent copies will be processed. In Pre-LINC logic, if GLB.ERROR is not set and an END.EXIT; command is encountered, then processing will skip to the next logic section (automatic validation) for the current copy. B
379 Understanding the Runtime Cycle In Edit logic, if an END.EXIT; command is encountered: The remainder of this copy is not validated. Processing proceeds to the Main logic for this copy unless GLB.ERROR is set to *****. Subsequent copies are validated. In Main logic, if GLB.ERROR is set to ***** and an END.EXIT; command is encountered, then processing will stop for the current copy but subsequent copies will be processed. In Main logic, if GLB.ERROR is not set and an END.EXIT; command encountered, processing will skip to the next logic section (automatic update) for the current copy. Validation Across Copies Consider the following example. Profile PROFILE; ON-HAND EVENT; SALE EVENT; INGDS ORDINATE; PRODUCT ORDINATE; TRANDATE ORDINATE; TRANTIME ORDINATE; LINENO Event EVENT; SALE USAGE; IO COPY.FROM; 8 COPY.TO; 8 MAX.COPIES; 10 Data Items DATA; CUSTOMER LINE; 6 DATA; PRODUCT LINE; 8 DATA; QUANTITY LINE; 8 DATA; STOCKBAL US;OUTPUT DATA; TRANDATE US;OUTPUT DATA; TRANTIME US;OUTPUT DATA; LINENO US;OUTPUT Pre-LINC Logic :SD; SD-9 ( ) ED; N DT; LAST ON-HAND (PRODUCT SD-9 SD-9 SD-9) SECURE; DO.WHEN; EVENT.PRODUCT = PRODUCT AND DO.WHEN; GLB.STATUS NOT = (*****) MOVE; EVENT.STOCKBAL STOCKBAL END; DO.WHEN; QUANTITY > STOCKBAL MESSAGE; ERROR (Insufficient Stock) END.EXIT; If the same product is only ever entered once on a given screen, this logic will work as expected B 13
380 Understanding the Runtime Cycle However, if a product is entered on more than one line, it is possible to get unpredictable results. For example, suppose there are 100 units of product on hand. A user could enter two lines for this product, one for 80 units and one for 60 units. During the validate phase, it would appear there is sufficient stock for both these entries. But after the first copy is updated, STOCKBAL is reduced to 20 units, and so the condition QUANTITY > STOCKBAL is true for the second entry. But since messages are ignored during the update phase, the entry would be processed anyway. STOCKBAL must be updated after every copy, otherwise you may attempt to sell stock that you don't have. A better way of coding this is as follows: Global Setup Data Items GSD; G-PROD SAS; PRODUCT STB; G-COUNT (25) GSD; G-QTY SAS; QUANTITY STL; G-PROD Pre-LINC Logic : SD; SD-9 ( ) ED; N DETERMINE; LAST ON-HAND (PRODUCT SD-9 SD-9 SD-9) SECURE; DO.WHEN; EVENT.PRODUCT = PRODUCT AND DO.WHEN; GLB.STATUS NOT = (*****) MOVE; EVENT.STOCKBAL STOCKBAL END; LOOK.UP; PROODUCT (PROD) : This could be automatic or LIFP DO.WHEN; QTY > PROD.STOCKBAL MESSAGE; ERROR (INSUFFICIENT STOCK) END.EXIT; Main Logic DO.WHEN; GLB.ERROR = GLB.SPACES MOVE; PROD.STOCKBALSD-STOCKBAL SUBTRACT; STOCKBALSD-STOCKBAL FLAG; SD-STOCKBALPROD.STOCKBAL END; B
381 Appendix C Designing and Testing Forms with Presentation Client Enterprise Application Developer provides development and runtime integration with the Graphical Interface Workbench environment. You can also use the Remote Access Server to connect directly to your Developer Test environment from Graphical Interface Workbench. For details on configuring the Remote Access Server, see your Unisys Enterprise Application Remote Access Guide. Workbench offers three facilities for developing and testing forms: Developer to Graphical Interface Workbench Use this facility to move graphical forms from Developer to Workbench for testing. Testing may then be performed using either the Enterprise Application host or User runtime environments. Graphical Interface Workbench to Developer Use this facility to move graphical forms from Workbench to Developer. This provides a means of consolidating all graphical forms into a single repository. Graphical Interface Workbench and Developer Testing Use this facility to perform system integration testing without connecting to a host. Test the entire runtime interface from Workbench running on the User environment. You can run both Workbench forms and Workbench executables in a Workbench-to- Developer test session, with test data stored in a Developer Test database. You can test an enhanced forms/client environment using Developer Test as if it were a host environment. The remainder of this section explains how to transfer forms between Developer and Workbench, and how to use the Workbench-Developer test facility. Version Compatibility Any Developer 3.n version will work with any Graphical Interface Workbench or PowerClient 3Rn version, although functionality introduced in a later version of one product will not be available in an earlier version of the other C 1
382 Designing and Testing Forms with Presentation Client Before You Begin Before using Developer to Workbench and Workbench to Developer, ensure: Graphical Interface Workbench is installed on your workstation. The LDAPATH parameter is defined in the [DWLINC] section of PCE.INI. Developer must not be open. Handling Spaces in Path Names When a path name for Developer contains blanks, specify the path names in a Graphic Interface Developer script as follows: Enclose the LINC.INI and Repository path names in double quotes. For example: LINC.INI path = "G:\Developer 3.2\Work" Do not enclose the Developer Working Directory path name in quotes. For example: Developer Working Directory = G:\Developer 3.2\Work The contents of the LINC.INI path and Developer Repository path fields are passed directly to Developer Test as command line arguments and therefore require quotes if the path contains spaces. The Developer Working Directory field is used directly by Graphic Interface Developer to change the current working directory before running Developer Test. No quotes are required. Transferring Forms from Developer to Workbench This subsection describes how to use the Developer to Graphical Interface Workbench utility to move forms from Developer to Workbench. Capabilities and Restrictions There are differences in the way that images and files for populating list boxes are specified in Developer compared with Workbench. In Developer files and images are specified with DOS path names; in Workbench they are specified with free-form Workbench repository object names of up to 24 characters. Developer enables you to specify a Workbench repository object name in the presentation attributes for a Data Item. When you transfer forms using the Developer to Workbench utility, you no longer have to specify the repository name for each object within Workbench. However, it is still your responsibility to populate the Workbench partition with files (for list boxes) or images by using the Workbench Admin functions. This is required even if you have specified a Workbench repository object name in the Developer presentation attributes for the Data Item. Developer to Workbench does not transfer Teach screens. Developer to Workbench does not transfer Big Buffer Ispecs greater than bytes. C
383 Designing and Testing Forms with Presentation Client Developer to Workbench does not transfer long Object names if these are used in your Developer Model. Forms created with the Character mode Painter in Developer may appear slightly different when viewed in Workbench. This is because Character mode is only intended to be a representation of a terminal screen, not an exact form. Forms created with the Graphical mode Painter will display exactly the same in both Developer Test and Workbench. Procedure You can use this procedure to: Transfer graphical forms over the top of pre-existing forms Create a new Workbench partition from scratch, complete with additional files. To create a new Workbench partition: 1. Start the Developer to Workbench utility. 2. Select the Business Segment from which forms are to be copied to Workbench. 3. Enter the name of the Workbench partition to which you want to copy the forms. You can enter either an existing partition name or a new partition name. If the partition name does not exist in Workbench, the system will automatically create the partition for you, complete with additional files. 4. Select the corresponding level of Graphical Interface Workbench or PowerClient being used from the Version list box. 5. Select one or more Ispecs to copy from the Forms list box. Note: Big Buffer Ispecs greater than bytes cannot be transferred. If You want to copy forms in a language other than the primary (default) Developer language You want a list of all Report names to be copied to Workbench The Target Host selected in the Target Host radio button group is not the one you want Then Select that language from the Language list box. Check the All Report Names check box. Select the correct Target Host. 6. Start the transfer C 3
384 Designing and Testing Forms with Presentation Client Transferring Forms from Workbench to Developer The Workbench to Developer utility enables you to transfer graphical forms from Workbench to Developer. This enables you to baseline graphical forms in Developer now that it supports the same functionality as the Graphical Interface Developer. That is, forms that you have modified in Workbench can now be moved back to Enterprise Application Developer if you wish to maintain all the forms for that system in one place. The Workbench to Developer utility can only transfer traditional Workbench forms, not forms created with PowerBuilder or VisualBasic. The Workbench to Developer utility extracts the forms to an Interchange (LCIF) file which can then be loaded into Developer. When Developer loads a Workbench to Developer extract file: 1. Before the load begins, Developer Load strips the Ispec display text but not the Insertable Global Logics display text. 2. All display text is loaded. 3. The graphic formats of Global Logic Data Items are not loaded because they belong to the inserted Global Logics, not to the Ispec, and the Workbench to Developer load is done at Ispec level. 4. Entries are generated in the load error file only if an incoming Data Item does not match a Data Item associated with the Ispec (either as an Ispec Data Item or a Global Logic Data Item). Developer Load does not load the unmatched Data Item. Note: Before using the Workbench to Developer utility, ensure the Workbench directory (for example, C:\PCE\BIN) is included in the Path statement or the Path environment variable of each Developer workstation. This enables Developer utilities to import and export GUI screens to and from Workbench. Restrictions Unlike a normal load into Developer, the loading of an LCIF file created by the Workbench to Developer utility has a specific set of conditions associated with it. Extract File A Workbench to Developer extract file: Only loads into an existing Business Segment Only loads graphic formats for existing Ispecs Only loads graphic formats for Data Items that exist and belong to the Ispec Does not add or delete Data Items C
385 Designing and Testing Forms with Presentation Client Global Logics Workbench forms do not store data about the structure of Ispecs. Before loading a Workbench to Developer extract file you should: Check if the Ispec contains Global Logics. If it does, check where they are positioned. Check which Data Items belong to the Ispec and which belong to the Global Logics. Developer does not load graphical presentations of Data Items in Global Logics. This is because Developer maintains a single presentation of items in insertable Global Logics, whereas Workbench maintains items separately on each Ispec form. The presentation of Global Logics must be defined using the Developer Painter. Transferring Attributes You may need to consider the following behavior: Password If the Password attribute is set for a Data Item in Graphical Interface Workbench, the Password option is set in Developer when the extract file is loaded. Protected If the Protected attribute is set for a Data Item in Graphical Interface Workbench, the Not Entered option is not set in Developer when the extract file is loaded. Multiline In Graphical Interface Workbench all fields are treated as multiline. However, when an extract file is loaded into Developer the Multiline option is not set. Transferring Forms Using Workbench to Developer To transfer forms: 1. Start the Workbench to Developer utility. 2. Select the source Workbench partition and then the forms you want to extract. 3. Enter the name of the destination Business Segment in Developer. 4. Enter the name of the extract file to be created and its directory location. 5. When you have selected all the required forms, click on the Check Out button. The forms are extracted to the specified file. 6. Start Developer, select the Load option from the File menu, and specify the file to be loaded. Testing Graphical Interface Workbench Forms This subsection describes how to set up and use the Graphical Interface Workbench tool called Enterprise Application Workbench to test forms in a Developer Test session C 5
386 Designing and Testing Forms with Presentation Client Prerequisites Before you can run a test session from the Enterprise Application Workbench, you must ensure that several prerequisites have been met: Communication paths must be set up between Graphical Interface Workbench and Developer, using Developer Test's Remote Access Server (RATL protocol) or the 32 bit version of INFOConnect Connectivity Services. A full Graphical Interface Workbench partition must be created to hold the forms or System you want to test. The System partition must be correctly set up in the Workbench repository. This may be done, for example, by a full Developer to Graphical Interface Workbench load with data format files. A corresponding Business Segment and Developer Test database must have been created in Developer and Developer Test respectively. Capabilities and Limitations The following describes what you can do in a Workbench-Developer Test session: Perform system integration testing of your entire user runtime system, with Developer Test acting as if it were the host. Open and close sessions from the Enterprise Application Workbench. Switch to and use the Developer Test Debugger. Access a test database deloyed on the host. The following describes what you cannot do in a Presentation Client-Developer Test session: Open or close a session from within Developer Test. Use the Developer Test database utilities. Upload anything from the Presentation Client to Developer Test. Download forms or images from Developer to Enterprise Application Workbench. Transfer forms to the Presentation Client repository with the Developer to Graphical Interface Workbench utility. Use INFOConnect to test a Big Buffer Ispec with a current size that exceeds 1987 bytes. Note: To avoid this limitation, use Developer Test's Remote Access Server (RATL protocol) instead of INFOConnect. Use Form and Listbox Upload. Run Reports. Use ROC or ADHOC. Use system commands. C
387 Designing and Testing Forms with Presentation Client Setting Up Communications For Developer and the Enterprise Application Workbench to be able to communicate with each other and run the test facility: Two local communication paths must be configured in INFOConnect Connectivity Services to enable application-to-application communications on the same workstation. The LDAPATH parameter must be defined in the [DWLINC] section of PCE.INI. It must be set to the path of the Developer installation directory. For example: LDAPATH=C:\Program Files\Enterprise Application Developer The Developer installation directory is the directory that contains Developer executables. Enterprise Application Workbench requires this information so it can find and execute the correct version of the Developer Test executable file (LINCRUN.EXE). See Workbench s Readme.txt and Readme32.txt to obtain the latest information and any known issues regarding the use of INFOConnect with Workbench. Configuring INFOConnect Paths between Developer and Graphical Interface Workbench You will need to define a server path and a client path to obtain application-to-application connectivity between Developer and Workbench on your workstation. To do this: 1. Start INFOConnect Manager. 2. Login as the Administrator. Note: If you do not login as the Administrator, path template options will not be available. 3. Choose Paths from the Configure menu. The Paths dialog box is displayed. 4. Choose the Add button to add the server path. The Add Path dialog box is displayed. 5. Enter a name for the server path in the Path ID field; for example LDASERVER. 6. Select Local from the Path Template list. 7. Ensure that the Hidden check box is not checked and choose OK. The Local External-Interface Configuration dialog box is displayed. 8. Select the Server Initiator radio button and choose OK. 9. Choose the Add button to add the client path. The Add Path dialog box is displayed. 10. Enter a name for the client path in the Path ID field; for example LDACLIENT. 11. Select Local from the Path Template list. 12. Ensure that the Hidden check box is not checked and choose OK. The Local External-Interface Configuration dialog box is displayed C 7
388 Designing and Testing Forms with Presentation Client 13. Select the Client Initiator radio button and choose OK. You can now create scripts in Workbench that map onto the new INFOConnect paths. Setting Up Scripts for Graphical Interface Workbench to Developer Testing Graphical Interface Workbench requires that at least two types of scripts are created to communicate with Developer Test. These scripts will use the INFOConnect paths you created earlier to connect to Developer. Note: There is only one server script required but many client scripts. That is, you can define scripts to handle multiple client sessions with Developer Business Segments. Note: All users running Workbench to Developer test sessions must have access to required client scripts and to the server script, LDASERVER. To create the server script for Graphical Interface Workbench to Developer connectivity: 1. Choose Create Script from the User, Script Administration menu from within Workbench. 2. Enter LDASERVER in the User Script Name field and choose OK. The server script must have the name LDASERVER (in upper case). This will be the server script that enables Developer Test to communicate with Workbench. 3. Select Developer Server from the master scripts template list and choose Select. 4. Select the path defined as the server path (for example LDASERVER) from the INFOConnect Path dialog box and choose OK. Developer will be acting as the server in the Workbench-Developer relationship. 5. Select OK from the script dialog box. Ignore all fields in this dialog box. To create one or more client scripts for Graphical Interface Workbench to Developer connectivity: 1. Choose Create Script from the User, Script Administration menu from within Workbench. 2. Enter the script name in the User Script Name field and choose OK. Note: A rule of thumb is to call the script and partition name the same name as the Business Segment or System. 3. Select the appropriate Developer Client master script template from the Selection dialog box, and choose Select. If your Workbench partition is in the 2200/UNIX/Windows based format, select the Developer Client-2200/UNIX/Windows master script template. If your partition is in the MCP based format, select the Developer Client-A Series script template. A 2200/UNIX/Windows format partition is created by a Developer to Graphical Interface Workbench transfer with the 2200/UNIX/NT format check box checked, or by downloading from an OS2200, UNIX or Windows operating system host. C
389 Designing and Testing Forms with Presentation Client 4. Select the client path you defined in INFOConnect (for example LDACLIENT ) from the INFOConnect Path dialog box and choose OK. 5. Specify the Developer Business Segment name, partition name, file path to the location of LINC.INI, and location of the Developer working directory in the script dialog box. Do not enter a Developer Repository Path unless it is a different repository from the one identified in LINC.INI. 6. Repeat steps 1-5 for each Business Segment test session you want to run. For example you may want to run test sessions with several different Business Segments. Running a Test Session from Enterprise Application Workbench to Developer Test Before you run your test session: 1. Ensure that the Developer and Graphical Interface Workbench versions used are compatible. See Version Compatibility on page C Ensure that the INFOConnect paths have been created and configured as follows: Path LDACLIENT Path Template = ôapplication to Application Communicationsö; Hidden path option = off (unchecked) Path LDASERVER Path Template = ôapplication to Application Communicationsö; Hidden path option = off (unchecked) 3. Ensure that the LDAPATH parameter has been defined with a valid Developer installation path. This parameter resides in the [DWLINC] section of the PCE.INI file located in the C:\WINNT directory. 4. Ensure that the Workbench LDASERVER script has been created. 5. Ensure that the Workbench LDACLIENT script has been created and that the Business Segment, Partition Name, LINC.INI Path, and Developer Working Directory have been specified correctly. For example: Business Segment = BS1 Partition Name = BS1 LINC.INI Path = c:\lda23620\work Developer Working Directory = c:\lda23620\work 6. Ensure that a Business Segment exists in Developer and a corresponding runtime database exists in Developer Test. 7. Start the Developer to Graphical Interface Workbench - Transfer utility. Ensure that the Transfer data format files option is selected, and then perform the transfer C 9
390 Designing and Testing Forms with Presentation Client To run the test session: 1. Start the Enterprise Application Workbench from Graphical Interface Workbench. 2. Select the Open Session option from the File menu, and select the Business Segment script that matches the system you want to test. Choose Select. The system opens a session with Developer Test, as if it were a host environment. You will see a status message informing you that you are connecting to the host. The Fireup Ispec for that system is displayed. 3. Run your test session. Note: If your hardware is too slow for the intended system and you try to run a test session connecting Graphical Interface Workbench to Developer Test, an Enterprise Application Workbench dialog box is displayed when you open the Graphical Interface Workbench session. The dialog box shows the following error message, A timeout occurred when trying to send host data. To correct this error you must increase the HostTimeout parameter in the [DWLINC] section of the PCE.INI file to a value greater than the default of 120. Accessing a Deployed Test Database Through Developer Test To access a test host database from Graphical Interface Workbench through Developer Test: 1. Perform all the necessary set up activities for accessing a test database as described in Preparing Your System in Developer on page and Preparing to Connect to a Test Database on a Host Machine on page Transfer the Business Segment to Graphical Interface Workbench using the Developer to Workbench utility. See Transferring Forms from Developer to Workbench on page C Using the Developer Test Remote Server Configurator (Remote Access Server), create a View for your System, ensuring you complete the fields in the Host Data Access group. See your Enterprise Application Remote Access Guide for full details of creating Views. 4. Start the Developer Test Component Enabler Listener from the Windows Start menu, by selecting Programs > Enterprise Application Developer > Developer Test Remote Server > Server. 5. In Graphical Interface Workbench, create a user script. See Using the Remote Access Server with Graphical Interface Workbench in your Enterprise Application Remote Access Guide for details. 6. Start Enterprise Application Workbench and initiate a session using the created script. Developer Test is started via the Remote Access Server View you created in step 3. C
391 Designing and Testing Forms with Presentation Client 7. A series of login dialog boxes for the host are displayed. Enter the required details in each dialog box and click OK. Developer Test retrieves the required System details and attempts to connect to the deployed test database. Either the Fire-up Ispec screen or the Select a Screen dialog box is displayed. Troubleshooting If you're unable to connect to a deployed test database, use the following suggestions to help diagnose the cause: Try connecting to the deployed test database directly from Developer Test, without using Graphical Interface Workbench. Try connecting remotely using only the local test database. If Graphical Interface Workbench displays the message PSWCOM Error: The Host Connection has been closed. This may be due to incorrect login details, or a network problem, the most likely cause is one of the following: An authentication error due to the user entering incorrect login details. Use Window s Event Viewer to obtain a detailed error description. The error is logged as an information type application event for Ratlsvr.exe. A System/OptionSet does not exist error due to an incorrect System or Option Set value in the View Details dialog box of the Developer Test Remote Server Configurator. When the Developer Test error logging facility is enabled, the error is logged as ERROR : Remote Host Database Access - System:OptionSet = "xxx:yyy" does not exist! C 11
392 Designing and Testing Forms with Presentation Client C
393 Appendix D Related Product Information The publications listed below give additional information about the Developer product. These documents are published by Unisys Corporation and are available on the Internet at Order hardcopy documents online through the Unisys Book Store at Unisys Enterprise Application Developer Installation and Configuration Guide This document provides information on how to install and configure Developer. Unisys Enterprise Application Developer Administration Guide This document provides information on how to perform administration tasks for your Developer system. Unisys Enterprise Application Developer Version Control Guide This document provides information on installing and using the Version Control feature of Developer. Unisys Enterprise Application Builder Guide This document provides information on generating your System from Developer onto a target Runtime host. Unisys Enterprise Application Programming Reference Manual This document provides reference material for the definition of a Specification. Developer Online Help Developer online help is provided as a source of online reference material for developers and online help for users. The help is context-sensitive and contains information for all menus, commands and dialog boxes of Developer D 1
394 Related Product Information D
395 Glossary A access class For Ad Hoc Inquiry, a particular type of user access to queries, defined by a letter (A through Z) or an asterisk (*, for unrestricted access). Also called query class. Action line A field that appears on most screens in mainframe Enterprise Application Systems, enabling fast-track navigation to required functions. Also referred to as the Action field. Activity A group of Objects which together perform a business function. Active Server Page A type of HTML page, sometimes abbreviated to ASP, which can create and run script commands and Active X componnets to create interactive Web pages or Web based applications. Ad Hoc Inquiry An MCP based mainframe facility used for making inquiries on an Enterprise Application Database. Administration Client A tool for administering Enterprise Application user systems and their associated databases. The Administration Client can be used on a remote workstation or on the runtime server. The Administration Client communicates with the Administration Services using Remote Procedure Call (RPC) to perform the requested operations. Administration group A group of user accounts within a Windows domain for people who have privileges to administer Systems, for example, to add a new database to an Enterprise Application environment. The Administrator is a separate role from the Windows Administrator, although the two roles may be performed by the same person. Most administration functions are performed from the Administration Client interface. Administration Guide The manual that contains instructions for administering and operating Enterprise Application Systems on a particular host type Glossary 1
396 Glossary Administration Services The set of Windows services on the runtime server that communicates with Administration Clients using RPC. These services perform various administrative functions on behalf of the Administration Clients. Administrator Person responsible for administration of a computing environment. archive Copy files to a directory as protection against accidental loss, deletion, or damage. Audit Archive File An archive file of audit records. Audit Domain An Audit Domain defines the scope of audit activity for Developer. An Audit Domain can be a Model or a Business Segment. auditing Auditing records events that occur in the Developer and Developer Security environments, providing a history of changes made to the Developer Repository. Audit Store The Audit Store holds audit records. Because the function of auditing is to record operations that affect a Developer Repository, there is one Audit Store for each Repository. Automaint Memo Component A Memo Component with one or more Ordinates defined by a specified Profile (that is referred to as its Automaint Profile). See also Component, Standard Component and Automaint Profile. Automaint Profile The Profile of an Automaint Memo Component that provides automatic access to the records of that Component. See Automaint Memo Component, Profile. Automatic Entry (1) A facility that enables an Ispec to create a record in another Ispec. (2) A facility that enables an Ispec to modify an existing record in a Standard Component, Table Component, or Automaint Memo Component. Not applicable to Copy.From Ispecs. See also Automatic Entry buffer, external Automatic Entry, internal Automatic Entry, HUB. Automatic Entry buffer An area in memory used by the Automatic Entry facility. See Automatic Entry. Automatic Lookup A process where a Component record is automatically read into memory from the database. Glossary
397 Glossary Automatic Profile The Profile created by Developer for a Component with an Ordinate. This Profile cannot be seen in the Model Directory, but can be viewed as part of a System in the Systems Directory. automatic undo management In Oracle, a method for rolling back changes to the database using information stored in an undo tablespace, instead of manual rollback using rollback segments. B Background Run For OS 2200 Systems, a background run that controls certain functions; for example recovery, Report handling, and setting up of Common Banks. There is one Background Run for each Runtime. Background window The window behind the first window you see when Developer is initiated. The Background window provides access to the various functions of Developer. backup banner Make a copy of a database or subset of a database. A system-generated page that prints at the start of a Report and provides control information about that Report. base year The year upon which the DATE.CONVERT; command bases relative day numbers. Base year is defined using the Business Segment dialog box in Developer. It may be accessed through the System Data Item GLB.BASE. See relative day number. Big Buffer Ispec An Ispec capable of receiving input greater than the usual limit of 1920 bytes. See also Ispec. binary bind Object files that may be.int,.gnt,.exe, or.dll files. A runtime transfer using export or import transfers the runtime files, not the source COBOL files. The task of coupling object files with executable files for dynamically linked program code. Ensures that externally referenced procedures or subprograms are available to a main program Glossary 3
398 Glossary breakpoint A feature of the Developer Test Debugger that stops logic execution in response to a certain state of the System. buildable LINCIIDIR The Enterprise Application installation directory is defined by the environment variable LINCIIDIR. A LINCIIDIR that contains the object packages necessary to build executables using object packaging is a buildable LINCIIDIR. A buildable LINCIIDIR is necessary to use object packaging to maintain your Enterprise Application environment. Builder The software used to generate Specifications (Business Models) as applications. Generation is the process of generating a complete set of source files and then compiling and linking those files to create a set of executables. Through Builder, a Developer workstation can generate an application to a target host runtime environment. Builder Client The Builder Client runs on the workstation that initiates the generate process and controls the generation of the System according to its specified elements and options. It also includes the Generate Client/Server interface to the Builder Server. Builder Server The Builder Server runs on the host to which the Builder Client is connected. It compiles the Enterprise Application System generated by the client and provides the runtime environment for the application. Bulk Options A tab on the Business Segment Options dialog boxes in Builder that enables options for several Ispecs, Reports, Profiles, or Global Logics to be defined together. Business Model Repository containing details of Business Segments (Specifications) held by Developer. Business Rules Information entered as text which supports an Element. Business Segment Part of a Model that provides the definition for an Enterprise Application System in Developer. C Change control A method for tracking changes to Specifications. Glossary
399 Glossary Change identifier A alphanumeric value used to identify a single user or user terminal for change control purposes. Applies when the Change Identification option is selected for that Specification. Contrast with Patch identifier. CHG class client Object Changes (CHGs) are used to distribute new features, fixes, customer requests and newly validated versions of support software on the ClearPath OS 2200 platform. See also IC. See access class, security class. A Windows program, typically running on a workstation, that works cooperatively with one or more programs or services running on a server computer. In some cases, the client program may reside on the server computer, but uses the network interfaces to communicate with the server program or service. In Runtime for Windows Operating Systems, there are two distinct types of client: 1. An operational tool, such as the Administration Client, which deploys, manages, and maintains user systems. 2. An end-user client, such as Graphical Interface Workbench, that provides workstation users access to Enterprise Application user systems. This class of client includes user-written clients developed in languages such as C++ and Visual Basic. Client Listener This service listens for and accepts connection requests from the Administration Client. client/server A distributed architecture in which client workstations communicate with servers through a network. For instance, a client typically provides initial processing, data gathering functionality and the user interface. It then communicates the data and requests to a server for further processing. Column name For Ad Hoc Inquiry, an SQL term equivalent to Data Item. compile To create object files from source files. Component (1) A business resource such as a customer, product or vendor. (2) A store of static data about a business resource. Consists of a screen layout and associated logic (Pre-Screen logic, Pre-LINC logic, and Main logic). Together with Events, Components form the fundamental building blocks of a System. See also Ispec, Standard Component, Table Component, Memo Component, Automaint Memo Component Glossary 5
400 Glossary Component Enabler The product with which users can build their own GUI interfaces, or Views, to Systems. These Component Enabler applications use the Remote Access Server to communicate with Systems on the host environment. Component Enabler allows applications to use current Web technology and the Enterprise NT world. See also Remote Access to Enterprise Application. Component Profile For Ad Hoc Inquiry, a Profile over one Component. Contrast with Event Profile. Component record For Ad Hoc Inquiry, an individual database record for a Component. Equivalent in SQL terminology to a row. COMSTP Program A pre-compiled program that contains the necessary logic for routing of user transactions in a MCP based System. COMUS For OS 2200 based Systems, a product used to build Runtime before installation. See SOLAR. Control tables Tables created for the control of an environment within each Oracle database (SID) associated with the environment. Examples are PROCTAB and LSYS. Copy.From Ispec An Ispec with a screen that has a number of identical recurring lines. Transmission of the whole screen produces a separate record in the database for each completed line. See also Ispec. Critical Point A user-specified recovery point within a Report. In the event of a failure, recovery will restore the environment to the last successful Critical Point, then resume execution at the location of the Critical Point. D DAD See Data Display. Data Attribute An attribute of a Data Item. For example, LENGTH, EDIT, BRIGHT. Data Command A command that identifies or creates a Data Item used in a screen layout, Report, or logic. Glossary
401 Glossary Data Dictionary A collective name for the Local and Global data dictionaries. See Local Data Dictionary, Global Data Dictionary. Data Display Optional descriptive text for a Data Item, used in status messages in place of the name of the Data Item. Defined using the Data Display field on the Screen Data Item Data Attributes dialog box. Data Item The variable used to enter, manipulate, store, and display data. For example, Ordinates, Setup Data Items. Database ID The two-character identifier for either an Oracle or SQL Server database. This identifier was previously referred as the Oracle SID. See Oracle SID. Database Management Utility (DMU) A utility that enables you to maintain your Enterprise Application Database. Use DMU to perform such tasks as changing the amount of disk space allocated to database structures, initiate a full or partial database reorganizations (for MCP based Systems), and creating Oracle SIDs (for Systems based on the UNIX operating system). debug settings A set of breakpoint, watch, and debug options that can be saved to a file and loaded into a Developer Test Debugger session as needed. DEPCON The Unisys DEPCON software application is a comprehensive print-management and file distribution solution for mixed-platform networks. Coupling Enterprise Application Environment with DEPCON increases the design possibilities and flexibility of Reports. See the DEPCON Software Configuration and Operations Guide and Using DEPCON Reports in the Enterprise Application Developer User Guide. deploy To implement a set of Enterprise Application executables and a database on a host machine. The result of deployment is the creation of an application on the host. Deployment Server The Windows server on which an application is installed and executed. Does not have Micro Focus COBOL installed. Deployment Services Windows programs installed with Runtime for Windows Operating Systems to perform specific functions, such as listening for and accepting connection requests on behalf of an environment. A collective term for the Administration and Generation services Glossary 7
402 Glossary Design Audit Analyzes a Business Segment, Functional Area, or Activity, and lists any items that may indicate poor design that will impact performance in a generated System. Developer Workstation based development tool for creating and maintaining Business Models (Specifications). From Developer, Business Models are transferred to host based Builder for generation and deployment, or generated directly to a target host. Formerly known as LDA III or LINC Development. Developer Console Developer Console provides a command line interface to Developer and Developer Version Control. This facility allows Developer to run in batch mode, providing the ability to automate time-consuming activities such as loading model files and populating the Developer Repository from the Version Control Bank. For routine processes, a Windows scheduler (for example, WinAT) can be used to start Developer Console automatically. Developer Test A workstation testing environment for Developer which includes a logic Debugger. Formerly known as LINC Development Runtime. Development Environment A collective term for the tools used to design, develop, and generate Enterprise Application Systems. Includes Developer, Builder, and utilities. Development System See Developer and Builder. Differences Report An XML report of the differences found when two files, objects, or revisions, or two versions of a specification are compared. This report can be viewed and printed from an Internet browser, or manipulated as an XML file. Direct Component A Component type that uses a key for direct access to the dataset, saving on the number of Input/Output operations. It has a single numeric Ordinate with a maximum of 8 digits. See Component. Direct Report A Report that uses the Report Output Control System (ROC), and which sends output directly to an output device and not to the ROC database. See also Report Output Control System. Contrast with Standard Report. Display item A string of descriptive information displayed on an Ispec screen layout or Report Frame. Glossary
403 Glossary DLL DMU Dynamic Link Library, contains one or more functions that are compiled, linked, and stored separately from the processes using them. See Database Management Utility. E Editor An Enterprise Application Environment facility for specifying logic for Ispec and Report processing. Element Collective term for the individual parts of the Business Model. An Element may be any of the following: Activity, Functional Area, Language, Object, or Wildcard. Enterprise Application Database The database created in the generation of an Enterprise Application System. Used for storing data. Environment The operating environment and supporting services for applications on a Windows server. Each environment is created by a separate installation of Runtime for Windows Operating Systems. There may be multiple environments on a single Windows server. Each environment includes one or more databases. Each database may contain zero or more user systems. Environment database The database associated with an environment that contains control tables. These tables control the environment for all the user systems in the environment. Synonymous with control tables. Event (1) An activity performed by an organization, for example a sale, purchase, or payment. (2) A store of data about an activity performed. An Event consists of a screen layout and associated logic (Pre-Screen logic, Pre-LINC logic, and Main logic). Together with Components, Events form the fundamental building blocks of a System. See also Ispec. Event file For Ad Hoc Inquiry, the file containing the Event records. Event Profile For Ad Hoc Inquiry, a Profile over one or more Events. Contrast with Component Profile Glossary 9
404 Glossary Event record For Ad Hoc Inquiry, an individual database record for an Event. Equivalent in SQL terminology to a row. Executables Executables are one of two methods of distributing applications to customers. They are the compiled set of application files which are ready to install and run. Contrast this with Objects. EXE file export A Windows native executable file. To copy an Enterprise Application System to a file for transfer to another environment. Extended Language Message System (ELMS) An OS 2200 based facility that provides translatable versions of messages used by software. extent A contiguous block of disk space assigned by Oracle. Extents are used in data segments (table data storage), index segments, rollback segments, and temporary segments. An extent is a unit of database storage space allocation. When an extent is used up, Oracle allocates a new one. External Automatic Entry An Automatic Entry to or from an external source, such as another System. See Automatic Entry, HUB. Contrast with internal Automatic Entry. Extract file A non-database (text) file created or read by a Report. F Filegroup A discrete part of an SQL Server database. Filegroups in the same database can be stored on different physical devices. See tablespace. Fireup Ispec The Ispec that is displayed on your terminal when you sign on to an Enterprise Application System. Forms Translation Utility (FTU) A utility that enables you to modify screen layouts, Teach screens, Data Displays, and translatable Global Setup Data Items of your System without regeneration. FTU can also be used to modify Enterprise Application Software. Glossary
405 Glossary Frame A number of Report lines containing display text and Data Items that is output as a single unit when the Frame is invoked by Report logic. Function Point Analysis A technique for estimating the size of an existing or future information system, using a unit of measurement called a Function Point. Functional Area (1) A group of Activities. (2) A concept used to group Activities for the purpose of loading into Builder. G garbage collection An Administration Client function that aids the compacting of Oracle database tables. Generalized Interface (GLI) A facility that enables a external program to initiate transactions into an Enterprise Application user system. generate Perform the tasks necessary to create an Enterprise Application System on a host, including: Importing Enterprise Application user system files from the development environment or another server Deploying a runtime System and a database Generate Group A specified group of Reports that can be generated together. Generate Set A named set of values for generating a particular System from a Specification; for example, for a particular host type. Generate Threads A number of parallel generate tasks that can be initiated on the workstation. GLI See Generalized Interface. Global Data Dictionary (1) A data dictionary that controls the use of Data Items over all Business Segments. (2) Part of GLOBAL Specification. (3) See also Data Dictionary, Local Data Dictionary Glossary 11
406 Glossary Global Logic Part of a Specification that can be reused in more than one part of your Specification or Business Segment. Inserted into Ispecs, Reports, or Global Logics by using the INSERT; logic command. See Insertable Global Logic, Performable Global Logic. Global Setup Data Block An internal logic block used to group Global Setup Data Items. Grouping Global Setup Data Items for example, by Ispec would mean that when you recompiled that Ispec for generate purposes, only those Global Setup Data Items grouped in that Block would be recompiled, rather than all of them. Global Setup Data Items can only be defined within Global Setup Data Blocks. Global Setup Data Item A type of Setup Data Item that can be used by any Ispec or Report logic within a Specification or Business Segment. Global Setup Items can only be defined within Global Setup Data Blocks. See Setup Data Item, Group Global Setup Data Item. GNT graph The file extension for Micro Focus generated (native instruction set) COBOL code. Files in this format have intermediate compilation and execution times. Contrast with INT. Pictorial representation of a number of Elements and the relationships between the Elements. Provides access to all information supporting the represented Elements. Group Global Setup Data Item A Global Setup Data Item that is a concatenation of a number of other Global Setup Data Items. See Global Setup Data Item. group query For Ad Hoc Inquiry, an SQL format query whose output lines are for groups of related records rather than individual records. The group is defined by including a GROUP BY clause, or by including group functions such as MAX, MIN, SUM, and AVG in the select list. Group Setup Data Item A Setup Data Item that is a concatenation of a number of other Setup Data Items. See Setup Data Item. H Home position Top left corner of a character-based screen. Often used as the position from which commands are entered. Glossary
407 Glossary Home screen For Ad Hoc Inquiry, the base screen from which the main functions are chosen. host Computer on which an Enterprise Application Environment application is running. Host List A list of valid host computers that can be used by a Generate Set. Host Name The name of the specific host to be used for a function. Host Specification The name of the target host to be used for the process, its TCP/IP or network address, and host type. See Host Name. HUB The facility that controls external Automatic Entries between Enterprise Application Systems. See Automatic Entry, external Automatic Entry. HUB Background Run For OS 2200 Systems, a background run that processes external Automatic Entries. There is one Background Run for each Runtime. See also HUB. HUB Listener This service listens for and accepts HUB connection requests from other Enterprise Application user systems. I IC ICP import Interim Corrections (ICs) are used to distribute new features, fixes, customer requests and newly validated versions of support software. See also CHG. See Initial Control Program (for OS 2200 based Systems) and Ispec Control Program (for UNIX based Systems). To copy application files into the directory where they will be deployed. When importing files from another Windows server, the import operation also decompresses the export file into its constituent application files Glossary 13
408 Glossary Initial Control Program (ICP) The program that controls the generated Ispec subprograms in OS 2200 based Systems. Contrast with COMSTP Program (for MCP based Systems) and Ispec Control Program (for UNIX based Systems). Insertable Global Logic A logic sequence and/or a screen layout that can be copied into any number of Ispecs and Reports. Contrast with Performable Global Logic. Installation Guide The manual that contains instructions for installing and configuring Enterprise Application Systems on a particular host type. INT The file extension for a file in Micro Focus interpretive code format. Files in this format compile quickly, but are slow to execute. Contrast with GNT. interdatabase access The accessing of the database of an OS 2200 based System by another OS 2200 based System. internal Automatic Entry An Automatic Entry from within the same Enterprise Application System. See Automatic Entry. Contrast with external Automatic Entry. interrogation point For Ad Hoc Inquiry, a regular interval during query execution when the status of that query is written to the database. Ispec (1) A collective term for Components and Events. In Enterprise Application Environment, an Ispec models an entity or activity in the real world. An Ispec also specifies the user interface, the processing rules, and the database structure to be used to represent it in the deployed user system. (2) A contraction of the term Interface Specification. (3) See also Component, Event. Ispec Control Program (ICP) The program that controls the generated Ispec subprograms in Enterprise Application UNIX based Systems. Contrast with COMSTP Program (for MCP based Systems) and Initial Control Program (for OS 2200 based Systems). K Keyword A Data Item that has multiple data entry fields and Display items. See also Keyword Term Item, Keyword Term Display. Glossary
409 Glossary Keyword Term Display The Display Item associated with a Keyword. See Keyword. Keyword Term Item The Data Item associated with a Keyword. See Keyword. L language A natural language in which text components of the System can appear. The default language is usually English, but can be any language you chose. An application can have up to 14 languages concurrently installed. Users, or the software itself, can choose to display screens, Reports, or prompts in any one of the installed languages. LINCTEMP The temporary directory. Its location is defined by the environment variable LINCTEMP and defaults to <LINC_DIRECTORY>\bin. LINQINQ A user account with read-only privileges used to perform inquiries against Enterprise Application Control and User tables. literal A literal is a value used directly by a System, without requiring any named storage area. A literal may also be used in many logic commands in place of Data Items, and to define the characteristics of Setup Data Items. Local Data Dictionary A data dictionary that controls the use of Data Items within a single Specification. See also Data Dictionary, Global Data Dictionary. lock Inhibit other users from reading and/or updating a specific record or window. Developer has three forms of locking: An automatic soft lock that is set up whenever you attempt to modify an Object. This lock is released when the transaction ends or you cancel the operation. A manual lock that emulates the behavior of the host environment resource locking. If Version Control is installed, a Version lock that is set when an Object is checked out of the Version Control Bank. locked query For Ad Hoc Inquiry, a query that is not available for editing or running because it is currently queued for execution, or its execution has terminated abnormally, or it is being edited Glossary 15
410 Glossary logic Series of commands defined using the Editor that can be executed by an Object such as a Component or an Element. logical printer A logical printer is a printer name specified in a Report. You must map a logical printer to a physical printer before printing. logical reorganization Transforms the data from the existing physical database schema into the format of the newly developed logical schema in memory each time the data is accessed. File formats are not altered. Allows a new database schema to be run against the existing old database schema prior to a physical reorganization. logically deleted A term used to describe the status of an Ispec record that has been deleted from a database as far as all processes are concerned, but is physically still present. Long name Long names of Objects are up to 30 characters and allow double-byte characters, such as Kanji, to be used for an Object's name. They also allow you to give Objects more meaningful names. Long names must be used in conjunction with shorter names which can be used by the host environment. LSM See Security Module. M Main Logic User-specified Ispec logic that is executed after any Pre-LINC logic and automatic editing and validating sequences have been executed. MAINT (1) A System Data Item, stored with each record of every Standard, Table, and Automaint Memo Component, that indicates whether that record is added, changed or deleted. (2) In mainframe Systems, a screen field for every Standard, Table, and Automaint Memo Component used to indicate the database maintenance action request. MCP environment The component of the A Series or ClearPath HMP NX machine that runs the MCP operating system. Memo Component A Component type that has no Ordinate, and which is used to store data of a memorandum nature. See Component, Automaint Memo Component. Glossary
411 Glossary Memo Data Memo-type, optional Ispec data that is stored separately to the primary Ispec records to assist with the optimization of disk usage. Valid for MCP based Systems only. See Ispec. menu format query A query created using the various selection screens of Ad Hoc Inquiry. Contrast with SQL format query. Message Translation Utility (MSGTRANS) A part of the Multilingual System (MLS) that co-ordinates the output of translated messages. MLA Model See Multiple Language Mode. Database containing details of Business Segments held by Developer. A synonym for Repository. Model Directory A graphical representation of the hierarchical structure of the Business Model. An essential part of the Developer navigation facilities. Multilingual System (MLS) An MCP based facility that provides data structures and associated access methods to store and retrieve the translatable text used by software. See also Message Translation Utility. multiple language facilities A collective term for the facilities that enable an Enterprise Application System to be translated and used in up to fifteen different languages, from a single Specification. Multiple Language Mode (MLA) A facility in mainframe Enterprise Application Environment that enables a language name or number to be defined. See multiple language facilities. Multiple Ordinate Memo Component See Automaint Component. N navigation tree In the Administration GUI, a depiction of the Windows domains, servers, environments, databases, and Systems. The navigation tree is updated as the user makes changes to the environment Glossary 17
412 Glossary NOF A facility for interfacing to and from an Enterprise Application System using Non- Formatted Input/Output, a message-oriented interface between an Enterprise Application user system, and usually, an external system and terminal. The interface to Graphical Interface Workbench uses NOF. NOFORM See NOF. Non-Formatted Input/Output (NOF) See NOF. O OBJ Object The file extension for a file in standard object code format. Files in this format compile slowly, but execute quickly. Files in.obj format cannot be executed unless bound. Collective term for a Component, Event, Inquiry, Report, Global Logic, or Profile. object files In Runtime for Windows Operating Systems, the.obj files that result from compiling source files. Object files usually require linking to other program modules before they can be executed. Object Packaging On UNIX Systems, Object Packaging allows the creation of executables from supplied Enterprise Application object files, the installation of Enterprise Application software, the installation of ICs, and the maintenance of your Enterprise Application environment. It also allows the creation of new object and executable packages which can include supplied ICs. Packages can be created for distribution and as backups. Objects (1) Objects are one of two methods of distributing Enterprise Application software to customers. They are the set of object files which must be built into executables on your site before Enterprise Application Environment can be run. Object files are built using Object Packaging. Contrast this with Executables. (2) In Runtime for the Windows 2000 Operating System Administration Client, anything that appears in the navigation tree, including servers, client machines, environments, databases, and user systems. Offline interface A facility for passing batches of high-volume transactions from external systems into an Enterprise Application user system. OLTP See Online Transaction Processing. Glossary
413 Glossary OLTP Buffer Definition file An OLTP Buffer Definition file holds the data format for communicating with external OLTP Servers. OLTP View Ispec In the host environment, an OLTP View Ispec (OVI) is used to store an OLTP View Description file. This file holds the data format for communicating with external OLTP Servers. On Change Statistical Routine A statistical routine (for example, AVERAGE;) that can be performed on a Data Item as part of an ON.CHANGE; logic command. Online Transaction Processing (OLTP) A generic method for transferring transactions between Systems. Oracle Relational database management system used as the underlying database software for Enterprise Application Systems based on the UNIX or Windows operating systems. Oracle is produced by Oracle Corporation. Oracle Hints A facility that allows users to add information to SQL SELECT statements. Correct use may improve database performance, but incorrect use may reduce database performance. Using Oracle Hints in an SQL statement overrides the Oracle Optimizer. Users are able to specify: Which index is used in the database access operation Whether the index should be read in reverse order Oracle SID An occurrence or instance of an Oracle database. The Oracle SID is a 1 or 2 character identifier. An Oracle term for a logical storage area that houses user systems and control tables and may contain one or more databases. The SID identifies a particular database occurrence. See also tablespace. Oracle tablespace A discrete part of an Oracle SID. Tablespaces in the same Oracle SID can be stored on different physical devices. Ordinate The Data Item of a Component that acts as the unique identifier for a record. The access path to individual Component records Glossary 19
414 Glossary P pack A definition of the location where part of a user system or an environment database is stored. This may be either a tablespace or a directory path. Pack Association The Pack Association specifies the location in which the files of the generated System will be stored on the target host computer. Pack View The Pack View in Developer lists all the packs used in the Systems options of the currently open Model. This specifies the Pack associations, or the location in which that part of the System or database is stored. See Pack. Painter patch A Developer facility used to define an Ispec screen layout or Report Frame layout. A set of changes to a Specification made over a period of time by users signing on to Enterprise Application Environment under a specific Patch identifier value. Patch identifier A number used to identify and group changes to a Specification by one or more users. Applies when the Patch identification option is selected for that Specification. Contrast with Change identifier. Performable Global Logic Logic that can be executed by any number of Ispecs and Reports. Contrast with Insertable Global Logic. physical delete Removal of a record from a database or repository. physical reorganization Copies and transforms the physical data from the existing database into a form which matches the new database schema. population Also called Expected Number. The maximum number of records expected to be stored in the database for an Ispec. Pre-LINC Logic User-specified Ispec logic that is executed before the Ispec Main logic. Pre-Screen Logic A section of user-specified Ispec logic that is executed before the screen layout is displayed on the terminal. Glossary
415 Glossary Product Menu Utility Product Menu is a menu-driven utility to access Object Packaging features. See Object Packaging for details of the functions that can be performed with Product Menu. Profile (1) An index to a specified selection of records. (2) A method of providing access to just those records that are required to perform a specific function. (3) A functional view of the database. Profile Data A Data Item that is physically stored in a Profile as well as in its associated Ispec. See also Profile. Profile Ordinate The Data Item by which a Profile accesses individual records. A Profile can have several Profile Ordinates. See also Profile. Q query class See access class. Query Compiler The Ad Hoc Inquiry facility that validates an entered query and transforms it into a standard internal code and format. See also query transformation. Query Front End The Ad Hoc Inquiry user interface that allows a query to be entered. Query Optimizer The Ad Hoc Inquiry facility that selects the most efficient way to access the database for a query. Query Output Handler The Ad Hoc Inquiry facility that enables users to manipulate query output. Query Processor The Ad Hoc Inquiry facility that interprets the query code and runs the query against the database. Query Processor report For Ad Hoc Inquiry, the program that performs the functions of the Query Processor. query transformation For Ad Hoc Inquiry, the process performed by the Query Compiler to convert a validated query into a standard internal form Glossary 21
416 Glossary queued query For Ad Hoc Inquiry, a query waiting for resources to begin execution. R recovery The process of restoring database files from a backup and performing roll-forward recovery from a current transaction log file. Failed Reports must be restarted manually, as they are not automatically restarted by the recovery process. relation name For Ad Hoc Inquiry, an SQL term equivalent to a Component, the Event file, or an Event Profile. Also called a table. relationship An association between two Elements. Relationships may be a result of design (for example, added using a graph) or logic (for example, adding a FLAG; command to an Ispec). relative day number A date expressed as the number of days since January 1 of the base year. The relative day number of January 1 of the base year is zero. See also base year. Remote Access to Enterprise Application The Remote Access server resides on the Runtime host and provides the basis for communication between user Views and Enterprise Application Systems. Can be used with Graphical Interface Workbench as well as Component Enabler Viewer applications. It performs services previously provided by WDP. Formerly known as RATL Server. See Component Enabler, Workstation Driver Program (WDP). reorganization The process by which the physical database for a System is updated to match the logical definition held in the Repository. See also logical reorganization and physical reorganization. Report Part of a Specification generated and used to produce output or to carry out specialized batch processing of a database. Consists of Report Frames and Report Main logic, and a number of options that define the operation and output of the Report. Report Frame Layout that contains display text and Data Items, and some associated logic that is part of a Report. The logic is executed (often to define the Data Items in the layout) and then the layout is included in the Report output. Report Frames are accessed as single units from the logic of Report Frame or from Main logic of the Report. Glossary
417 Glossary Report Group A set of Reports that are generated as a group. All the Reports assigned to the group are generated by selecting the Report Group for generation. Report Initiation Program (RIP) An MCP based utility that enables you to execute a line printer Report or terminal printer Report in batch mode. Report Output Control System (ROC) A utility that provides control over the output of a Report. Repository Database containing details of Business Segments (Specifications) held by Developer. A synonym for Model. reserved words Words reserved for system use. Each architecture has its own set of reserved words. resource locking A facility of the host environment that prevents access to parts of a Specification by more than one user at a time. ROC Background Run For OS 2200 Systems, a background run that identifies Report output requests and spools the output to the required print queue. There is one ROC Background Run for each Runtime. rollback segment In Oracle, a segment that contains an image of data before committing to a transaction. Used for rolling back uncommitted transactions, read consistency, and recovery, as a manual alternative to automatic undo management. row RPC For Ad Hoc Inquiry, an SQL term equivalent to a Component record or an Event record. Remote Procedure Call, a Windows protocol that runs background services that are necessary for the operation of the Administration Client and Runtime for Windows Operating Systems. Runtime A collective term for the software programs required to operate, control and audit an Enterprise Application System and its Database. Runtime platforms The platforms on which applications developed and built using Enterprise Application software runs: Windows 2000, OS 2200, MCP, and the UNIX operating system Glossary 23
418 Glossary S schema screen Database structure. In Developer, a screen is a means of entering a transaction. Screens are usually designed for a single purpose and so each System function will usually have a specific screen. Screens may have associated logic. search expression For Ad Hoc Inquiry, a logical expression used in a search list to define records to be included in query output. search list For Ad Hoc Inquiry, the part of a query that determines whether records will be included in the output. security access For Ad Hoc Inquiry, full access to all queries. security class For Ad Hoc Inquiry, a type of user access to queries. See access class. security level A value from 0 through 9 that is assigned to a specific user or terminal to restrict access to functions. Security Module (LSM) A utility which provides security facilities for Enterprise Application environments. select list For Ad Hoc Inquiry, the part of a query that defines the Data Items to be included in the output. Setup Data Array or Global Setup Data Array Use a Setup Data array or Global Setup Data array to store multiple values. An individual value is accessed by specifying values for the indexes of the array. Indexes are numeric Setup Data Items or Global Setup Data Items. Setup Data Item A Data Item used in memory only for data manipulation by an Ispec or Report. See also Global Setup Data Item, Group Setup Data Item. Shadow Report Part of a Report used to produce additional output separate from that produced by the primary functions of the Report. Glossary
419 Glossary SID The two-character identifier of an Oracle database. In Runtime for Windows Operating Systems, database, Database ID and Oracle SID are synonymous. Sleeping Report A Report that, by the use of the SLEEP; logic command, stops executing for a predetermined number of seconds or until reactivated by your runtime System. SOAP SOLAR Simple Object Access Protocol. A standard for encoding XML messages for transmission over HTTP. It is a lightweight protocol for the exchange of information in a decentralized, distributed environment. It is an XML based protocol that consists of an envelope that defines a framework for describing what is in a message and how to process it, a set of encoding rules for expressing instances of application-defined datatypes, and a convention for representing remote procedure calls and responses For OS 2200 Systems, a product used to install Enterprise Application Software. sort expression For Ad Hoc Inquiry, a logical expression used in a sort list to define output sort order. sort list For Ad Hoc Inquiry, the part of a query that defines the order of the output. Specification (1) The result of specifying a Business Model using Developer. (2) The source from which an Enterprise Application System is generated. spooler See Terminal Printer Spooler. SQL format query An SQL query entered in free format in Ad Hoc Inquiry. Contrast with menu format query. SQL Server A relational database management system that is optionally used as the database software for Enterprise Application Systems based on Windows operating systems. SQL Server 7.0 is a product of Microsoft Corporation. See also Oracle. Standard Component A Component type that requires a single Ordinate. See also Component. Standard Report A specific type of Report that uses the Report Output Control (ROC) System, and whose output is written to the database. Subsequent use of the output is determined by the user. See Report Output Control System. Contrast with Direct Report Glossary 25
420 Glossary station (1) In Enterprise Application Environment terminology, a general term for a method used to identify users. (2) For UNIX based Systems, station equates to user name, while for OS 2200 based Systems, station equates to userid. status line A line on a screen for the display of system messages. structure (1) In the host environment, part of a Specification that can be selected (for example, for printing, copying, or extraction). (2) For Ad Hoc Inquiry, part of an Enterprise Application Database that can be the subject of a query. structure list For Ad Hoc Inquiry, the part of a query that defines the structures to be included. Sub Items A Global Setup Data Item that has been defined for a Group Global Setup Data Item or a Setup Data Item that has been defined for a Group Setup Data Item. Sub Scripts A Data Item that has been defined as an index for either a Global Setup Data Array or a Setup Data Array. Supervisor A facility of the host environment enabling administration-level functions. System In Builder each System consists of a configuration of elements and the options assigned to these elements. The options define the generation options for the host-based environment on which the System will be deployed. System command A command to assist in the operation of a System or Report. Formerly known as a colon command. System Data Item Data Item that is automatically part of your Specification. Used for accessing or setting parameter or control-type data in logic. Some System Data Items are stored automatically in your Enterprise Application Database (for example, MAINT). System Directory A graphical representation of the hierarchical structure each System configured for a Business Model. It lists the current and previous configurations for each System, showing the Elements assigned to the System and the processing options defined for them. The System Directory provides the basis for the build process. Glossary
421 Glossary System Element Collective term for the individual parts of the System. An Element may be any of the following: Business Segment, Bundle, Ispec, Global Logic, Profile, Report Group, or Report. System Specification A specification that represents the configuration of Elements within a deployed host System, and the generation options required to generate a set of executables for the specified host environment. See Generate Set. T table For Ad Hoc Inquiry, an SQL term equivalent to a Component, the Event file, or an Event Profile. Also called relation name. Table Component A Component type that is used to store low-volume, frequently accessed data, such as code tables. See also Component. tablespace Discrete part of an Oracle SID. Tablespaces in the same Oracle SID can be stored on different physical devices. target host The name of the specific host on which a generated Enterprise Application System will be deployed. See also Host Specification. Teach screen A user-written screen display of information about an Ispec, intended to provide online help for end users at runtime. Terminal Printer Spooler (TPS) An MCP based Enterprise Application Utility that enables users to manipulate the output of a Report to terminal printers. TPS Trace See Terminal Printer Spooler. A facility to monitor the execution of logic of an Ispec or Report in your Enterprise Application System. transaction log file File to which before and after images of all Developer transactions are written for recovery and restart purposes Glossary 27
422 Glossary Translation Screen A copy of an Ispec screen that is modified to create a secondary language version. U undo tablespace In Oracle, a tablespace used for storing information that can be used to undo, or roll back, changes to the database when necessary. Usage Input An Ispec attribute that enables a Data Item to be entered or displayed on the screen, accessed by logic, but not stored in the database. Usage Input Ispec An Event or Memo Component that is not output to the database, and where Data Items default to Usage Input. (Individual Data Items can be set to Usage Inquiry.) Usage Input-Output An Ispec attribute that enables a Data Item to be entered or displayed on the screen, accessed by logic, and stored in the database. Usage Input-Output Ispec Ispec that is both Usage Input and Usage Output. Usage Inquiry An Ispec attribute that enables a Data Item displayed on the screen, but not to be entered on the screen, nor written to the database. Usage Output An Ispec attribute that enables a Data Item to be written to the database and accessed by logic, but not entered or displayed on the screen. Usage Output Ispec An Ispec that is written to the database, but does not have a screen display. user system An instance of a Specification. Generally refers to a generated and deployed Enterprise Application user system. user system tables Tables that contain end user data (Ispec data) of a specific Enterprise Application user system. Glossary
423 Glossary V Validation IC/CHG Validation ICs and CHGs are a special type of ICs and CHGs which provide support for newly validated versions of Enterprise Application Environment support software such as Oracle, COBOL, and Tuxedo. See IC and CHG. value expression For Ad Hoc Inquiry, a logical expression used in an SQL format query to define a value, and made up of Data Items, literals, operators, and functions. value logic Logic associated with a dictionary item that determines acceptable values for that item. version control A method for identifying different versions of an Enterprise Application System by version number, description, and generation date. Version Control An optional feature of Developer that provides source control of versionable Enterprise Application objects such as Model definitions, data dictionary items, Ispecs, Profiles, and Reports. W watch A feature of the Developer Test Debugger that monitors, or 'watches', the state of a Data Item. When logic execution is stopped during debugging, the value of the watch item is displayed in the Watch Window. Web Service A Web Service is an application module, which can be invoked remotely from another application using the infrastructure of the Internet/Intranet. In the context of Enterprise Application Environment, a Web Service is a wrapper module, which receives messages based on the Simple Object Access Protocol (SOAP) protocol. It calls the appropriate Ispec using Component Enabler and returns the Ispec fields as an XML message. Wildcard Represents relationships with objects outside the Business Segment, or outside the Model. For example, a flat file that is read or extracted, or an external system called by the Enterprise Application System. Workstation In a client-server environment, a PC or workstation that is connected to a server, usually by a network. The workstation runs the client portion of client-server software Glossary 29
424 Glossary Workstation Driver Program (WDP) A server-resident component of Runtime for Windows Operating Systems. Its function is to pass data between the Graphical Interface Workbench workstation and the application on the runtime host. It also converts screen definition files during the direct generation of an application. Workstation Driver Program (WDP) listener This service listens for and accepts connection requests from Graphical Interface Workbench clients. Workstation listener port A Windows TCP/IP port assigned to the Workstation Driver Program (WDP) listener or a particular environment. This value must be changed to a unique number for each user system environment during installation. WSDL Web Service Description File. A standard for an XML format for describing network services as a set of endpoints operating on messages containing either documentoriented or procedure-oriented information. X XML XSL Extensible Markup Language (XML) is a flexible, universal file format for creating data for common information formats and sharing both the format and the data on the Web, intranets, and elsewhere. An XML file contains data in identified fields that are used by XSL stylesheets to present the data in the XML file. Extensible Stylesheet Language (XSL) is used for creating stylesheets that describe how data sent over the Web using XML is to be presented to a user. XSL gives developers the tools to describe exactly which data fields in an XML file to display, and exactly how and where to display them. Glossary
425 Index A aborting a running Report, ACCEPT command, accessing a matrix, 3 12 a popup menu, 3 17 Debugger, 11 2 Debugger for a Report, Debugger for an Ispec, Developer Test, 10 2 Global Dictionary, 5 49 Graphics mode directly, 6 3 Local Dictionary, 5 49 online help, 3 18 Painter, 6 2 Activity, 3 5 adding, 4 22 Function Point Analysis, 9 6 adding Activity, 4 22 Business Rules to Dictionary Data Item, 5 52 Business Segment, 4 6 change breakpoint, 11 7, conditional breakpoint, Data Item in Painter, 6 11 Data Item to a Global Logic, 5 6 Data Item to a Profile, 4 72 Data Item to a Report Frame, 5 26 Data Item to an Ispec, 5 6 Data Item to Global Dictionary, 5 50 Data Item to Local Dictionary, 5 50 Display item, 6 11 Draft Data Item, 6 16 edit logic to Dictionary Data Item, 5 52 Element to Model Directory, 4 3 Functional Area, 4 22 Global Logic, 7 2 Global Setup Data Item, 5 39 Graphical Control Object in Painter, 6 4, 6 12 GSD Blocks, 5 39 Ispec, 4 23 line breakpoint, 11 9 logical printer in Developer Test, 10 4 Profile, 4 68 reference breakpoint, 11 7, relationship using a matrix, 4 6 Report, 4 38 Report Frame, 4 46 Setup Data Item, 5 34 SQLScript, 4 77 Teach screen, 4 81 watch item in Debugger, 11 6 Wildcard, 4 76 ADHOC screens, painting, 6 20 adjusting Function Point count, 9 8 archiving Developer Test transaction log, array as Setup Data Item, 5 34 definition, 5 4 See also Component array Data Item, 5 43 AUTO.CLEAR, 5 13 Automaint Profile for Memo Component, 4 29 automatic editing logic, B 2 Automatic Entries external, 13 2 internal, 13 2 automatic synchronization, graphical fields, 6 8 automatic update logic, B 2 B backing up a test database, 10 8 Base Year, 4 9 Big Buffer Ispecs allowing, 4 18 default Data Item layout, 6 6 Developer to Workbench, C 2 enabling, 4 28 in Character mode painter, 6 5 in Developer Test, Index 1
426 Index in Developer Test Debugger, 11 3 in Graphics mode painter, 6 6 Local Data Dictionary, 5 50 specifying maximum size, 4 28 Binary Coded Decimal attribute, 5 29 bounds checking on MOVE, 4 17 breakpoints enabling and disabling, enabling/disabling all, invalid use, 11 9 removing all, types, 11 9 Builder generating Bundles, 6 22 generating subsystem screens, 6 22 Business Model, 3 5 Business Rules adding to Dictionary Data Item, 5 52 change identification, 4 80 definition, 4 78 in Dictionary items, 5 48 printing, 4 80 uses, 4 78 word processor option, 4 81 Business Rules Editor, 4 79 marking technical documentation, 4 80 using, 4 79 Business Segment, 3 5 adding, 4 6 event analysis, 9 2 Function Point Analysis, 9 6 naming, 4 7 C CALL command, remote subroutines, Callable Global Logic defining, 7 3 definition, 7 1 calling non-linc routines from LINC logic, canceling a merge, a running Report, CCsversion collating and sorting sequence, 5 14, 5 29, 5 35, 5 41 data items for, 4 12, 4 32, 4 42 Century Start Year, 4 9 change breakpoint adding, 11 7, removing, change identification for Business Rules, 4 80 for Teach screens, 4 82 viewing in logic, 8 15 Character mode, 6 4 Big Buffer Ispecs, 6 5 charmodeonly (LINC.INI), 6 6 Draft Build option, 6 15 restrictions, 6 5 switching to Graphics mode, 6 9 when to use, 6 5 Character mode screens, testing, characters per line for Report output, 5 30 check box, 5 19 defining labels, 5 20 operation, 5 21 client script, Graphical Interface Workbench, C 8 CLOSEDOWN, CLOSEUPDATE, closing a sleeping Report, session in Developer Test, 10 5 collating sequence using, 5 14, 5 29, 5 35, 5 41 color background, for Business Segment, 4 13 background, for Data Item, 5 16 background, for Ispec, 4 29 for Element display in matrix, 3 14 foreground, for Business Segment, 4 13 foreground, for Data Item, 5 16 foreground, for Ispec, 4 29 Color dialog box, 6 7 combo box, 5 22 LBX, LBX* options, 5 24 sample file for contents, 5 25 size, 5 22 specifying contents, 5 23 specifying file for contents, 5 24 type, 5 22 command Copy Name, 3 11 Find, 3 7 Parents, 3 7 Repeat Find, 3 8 Reset Root, 3 6 Search, 3 8 Set Root, 3 6 Index
427 Index communications interface, Component array Data Item defining, 5 45 definition, 5 43 invalid logic commands, 5 46 rules for defining, 5 44 testing a system using, 5 47 using, 5 46 Component Enabler, 6 22, conditional breakpoint adding, defining subconditions, deleting subconditions, modifying, modifying subconditions, removing, reordering DO.WHEN clauses, configuring, 10 22, constants limits on, 5 6 converting Draft Data Item to Data Item, 6 17 Draft Data Item to Display item, 6 17 Copy.From Area, B 10 Copy.From Ispec for inquiry, B 7 for updating, B 8 Runtime Cycle, B 4 screen layout, B 5 copying a Data Item, 5 7, 5 27 Element names, 3 11 Elements using Developer Console, 4 4 Elements using Model Directory, 4 4 Coroutines, creating client script in Graphical Interface Workbench, C 8 differences report, 12 7 server script in Graphical Interface Workbench, C 8 test database in Developer Test, 10 6 CRITICAL.POINT command, 4 43, cursor position, 4 30 customizing Model Directory view, 3 6 D data attributes, defining, 5 10 Data Dictionary, 5 48 accessing, 5 49 adding Business Rules to Data Item, 5 52 adding edit logic to Data Item, 5 52 definition, 5 3 deleting Data Item, 5 51 items in Report Frames, 5 26 modifying Data Item, 5 51 printing, 5 52 viewing, 5 49 Data Item adding in Painter, 6 4, 6 11 adding to Global Dictionary, 5 50 adding to Global Logic, 5 6 adding to Ispec, 5 6 adding to Local Dictionary, 5 50 adding to Profile, 4 72 adding to Report Frame, 5 26 Component array, 5 43 definition, 5 1 deleting, 5 31 deleting from Dictionary, 5 51 deleting in Painter, 6 14 display attributes, 5 30 displaying value in Debugger, 11 5, 11 6 edit types, 5 7, 5 27 limits on, 5 8 modifying, 5 31 modifying in Dictionary, 5 51 modifying in Painter, 6 13 moving in Painter, 6 13 multi line, 5 17 rationalizing Event, 13 6 types, 5 2 usage types, 5 7 using CCsversion, 4 12, 4 32, 4 42 Data Item analysis, Design Audit, 9 2 Data Item cells setting order, 5 9 data item display attributes hiding, 5 16 modify, 6 8 database commands for locking, concurrent record updating in, 13 11, 13 15, 13 17, recovery of, types of access to, 13 7 update from Report, 4 41 date format for system, 4 11 DATE.CONVERT command, 4 15, 4 16, 4 17, 4 18 deadlocks, 13 13, 13 16, 13 18, Index 3
428 Index debug mode, debug settings clearing, definition, loading, saving to file, Debugger accessing, 11 2 accessing from Developer Test, adding change breakpoint, 11 7, adding conditional breakpoint, adding line breakpoint, 11 9 adding reference breakpoint, 11 7, adding watch item, 11 6 changing watch item, 11 7 clearing debug settings, controlling logic display, 11 4 displaying Data Item values, 11 5 enabling/disabling breakpoints, enabling/disabling debugging, exiting, 11 3 introduction, 11 1 loading debug settings, modifying conditional breakpoint, removing breakpoints, removing line breakpoint, 11 9 removing watch item, 11 7 saving debug settings, selecting logic for display, 11 3 Source Window, 11 3 Traceback Window, 11 8 using breakpoints, 11 9 Watch Window, 11 6 defining background color for Business Segment, 4 13 background color for Ispec, 4 29 check box labels, 5 20 combo box contents, 5 23 Component array Data Item, 5 45 data attributes, 5 10 Data Item as image, 5 19 Data Items, 5 1 display attributes, 5 15 DO.WHEN clause for conditional breakpoint, foreground color for Business Segment, 4 13 foreground color for Ispec, 4 29 host specific options, 4 18 language for system, 4 10 list box contents, 5 23 logic for Global Logic, 7 4 path for Developer Test Options, 4 18 presentation attributes, 5 17 Profile logic, 4 73 Profile Ordinates, 4 71 Profile relationships, 4 70 push button labels, 5 20 radio button labels, 5 20 screen for Insertable Global Logic, 7 3 shortcut keys, 5 21 tab numbers for screen fields, 5 25 deleting Data Item, 5 31 Data Item from Dictionary, 5 51 DO.WHEN clause for conditional breakpoint, Element using Model Directory, 4 4 items in Painter, 6 14 relationship using a matrix, 4 6 DEPCON security issues, 4 66 DEPCON Report, 4 50 data dependent attribute, 4 55, 4 65 defining, 4 51 dynamic display, 4 60 maintaining, 4 54 printing, 4 61 DEPCON Wizard, 4 51 Design Audit, 9 1, 9 5 contents of report, 9 1 Data Item analysis, 9 2 event analysis, 9 2 extended logic lines, 9 4 long name validation, 9 3 name validation, 9 3 Object usage analysis, 9 2 Profile analysis, 9 3 reserved words, 9 1 running, 9 4 screen field truncation, 9 3 DETERMINE commands limits for, 4 49 DETERMINE; LAST command, Developer Console, 3 2 copying Elements, 4 4 load, 3 3 log on, 3 2 moving Elements, 4 4 validating logic, 7 7, 8 12 Developer menus, 3 16 Developer Test, 10 1 accessing, 10 2 Index
429 Index accessing Debugger, archiving transaction log, backing up test database, 10 8 browsing transaction log, calling non-linc routines, checking incomplete transactions, 10 9 closing a session, 10 5 controlling a running Report, creating test database, 10 6 database location, 4 32 directory path, 4 18 displaying windows, 10 2 language, 10 3 language for Report, limitation on Report processing, logging, 10 3 Logical Reorganization mode, missing extract file for Report, NOFORM files, opening a session, 10 5 populating test database, 10 6 printer setup, 10 4 rebuilding test database index, 10 7 recovering test database, reorganizing test database, 10 7 replying to Report messages, 10 15, restoring test database, 10 9 restoring transaction log, running a Report, running System Global Logic, selecting a screen, sending a transaction, simulating OS 2200 function keys, SOK/EOK support, 10 5 target host emulation, 10 1 target host selection, 4 8 viewing a Teach screen, viewing system messages, 10 2, with Component Enabler, 10 34, Developer Test Host Server, 10 22, Developer to Graphical Interface Workbench utility, 6 23, C 2 restrictions, C 2 Developer to Workbench Big Buffer Ispecs, C 2 device types, 4 41 dictionary enforcement, 4 10 limits on, 5 48 Difference Report XML Encoding, differences between Developer and Graphical Interface Workbench, C 2 between files, 12 4 between objects, 12 2 between revisions, 12 2 creating report, 12 7 Differences Options dialog box, 12 2 disabling a breakpoint, all breakpoints, LOG, 11 15, display attributes for Character mode, 5 15 for Data Item, 5 15 for Graphics mode, 5 16 reset defaults, 4 22 Display item adding, 6 11 deleting, 6 14 limits on, 6 12 modifying, 6 14 moving in Painter, 6 13 displaying Data Item values in Source Window, 11 5 Data Item values in Watch Window, 11 6 incomplete transactions in Developer Test, 10 9 logic in Debugger, 11 3 DMS II deadlock handling with, DO.WHEN clause defining, deleting, modifying, reordering, documenting Elements, 4 78 Elements with Specification Listing, 4 83 screens, 4 81 Draft Build option, 6 15 Draft Data Item adding, 6 16 converting to Data Item, 6 17 converting to Display item, 6 17 Design Audit, 6 18 entering text, 6 16 maximum length, 6 17 printing, Index 5
430 Index E edit logic adding to Dictionary Data Item, 5 52 Runtime Cycle, B 5 editing Business Rules, 4 79 using a word processor, 4 81 using Business Rules Editor, 4 79 editing logic automatic completion of names, 8 3 automatic indenting, 8 3 automatic text highlighting, 8 5 entering Global Setup Data Items, 8 11 entering Setup Data Items, 8 11 expand/collapse logic blocks, 8 4 inserting AUTO, 8 8 inserting INQ, 8 9 line numbers, 8 4 multiple editor panes, 8 5 saving, 8 12 split window, 8 5 syntax highlighting, 8 5 tabs as spaces, 8 5 validate and save whole object, 8 13 validating logic, 8 12 Element, 3 5 Embedded SQL, A 1 END.EXIT command, B 12 Enforce Dictionary option, 4 10 errors, in logic, 8 6, 8 13 Event analysis, Design Audit, 9 2 EVENT spanning Profile, 4 69 Event-based approach, 13 4 Events rationalizing Data Items in, 13 6 Usage types of, 13 6 EXCLUSIVE.USE, extended logic lines, 4 17 Design Audit, 9 4 External Automatic Entries, 13 1 Two-Phase Commit, 4 16 EXTRACT command, extract files for Report, 4 44 missing for Report, size of, 4 49 extracting an object, to show differences, to show specifications, F Fast Load Reports, 4 44 field truncation on screens, 4 16 Find command, 3 7 Find facility, 3 7 finding an Element in a matrix, 3 14 an Element in Model Directory, 3 7 Data Item in Dictionary, 5 49 help, 3 18 parents of an Element, 3 7 Fireup Ispec, 4 10 form characteristics modify, 6 8 Forms Translation Utility (FTU), 4 18 FPA See Function Point Analysis, 9 5 function keys, simulating in Developer Test, Function Point Analysis, 9 5 adjusting system count, 9 8 counting function points, 9 9 detail record, 9 12 extract file name, 9 12 extract file record sequence, 9 12 extracting output to file, 9 7 report, 9 7 running, 9 6 Functional Area, 3 5 adding, 4 22 Function Point Analysis, 9 6 G GLB.ACTIONKEY, 7 8 GLB.BALANCE, 7 8 GLB.BASE, 4 9 GLB.CENTURY, 4 15 GLB.CENTURY-START, 4 9 GLB.COPY, 7 8, B 9, B 10 GLB.DATE, 4 11 GLB.DC-CC, 4 15 GLB.DESTXNID, 7 8 GLB.EOP, 7 8 GLB.ERROR, B 3, B 11 GLB.LANGUAGE, 4 10, 7 8 GLB.MAXCOPY, 7 8, B 9, B 10 GLB.ORIGINISPEC, 7 8 GLB.ORIGINXNID, 7 8 Index
431 Index GLB.PARAM, 4 9 GLB.PREVISPEC, 7 8 GLB.PRIORITY, 7 8 GLB.REQUEST, 7 8 GLB.SELFXNID, 7 8 GLB.SOURCE, 7 8 GLB.STALANG, 4 10, 7 8 GLB.SUBSYS, 7 9 GLB.TODAY, 4 11 GLB.UNIQUE, 7 9 GLB.USERCODE, 7 9 GLB.WORK, 7 9 retain data on termination, 4 14 size, 4 9 Global Dictionary accessing, 5 49 adding Data Item, 5 50 definition, 5 3 deleting Data Item, 5 51 modifying Data Item, 5 51 viewing, 5 49 Global Logic adding, 7 2 adding a Data Item to, 5 6 definition, 7 1 inserting in Painter, 6 14 ispec limits, 7 10 limits on, 7 9 naming, 7 2 nesting of, 7 11 printing, 7 4 viewing in logic, 8 4 Global Logic List, 7 4 Global Setup Data Blocks, see GSD Blocks, 5 38 Global Setup Data Item adding, 5 39 definition, 5 3, 5 38 entering in logic, 8 11 limits on, 5 43 modifying, 5 42 Runtime Cycle, B 2, B 5 types, 5 38 values, 5 39 viewing list, 5 42 GO facility, 3 17 Graphical Control Object adding, 6 4, 6 12 deleting, 6 14 modifying in Painter, 6 14 moving in Painter, 6 13 graphical form characteristics, 6 7 Graphical Interface Workbench, 6 23 creating a new partition, C 3 differences from Developer, C 2 features, C 1 INFOConnect paths, C 7 LINC Workbench, C 6 repository object name, 5 25, C 2 scripts, C 8 testing forms, C 5 testing restrictions, C 6 transferring forms from Developer, C 3 transferring forms to Developer, C 5 Graphical Interface Workbench to Developer utility, 6 23, C 4 restrictions, C 4 Graphics mode, 6 4 auto synchronization, 6 8 Big Buffer Ispecs, 6 6 direct access, 6 3 restrictions, 6 6 switching to Character mode, 6 9 when to use, 6 6 graphs, relations with logic, 8 17 Group Data Item definition, 5 4 initialization, 5 5 Group Setup Data Item, restrictions on use, 5 33 GSD Blocks, 5 38 adding, 5 39 default blocks, 5 38 modifying, 5 41 GSD List, 5 39 H HALT command, 11 15, help, 3 18 hiding data item cells, 5 16 data items, 5 16 hierarchical view of Model, 3 5 host specific options, 4 18 subsystems, 6 20 test database, 10 19, Index 7
432 Index I IF.PRESENT, B 9 Ignore LCIF Format Change option, Ignore Name Differences option, ignoring LCIF format changes when viewing difference reports, name differences when viewing objects, image defining Data Item as, 5 19 identifying, 5 19 INFOConnect paths to Graphical Interface Workbench, C 7 INSERT command, 6 15, 7 6 Insertable Global Logic adding, 7 2 defining logic, 7 4 defining screen, 7 3 definition, 7 1 error reporting, 7 6 listing, 7 4 modifying, 7 7 printing, 7 4 relations, 7 6 restrictions, 7 1 Setup Data Item name length, 7 5 types of errors, 7 6 validating logic, 7 6 inserting Global Logics in Painter, 6 14 inserting in logic AUTO command, 8 8 INQ command, 8 9 inserting Keywords in Painter, 6 15 integrity impact of Reports on, issues relating to, MCP implementation of, 13 7 OS 2200 implementation of, 13 7, record access affecting, 13 9 Report, 13 17, System, 13 14, 13 17, UNIX implementation of, Windows implementation of, integrity for system, 4 14 intersystem communication, 13 1 Ispec adding, 4 23 adding a Data Item to, 5 6 Copy.From screen layout, B 4 current size, 4 25 definition, 4 23 limits on, 4 33, 4 34, 4 37 naming, 4 23 requesting a screen, B 2 transmitting a screen, B 2 types, 4 24 Usage types, 4 25 Ispec-only logic in Reports, 7 8 System Data items in Reports, 7 8 J Japanese character set support, 4 12 K Kanji characters, 4 19 keyboard shortcuts in Painter, 6 18 Keyword definition, 4 74, 5 3 inserting in Painter, 6 15 L labeling accelerator keys, 5 20 check box, 5 20 push button, 5 20 radio button, 5 20 language for Developer Test, 10 3 for Report, 4 40 for Report in Developer Test, for system, 4 10 large Data Items in Local Data Dictionary, 5 50 LBX, LBX* options, 5 24 LCIF Format Change Setting dialog box, LCIF View dialog box, LCIF Viewer, 12 1 changing display attributes, creating differences report, 12 7 extracting, viewing differences, 12 2 viewing specifications, 12 9 LINC Workbench Index
433 Index communicating with Developer, C 7 LINC.INI charmodeonly parameter, 6 6 DEPCON settings, 4 50 Painter mode parameter, 6 3 line breakpoint adding, 11 9 removing, 11 9 LINK, B 9 linking a word processor to Business Rules Editor, 4 81 list box, 5 22 LBX, LBX* options, 5 24 sample file for contents, 5 25 size, 5 22 specifying contents, 5 23 specifying file for contents, 5 24 literals definition of, 5 5 limits on, 5 6 loading Output Control codes, 5 30 sample Model, 3 2 Local Dictionary accessing, 5 49 adding Data Item, 5 50 definition, 5 3 deleting Data Item, 5 51 modifying Data Item, 5 51 viewing, 5 49 locking dataset, 4 14 Elements using Model Directory, 4 5 screen layout in Painter, 6 9 locks automatic database, commands for initiating database, shared update, LOG command, example, syntax, Log File Browse utility, LOG; HALT command, enabling/disabling, logging Developer Test, 10 3 off from Developer, 3 2 on to Developer, 3 1 on using Developer Console, 3 2 logic changing, 8 11 considerations, 8 6 controlling display in Debugger, 11 4 defining for Global Logic, 7 4 differences between Reports and Ispecs, 7 9 displaying in Debugger, 11 3 edit logic for Dictionary Data Item, 5 52 entering, 8 6 errors, 8 13 errors in Insertable Global Logic, 7 6 extended line length, 4 17 how displayed in Source Window, 11 3 in Profiles, 4 73 inserting AUTO, 8 8 inserting INQ, 8 9 limits in Ispecs, 4 37 limits on database commands, 4 37, 4 49 line limit in Global Logics, 7 10 line limit in Reports, 4 49 long Object names, 8 7 relations, 8 17 validating, 8 16 logic command, Logic Editor, 8 1 accessing, 8 1 automatic completion of names, 8 3 automatic indenting, 8 3 automatic text highlighting, 8 5 changing logic, 8 11 entering Global Setup Data Items, 8 11 entering logic, 8 6 entering Setup Data Items, 8 11 errors, 8 6, 8 13 expand/collapse logic blocks, 8 4 Global Logics, 8 4 inserting AUTO, 8 8 inserting INQ, 8 9 line numbers, 8 4 multiple editor panes, 8 5 saving logic, 8 12 SOK/EOK characters, 8 10 split window, 8 5 syntax highlighting, 8 5 tabs as spaces, 8 5 toolbar, 8 2 validate and save whole object, 8 13 validating logic, 8 12 viewing change identification, 8 15 viewing definitions, 8 14 window, 8 2 Logic Status window, 8 16 validating logic, 8 16 Logical Reorganization mode, Index 9
434 Index long name validation, Design Audit, 9 3 LOOK.UP commands limits for, 4 49 M Main logic Copy.From Area, B 10 Runtime Cycle, B 2 matrix, 3 4, 4 6 accessing, 3 12 adding a relationship, 4 6 definition, 3 12 deleting a relationship, 4 6 finding an Element in, 3 14 modifying Element color, 3 14 reading, 3 12 Memo Components, 13 3 Automaint Profile, 4 29 menu bar, 3 16 Merge dialog box, changing display attributes, Merge File Options dialog box, Merge Options dialog box, merging files, objects, overview, revisions, two files, MESSAGE command, 7 9 Messages/Errors window, 10 2, 10 13, Model, 3 5 sample, 3 2 Model Directory, 3 4 adding Elements, 4 3 collapsing nodes, 3 5 copying Elements, 4 4 customizing view, 3 6 deleting Elements, 4 4 expanding nodes, 3 5 finding an Element, 3 7 locking Elements, 4 5 modifying Elements, 4 5 moving Elements, 4 4 nodes, 3 5 setting the top line, 3 6 unlocking Elements, 4 5 modifying conditional breakpoint, Data Item, 5 31 Data Item in Dictionary, 5 51 Data Item in Painter, 6 13 display attributes, Display items, 6 14 DO.WHEN clause for conditional breakpoint, Elements using Model Directory, 4 5 Global Setup Data Item, 5 42 Graphical Control Object in Painter, 6 14 GSD Block List, 5 42 GSD Blocks, 5 41 Insertable Global Logic, 7 7 logical printer in Developer Test, 10 4 Setup Data Item, 5 36 watch item value, 11 7 Modules limits on, 7 9 mouse actions in Painter, 6 18 moving Data Item in Painter, 6 13 Display item in Painter, 6 13 Elements using Developer Console, 4 4 Elements using Model Directory, 4 4 Graphical Control Object in Painter, 6 13 N Name Differences Setting dialog box, name validation, Design Audit, 9 3 naming Business Segments, 4 7 Global Logic, 7 2 Ispecs, 4 23 Profiles, 4 68 Report Frames, 4 47 Reports, 4 39 restrictions, 4 1 Setup Data Items, 5 32 SQLScripts, 4 77 National data items, 4 12, 4 32, 4 42 NATIONAL.ITEM Data attribute, 5 14, 5 29, 5 35, 5 41 navigating, 3 14 using GO facility, 3 17 using menus, 3 16 using Model Directory nodes, 3 7 using navigation dialog box, 3 15 using toolbar buttons, 3 15 Index
435 Index navigation dialog box, 3 14 accessing from Logic Editor, 8 14 network addresses, new form attributes, 4 22 new form data item attributes, 6 8 No Integrity option, 13 17, NO.LOOKUP, B 9 nodes definition, 3 5 expanding and collapsing, 3 5 navigating, 3 7 NOFORM file, using in Developer Test, O object extracting to LCIF file, Object usage analysis, Design Audit, 9 2 online help, 3 18 opening a navigation dialog box, 3 14 session in Developer Test, 10 5 option, B 11 ORACLE UNIX limits, 4 34 ordering Ispecs and Reports, 4 38 Ordinate definition, 5 2 in a Profile, 4 71 Multiple Ordinate Component, 5 10 sequence in Profile, 4 72 Output Control codes, 5 30 overlapping fields on screens, 6 10 P padlock icon, 4 5, 6 9 Painter accessing, 6 2 accessing Graphics mode directly, 6 3 adding Data Items, 6 4, 6 11 adding Display items, 6 5, 6 11 adding graphical control objects, 6 4, 6 12 Character mode, 6 5 deleting items, 6 14 Draft Data Items, 6 4 drafting screen layouts, 6 15 features, 6 1 Graphics mode, 6 6 inserting Global Logics, 6 14 inserting Keywords, 6 15 keyboard shortcuts, 6 18 LINC.INI parameters, 6 2 locking screen layout, 6 9 modifying items, 6 13, 6 14 mouse actions, 6 18 moving items, 6 13 overlapping fields, 6 10 refresh screen, 6 9 saving changes, 6 9 selecting an item, 6 12 selecting multiple items, 6 13 subsystem screens, 6 20 switching modes, 6 9 synchronizing changes between modes, 6 8 parameter data for Reports, 4 43 parents copying, 3 11 finding, 3 7 Performable Global Logic adding, 7 2 defining logic, 7 4 definition, 7 1 differences in Reports and Ispecs, 7 9 in Reports, 7 8 listing, 7 4 printing, 7 4 restrictions, 7 1 Setup Data Item name length, 7 5 performance considerations for Enterprise Application Environment, popup menu, 3 17 Pre-LINC logic, B 2, B 5 Pre-Screen logic, B 4 presentation attributes, for Data Item, 5 17 presentation type check box, 5 19 combo box, 5 22 field, 5 17 image, 5 18 list box, 5 22 push button, 5 19 radio button, 5 19 printer setup, Developer Test, 10 4 printing Business Rules, 4 80 Draft Data Items, 6 18 Global Logic, 7 4 report on Dictionary, 5 52 report on Element, Index 11
436 Index Teach screens, 4 82 Profile analysis, Design Audit, 9 3 Profiles adding, 4 68 adding a Data Item, 4 72 allowing duplicate Ordinates, 4 69 defining logic, 4 73 defining Ordinates, 4 71 defining relationships, 4 70 definition, 4 67 limits on, 4 73 relationship types, 4 71 rules for defining, 4 67 spanning EVENT, 4 69 push button, 5 19 defining labels, 5 20 R radio button, 5 19 defining labels, 5 20 reading a matrix, 3 12 rebuilding a test database index, 10 7 receiving NOFORM file in Developer Test, recovering a test database, recovery DMS II, reference breakpoint adding, 11 7, removing, relations changing logic, 8 17 changing the Model, 8 17 design and logic, 8 17 relationship adding, using a matrix, 4 6 deleting, using a matrix, 4 6 in Profiles, 4 70 Remote Access Server, Remote Subroutine Server, 10 22, 10 23, configuring, removing all breakpoints, breakpoints, line breakpoint, 11 9 logical printer in Developer Test, 10 4 watch item from Debugger, 11 7 reorganizing a test database, 10 7 Repeat Find command, 3 8 replying to Report messages, 10 15, Report aborting, adding, 4 38 characters per line, 4 41 closing down, definition, 4 38 DEPCON, 4 50 disallowing database update from, 4 40 extract files location, 4 44 Fast Load, 4 44 integrity of, 13 13, 13 17, language, 4 40 limits on, 4 48, 4 49 line spacing, 4 42 maximum line length, 4 42 messages in Developer Test, 10 15, missing extract file, naming, 4 39 ordering, 4 38 output device types, 4 41 parameter data, 4 43 Performable Global Logic in, 7 8 recovery, extending, 4 17 routing to DEPCON, 4 59 running from a shortcut, running from Developer Test, standard heading, 4 39 transferable in Host, 4 40 updating database, 4 41 Report Frame adding, 4 46 adding a Data Item to, 5 26 Dictionary Data Items in, 5 26 Report Output Control (ROC), 4 17 repository object name, Graphical Interface Workbench, C 2 reserved word checking, 4 1 reserved words, 4 1 Design Audit, 9 1 list window, 4 2 Reset Root command, 3 6 restoring test database in Developer Test, 10 9 transaction log in Developer Test, ROC screens, painting, 6 20 running a Design Audit, 9 4 a Function Point Analysis, 9 6 a Report from a shortcut, a Report in Developer Test, Index
437 Index a System from a shortcut, System Global Logic, Runtime Cycle Copy.From Ispec, B 4 definition, B 1 hints and tips, B 9 non-copy.from ispecs, B 1 Setup Data Items, B 2 transmitting an inquiry, B 3 update phase, B 4, B 5 validate phase, B 4, B 5 S sample Model, 3 2 saving logic, 8 12 screen layout drafting, 6 15 for Insertable Global Logic, 7 3 locking, 6 9 screen, testing in Developer Test, Search command, 3 8 SECURE command option, security in Developer, 3 1 Select an MDL File dialog box, SEND.MESSAGE command, 7 9 SEND.PRINT command, 10 4 sending a transaction in Developer Test, NOFORM file in Developer Test, SENDLIST command, 5 24 sequence of Profile Ordinates, 4 72 SERIAL, B 11 server script, Graphical Interface Workbench, C 8 session, Developer Test, 10 5 Set Root command, 3 6 setting Base Year, 4 9 Century Start Year, 4 9 date format for system, 4 11 integrity for system, 4 14 language for Report, 4 40 language for system, 4 10 Setup Data Item adding, 5 34 arrays, 5 34 definition, 5 3, 5 31 entering in logic, 8 11 initial values, B 10 maximum length, 5 32 modifying, 5 36 name length, 7 5 naming, 5 32 Runtime Cycle, B 2, B 5 types and usage, 5 32 viewing list, 5 36 with initial values, 5 33 without initial values, 5 33 Setup Data item limits on, 5 37 shortcut keys, 5 21 SOK/EOK Support, 4 19 in Developer Test, 10 5 in Logic Editor, 8 10 sorts sequence for, 5 14, 5 29, 5 35, 5 41 Source Window of Debugger, 11 3 specification of a file, of a revision, 12 9 of an object, 12 9 Specification Listing, 4 83 specifying character encoding of difference reports, SQL, Description, A 1 SQL, Overview, A 1 SQLScript adding, 4 77 listing, 4 78 naming, 4 77 SQLScript Editor, 4 77 SQLScript List, 4 78 STARTUP, statistics, Design Audit, 9 1 stopping a sleeping Report, logic execution in Debugger, subsystems model files, 6 21 painting screens, 6 20 syntax check for reserved words, 4 1 System Data item definition, 5 4 Ispec only, 7 8 system design analysis See Function Point Analysis, 9 5 System Global Logic, testing, Systems, 3 4 integrity of, 13 17, running from a shortcut, Index 13
438 Index T tab numbers, 5 25 target host selection for Developer Test, 4 8, 10 1 Teach screen adding, 4 81 change identification, 4 82 definition, 4 81 printing, 4 82 viewing, Teach Screen Editor, 4 81 technical documentation in Business Rules, 4 80 test database backing up, 10 8 creating, 10 6 host database, 10 19, logical reorganization, rebuilding index, 10 7 recovering, reorganizing, 10 7 restoring, 10 9 running from a shortcut, testing Character mode screens, forms using Graphical Interface Workbench, C 5 host database, 10 19, Remote Access Server, Reports, screens, System Global Logic, system using Component array Data Items, 5 47 Teach screens, transactions, with Component Enabler, 10 34, toolbar in Logic Editor, 8 2 in Painter, 6 3 standard, 3 15 Traceback Window of Debugger, 11 8 transaction log archiving, browsing, restoring, roll-forward recovery, transaction status, Developer Test, 10 9 transactions interference between, 13 11, transferring forms from Developer to Graphical Interface Workbench, C 3 forms from Graphical Interface Workbench to Developer, C 5 truncation analysis, Design Audit, 9 3 truncation of screen fields, 4 16, 6 10 Two-Phase Commit, 4 16 Reports, 4 44 U unlocking Elements using Model Directory, 4 5 update phase, Runtime Cycle, B 4, B 5 V validate phase, Runtime Cycle, B 4, B 5 validating Insertable Global Logic, 7 6, 7 7 logic, 8 12 logic across copies, B 13 logic in the Logic Status window, 8 16 whole object, 8 13 value logic, adding to Dictionary Data Item, 5 52 View Differences dialog box, 12 4 viewing a Teach screen, change identification for Business Rules, 4 80 change identification for Teach screens, 4 82 Data Dictionary, 5 49 differences, 12 1, 12 2 Global Setup Data Item list, 5 42 messages in Developer Test, 10 2, Setup Data Item list, 5 36 specifications, 12 1, 12 9 status of logic, 8 16 transaction log in Developer Test, viewing definitions, in Logic Editor, 8 14 W watch item adding, 11 6 Index
439 Index changing value, 11 7 how displayed in Watch Window, 11 8 removing, 11 7 Watch Window of Debugger, 11 6 Wildcard adding, 4 76 definition, 4 76 word processor, using with Business Rules Editor, Index 15
440 Index Index
441
442 Unisys * *
Unisys. Enterprise Application Developer. Installation and Configuration Guide. Release 3.3. Copyright 2003 Unisys Corporation. All rights reserved.
Enterprise Application Developer Installation and Configuration Guide Unisys Copyright 2003 Unisys Corporation. All rights reserved. Release 3.3 March 2003 78616109-004 NO WARRANTIES OF ANY NATURE ARE
How To Use Builder On A Microsoft Ubuntu 7.1.3.3 (Windows 2000) With A Microsatellite (Unix) Or Ubuntu 8.1 (Windows) (Unison) (Windows 2) (For
Enterprise Application Developer and Builder Software Release Announcement for Release 3.3 Unisys Copyright 2003 Unisys Corporation. All rights reserved. Printed in USA March 2003 78616349-004 NO WARRANTIES
Horizon Debt Collect. User s and Administrator s Guide
Horizon Debt Collect User s and Administrator s Guide Microsoft, Windows, Windows NT, Windows 2000, Windows XP, and SQL Server are registered trademarks of Microsoft Corporation. Sybase is a registered
Results CRM 2012 User Manual
Results CRM 2012 User Manual A Guide to Using Results CRM Standard, Results CRM Plus, & Results CRM Business Suite Table of Contents Installation Instructions... 1 Single User & Evaluation Installation
ACTIVE@ UNDELETE 7.0 USER GUIDE
ACTIVE@ UNDELETE 7.0 USER GUIDE COPYRIGHT Copyright 27, LSOFT TECHNOLOGIES INC. All rights reserved. No part of this documentation may be reproduced in any form or by any means or used to make any derivative
Avaya Network Configuration Manager User Guide
Avaya Network Configuration Manager User Guide May 2004 Avaya Network Configuration Manager User Guide Copyright Avaya Inc. 2004 ALL RIGHTS RESERVED The products, specifications, and other technical information
Attix5 Pro Server Edition
Attix5 Pro Server Edition V7.0.3 User Manual for Linux and Unix operating systems Your guide to protecting data with Attix5 Pro Server Edition. Copyright notice and proprietary information All rights reserved.
PowerLogic ION Enterprise 6.0
70002-0298-00 06/2009 PowerLogic ION Enterprise 6.0 Power management software User guide Notices This section describes the symbols used in this guide. Danger This alerts you to things that may cause
Introduction to Microsoft Access 2003
Introduction to Microsoft Access 2003 Zhi Liu School of Information Fall/2006 Introduction and Objectives Microsoft Access 2003 is a powerful, yet easy to learn, relational database application for Microsoft
UNICORN 6.4. Administration and Technical Manual
UNICORN 6.4 Administration and Technical Manual Page intentionally left blank Table of Contents Table of Contents 1 Introduction... 1.1 Administrator functions overview... 1.2 Network terms and concepts...
Multicurrency Bank Reconciliation 9.0
Multicurrency Bank Reconciliation 9.0 An application for Microsoft Dynamics ΤΜ GP 9.0 Furthering your success through innovative business solutions Copyright Manual copyright 2006 Encore Business Solutions,
ICE for Eclipse. Release 9.0.1
ICE for Eclipse Release 9.0.1 Disclaimer This document is for informational purposes only and is subject to change without notice. This document and its contents, including the viewpoints, dates and functional
DataPA OpenAnalytics End User Training
DataPA OpenAnalytics End User Training DataPA End User Training Lesson 1 Course Overview DataPA Chapter 1 Course Overview Introduction This course covers the skills required to use DataPA OpenAnalytics
InfoPrint 4247 Serial Matrix Printers. Remote Printer Management Utility For InfoPrint Serial Matrix Printers
InfoPrint 4247 Serial Matrix Printers Remote Printer Management Utility For InfoPrint Serial Matrix Printers Note: Before using this information and the product it supports, read the information in Notices
TIBCO Hawk SNMP Adapter Installation
TIBCO Hawk SNMP Adapter Installation Software Release 4.9.0 November 2012 Two-Second Advantage Important Information SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH EMBEDDED OR
NDA-30141 ISSUE 1 STOCK # 200893. CallCenterWorX-Enterprise IMX MAT Quick Reference Guide MAY, 2000. NEC America, Inc.
NDA-30141 ISSUE 1 STOCK # 200893 CallCenterWorX-Enterprise IMX MAT Quick Reference Guide MAY, 2000 NEC America, Inc. LIABILITY DISCLAIMER NEC America, Inc. reserves the right to change the specifications,
Teamstudio USER GUIDE
Teamstudio Software Engineering Tools for IBM Lotus Notes and Domino USER GUIDE Edition 30 Copyright Notice This User Guide documents the entire Teamstudio product suite, including: Teamstudio Analyzer
Table of Contents. Part I Welcome. Part II Introduction. Part III Getting Started. Part IV The User Interface. Part V Quick Start Tutorials
Contents I Table of Contents Part I Welcome 5 Part II Introduction 5 1 Overview... 5 2 Product... Levels 5 3 Technical... Support 6 4 Copyright... 7 Part III Getting Started 7 1 Installation... 7 2 Register...
UNICORN 7.0. Administration and Technical Manual
UNICORN 7.0 Administration and Technical Manual Page intentionally left blank Table of Contents Table of Contents 1 Introduction... 1.1 Administrator functions overview... 1.2 Network terms and concepts...
Business Insight Report Authoring Getting Started Guide
Business Insight Report Authoring Getting Started Guide Version: 6.6 Written by: Product Documentation, R&D Date: February 2011 ImageNow and CaptureNow are registered trademarks of Perceptive Software,
Getting Started with IntelleView POS Administrator Software
Getting Started with IntelleView POS Administrator Software Administrator s Guide for Software Version 1.2 About this Guide This administrator s guide explains how to start using your IntelleView POS (IntelleView)
Microsoft Dynamics GP. Extender User s Guide
Microsoft Dynamics GP Extender User s Guide Copyright Copyright 2010 Microsoft. All rights reserved. Limitation of liability This document is provided as-is. Information and views expressed in this document,
PowerLogic ION Enterprise 5.6
PowerLogic ION Enterprise 5.6 Power Management Software User Guide April 2007 Notices This section describes the symbols used in this guide. Danger This alerts you to things that may cause serious injury
Unisys INFOIMAGE FOLDER ON WINDOWS NT. Connector for Microsoft Exchange. Getting Started Guide
INFOIMAGE FOLDER ON WINDOWS NT Connector for Microsoft Exchange Unisys Getting Started Guide Copyright 1999 Unisys Corporation. All rights reserved. Unisys is a registered trademark of Unisys Corporation.
Evaluator s Guide. PC-Duo Enterprise HelpDesk v5.0. Copyright 2006 Vector Networks Ltd and MetaQuest Software Inc. All rights reserved.
Evaluator s Guide PC-Duo Enterprise HelpDesk v5.0 Copyright 2006 Vector Networks Ltd and MetaQuest Software Inc. All rights reserved. All third-party trademarks are the property of their respective owners.
VERITAS NetBackup Microsoft Windows User s Guide
VERITAS NetBackup Microsoft Windows User s Guide Release 3.2 Windows NT/95/98 May, 1999 P/N 100-001004 1994-1999 VERITAS Software Corporation. All rights reserved. Portions of this software are derived
MAS 500 Intelligence Tips and Tricks Booklet Vol. 1
MAS 500 Intelligence Tips and Tricks Booklet Vol. 1 1 Contents Accessing the Sage MAS Intelligence Reports... 3 Copying, Pasting and Renaming Reports... 4 To create a new report from an existing report...
NorthClark Computing, Inc. Bill of Material and Parts Master Maintenance. Administrator s Guide
ERP Consulting Web Development Custom Programming Solutions Desktop & Web Applications for Manfact NorthClark Computing, Inc. Bill of Material and Parts Master Maintenance Administrator s Guide Web and
ArchestrA Log Viewer User s Guide Invensys Systems, Inc.
ArchestrA Log Viewer User s Guide Invensys Systems, Inc. Revision A Last Revision: 7/3/07 Copyright 2007 Invensys Systems, Inc. All Rights Reserved. All rights reserved. No part of this documentation shall
Query and Export Guide
Query and Export Guide 011712 2012 Blackbaud, Inc. This publication, or any part thereof, may not be reproduced or transmitted in any form or by any means, electronic, or mechanical, including photocopying,
Infor ERP BaanIV / Baan 5.0 / LN 6.1. User's Guide for Worktop 2.4
Infor ERP BaanIV / Baan 5.0 / LN 6.1 User's Guide for Worktop 2.4 Copyright 2008 Infor All rights reserved. The word and design marks set forth herein are trademarks and/or registered trademarks of Infor
User's Guide FairCom Performance Monitor
User's Guide FairCom Performance Monitor User's Guide FairCom Performance Monitor Contents 1. c-treeace Performance Monitor... 4 2. Startup... 5 3. Using Main Window... 6 4. Menus... 8 5. Icon Row... 11
IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules
IBM Operational Decision Manager Version 8 Release 5 Getting Started with Business Rules Note Before using this information and the product it supports, read the information in Notices on page 43. This
Virtual CD v10. Network Management Server Manual. H+H Software GmbH
Virtual CD v10 Network Management Server Manual H+H Software GmbH Table of Contents Table of Contents Introduction 1 Legal Notices... 2 What Virtual CD NMS can do for you... 3 New Features in Virtual
IBM Sterling Control Center
IBM Sterling Control Center System Administration Guide Version 5.3 This edition applies to the 5.3 Version of IBM Sterling Control Center and to all subsequent releases and modifications until otherwise
Business Intelligence Tutorial
IBM DB2 Universal Database Business Intelligence Tutorial Version 7 IBM DB2 Universal Database Business Intelligence Tutorial Version 7 Before using this information and the product it supports, be sure
FOR WINDOWS FILE SERVERS
Quest ChangeAuditor FOR WINDOWS FILE SERVERS 5.1 User Guide Copyright Quest Software, Inc. 2010. All rights reserved. This guide contains proprietary information protected by copyright. The software described
Desktop, Web and Mobile Testing Tutorials
Desktop, Web and Mobile Testing Tutorials * Windows and the Windows logo are trademarks of the Microsoft group of companies. 2 About the Tutorial With TestComplete, you can test applications of three major
Reflection DBR USER GUIDE. Reflection DBR User Guide. 995 Old Eagle School Road Suite 315 Wayne, PA 19087 USA 610.964.8000 www.evolveip.
Reflection DBR USER GUIDE 995 Old Eagle School Road Suite 315 Wayne, PA 19087 USA 610.964.8000 www.evolveip.net Page 1 of 1 Table of Contents Overview 3 Reflection DBR Client and Console Installation 4
ARIS Design Platform Getting Started with BPM
Rob Davis and Eric Brabander ARIS Design Platform Getting Started with BPM 4y Springer Contents Acknowledgements Foreword xvii xix Chapter 1 An Introduction to BPM 1 1.1 Brief History of Business Process
Access Queries (Office 2003)
Access Queries (Office 2003) Technical Support Services Office of Information Technology, West Virginia University OIT Help Desk 293-4444 x 1 oit.wvu.edu/support/training/classmat/db/ Instructor: Kathy
DB Audit Expert 3.1. Performance Auditing Add-on Version 1.1 for Microsoft SQL Server 2000 & 2005
DB Audit Expert 3.1 Performance Auditing Add-on Version 1.1 for Microsoft SQL Server 2000 & 2005 Supported database systems: Microsoft SQL Server 2000 Microsoft SQL Server 2005 Copyright SoftTree Technologies,
Configuration Manager
After you have installed Unified Intelligent Contact Management (Unified ICM) and have it running, use the to view and update the configuration information in the Unified ICM database. The configuration
Database Studio is the new tool to administrate SAP MaxDB database instances as of version 7.5.
1 2 3 4 Database Studio is the new tool to administrate SAP MaxDB database instances as of version 7.5. It replaces the previous tools Database Manager GUI and SQL Studio from SAP MaxDB version 7.7 onwards
Scheduling Data Import from Avaya Communication Manager into Avaya Softconsole MasterDirectory
Scheduling Data Import from Avaya Communication Manager into Avaya Softconsole MasterDirectory ABSTRACT This Application Note details step-by-step instructions on how to configure the scheduling feature
Data Tool Platform SQL Development Tools
Data Tool Platform SQL Development Tools ekapner Contents Setting SQL Development Preferences...5 Execution Plan View Options Preferences...5 General Preferences...5 Label Decorations Preferences...6
Getting Started Guide. Trimble Accubid Enterprise Software
Getting Started Guide Trimble Accubid Enterprise Software Revision A August 2013 F Toronto Office Trimble Canada Ltd. 7725 Jane Street Concord, Ontario L4K 1X4 Copyright and Trademarks 2005-2013 Trimble
Microsoft Visual Studio Integration Guide
Microsoft Visual Studio Integration Guide MKS provides a number of integrations for Integrated Development Environments (IDEs). IDE integrations allow you to access MKS Integrity s workflow and configuration
Excel Database Management Microsoft Excel 2003
Excel Database Management Microsoft Reference Guide University Technology Services Computer Training Copyright Notice Copyright 2003 EBook Publishing. All rights reserved. No part of this publication may
AccXES Account Management Tool Administrator s Guide Version 10.0
AccXES Account Management Tool Administrator s Guide Version 10.0 701P41531 May 2004 Trademark Acknowledgments XEROX, AccXES, The Document Company, and the identifying product names and numbers herein
Designing and Implementing Forms 34
C H A P T E R 34 Designing and Implementing Forms 34 You can add forms to your site to collect information from site visitors; for example, to survey potential customers, conduct credit-card transactions,
ADP Workforce Now V3.0
ADP Workforce Now V3.0 Manual What s New Checks in and Custom ADP Reporting Grids V12 Instructor Handout Manual Guide V10171180230WFN3 V09171280269ADPR12 2011 2012 ADP, Inc. ADP s Trademarks The ADP Logo
IBM Unica Leads Version 8 Release 6 May 25, 2012. User Guide
IBM Unica Leads Version 8 Release 6 May 25, 2012 User Guide Note Before using this information and the product it supports, read the information in Notices on page 33. This edition applies to version 8,
Microsoft Dynamics GP. Engineering Data Management Integration Administrator s Guide
Microsoft Dynamics GP Engineering Data Management Integration Administrator s Guide Copyright Copyright 2007 Microsoft Corporation. All rights reserved. Complying with all applicable copyright laws is
Excel Companion. (Profit Embedded PHD) User's Guide
Excel Companion (Profit Embedded PHD) User's Guide Excel Companion (Profit Embedded PHD) User's Guide Copyright, Notices, and Trademarks Copyright, Notices, and Trademarks Honeywell Inc. 1998 2001. All
Plug-In for Informatica Guide
HP Vertica Analytic Database Software Version: 7.0.x Document Release Date: 2/20/2015 Legal Notices Warranty The only warranties for HP products and services are set forth in the express warranty statements
Compuprint 4247 Serial Matrix Printers
Compuprint 4247 Serial Matrix Printers Remote Printer Management Utility for Serial Matrix Printers MAN10300-00.00 First edition (October 2011) This edition applies to the Compuprint 4247 printers and
Legal Notes. Regarding Trademarks. 2012 KYOCERA Document Solutions Inc.
Legal Notes Unauthorized reproduction of all or part of this guide is prohibited. The information in this guide is subject to change without notice. We cannot be held liable for any problems arising from
GUIDE. Web Client Application. Model: ER 4.0. Release 4.0.00 / Version No.: 1.01
8e6R Enterprise Reporter USER GUIDE Web Client Application Model: ER 4.0 Release 4.0.00 / Version No.: 1.01 ii 8E6 TECHNOLOGIES, ENTERPRISE REPORTER WEB CLIENT USER GUIDE 8E6 ENTERPRISE REPORTER WEB CLIENT
Attix5 Pro Server Edition
Attix5 Pro Server Edition V7.0.2 User Manual for Mac OS X Your guide to protecting data with Attix5 Pro Server Edition. Copyright notice and proprietary information All rights reserved. Attix5, 2013 Trademarks
Microsoft Access Basics
Microsoft Access Basics 2006 ipic Development Group, LLC Authored by James D Ballotti Microsoft, Access, Excel, Word, and Office are registered trademarks of the Microsoft Corporation Version 1 - Revision
Auditing manual. Archive Manager. Publication Date: November, 2015
Archive Manager Publication Date: November, 2015 All Rights Reserved. This software is protected by copyright law and international treaties. Unauthorized reproduction or distribution of this software,
Version 4.61 or Later. Copyright 2013 Interactive Financial Solutions, Inc. All Rights Reserved. ProviderPro Network Administration Guide.
Version 4.61 or Later Copyright 2013 Interactive Financial Solutions, Inc. All Rights Reserved. ProviderPro Network Administration Guide. This manual, as well as the software described in it, is furnished
Guide to SAS/AF Applications Development
Guide to SAS/AF Applications Development SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2012. Guide to SAS/AF Applications Development. Cary, NC:
An Introduction to LoadRunner A Powerful Performance Testing Tool by HP. An Introduction to LoadRunner. A Powerful Performance Testing Tool by HP
An Introduction to LoadRunner A Powerful Performance Testing Tool by HP Index Sr. Title Page 1 Introduction 2 2 LoadRunner Testing Process 4 3 Load test Planning 5 4 LoadRunner Controller at a Glance 7
WebLOAD IDE User's Guide Version 8.0
WebLOAD IDE User's Guide Version 8.0 RadView Software The software supplied with this document is the property of RadView Software and is furnished under a licensing agreement. Neither the software nor
Module One: Getting Started... 6. Opening Outlook... 6. Setting Up Outlook for the First Time... 7. Understanding the Interface...
2 CONTENTS Module One: Getting Started... 6 Opening Outlook... 6 Setting Up Outlook for the First Time... 7 Understanding the Interface...12 Using Backstage View...14 Viewing Your Inbox...15 Closing Outlook...17
Operations Guide for the HMC and Managed Systems Version 7 Release 3. ESCALA Power6 REFERENCE 86 A1 85FF 00
Operations Guide for the HMC and Managed Systems Version 7 Release 3 ESCALA Power6 REFERENCE 86 A1 85FF 00 ESCALA Power6 Operations Guide for the HMC and Managed Systems Version 7 Release 3 Hardware April
JD Edwards World. Database Audit Manager Release A9.3 E21957-02
JD Edwards World Database Audit Manager Release A9.3 E21957-02 April 2013 JD Edwards World Database Audit Manager, Release A9.3 E21957-02 Copyright 2013, Oracle and/or its affiliates. All rights reserved.
SPSS: Getting Started. For Windows
For Windows Updated: August 2012 Table of Contents Section 1: Overview... 3 1.1 Introduction to SPSS Tutorials... 3 1.2 Introduction to SPSS... 3 1.3 Overview of SPSS for Windows... 3 Section 2: Entering
ORACLE USER PRODUCTIVITY KIT USAGE TRACKING ADMINISTRATION & REPORTING RELEASE 3.6 PART NO. E17087-01
ORACLE USER PRODUCTIVITY KIT USAGE TRACKING ADMINISTRATION & REPORTING RELEASE 3.6 PART NO. E17087-01 FEBRUARY 2010 COPYRIGHT Copyright 1998, 2009, Oracle and/or its affiliates. All rights reserved. Part
Ansur Test Executive. Users Manual
Ansur Test Executive Users Manual April 2008 2008 Fluke Corporation, All rights reserved. All product names are trademarks of their respective companies Table of Contents 1 Introducing Ansur... 4 1.1 About
Microsoft Dynamics GP. Advanced Financial Analysis
Microsoft Dynamics GP Advanced Financial Analysis Copyright Copyright 2010 Microsoft. All rights reserved. Limitation of liability This document is provided as-is. Information and views expressed in this
Strategic Asset Tracking System User Guide
Strategic Asset Tracking System User Guide Contents 1 Overview 2 Web Application 2.1 Logging In 2.2 Navigation 2.3 Assets 2.3.1 Favorites 2.3.3 Purchasing 2.3.4 User Fields 2.3.5 History 2.3.6 Import Data
Microsoft Dynamics GP. Pay Steps for Human Resources Release 9.0
Microsoft Dynamics GP Pay Steps for Human Resources Release 9.0 Copyright Copyright 2006 Microsoft Corporation. All rights reserved. Complying with all applicable copyright laws is the responsibility of
HP A-IMC Firewall Manager
HP A-IMC Firewall Manager Configuration Guide Part number: 5998-2267 Document version: 6PW101-20110805 Legal and notice information Copyright 2011 Hewlett-Packard Development Company, L.P. No part of this
VERITAS NetBackup 6.0 for Microsoft Exchange Server
VERITAS NetBackup 6.0 for Microsoft Exchange Server System Administrator s Guide for Windows N152688 September 2005 Disclaimer The information contained in this publication is subject to change without
Database Administration Guide
Database Administration Guide 092211 2011 Blackbaud, Inc. This publication, or any part thereof, may not be reproduced or transmitted in any form or by any means, electronic, or mechanical, including photocopying,
NETWORK PRINT MONITOR User Guide
NETWORK PRINT MONITOR User Guide Legal Notes Unauthorized reproduction of all or part of this guide is prohibited. The information in this guide is subject to change without notice. We cannot be held liable
How To Write Tvalue Amortization Software
TimeValue Software Amortization Software Version 5 User s Guide s o f t w a r e User's Guide TimeValue Software Amortization Software Version 5 ii s o f t w a r e ii TValue Amortization Software, Version
Microsoft Dynamics CRM 4.0 User s Guide
Microsoft Dynamics CRM 4.0 User s Guide i Microsoft Dynamics CRM 4.0 User s Guide Copyright Information in this document, including URL and other Internet Web site references, is subject to change without
CA ARCserve Backup for Windows
CA ARCserve Backup for Windows Agent for Sybase Guide r16 This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to as the Documentation
Toad for Oracle 8.6 SQL Tuning
Quick User Guide for Toad for Oracle 8.6 SQL Tuning SQL Tuning Version 6.1.1 SQL Tuning definitively solves SQL bottlenecks through a unique methodology that scans code, without executing programs, to
Developing Rich Web Applications with Oracle ADF and Oracle WebCenter Portal
JOIN TODAY Go to: www.oracle.com/technetwork/java OTN Developer Day Oracle Fusion Development Developing Rich Web Applications with Oracle ADF and Oracle WebCenter Portal Hands on Lab (last update, June
EMC Documentum Composer
EMC Documentum Composer Version 6.5 User Guide P/N 300 007 217 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All rights
Tips and Tricks SAGE ACCPAC INTELLIGENCE
Tips and Tricks SAGE ACCPAC INTELLIGENCE 1 Table of Contents Auto e-mailing reports... 4 Automatically Running Macros... 7 Creating new Macros from Excel... 8 Compact Metadata Functionality... 9 Copying,
DigitalPersona Pro. Password Manager. Version 5.x. Application Guide
DigitalPersona Pro Password Manager Version 5.x Application Guide 1996-2012 DigitalPersona, Inc. All Rights Reserved. All intellectual property rights in the DigitalPersona software, firmware, hardware
Blackbaud FundWare Accounts Receivable Guide VOLUME 1 SETTING UP ACCOUNTS RECEIVABLE
Blackbaud FundWare Accounts Receivable Guide VOLUME 1 SETTING UP ACCOUNTS RECEIVABLE VERSION 7.50, JULY 2008 Blackbaud FundWare Accounts Receivable Guide Volume 1 USER GUIDE HISTORY Date Changes June 2000
Snapshot Reports for 800xA User Guide
Snapshot Reports for 800xA User Guide System Version 5.1 Power and productivity for a better world TM Snapshot Reports for 800xA User Guide System Version 5.1 NOTICE This document contains information
Release 2.1 of SAS Add-In for Microsoft Office Bringing Microsoft PowerPoint into the Mix ABSTRACT INTRODUCTION Data Access
Release 2.1 of SAS Add-In for Microsoft Office Bringing Microsoft PowerPoint into the Mix Jennifer Clegg, SAS Institute Inc., Cary, NC Eric Hill, SAS Institute Inc., Cary, NC ABSTRACT Release 2.1 of SAS
Veritas Cluster Server Database Agent for Microsoft SQL Configuration Guide
Veritas Cluster Server Database Agent for Microsoft SQL Configuration Guide Windows 2000, Windows Server 2003 5.0 11293743 Veritas Cluster Server Database Agent for Microsoft SQL Configuration Guide Copyright
Business Enterprise Server Help Desk Integration Guide. Version 3.5
Business Enterprise Server Help Desk Integration Guide Version 3.5 June 30, 2010 Copyright Copyright 2003 2010 Interlink Software Services, Ltd., as an unpublished work. All rights reserved. Interlink
PTC Integrity Integration with Microsoft Visual Studio PTC Integrity 10.8
PTC Integrity Integration with Microsoft Visual Studio PTC Integrity 10.8 Copyright 2015 PTC Inc. and/or Its Subsidiary Companies. All Rights Reserved. User and training guides and related documentation
P R O V I S I O N I N G O R A C L E H Y P E R I O N F I N A N C I A L M A N A G E M E N T
O R A C L E H Y P E R I O N F I N A N C I A L M A N A G E M E N T, F U S I O N E D I T I O N R E L E A S E 1 1. 1. 1.x P R O V I S I O N I N G O R A C L E H Y P E R I O N F I N A N C I A L M A N A G E
SAS BI Dashboard 4.3. User's Guide. SAS Documentation
SAS BI Dashboard 4.3 User's Guide SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2010. SAS BI Dashboard 4.3: User s Guide. Cary, NC: SAS Institute
User Guide QAD Customer Relationship Management. Introduction Sales Management Marketing Management Customer Service Reference
User Guide QAD Customer Relationship Management Introduction Sales Management Marketing Management Customer Service Reference 70-3192-6.6.3 QAD CRM 6.6.3 September 2014 This document contains proprietary
Import Filter Editor User s Guide
Reference Manager Windows Version Import Filter Editor User s Guide April 7, 1999 Research Information Systems COPYRIGHT NOTICE This software product and accompanying documentation is copyrighted and all
DiskPulse DISK CHANGE MONITOR
DiskPulse DISK CHANGE MONITOR User Manual Version 7.9 Oct 2015 www.diskpulse.com [email protected] 1 1 DiskPulse Overview...3 2 DiskPulse Product Versions...5 3 Using Desktop Product Version...6 3.1 Product
Enterprise Server. Application Sentinel for SQL Server Installation and Configuration Guide. Application Sentinel 2.0 and Higher
Enterprise Server Application Sentinel for SQL Server Installation and Configuration Guide Application Sentinel 2.0 and Higher August 2004 Printed in USA 3832 1097 000 . Enterprise Server Application Sentinel
