Table of contents
-
Application Design
- About this Guide
- 1. Object Naming Standards
- 2. The Data Dictionary
- 3. The Database
-
4. Processes and Functions
- 4.1 Before Coding RDML Processes and Functions
- 4.2 Process and Function Naming Conventions
- 4.3 Break Business Functions Down into Processes and Functions
- 4.4 Build Menu Structures
- 4.5 Use Application Templates
- 4.6 Use an Exchange List and the OPTION(*ALWAYS) Exchange Option
- 4.7 A Message for every Situation
- 4.8 Top Down and Structured Programming Techniques
- 4.9 Portability Considerations
-
5. Producing Reports
- 5.1 Using Working Lists for Summary Reports
- 5.2 Producing Multiple Reports in One Pass over a File
- 5.3 Online and Batch Report Production
- 5.4 Writing More Flexible Reporting Programs Using the OPEN Command
- 5.5 Overriding Printer File Attributes using a Report Controller
- 5.6 Portability Considerations
- 6. Pop-up Windows
- 7. Prompt Key Processing
- 8. Processing Arrays
-
9. Action Bars and Pull Down Menus
- 9.1 What Is an Action Bar & Pull Down Menu?
- 9.2 Overview of Action Bar Layout And Processing Logic
- 9.3 Overview of Pull Down Layout And Processing Logic
- 9.4 CUA 1989 Considerations and Commitments
- 9.5 The LANSA Implementation of Action Bars
- 9.6 The Action Bar Control Table
- 9.7 Invoking an Action Bar as a Process
- 9.8 Using an Action Bar From a Function
- 9.9 Exit and Cancel Key Handling in Action Bars
- 9.10 Switching to/from Action Bar Logic
- 9.11 Action Bar Accelerator Keys
- 9.12 Action Bar Help Processing
- 9.13 Action Bar Security Considerations
- 9.14 Action Bar Application Design Considerations
- 9.15 Architecture of Action Bars
- 9.16 Action Bar Panel Design Considerations
- 9.17 Action Bar Programming Considerations
- 9.18 Action Bar Programming Examples with Frequently Asked Questions
- 9.19 Action Bars: Another Book You Must Read
- 10. Examples of using LANSA
-
11. Application Performance on IBM i
- 11.1 Macro Performance Factors and Micro Performance Factors
- 11.2 Interactive, Batch and Overnight Processing
- 11.3 Using Working Lists and the KEEP_LAST Parameter
- 11.4 Keeping Heavily Used Files Open
- 11.5 Using the OPEN Command Instead of a Logical View to Order Data
- 11.6 Other File Opening Considerations
- 11.7 The FUNCTION Command
- 11.8 Clean Up Considerations for Heavy Usage Functions
- 11.9 Using *DBOPTIMIZE / *DBOPTIMISE
- 11.10 PAG Trimming
- 11.11 Execution and Security Settings
- 11.12 People and Machine Performance - Some Things to Consider
- 11.13 Co-ordinate System Settings
- 11.14 Some Database Design Considerations
- 11.15 Some Functional Design Considerations
- 11.16 Some Programming Considerations
- 11.17 IBM i Authority Checking
- 11.18 End User And Developer Machines
- 11.19 Team Sizes
- 11.20 Education
- 11.21 Attitude and Commitment
- 11.22 Work Practices
- 11.23 Unlearning
- 11.24 Loss of 3GL Skills
- 11.25 Signs of Trouble
- 11.26 Large Numbers - Approach with Caution
- 11.27 Estimating Application Performance by Running an Application
-
11.28 Estimating Application Performance by Calculating an ERUF
- 11.28.1 The Recommended ERUF Ranges are for BUSY Production Machines
- 11.28.2 ERUF Values are NOT Response Times
- 11.28.3 Associating ERUF Values With Response Times is a MAJOR Mistake
- 11.28.4 ERUF Values for Batch Transactions do NOT indicate Elapsed Time
- 11.28.5 Realistic Estimates are Important
- 11.28.6 Recommended ERUF Ranges
- 11.28.7 A High ERUF Value Does Not Mean That Your Transaction Is Invalid
- 11.28.8 ERUF Calculation Table
- 11.29 Breakdown of RDML Commands into Resource Groups
- 11.30 Breakdown of Commonly Used Built-in Functions into Resource Groups
- 12. IBM i SAA/CUA Implementation
-
13. Generated Code C and SQL/ODBC Considerations
- 13.1 Overview
- 13.2 Object Naming Under Windows
- 13.3 Process Name Truncation and Duplicate Object Names
- 13.4 Automatic Renaming for SQL/ODBC
- 13.5 Accessing the Generated C Code
- 13.6 Handling Relative Record Numbers
- 13.7 Renumbering Relative Record Numbers
- 13.8 U_TEXT Strings and .UTX Files
- 13.9 The SLLLLOOO & DLLLLOOO.DAT Tables
- 13.10 Things That May Be Different
- 13.11 ASCII Versus EBCDIC Data Collating Sequences
- 13.12 Commitment Control
- 13.13 SQL/ODBC Grammar: Keyword Conflicts
- 13.14 General ODBC Driver Limitations
-
14. Portability Specifics
- 14.1 Use of Hex Values, Attributes, Hidden/Embedded Decimal Data, *LOVAL and *HIVAL
-
14.2 IBM i Emulated Features
- 14.2.1 IBM i Defined Data Areas
- 14.2.2 *AUTONUM and *AUTOALP System Variables (Data Areas)
- 14.2.3 *DTASSSLLLXXXXXXXXXX System Variables (Data Areas)
- 14.2.4 Emulation of the *LDA Data Area
- 14.2.5 Data Areas and Other LANSA Features
- 14.2.6 The DC@A08 Data Area and the SAVE_LIST Built-In Function
- 14.2.7 Guidelines, Rules and Limitations that Apply when Using the DASO=F Parameter
- 14.2.8 Array Index Values and Process/Overlay Handling
- 14.3 Calling 3GL Programs / DLLs / Shared Objects
- 14.4 3GL Virtual Code
- 14.5 Additional Notes
- 14.6 User Defined Messages
- 15. LANSA Limits
- 16. Internationalization with Unicode
- 17. Client/Server Applications
-
18. Icons and Bitmaps
- 18.1 The Importance of Standards and Guidelines for Icons and Bitmaps
- 18.2 Using Icons and Bitmaps on a Process Menu
- 18.3 How Icons and Bitmaps are Associated on Process Menus
- 18.4 Using Icons on a Toolbar
- 18.5 How Icons Are Associated and Presented on Toolbars
- 18.6 The X_ICOBMP.DAT Defaulting File
- 18.7 Frequently Asked Questions about Icons and Bitmaps
-
19. Create Your Own Built-In Functions
-
19.1 Create your own 3GL Built-In Functions on IBM i for RDML Functions
- 19.1.1 3GL Parameters
- 19.1.2 Naming Conventions for 3GL BIF on IBM i
- 19.1.3 Steps to Create 3GL Built-In Functions on IBM ii
- 19.1.4 Example - Define a Built-In Function as a 3GL Program
- 19.1.5 Example - Define a Built-In Function as a 3GL Subroutine
- 19.1.6 Package 3GL Built-In Functions for Distribution
- 19.1.7 Install Other Vendor 3GL Built-In Functions
-
19.2 Create Your Own 3GL Built-In Functions on Windows/Linux/IBM i
- 19.2.1 Assumptions
- 19.2.2 Warnings
- 19.2.3 Naming Conventions for 3GL BIFs on Windows/Linux
- 19.2.4 Steps to Create 3GL Built-In Functions on Windows/Linux/IBM i
- 19.2.5 Example - A Simple Averaging Function
- 19.2.6 Example - Manipulate an RDML Working List
- 19.2.7 Example - Manipulate an RDMLX Working List
- 19.2.8 Shipped U_BIF Macros
- 19.2.9 U_BIF Macros used in Static or Internal Functions
-
19.3 Create Your Own RDML Built-In Functions (all platforms)
- 19.3.1 Conformance Checklist for Built-In Functions written in RDML
- 19.3.2 RDML Naming Conventions
- 19.3.3 Built-In Function Argument
- 19.3.4 Built-In Function Return Value
- 19.3.5 Steps to Create RDML Built-In Functions
- 19.3.6 How an RDML Built-In Function defines the BIF
- 19.3.7 RDML Built-In Function Tips and Techniques
- 19.3.8 Example - Define a BIF as an RDML Function
- 19.3.9 Package and Deploy RDML BIFs
- 19.4 Built-In Function Sample Form
- 19.5 Built-In Function Skeletons
-
19.1 Create your own 3GL Built-In Functions on IBM i for RDML Functions
- 20. Application Templates