Skip to main contentSkip to search
Powered by Zoomin Software. For more details please contactZoomin
Progress DocumentationProgress Documentation
Progress Documentation
  • Home
  • Home
  • EnglishČeštinaDeutsch (Germany)Español (Spain)FrançaisItaliano (Italy)Português (Brasil)日本語Русский (Russia)中文 (简体) (China)中文 (繁體, 台灣) (Taiwan)ar-AR
  • Login

Develop ABL Applications

Running ABL Procedures

Save PDF
Save selected topicSave selected topic and subtopicsSave all topics
Share
Share to emailCopy topic URL
Print
Table of Contents
  • Introducing ABL
    • About the sample database
    • In the beginning . . . FOR EACH CUSTOMER
      • Starting your OpenEdge session
      • Writing your first procedure
    • Basic characteristics of ABL
      • ABL is procedural
      • ABL is block-structured
      • An ABL procedure consists of statements
      • ABL combines procedural, database, and user interface statements
    • Saving your test procedure
  • Using Basic ABL Constructs
    • Refining the data selection with a WHERE clause
      • Comparison operators
      • Using quotation marks
    • Creating nested blocks to display related data
    • Changing labels and formats
    • Using program variables and data types
      • Defining formats
      • Other variable qualifiers
      • Variable naming conventions
      • Placement of variable definitions
    • Defining an IF-THEN-ELSE decision point
    • Using the ABL Unknown value
    • Using built-In ABL functions
    • ABL Functions
      • Date functions
      • List functions
      • ABL string manipulation functions
    • Putting a calculation into your procedure
      • Arithmetic expressions and operands
      • Arithmetic built-in functions
    • Getting to online help
    • Saving and compiling your test procedure
  • Running ABL Procedures
    • Running a subprocedure
    • Using the Propath
    • Using external and internal procedures
      • Writing internal procedures
      • Assigning a value to a variable
      • When to use internal and external procedures
      • RETURN statement and RETURN-VALUE
    • Adding comments to your procedure
  • Procedure Blocks and Data Access
    • Blocks and block properties
    • Procedure block scoping
    • Language statements that define blocks
      • DO blocks
        • Looping with a DO block
        • Using a DO block to scope records and frames
      • FOR blocks
        • Sorting records by using the BY phrase
        • Joining tables using multiple FOR phrases
        • Alternatives to the EACH keyword
        • Using indexes to relate and sort data
        • Using the USE-INDEX phrase to force a retrieval order
        • Using the LEAVE statement to leave a block
        • Using block headers to identify blocks
        • Using NEXT, STOP, and QUIT to change block behavior
        • Qualifying a FOR statement with a frame reference
      • REPEAT blocks
        • Using the PRESELECT keyword to get data in advance
      • Data access without looping: the FIND statement
        • Index cursors
        • Using the FIND statement in a REPEAT block
        • Switching indexes between FIND statements
        • Using a USE-INDEX phrase to force index selection
        • Doing a unique FIND to retrieve a single record
        • Using the CAN-FIND function
  • Record Buffers and Record Scope
    • Record buffers
    • Record scope
      • Self-contained references to a buffer
      • Generating a procedure listing file
      • Nested, weak-scoped references to the same buffer
      • Weak-scoped blocks and free references
      • Scoping buffers
      • Strong-scoped references and containing blocks
    • Record buffer and error handling
  • Using Queries
    • Why you use queries in your application
      • Queries versus block-oriented data access
      • Using queries to share data between procedures
      • Using queries to populate a browse
    • Defining and using queries
      • OPEN and CLOSE QUERY statements
        • Using an outer join in a query
        • Sorting the query results
      • GET statements
        • Using the QUERY-OFF-END function
      • Closing a query
      • Determining the current number of rows in a query
        • Using a DOWN frame and the DOWN WITH statement
        • Retrieving query results in advance
      • Identifying the current row in the query
        • Using INDEXED-REPOSITION to improve query performance
        • INDEXED-REPOSITION and field lists
        • Factors that invalidate CURRENT-RESULT-ROW and NUM-RESULTS
      • Repositioning a query
        • Using a RowID to identify a record
        • Positioning details with the REPOSITION statement
    • Summary
  • Defining and Using Temp-tables
    • Using temp-tables in your application
      • ABL ProDataSets
      • ABL work-tables
      • The temporary database for temp-tables
      • Defining a temp-table
        • Defining fields for the temp-table
        • Defining indexes for the temp-table
        • Temp-table scope
        • Temp-table buffers
    • Using a temp-table to summarize data
    • Using a temp-table as a parameter
      • Temp-table parameter syntax
      • Passing a temp-table by value
      • Passing a temp-table by reference
      • Passing a temp-table parameter by binding
      • Defining a procedure to return Order Lines
      • Using BUFFER-COPY to assign multiple fields
    • Using include files to duplicate code
    • Adding an Order Line browse to the Customer window
    • Summary
  • Defining Functions
    • User-defined functions
    • Defining a function
      • Making a forward declaration for a function
        • Making a local forward declaration
        • Making a declaration of a function in another procedure
        • Making a declaration of a function IN SUPER
      • Making run-time references with DYNAMIC-FUNCTION
  • Handling Data and Locking Records
    • Overview of data handling statements
    • Record locking in ABL
      • Record locking examples
        • Using EXCLUSIVE-LOCKs
        • Using and upgrading SHARE-LOCKS
        • Using the NO-WAIT Option with the AVAILABLE and LOCKED functions
        • Reading records with NO-LOCK
      • Making sure you release record locks
      • Lock table resources
      • Optimistic and pessimistic locking strategies
        • Using FIND CURRENT and CURRENT-CHANGED
  • Managing Transactions
    • Controlling the size of a transaction
      • Making a transaction larger
      • Making a transaction smaller
      • Transactions and trigger and procedure blocks
      • Checking whether a transaction is active
      • The NO-UNDO keyword on temp-tables and variables
    • Using the UNDO statement
      • Using the UNDO statement in the sample procedure
        • Using UNDO, LEAVE on a block
      • Subtransactions
      • Transaction mechanics
      • Using the ON phrase on a block header
      • Handling the ERROR condition
        • ERROR-STATUS system handle
        • Error handling
        • RETURN statement and ON . . . RETURN phrase
      • ENDKEY condition
      • STOP condition
        • System and software failures
      • QUIT condition
Table of Contents

Running ABL Procedures

Save PDF
Save selected topicSave selected topic and subtopicsSave all topics
Share
Share to emailCopy topic URL
Print
  • Last Updated: March 30, 2020
  • 1 minute read
    • OpenEdge
    • Version 12.2
    • Documentation

Running ABL Procedures

This section describes how you can work with and run different types of ABL procedures.

Contents
  • Running a subprocedure
  • Using the Propath
  • Using external and internal procedures
  • Adding comments to your procedure
TitleResults for “How to create a CRG?”Also Available inAlert