All systems

Progress 4GL / OpenEdge

Progress 4GL / OpenEdge
Supported
Guide

Progress OpenEdge (formerly Progress 4GL) is an application development platform and database management system widely used for mission-critical business applications.

What You Can Upload

  • .db database files
  • .d data files / data extents
  • .st structure files
  • ZIP archive with complete database files

What You Get Out

DataMeans extracts your data into multiple modern formats:

OutputDescription
csv/{TableName}.csvOne CSV file per table with all row data
xlsx/{TableName}.xlsxExcel workbook per table
xls/{TableName}.xlsLegacy Excel format per table
json/{TableName}.jsonJSON array of records per table
json/{TableName}.jsonlNewline-delimited JSON (streaming-friendly)
postgres.sqlPostgreSQL CREATE TABLE + INSERT statements
schema/schema-graph.jsonRelationship graph for visualization
schema/er-model.jsonER model for diagram tools
report.jsonStructured extraction report
report.mdHuman-readable extraction summary

How to Export / Obtain Files

  1. Stop the Progress database or create a backup
  2. Locate the .db and associated data extent files
  3. Include .st structure file if available
  4. Create a ZIP with all database files
  5. Upload the ZIP to DataMeans

Alternative: Use proutil to dump data to .d files:

proutil dbname -C dump tablename tablename.d

Supported Features

  • Full schema extraction (tables, indexes, constraints)
  • Progress data type conversion
  • Sequence mapping
  • Relationship preservation
  • Multiple data extents

Known Limitations

  • Triggers and stored procedures documented but not converted
  • Application-level logic requires manual migration
  • Very large databases may need chunked exports

Troubleshooting

IssueSolution
Database lockedStop database or use backup copy
Missing extentsInclude all .d1, .d2, etc. files
Schema incompleteInclude .st structure file
Technical reference

Overview

Progress 4GL (now OpenEdge ABL) is a fourth-generation programming language and database platform developed by Progress Software Corporation. It combines a relational database with an English-like programming language for rapid business application development. The database uses a proprietary format optimized for transactional processing and complex business logic.

History and Background

  • 1981: Progress Software founded as Data Language Corporation (DLC) by MIT graduates including Joseph Alsop, Clyde Kessel, and Chip Ziering.
  • 1984: First commercial version of Progress ships for Unix.
  • 1987: Company renamed Progress Software, after its flagship product.
  • 1993: Progress Version 7 adds GUI development for Windows and Motif.
  • 1995: Progress Version 8 introduces component-based visual development.
  • 1998: Progress Version 9 introduces Type I storage areas.
  • 2003: OpenEdge 10 released, the first OpenEdge-branded version, introducing Type II storage areas.
  • 2005: OpenEdge 10.1 adds object-oriented language extensions.
  • 2006: Progress 4GL renamed OpenEdge ABL (Advanced Business Language).
  • 2009: OpenEdge 10.2 released; release 10.2B adds Transparent Data Encryption for data at rest.
  • 2011: OpenEdge 11 introduces multi-tenant database tables.
  • 2014: OpenEdge 11.5 introduces the Pacific Application Server for OpenEdge (PASOE).
  • 2017: OpenEdge 11.7, a long-term support release, introduces Change Data Capture.
  • 2019: OpenEdge 12 adds a multi-threaded database server.
  • 2022: OpenEdge 12.5 adds an ABL API for Apache Kafka messaging.
  • 2024: OpenEdge 12.8 adds Dynamic Data Masking and OpenTelemetry-based application observability.
  • 2026: OpenEdge 13.0 released, resolving the year-2038 problem by widening on-disk time values from 32 to 64 bits.

File Format Specifications

Database Files:

  • .db: Database control area, a binary table of contents listing every area and extent
  • .d1, .d2, etc.: Data extents holding table data, indexes, and LOBs
  • .b1, .b2, etc.: Before-image extents used to undo incomplete transactions
  • .a1, .a2, etc.: After-image extents for roll-forward recovery
  • .lg: Text log file recording significant database events
  • .lk: Lock file created at session startup, recording whether the database is open in single-user or multi-user mode
  • .st: Structure description file, a text file defining the database's areas and extents
  • .tn: Transaction log extents (fixed-length only) listing committed two-phase commit transactions

Storage Architecture:

  • Block-based storage with configurable block sizes (1KB, 2KB, 4KB, or 8KB)
  • B-tree indexes for fast lookups
  • Record-level locking for concurrency
  • Default block size of 4KB on Windows and Linux, 8KB on UNIX
  • Databases divided into storage areas composed of one or more extents
  • Up to 32,000 storage areas per database, of which 31,994 can hold application data
  • Up to 1,024 extents per area and 1TB per extent; Type II areas can reach about 1PB with large files enabled
  • Records per block configurable in powers of two from 1 to 256, defaulting to 64 for 8KB blocks and 32 for other block sizes

File Structure:

  • Schema stored within the database's schema area
  • Compiled ABL code in .r files (r-code)
  • Data dictionary for metadata management
  • Audit trails and security settings
  • Replication and high-availability configurations
  • Limits of 32,767 table definitions and 32,767 indexes per database
  • Up to 1,000 fields per table through ABL, or 500 through the SQL engine
  • Index entries of at most 16 fields each

Data Types and Structures

TypeSizeDescription
CHARACTERVariableText strings up to 32KB
LONGCHARVariableCharacter data exceeding the 32KB CHARACTER limit
INTEGER1-4 bytes32-bit signed integers
INT641-8 bytes64-bit signed integers (added in OpenEdge 10.1B)
DECIMALVariableFixed-point decimals, up to 50 digits with up to 10 decimal places
DATE1-4 bytesStored as an integer count of days
DATETIMEDate + 4 bytesDate and time in milliseconds from midnight
DATETIME-TZDate + 8 bytesDate/time with time zone offset from UTC in minutes
LOGICAL1-2 bytesBoolean (yes/no)
BLOBUp to 1GBBinary large objects
CLOBUp to 1GBCharacter large objects
RAWVariableRaw binary data
RECID4 bytesLegacy record pointer; can be stored in database fields
ROWIDVariablePortable record pointer; cannot be stored in database fields

Database Objects:

  • Tables: Primary data containers
  • Indexes: B-tree structures for performance
  • Sequences: Auto-incrementing number generators (32-bit and 64-bit)
  • Triggers: ABL schema triggers and Java-based SQL triggers
  • Stored Procedures: Java routines executed by the SQL engine
  • Views: Virtual tables defined through the SQL engine

Version Differences

VersionYearKey FeaturesFile Format
Progress V71993GUI for Windows and MotifPre-storage-area format
Progress V81995Visual development; AppServer (8.2)Single- or multi-volume structure
Progress V91998Dynamic queries, Java Open ClientType I storage areas (CONV89 upgrade)
OpenEdge 102003Web services, ProDataSetsType II storage areas (CONV910 upgrade)
OpenEdge 10.12005Object-oriented ABLINT64 data type added in 10.1B
OpenEdge 10.22009GUI for .NET (10.2A); Transparent Data Encryption (10.2B)Optional encrypted on-disk storage (TDE, 10.2B)
OpenEdge 112011Multi-tenant tablesPer-tenant partitions; CONV1011 upgrade
OpenEdge 11.72017Change Data CaptureNo format change within Release 11
OpenEdge 122019Multi-threaded database serverConversion from Release 11 required
OpenEdge 12.82024Dynamic Data Masking, OpenTelemetry supportNo conversion within Release 12
OpenEdge 13.02026FIPS 140-3 support; multi-threaded backup by default64-bit time values in master blocks and extent headers (year-2038 fix)

Compatibility Notes:

  • Databases can be upgraded but not downgraded; reverting requires a restore from backup
  • The database format changes between major releases; PROUTIL conversion utilities (CONV89, CONV910, CONV1011, CONV1112) upgrade databases in place
  • Minor releases share a format; a database created under any Release 11.x can be opened by any other 11.x release without conversion
  • Some data types require minimum versions; INT64 fields require OpenEdge 10.1B or later
  • Single-volume Version 8 databases must be converted to multi-volume structure before upgrading to Version 9
  • Migration utilities are provided for major-version upgrades

Technical References


To learn how to use this format with DataMeans, see the User Guide.

Questions

What can I convert Progress 4GL / OpenEdge databases to?

DataMeans converts Progress 4GL / OpenEdge databases to clean CSV, Excel, JSON & SQL. Each table is exported as its own file, alongside a structured report of exactly what was extracted.

Do I need Progress 4GL / OpenEdge installed to open my databases?

No. DataMeans reads Progress 4GL / OpenEdge databases directly, so you don't need Progress 4GL / OpenEdge, a license, or any other legacy software to recover your data.

Can I preview my Progress 4GL / OpenEdge data before paying?

Yes. DataMeans shows your extracted tables and rows in the browser first, so you only pay when you're ready to download the full CSV, Excel, JSON & SQL export.

Is my data secure?

Yes. Your files are encrypted in transit and at rest, and are automatically deleted once your conversion is complete. Your data is never sold, shared, or used for anything else.