Advanced Development Training – Progress 4GL & OpenEdge

Duration: Hours

Enquiry


    Category:

    Training Mode: Online

    Description

    Below is a comprehensive Advanced Development Training TOC for Progress 4GL (OpenEdge ABL), designed for developers who already have working knowledge of ABL and want to move into advanced application development, database programming, performance engineering, integration, security, DevOps, and production support.


    Prerequisites

    Participants should ideally have:

    1. Progress 4GL / OpenEdge ABL experience – preferably 1–3 years.
    2. Working knowledge of:
      • ABL syntax and programming constructs
      • Procedures and functions
      • Database tables and indexes
      • FOR EACH, FIND, DO, REPEAT, and transaction blocks
      • Temp-tables
      • Basic error handling
    3. Basic understanding of relational database concepts and SQL.
    4. Familiarity with application development and debugging.
    5. Basic understanding of HTTP, REST and JSON is recommended.
    6. Basic Git knowledge is beneficial but not mandatory.
    7. Experience working on an existing OpenEdge/Progress application is strongly recommended.

    TABLE OF CONTENTS

    1. Introduction

    1.1 Course Overview

    1.1.1 Introduction to Progress OpenEdge and OpenEdge ABL
    1.1.2 Evolution of Progress 4GL to OpenEdge ABL
    1.1.3 OpenEdge application architecture
    1.1.4 Role of ABL in enterprise application development
    1.1.5 Advanced developer responsibilities and development practices

    1.2 Training Objectives

    1.2.1 Develop complex ABL applications
    1.2.2 Design efficient database-driven applications
    1.2.3 Build reusable and maintainable ABL components
    1.2.4 Develop integrations using APIs and web services
    1.2.5 Implement advanced error handling and transaction management
    1.2.6 Optimize OpenEdge application performance
    1.2.7 Apply modern source control and DevOps practices


    2. OpenEdge Architecture and Advanced ABL Concepts

    2.1 OpenEdge Platform Architecture

    2.1.1 OpenEdge components
    2.1.2 Application server architecture
    2.1.3 OpenEdge database architecture
    2.1.4 Client-server architecture
    2.1.5 Multi-tier application architecture

    2.2 ABL Execution Model

    2.2.1 Compile-time and runtime processing
    2.2.2 Procedures and persistent procedures
    2.2.3 Sessions and execution contexts
    2.2.4 Runtime parameters
    2.2.5 Include files and preprocessing

    2.3 Advanced Language Features

    2.3.1 Strongly typed programming
    2.3.2 Dynamic data types
    2.3.3 Handles and object references
    2.3.4 Namespaces
    2.3.5 Classes and interfaces


    3. Advanced ABL Programming

    3.1 Advanced Data Types

    3.1.1 Arrays and extent variables
    3.1.2 Temp-tables
    3.1.3 ProDataSets
    3.1.4 Objects and object references
    3.1.5 LONGCHAR and CLOB data

    3.2 Advanced Control Structures

    3.2.1 Dynamic loops
    3.2.2 Dynamic queries
    3.2.3 Conditional compilation
    3.2.4 Recursive programming
    3.2.5 Runtime program execution

    3.3 Dynamic Programming

    3.3.1 Dynamic variables
    3.3.2 Dynamic buffers
    3.3.3 Dynamic queries
    3.3.4 Dynamic invocation
    3.3.5 Dynamic properties and methods


    4. Object-Oriented Programming with ABL

    4.1 Object-Oriented ABL Fundamentals

    4.1.1 Classes and objects
    4.1.2 Properties
    4.1.3 Methods
    4.1.4 Constructors and destructors
    4.1.5 Access modifiers

    4.2 Inheritance and Polymorphism

    4.2.1 Class inheritance
    4.2.2 Method overriding
    4.2.3 Polymorphism
    4.2.4 Abstract classes
    4.2.5 Sealed classes

    4.3 Interfaces

    4.3.1 Interface definition
    4.3.2 Interface implementation
    4.3.3 Multiple interface implementation
    4.3.4 Interface-based architecture

    4.4 Object-Oriented Design Patterns

    4.4.1 Factory pattern
    4.4.2 Singleton pattern
    4.4.3 Strategy pattern
    4.4.4 Repository pattern
    4.4.5 Service-oriented design


    5. Advanced Database Programming

    5.1 OpenEdge Database Architecture

    5.1.1 Database structures
    5.1.2 Tables and fields
    5.1.3 Indexes
    5.1.4 Storage areas
    5.1.5 Database schema management

    5.2 Advanced Record Processing

    5.2.1 FOR EACH optimization
    5.2.2 FIND and FIND FIRST/LAST
    5.2.3 Record locking
    5.2.4 NO-LOCK and EXCLUSIVE-LOCK
    5.2.5 SHARE-LOCK

    5.3 Database Transactions

    5.3.1 Transaction scope
    5.3.2 Transaction blocks
    5.3.3 COMMIT and UNDO
    5.3.4 Nested transactions
    5.3.5 Transaction integrity

    5.4 Advanced Query Processing

    5.4.1 Query objects
    5.4.2 Dynamic queries
    5.4.3 Query preparation
    5.4.4 Query optimization
    5.4.5 Query performance analysis


    6. Temp-Tables and ProDataSets

    6.1 Advanced Temp-Table Programming

    6.1.1 Temp-table design
    6.1.2 Temp-table indexes
    6.1.3 Before-table and after-table concepts
    6.1.4 Temp-table validation
    6.1.5 Passing temp-tables between procedures

    6.2 ProDataSets

    6.2.1 ProDataSet architecture
    6.2.2 Dataset relations
    6.2.3 Dataset handles
    6.2.4 Data synchronization
    6.2.5 Dataset serialization

    6.3 Data Transfer

    6.3.1 Dataset-based data exchange
    6.3.2 XML serialization
    6.3.3 JSON serialization
    6.3.4 Data validation
    6.3.5 Data transformation


    7. Advanced Error Handling and Debugging

    7.1 Error Handling

    7.1.1 ABL error model
    7.1.2 ERROR-STATUS
    7.1.3 NO-ERROR
    7.1.4 RETURN ERROR
    7.1.5 Error objects

    7.2 Structured Error Handling

    7.2.1 CATCH blocks
    7.2.2 FINALLY blocks
    7.2.3 Progress.Lang.Error
    7.2.4 Custom error classes
    7.2.5 Exception propagation

    7.3 Debugging Techniques

    7.3.1 Debugger configuration
    7.3.2 Breakpoints
    7.3.3 Watch expressions
    7.3.4 Call stack analysis
    7.3.5 Runtime troubleshooting


    8. Advanced Transaction Management and Concurrency

    8.1 Transaction Design

    8.1.1 Transaction boundaries
    8.1.2 Transaction nesting
    8.1.3 Business transaction design
    8.1.4 Rollback strategies

    8.2 Concurrency Management

    8.2.1 Lock management
    8.2.2 Lock conflicts
    8.2.3 Deadlock scenarios
    8.2.4 Optimistic and pessimistic approaches
    8.2.5 Concurrency troubleshooting


    9. Advanced UI and Application Development

    9.1 OpenEdge GUI Programming

    9.1.1 Windows and frames
    9.1.2 Widgets and controls
    9.1.3 Event-driven programming
    9.1.4 Dynamic widgets
    9.1.5 UI validation

    9.2 Advanced Event Handling

    9.2.1 Triggers
    9.2.2 Event procedures
    9.2.3 User-defined events
    9.2.4 Event publishing and subscription

    9.3 UI Architecture

    9.3.1 Separation of UI and business logic
    9.3.2 Reusable UI components
    9.3.3 UI service layers
    9.3.4 Application maintainability


    10. Business Logic and Service Layer Architecture

    10.1 Business Logic Design

    10.1.1 Business rules
    10.1.2 Validation services
    10.1.3 Business objects
    10.1.4 Service classes

    10.2 Layered Architecture

    10.2.1 Presentation layer
    10.2.2 Business layer
    10.2.3 Data access layer
    10.2.4 Integration layer
    10.2.5 Cross-cutting services

    10.3 Reusable Components

    10.3.1 Shared procedures
    10.3.2 Service classes
    10.3.3 Utility libraries
    10.3.4 Common frameworks


    11. OpenEdge Web Services and REST API Development

    11.1 Web Service Fundamentals

    11.1.1 SOAP architecture
    11.1.2 REST architecture
    11.1.3 HTTP fundamentals
    11.1.4 Request and response processing

    11.2 REST Development

    11.2.1 REST service architecture
    11.2.2 REST resources
    11.2.3 HTTP methods
    11.2.4 HTTP status codes
    11.2.5 REST service implementation

    11.3 JSON Processing

    11.3.1 JSON objects
    11.3.2 JSON arrays
    11.3.3 JSON serialization
    11.3.4 JSON deserialization
    11.3.5 JSON validation

    11.4 SOAP Services

    11.4.1 SOAP service architecture
    11.4.2 WSDL
    11.4.3 SOAP requests and responses
    11.4.4 Consuming external SOAP services


    12. OpenEdge Application Server and Service Architecture

    12.1 Application Server

    12.1.1 OpenEdge Application Server architecture
    12.1.2 AppServer agents
    12.1.3 Stateless and state-aware services
    12.1.4 Session management

    12.2 Service-Oriented Applications

    12.2.1 Service contracts
    12.2.2 Service interfaces
    12.2.3 Service invocation
    12.2.4 Service error handling
    12.2.5 Service monitoring


    13. Integration with External Systems

    13.1 Enterprise Integration

    13.1.1 Integration architecture
    13.1.2 File-based integration
    13.1.3 Database integration
    13.1.4 API integration
    13.1.5 Message-based integration

    13.2 External Database Connectivity

    13.2.1 SQL integration concepts
    13.2.2 ODBC connectivity
    13.2.3 JDBC integration concepts
    13.2.4 Data synchronization

    13.3 Enterprise Messaging

    13.3.1 Messaging architecture
    13.3.2 Asynchronous processing
    13.3.3 Message queues
    13.3.4 Event-driven integration


    14. JSON, XML and Data Interchange

    14.1 XML Processing

    14.1.1 XML fundamentals
    14.1.2 XML documents
    14.1.3 XML parsing
    14.1.4 XML serialization

    14.2 JSON Processing

    14.2.1 JSON data structures
    14.2.2 JSON objects and arrays
    14.2.3 JSON parsing
    14.2.4 JSON generation

    14.3 Data Transformation

    14.3.1 XML-to-JSON transformation
    14.3.2 JSON-to-XML transformation
    14.3.3 Schema validation
    14.3.4 Data mapping


    15. OpenEdge Security

    15.1 Application Security

    15.1.1 Authentication
    15.1.2 Authorization
    15.1.3 Role-based access control
    15.1.4 Application permissions

    15.2 API Security

    15.2.1 API authentication
    15.2.2 Token-based authentication
    15.2.3 Secure HTTP communication
    15.2.4 Input validation
    15.2.5 API security best practices

    15.3 Data Security

    15.3.1 Database security
    15.3.2 Sensitive data protection
    15.3.3 Encryption concepts
    15.3.4 Audit logging


    16. Performance Tuning and Optimization

    16.1 ABL Performance

    16.1.1 Efficient ABL coding practices
    16.1.2 Record retrieval optimization
    16.1.3 Query optimization
    16.1.4 Memory management
    16.1.5 CPU utilization

    16.2 Database Performance

    16.2.1 Index selection
    16.2.2 Index utilization
    16.2.3 Query plans
    16.2.4 Database I/O
    16.2.5 Buffer management

    16.3 Application Performance Analysis

    16.3.1 Performance profiling
    16.3.2 Bottleneck identification
    16.3.3 Logging and diagnostics
    16.3.4 Performance benchmarking
    16.3.5 Production performance troubleshooting


    17. Source Code Management and DevOps

    17.1 Version Control

    17.1.1 Git fundamentals
    17.1.2 Git repositories and branching
    17.1.3 Feature branches
    17.1.4 Pull requests and code reviews
    17.1.5 Merge conflict resolution

    17.2 OpenEdge Source Management

    17.2.1 ABL source organization
    17.2.2 Compile management
    17.2.3 Build artifacts
    17.2.4 Environment-specific configuration

    17.3 Continuous Integration

    17.3.1 CI fundamentals
    17.3.2 Automated builds
    17.3.3 Automated testing
    17.3.4 Build validation

    17.4 Continuous Delivery

    17.4.1 Deployment pipelines
    17.4.2 Development environments
    17.4.3 Test environments
    17.4.4 Production deployment
    17.4.5 Rollback strategies


    18. Automated Testing and Quality Engineering

    18.1 Testing Fundamentals

    18.1.1 Unit testing
    18.1.2 Integration testing
    18.1.3 Regression testing
    18.1.4 System testing

    18.2 ABL Testing

    18.2.1 Testable ABL architecture
    18.2.2 Unit test design
    18.2.3 Mocking dependencies
    18.2.4 Test data management

    18.3 Quality Practices

    18.3.1 Static code analysis
    18.3.2 Coding standards
    18.3.3 Code reviews
    18.3.4 Technical debt management


    19. Logging, Monitoring and Production Support

    19.1 Application Logging

    19.1.1 Logging architecture
    19.1.2 Log levels
    19.1.3 Structured logging
    19.1.4 Application diagnostics

    19.2 OpenEdge Monitoring

    19.2.1 Session monitoring
    19.2.2 Database monitoring
    19.2.3 Application server monitoring
    19.2.4 Resource utilization

    19.3 Production Troubleshooting

    19.3.1 Incident analysis
    19.3.2 Performance incidents
    19.3.3 Database locking issues
    19.3.4 Application failures
    19.3.5 Root-cause analysis


    20. Advanced OpenEdge Development Tools

    20.1 Development Environment

    20.1.1 Progress Developer Studio
    20.1.2 OpenEdge Architect concepts
    20.1.3 Workspace management
    20.1.4 Project configuration

    20.2 Build and Deployment Tools

    20.2.1 Compilation automation
    20.2.2 Build scripts
    20.2.3 Deployment packaging
    20.2.4 Environment configuration


    21. Modernizing Legacy Progress 4GL Applications

    21.1 Legacy Application Assessment

    21.1.1 Legacy code analysis
    21.1.2 Technical debt identification
    21.1.3 Dependency analysis
    21.1.4 Modernization roadmap

    21.2 Procedural to Object-Oriented Migration

    21.2.1 Identifying business logic
    21.2.2 Extracting reusable components
    21.2.3 Introducing classes
    21.2.4 Refactoring procedural code

    21.3 Legacy Integration Modernization

    21.3.1 Exposing legacy functionality as services
    21.3.2 REST enablement
    21.3.3 JSON integration
    21.3.4 Cloud integration considerations


    22. Advanced Architecture and Design

    22.1 Enterprise Application Architecture

    22.1.1 Monolithic architecture
    22.1.2 Layered architecture
    22.1.3 Service-oriented architecture
    22.1.4 Microservice integration concepts

    22.2 Design Principles

    22.2.1 SOLID principles
    22.2.2 Separation of concerns
    22.2.3 Dependency inversion
    22.2.4 Loose coupling
    22.2.5 Reusability and maintainability

    22.3 Application Scalability

    22.3.1 Horizontal scaling
    22.3.2 Stateless application design
    22.3.3 Connection management
    22.3.4 Concurrent processing


    23. Cloud and Modern OpenEdge Deployment

    23.1 Cloud Concepts

    23.1.1 Cloud deployment models
    23.1.2 Infrastructure considerations
    23.1.3 Networking considerations
    23.1.4 Storage considerations

    23.2 Containerization

    23.2.1 Container fundamentals
    23.2.2 Docker concepts
    23.2.3 OpenEdge application containers
    23.2.4 Container configuration

    23.3 Cloud-Native Integration

    23.3.1 REST APIs
    23.3.2 Cloud services integration
    23.3.3 Monitoring and logging
    23.3.4 Scalability considerations


    24. Capstone Project – Enterprise OpenEdge Application

    24.1 Project Planning

    24.1.1 Business requirements
    24.1.2 Application architecture
    24.1.3 Database design
    24.1.4 API design

    24.2 Application Development

    24.2.1 ABL business logic
    24.2.2 Object-oriented components
    24.2.3 Temp-table and ProDataSet implementation
    24.2.4 REST API development
    24.2.5 Error handling and logging

    24.3 Quality and Deployment

    24.3.1 Unit testing
    24.3.2 Integration testing
    24.3.3 Performance testing
    24.3.4 Git-based source management
    24.3.5 CI/CD pipeline
    24.3.6 Production deployment

    24.4 Project Presentation

    24.4.1 Architecture walkthrough
    24.4.2 Code review
    24.4.3 Performance analysis
    24.4.4 Deployment demonstration


    25. Final Assessment and Advanced Developer Certification

    25.1 Knowledge Assessment

    25.1.1 Advanced ABL programming assessment
    25.1.2 Database programming assessment
    25.1.3 Integration assessment
    25.1.4 Performance optimization assessment

    25.2 Practical Assessment

    25.2.1 Application development assignment
    25.2.2 Debugging assignment
    25.2.3 Performance tuning assignment
    25.2.4 REST API implementation assignment

    25.3 Certification

    25.3.1 Capstone project evaluation
    25.3.2 Technical interview
    25.3.3 Advanced OpenEdge Developer completion certificate

    Training Lab Specifications

    The course should be delivered using a dedicated OpenEdge development environment for every participant.

    Development Environment

    Component Recommended Specification
    Operating System Windows 10/11 64-bit or supported Linux distribution
    CPU 4-core processor or better
    RAM Minimum 8 GB; 16 GB recommended
    Storage Minimum 40 GB free space
    Network Stable broadband connection
    IDE Progress Developer Studio / supported OpenEdge development environment
    OpenEdge OpenEdge 12.x or organization-approved supported version
    Database Dedicated OpenEdge development database
    Source Control Git
    API Testing Postman or equivalent REST client
    Browser Latest Chrome / Edge / Firefox
    Terminal PowerShell / Bash
    Optional Docker for containerization exercises

    OpenEdge Lab Environment

    Each participant should have access to:

    • OpenEdge development server
    • Dedicated development database
    • Database administration tools
    • ABL compiler/runtime
    • Progress Developer Studio
    • Sample enterprise database schema
    • Sample legacy Progress 4GL application
    • Sample REST services
    • Git repository
    • Build/deployment scripts
    • API testing environment
    • Application logs and diagnostic data
    • Performance-testing dataset

    Recommended Lab Exercises

    The practical component should progressively build an enterprise application:

    Lab 1: Advanced ABL programming
    Lab 2: Dynamic queries and buffers
    Lab 3: Temp-tables and ProDataSets
    Lab 4: Transaction and locking management
    Lab 5: Object-oriented ABL application
    Lab 6: Error handling and debugging
    Lab 7: Database performance optimization
    Lab 8: REST API development
    Lab 9: JSON/XML integration
    Lab 10: Authentication and API security
    Lab 11: Git-based source control
    Lab 12: Automated build and deployment
    Lab 13: Application monitoring and troubleshooting
    Lab 14: Legacy Progress 4GL modernization
    Lab 15: Enterprise capstone project

    Suggested Training Duration

    For the complete advanced curriculum, I would recommend 60–80 hours, depending on how much legacy modernization, REST integration, DevOps and hands-on project work is required.

    A practical structure would be:

    • Theory & demonstrations: 30–35%
    • Instructor-led coding: 20–25%
    • Hands-on labs: 30–35%
    • Capstone/project: 10–15%

    For experienced Progress 4GL/OpenEdge developers, the most valuable emphasis should be on advanced ABL + database performance + OOABL + ProDataSets + REST/API integration + debugging + DevOps + legacy modernization, rather than spending too much time on basic syntax.

    Reviews

    There are no reviews yet.

    Be the first to review “Advanced Development Training – Progress 4GL & OpenEdge”

    Your email address will not be published. Required fields are marked *

    Enquiry


      Category: