Using ObjectScript
- Introduction to ObjectScript
 - Features
 - Sample Class with ObjectScript
 - Sample Routine
 - Variables
 - Multidimensional Arrays
 - Operators
 - Commands
 - System Functions
 - Special Variables
 - Potential Pitfalls
 - See Also
 - ObjectScript Syntax Basics
 - Left-to-Right Precedence
 - Case Sensitivity
 - Identifiers
 - Reserved Words
 - Expressions
 - Commands
 - Command Postconditional Expressions
 - Command Arguments
 - Routine Syntax
 - Method Syntax
 - Whitespace
 - Labels
 - Comments
 - Namespaces
 - See Also
 - Procedure Syntax
 - Introduction
 - Procedures as Functions
 - Procedure Variables
 - Procedure Code
 - Indirection, XECUTE Commands, and JOB Commands within Procedures
 - Error Traps within Procedures
 - Introduction to ObjectScript Commands
 - Command to Assign Values
 - Commands to Invoke Code
 - Commands to Control Flow
 - Commands to Processes Error
 - Commands to Process Transactions
 - Command for Locking and Concurrency Control
 - Write Commands
 - READ Command
 - Files and Devices
 - See Also
 - Introduction to ObjectScript Operators
 - Introduction
 - Operator Precedence
 - Numeric Operators
 - String Operators
 - Boolean Operators
 - Indirection Operator (@)
 - See Also
 - Invoking Code and Passing Arguments
 - Calling Units of Code
 - Formal Argument Lists and Examples
 - Passing Arguments (Basics)
 - Passing ByRef or Output Arguments
 - Comparison: Arguments by Value and Arguments by Reference
 - Passing a Variable Number of Arguments
 - ObjectScript Variables and Scope
 - Kinds of Variables
 - Variable Names
 - Variable Availability and Scope
 - Length of Value
 - Variable Existence and Undefined Variables
 - #dim (Optional)
 - Global Variables and Journaling
 - See Also
 - Process-Private Globals
 - Extended References
 - Multidimensional Arrays
 - Introduction and Terminology
 - Where Multidimensional Arrays Are Supported
 - Subscript Rules
 - Manipulating Multidimensional Arrays
 - Class-Based Arrays
 - See Also
 - Types of Data in ObjectScript
 - Numeric Values in ObjectScript
 - Numeric Literals
 - Arithmetic
 - Numeric Equality
 - Other Numeric Comparisons
 - Canonical Numbers
 - Floating-Point Numbers
 - Extremely Large Numbers
 - String-to-Number Conversion
 - See Also
 - Strings in ObjectScript
 - String Literals
 - Non-Printing Characters and Unicode Characters
 - Null Strings and the Null Character
 - String Concatenation
 - String Equality
 - Other String Relational Operators
 - Pattern Match Operator (?)
 - Commonly Used String Functions
 - See Also
 - Boolean Values in ObjectScript
 - Introduction
 - Uses
 - Logical Operators
 - Precedence and Logical Operators
 - Combining Boolean Values
 - See Also
 - Lists in ObjectScript
 - Native List Format
 - List Functions
 - Sparse Lists and Sublists
 - List Compression
 - Delimited Strings as an Alternative
 - Lists and Delimited Strings Compared
 - Class-Based Lists
 - See Also
 - Native Bit Strings in ObjectScript
 - Date and Time Values
 - Macros and Include Files
 - Macro Basics
 - Include File Basics
 - Defining Macros
 - Including Include Files
 - Where to See Expanded Macros
 - See Also
 - Embedded SQL
 - Locking and Concurrency Control
 - Introduction
 - Lock Names
 - The Lock Table
 - Locks and Arrays
 - Using the LOCK Command
 - Lock Types
 - Escalating Locks
 - Locks, Globals, and Namespaces
 - Avoiding Deadlock
 - Practical Uses for Locks
 - Locking and Concurrency in SQL and Persistent Classes
 - See Also
 - Details of Lock Requests and Deadlocks
 - Waiting Lock Requests
 - Queuing of Array Node Lock Requests
 - ECP Local and Remote Lock Requests
 - Avoiding Deadlock
 - See Also
 - Managing the Lock Table
 - Available Tools for Managing the Lock Table
 - Viewing Locks in the Management Portal
 - Removing Locks in the Management Portal
 - ^LOCKTAB Utility
 - See Also
 - Working with %Status Values
 - Basics of Working with Status Values
 - Examples
 - Variation (%objlasterror)
 - Multiple Errors Reported in a Status Value
 - Returning a %Status
 - %SYSTEM.Error
 - See Also
 - Using TRY-CATCH
 - Introduction
 - Using THROW with TRY-CATCH
 - Using $$$ThrowOnError and $$$ThrowStatus Macros
 - Using the %Exception.SystemException and %Exception.AbstractException Classes
 - Other Considerations with TRY-CATCH
 - Error Logging
 - Logging Application Errors
 - Using Management Portal to View Application Error Logs
 - Using ^%ERN to View Application Error Logs
 - See Also
 - Command-Line Routine Debugging
 - Secure Debug Shell
 - Debugging with the ObjectScript Debugger
 - Debugging With BREAK
 - Using %STACK to Display the Stack
 - Other Debugging Tools
 - (Legacy) Using ^%ETN for Error Logging
 - (Legacy) Traditional Error Processing
 - How Traditional Error Processing Works
 - Handling Errors with $ZTRAP
 - Handling Errors with $ETRAP
 - Handling Errors in an Error Handler
 - Forcing an Error
 - Processing Errors at the Terminal Prompt
 - Legacy Forms of Subroutines