What's New in OpenEdge 12.8
- Last Updated: February 9, 2026
- 25 minute read
- OpenEdge
- Version 12.8
- Documentation
|
OpenEdge Release 12.8 delivers enhancements in the following product areas: |
Developer Productivity
The enhancements to ABL, Progress Developer Studio for OpenEdge and other development tools, and OpenEdge installer empower Developers to boost productivity and efficiency.
This section details the Developer productivity features in this release.
Dynamic Export and Import of Data
Today, many ABL applications leverage dynamic programming to dynamically fetch records using methods of the Buffer object handle. Earlier, ABL Developers had to implement complex techniques to export and import data in a flexible and standard format.
In this release, four methods are introduced to support the export and import of data. The
primary benefit of these methods over the existing IMPORT and
EXPORT statements is that you do not need to know the table
names ahead of time. The BUFFER-EXPORT() and
BUFFER-IMPORT() methods export and import all the fields in a
table, respectively, unless you specify a parameter with a list of fields to
exclude. The BUFFER-EXPORT-FIELDS() and
BUFFER-IMPORT-FIELDS() methods are similar but require that you
supply a list of fields to include. With these four methods, the ABL Developer has
full control over exporting and importing fields in a table. Using these built-in methods can save development time, simplify code, and potentially improve
an application’s performance.
Support for Empty String Values as NULL in OpenEdge Oracle DataServer
The Oracle database considers both zero-length (empty) strings and NULL
values to be identical. However, the OpenEdge Oracle DataServer inserts a
zero-length string as a single-space character when migrating data from an OpenEdge
database to an Oracle database. Therefore, the Oracle database stores zero-length
string values ("") as single-space characters ("
") and unknown values (?) as NULL. This
default behavior of the DataServer causes issues when data is migrated from an
OpenEdge database to an Oracle database—the Oracle database-accessing applications
are required to regard zero-length string and NULL identically.
PRGRS_MAP_EMPTY_NULL option of the
DataServer (-Dsrv) startup parameter to instruct the DataServer to
map a zero-length character string in an OpenEdge database to a
NULL value in an Oracle database. PRGRS_MAP_EMPTY_NULL option because it may cause problems
with the existing Oracle DataServer applications. To utilize this functionality,
you do not need to recompile your applications with OpenEdge release 12.8 or
later ABL virtual machine (AVM). You only need to provide the
PRGRS_MAP_EMPTY_NULL option. The absence of this option
activates the default behavior. For more information about using the PRGRS_MAP_EMPTY_NULL
option of the DataServer, see
Unknown Value and
Zero-length character strings.
Improve Performance by Concatenating Strings at Compile Time
In this release, you can mark all "
"Character-string literals in your code as untranslatable, using the
DEFAULT-UNTRANSLATABLE compiler option in ABL or the
-defuntrans startup parameter. This feature can benefit
single-language applications, allowing the compiler to concatenate untranslatable
literal character strings with no-string attributes at compile time instead of at
runtime, slightly improving the performance. Using the
DEFAULT-UNTRANSLATABLE option on the COMPILE
statement or the -defuntrans startup parameter for the session is
equivalent to using the :U syntax on all literal character strings
(if no other attributes are specified). Not having to specify the
:U syntax makes your code less verbose.
For more information, see the DEFAULT-UNTRANSLATABLE option
description of the COMPILE
statement and Default Untranslatable (-defuntrans).
Restore OpenEdge Studio Tools
Since OpenEdge release 12.0, Progress stopped shipping the 32-bit OpenEdge Studio, which included the Data Dictionary, Data Administration, Results, and Audit Policy Maintenance tools. In this release, the Data Dictionary, Data Administration, and Audit Policy Maintenance tools have been added to the 32-bit 4GL Development System (these tools are already present in the 64-bit 4GL Development System). Additionally, the Results toolhas been added to both, the 32-bit and 64-bit 4GL Development System.
.NET Development Tools in Developer Studio
- Class Browser to view the contents of .NET libraries
- Content Assist to suggest the relevant members of .NET classes, such as methods and properties, when writing code
- Outline View to list the members of the .NET classes when inheriting or implementing them in any class or interface
For more information, see .NET project type, Create a .NET project, and Migrate a .NET Framework project to .NET project.
Microsoft Windows Installer for OpenEdge WebClient
Prior to this release, the OpenEdge WebClient was delivered as a .exe
package. Now, it is delivered as a lightweight .msi package with a
reduced footprint and excludes any unnecessary files. The Microsoft Windows
Installer (MSI) package for OpenEdge WebClient is available in 32-bit and 64-bit
versions in the Progress Software Download Center.
- Install the WebClient on a system within the network.
- Upgrade or uninstall the WebClient, resulting in reduced maintenance efforts.
For more information, see Run the Microsoft Windows Installer for OpenEdge WebClient.
Changes in ABLUnit
The ABLUnit framework previously used the -debugAlert startup parameter as a
debugging option to keep generated XREF files on the file system, allowing a
developer to examine the files if necessary. As of 12.8.2, the ABLUnit framework no
longer depends on that startup parameter to signal the use of debugging actions, and
instead makes use of a new debug option when supplying a JSON
configuration file. For more information, see Run test cases from the command prompt in
Progress Developer Studio for OpenEdge Online Help.
AI Coding Assistant plugin with Developer Studio
Generative AI has become popular and evolved with the availability of various versions of language-specific Large Language Models (LLM). Based on machine learning, the generative AI creates code, text, and images. Most IDEs have integrated an AI coding assistant designed to help the developer write, review, debug, and optimize their code.
The AI Coding Assistant plugin with Developer Studio is available as a downloadable plugin. You can download the AssistAI-ChatGPT-PDSOE-Plugin-<oe-version>.zip file from the Progress Electronic Software Download (ESD) center and install it in the Developer Studio to assist ABL developers generate ABL code snippets. This integration eliminates the need for the ABL developer to switch context between their browser and IDE, and significantly improves the productivity of the ABL developer with their coding activity.
For more information, see Use AI Coding Assistant with Developer Studio, Install AI Coding Assistant with Developer Studio, Enable AI Coding Assistant with Developer Studio, Use ChatGPT view, Discuss code using AI Coding Assistant with Developer Studio, and Uninstall AI Coding Assistant with Developer Studio.
Memory Profiling
In this release, OpenEdge introduces the ability to identify and diagnose memory consumption issues in your ABL code using memory profiling. When memory profiling is enabled, the AVM generates recordings (.oemp report files) to help you analyze the captured memory usage data. Recording snapshots can be generated automatically at a certain cadence or programmatically in your code.
To enable memory profiling, use the Profile Memory (-profileMemory) startup parameter. This parameter takes a configuration file as input.
cadence, Description,
report-dir, and SnapshotEndOfRequest.Description and
SnapshotEndOfRequest are only available in OpenEdge 12.8.7
and later releases. In earlier 12.8.x releases, the properties are
ignored.To support memory profiling, ABL introduces a new class, property, and methods:
- Progress.Profiler.MemoryProfiler class
- Enabled property
- GetOutputFileName( ) method
- TakeSnapshot( ) method
GetOutputFileName() method is only
available in OpenEdge 12.8.7 and later releases. This method raises an error
condition if r-code that references it is executed in earlier 12.8.x
releases.For more information on memory profiling, see Profile memory in Troubleshoot ABL Applications.
The OpenEdge Memory Profiler Visualization Tool
The OpenEdge Memory Profiler is a powerful, standalone memory analysis tool designed to help ABL developers proactively analyze memory usage and optimize application performance. Delivered as a self-contained PAS for OpenEdge instance beginning with OpenEdge Release 12.8.9, the tool simplifies installation through a script-based setup and provides a browser-based dashboard for visualizing memory trends, analyzing object-level memory consumption, and identifying excessive memory usage.
This tool addresses a long-standing challenge faced by ABL developers, which is diagnosing and resolving memory-related issues such as excessive consumption, which often lead to degraded performance, system instability, and prolonged debugging cycles. By offering a user-friendly interface, the profiler empowers developers to self-diagnose problems, reducing reliance on technical support and significantly lowering the mean time to resolution (MTTR).
- Browser-based user interface (UI) with visual insights—A modern, intuitive UI enables you to visualize memory usage trends, drill into object-level statistics, and navigate through recordings, snapshots, and tags with ease. Within a snapshot you can analyze a wide range of ABL object types including OOABL classes, procedures, temp-tables, and widget pools, giving you insight into how your application consumes memory over time.
- Snapshot comparison for memory analysis—Compare memory snapshots
captured at different points in time to:
- Pinpoint inefficiencies in object lifecycle management and memory allocation patterns
- Track memory growth
- Validate cleanup operations
- Self-contained Progress Application Server (PAS) for OpenEdge deployment—The OpenEdge Memory Profiler is packaged as a standalone PAS for OpenEdge instance, bundling its own embedded database and runtime components. This simplifies installation and ensures consistent behavior across environments.
- Customize auto-import from multiple watched directories—Generated .oemp files for an ABL Session must be placed in a watched directory. You can specify multiple local folders for importing newly generated memory profiling recordings. You can enable or disable auto-import using flexible configuration options, allowing you to tailor the import process to suit your workflows and infrastructure.
For more information, see Use the OpenEdge Memory Profiler Tool.
Performance and Scalability
This release of OpenEdge provides performance-tracing support for OpenEdge applications in OpenTelemetry (OTel) standard. Now, developers can choose their Application Performance Monitoring (APM) tools such as Dynatrace, Instana, Elastic, NewRelic, and so on that support OTel standards. They can effectively monitor and tune the performance of their business applications and avoid outages, without making any changes to the ABL code.
This section details the performance and scalability features in this release.
Monitor ABL Client Using OTel
- Monitor the ABL Clients (such as ABL Client, ABL Socket Client, and ABL HTTP Client) and the Java Clients using OTel tracing.
- Analyze their performance using the APM tool of choice that support OTel standards.
To monitor the ABL client, the System Administrators must enable OTel tracing within the ABL client and also configure the OTel Collector and the chosen APM tool. After OTel tracing is enabled, the ABL client sends trace data to the OTel Collector, which subsequently sends trace data to the APM tool for analysis. Traces can help identify problems, including performance degradation, and analysis of traces can help resolve these problems.
For more information, see Monitor ABL applications using OpenTelemetry.
Monitor PAS for OpenEdge Agent Using OTel
In an environment where the ABL applications interact with other applications, System Administrators seek insights into the performance of the ABL applications to avoid any outages and performance bottlenecks in their applications. They can now monitor the PAS for OpenEdge agents using OTel tracing and analyze their performance using an APM tool of choice. Based on this analysis, they can gain insights into potential issues within their applications.
To monitor the PAS for OpenEdge agent, the System Administrators must enable OTel tracing within the PAS for OpenEdge agent and also configure the OTel Collector and an APM tool. When OTel tracing is enabled, the PAS for OpenEdge agent sends trace data to the OTel Collector, which subsequently sends trace data to the APM tool for analysis. Traces can help identify problems, including performance degradation and analysis of traces can help resolve these problems.
For more information, see Monitor ABL applications using OpenTelemetry.
Monitor ABL Client and PAS for OpenEdge Agent Simultaneously Using OTel
With this feature, System Administrators can monitor ABL clients and PAS for OpenEdge agents simultaneously, using OTel tracing. They can view trace data that the ABL clients and the PAS for OpenEdge agents generate using any OTel-compliant APM tool and gain insights into potential issues within their applications.
- The ABL client:
- Generates trace data and sends it to the OTel Collector.
- Shares trace context with the PAS for OpenEdge agent.
- The PAS for OpenEdge agent:
- Uses the shared trace context to link its own generated trace data with that of the ABL client.
- Sends trace data to the OTel Collector using the OTLP protocol.
- The OTel Collector forwards trace data to the APM tool for analysis. This analysis provides insights into the potential issues within the application and can help to optimize its performance.
For more information, see Monitor ABL applications using OpenTelemetry.
New OEMANAGER Utility for PAS for OpenEdge Instances
- An easy-to-read textual representation of the metrics.
- Similar to the ASBMAN and WTBMAN utilities that were previously available within the Classic AppServer product.
For more information, see OEMANAGER utility.
List Agents with Session Metrics Using OpenEdge Manager and OpenEdge JMX
In this release, System Administrators can now get combined metrics for all Progress Application Server (PAS) agents and their sessions in one call for an ABL application. The metrics are available through OpenEdge JMX (OEJMX) and the OpenEdge Manager web application (oemanager.war). Previously, you had to issue multiple requests to the server to get the breadth of information needed on agents and their sessions. With this feature, you get more information with fewer requests to the PAS instance, and processing time on the client side is reduced.
For more information, see:
- OpenEdge Manager: List agents with session metrics
- OpenEdge JMX: List agents with session metrics query query
Database Operations
In this release, OpenEdge elevates database management by providing more capabilities to Database Administrators such as, helping in monitoring and improving supportability.
This section details the database operations or availability features in this release.
Validate Record Keys with Faster Index Check
Database Administrators can now run index checks using multiple threads to validate keys for each record in a Type II table, provided that the database is running. Using threads enables serial operations to run in parallel, improving performance.
When you run PROUTIL IDXCHECK, the index check option 2, Validate keys for each
record, is selected by default. All threaded index check options use
multiple threads automatically if your system supports it. The frequency of status messages has been reduced for threaded index check. Note that like other
threaded utilities, threaded index checks do not support word indexes.
For more information, see PROUTIL IDXCHECK qualifier.
Probe the Database Online State
- Startup—Has the database finished startup?
- Liveness—Is the broker of the database alive and responsive?
- Readiness—Can the database accept and perform activity?
For more information, see PROUTIL PROBE qualifier.
Monitor the Status of After-Image Management Daemon
- The new
_Logging-AISwitchSchedulefield in the_LoggingVST tracks the timestamp of the next scheduled AI file switch indatetime-tzformat. - The new
_Logging-AIArchDirfield in the_LoggingVST tracks the currently-set AI archive directory from the list of AI archive directories specified at startup.For more information, see Logging (_Logging).
_UserStatus VST
have been modified to store information related to the status of AIMD: - The
_UserStatus-Counterfield reports the error return code when AIMD encounters an error. - The
_UserStatus-ObjectTypefield returns the value9to indicate the object type as an area. - The
_UserStatus-Operationfield reports the status of the AIMD startup, archiving, switching, emptying, and waiting utility operations. - The
_UserStatus-Statefield reports the following states of AIMD:_UserStatus-State value Utility Description 207 PROSHUT AIMGTAIMD has run successfully. 208 PROSHUT AIMGTAIMD encountered an error. For more information, see User status (_UserStatus).
Configure Databases Persistently
To configure a database, Database Administrators can now generate a parameter file
(.pf) at runtime. They can use this file directly, without
additional editing, to restart the database with the same configuration settings as
the previously-running system. For example, a Database Administrator regularly uses a .pf file with the
-B parameter set to value 100 and later, while
the database is running, they use the INCREASETO command to set -B
to 1000. If they restart the database, which uses the same
.pf file, the -B value is again
100.
The benefit of this feature is that Database Administrators do not have to record or remember the changes made to the database configuration. As newer OpenEdge releases allow Database Administrators to do more operations without stopping the database, preserving configuration changes becomes increasingly important.
For more information, see Generate parameter files.
Reorganize Table Using Sorting by Non-unique Indexes
The PROUTIL TABLEREORG qualifier lets you reorganize fragmented or scattered record data while the associated table remains accessible to Online Transaction Processing (OLTP) operations. TABLEREORG reorganizes the table according to the sort order of the index. Therefore Progress recommends that you use an index frequently used by the application so that the logical scatter is reduced when the application requests data from the database.
Prior to this release, this utility required that you specify an active unique index. However, for the best performance, it is preferable to reorganize by the most-used index, which may not be unique. As of this release, non-unique indexes are allowed for the USEINDEX parameter.
For more information, see PROUTIL TABLEREORG qualifier.
Obtain OS Read Counts at User Level
OSRead fields let a Database Administrator determine if a
specific user is causing many O/S reads:
- The new
_UserIndexStat-OSReadfield in the_UserIndexStatVST tracks the number of index reads from disk that each user performs since database startup. - The new
_UserLobStat-OSReadfield in the_UserLobStatVST tracks the number of large object reads from disk that each user performs since database startup. - The new
_UserTableStat-OSReadfield in the_UserTableStatVST tracks the number of table reads from disk that each user performs since database startup.
For more information, see User index activity (_UserIndexStat), User LOB activity (_UserLOBStat), and User table activity (_UserTableStat).
- The
O/S Reads by User by Tablefield displays the reads from disk by user per table. To access this field, select R&D > 3 (Other Displays) > 5 (I/O Operations by User by Table).For more information, see I/O Operations by User by Table.
- The
O/S Reads by User by Indexfield displays the reads from disk by user per index. To access this field, select R&D > 3 (Other Displays) > 6 (I/O Operations by User by Index).For more information, see I/O Operations by User by Index.
- The
O/S Reads by User by Lobfield displays the reads from disk by user per LOB. To access this page, select R&D > 3 (Other Displays) > 8 (I/O Operations by User by LOB).For more information, see LOB I/O operations in PROMON.
Provide Private Buffer VST Information
Database Administrators frequently monitor database buffer reads and if the buffer hit ratio
is low, they may increase the size of the buffer pool (-B). They
may also designate a private buffer pool (-Bp) for a time-consuming
job, such as populating a data warehouse or executing a slow-performing request.
When using private buffers, the Virtual System Tables (VST) for buffer impacts does
not differentiate between -Bp and -B OS-reads. In
this scenario, a Database Administrator who observes a low buffer hit rate can
continue to increase -B without seeing any improvement.
This new feature adds -Bp fields to the new Private Buffer Activity VST
called _ActPrivBuffer. This VST separates logical and OS-reads
generated from a private buffer pool from those generated when reading from the
primary or alternate buffer pools. The updated PROMON Buffer Cache
Activity display now tracks the logical and OS-reads generated from
a private buffer pool in separate counters and shows them with the private buffer
pool hit ratio percentage. Database Administrators can now have a better
understanding of the buffer hit rate and avoid making unproductive adjustments.
- For more information, see the Private buffer activity (_ActPrivBuffer) VST.
- For more information on the updated PROMON Buffer Cache Activity display, see Buffer Cache.
New VST Fields for OpenEdge Version and RDBMS Edition
The new
_DbStatus-OEVersionfield in the_DbStatusVST contains the OpenEdge version string in the same format asProversion(1). For example, consider12.8.0.0.1013, where12.8is the release number,0is the update number,0is a constant value that is no longer used in the current release model, and1013is the build number.For more information, see Database status (_DbStatus).
The
OpenEdge version namefield displays the OpenEdge version string on the R&D > 1 (Status Displays) > 1 (Database) > PROMON Database status page also.For more information, see PROMON Database status display.
-
The new
_Lic-Editionfield in the_LicenseVST tracks the license edition information of the database.For more information, see License management (_License).
The
License Editionfield displays the license edition information of the database on the 7 (Database Status) > PROMON Database Status option page also.For more information, see PROMON Database Status option.
Back up the Running Databases Faster
Reducing the time needed for the backup operation helps shorten outages. This release offers new options for the PROBKUP utility that speed up backup operations while the database is running.
Progress strongly recommends that you back up an original database before performing any repair work on it, to have a fallback if the repair renders the database unusable. When the database is repaired and deemed viable, you should back up that version of the database before putting it into production.
For more information and recommendations for running the new options, see PROBKUP utility and Run a multi-threaded backup.
Resolve the Record Lock Conflicts Faster
If a record lock conflict occurs during table reorganization processing, the lock wait timeout
-lkwtmo startup parameter is applied. For
PROUTIL TABLEREORG, the default value of-lkwtmo has been reduced
from 30 minutes to 10 seconds.
For more information, see PROUTIL TABLEREORG qualifier.
Application Security
OpenEdge continually monitors for potential security vulnerabilities. The effort to scan, identify, assess, and mitigate potential security threats is ongoing. Information on how Progress manages reporting, management, discussion, and disclosure of vulnerabilities discovered in OpenEdge can be found in Progress OpenEdge Security Guidelines.
- Dynamic Data Masking (DDM) masks sensitive data when displayed at run time. Administrators can comply with data regulations and mask sensitive data in the fields from unauthorized users.
- Built-in security protects the OpenEdge platform executables and ease of configuration.
This section details the Application Security features in this release.
Database to Support DDM
- Enable or disable DDM online and offline.
- Activate DDM on a database and put DDM policies into effect.
- Deactivate DDM on a database where DDM policies are ignored.
- Support a multi-site replication deployment.
ABL API to Support DDM
IDataAdminService interface methods to perform DDM-related CRUD
operations for the following tasks:- Create, update, or delete the DDM-configured user-defined roles, users, role grants (user-to-role mapping), and authorization tags.
- Map authorization tags to DDM-configured user-defined roles and further map these user-defined roles to database users.
- Set or unset masks and authorization tags for any field of a table.
For more information about the IDataAdminService interface
methods and examples, see IDataAdminService interface.
SQL to Support DDM
With DDM, only authorized users can view sensitive information while it is masked for others. DDM configuration uses Role-Based Access Control (RBAC) to control the privileges granted to users for data unmasking. This technique facilitates the creation of new database roles and their assignment to database users, known as user-to-role mapping. This mapping allows determination of user credentials for accessing certain resources.
- Configure a mask for the fields of a table that hides the sensitive data in the result set of a query.
- Control the access privileges of users to view the unmasked values of specific fields.
- Create mask configurations and authorization tags using the methods
available through the
IDataAdminServiceinterface.
For more information, see Dynamic data masking in OpenEdge SQL server and Impact of Dynamic Data Masking on SQL constructs.
Dump and Load DDM Schema Definition
DDM enables security and DDM administrators to control which end users view sensitive information and mask it when viewed by unauthorized users. A mask is a format string representation that is setup against table fields to control how data is shown to an unauthorized user. Authentication tags help decide whether the user has unmasking privileges for a particular field.
This new feature allows the DDM administrators to run batch scripts to dump and load the DDM schema definitions from the command-line utility. Note that you can dump and load DDM schema definitions only if you are both, a DDM administrator and a security administrator. However, if the DDM and security administrators are separate individuals, only the DDM administrator can dump and load DDM schema definitions. ABL API is also made available to support this functionality.
For more information, see Batch dump ABL data definitions and Batch Load updated ABL data definitions.
Changes in OESECTOOL
- It requires a manual install.
- It performs a run-time license check to ensure that its use is limited to development licenses.
- It contains simplified startup commands.
- It creates keystore.p12 and sslkeystore.p12 upon initial startup.
- It can import and export certificates.
For more information, see OESECTOOL and Install OESECTOOL.
Support for OpenSSL 3.1
OpenEdge uses the OpenSSL library for cryptographic services and SSL/TLS communication for various OpenEdge clients and OpenEdge servers.
In this release, the OpenSSL support has been upgraded from version 1.1.1 to a major version 3.1.1. As a result, OpenEdge now supports only TLSv1.3 and TLSv1.2 for all client-server communication and transport layer security implementations. The older versions of SSL/TLS (SSL v3.0, TLSv1.0, TLSv1.1) are no longer supported and are deprecated since the OpenSSL 3.x release.
For more information, see Supported protocols, ciphers, and certificates for OpenEdge clients and servers.
OpenSSL 3.1.1 uses the concept of providers and supports various providers. OpenEdge currently
uses only the default and legacy providers. The
legacy provider contains legacy algorithms, which will be
deprecated in the future OpenSSL releases. Threfore, Progress discourages you to use
these legacy algorithms.
For more information, see Changes with OpenSSL 3.1.x in OpenEdge.
Catch TLS Errors
In this release, you can use ABL structured error handling to catch an error that occcurs
during communication between an ABL client and a remote server using HTTPS due to a
failure at the TLS layer (SSL). To resolve this, the newly introduced error class
TlsClientAuthenticationError isolates and translates common
internal errors thrown by the TLS layer (SSL) failure.
TlsClientAuthenticationError object:- The format of the fourth error message will now always be a translated
condition related to the inner error number from the SSL failure. In case
the inner error cannot be mapped to a safe and known message, the generic
Unknown TLS Errorwill be supplied as the message. - New instance properties have been added to the object class to provide
direct access to the internal values parsed and normally returned using the
following message statements:
Host—The hostname of the destination URI.Port—The port number of the destination URI.TlsErrorNum—The inner error number extracted from the SSL failure (9318) error.TlsError—The original SSL failure (9318) message with the full inner error number or message.
- A static property
ReturnOriginalMessageshas been added, which forces theTlsClientAuthenticationErrorclass to always return the originalSysErrormessages, in order and exactly as formatted from the original error object.- To enable this behavior, set the static property
TlsClientAuthenticationError:ReturnOriginalMessagestotrue. - To return to the new message statement behavior, return the property
to its default of
false. - The property may be changed before and then after
HttpClientrequest to force specific behavior for only that request, or set totrueonce at the start of an AVM session, such as by use of asessionStartupProcin PAS for OpenEdge, to globally enforce the behavior for an application.
- To enable this behavior, set the static property
For more information, see Catch TLS errors.
Changes to the ENCRYPT-AUDIT-MAC-KEY() Method
Starting with OpenEdge Release 12.8.10, the ENCRYPT-AUDIT-MAC-KEY() method
has been enhanced to accept an Encoding prefix as its second parameter.
|
If the prefix is omitted, invalid, or unsupported, the AVM raises a runtime error.
For more information, see ENCRYPT-AUDIT-MAC-KEY( ) method in the ABL Reference.
Integration and Interoperability
By supporting .NET on Linux, OpenEdge provides a clear path for customers, who developed their OpenEdge applications using .NET Framework, as they can maintain and modernize their .NET application without disruptive architectural redesign. In this release, OpenEdge also provides updates to the default PROMSGS languages.
This section details the features that help in application integration use cases and improved interoperability in this release.
.NET 8 Certification on Windows
.NET 8 is now certified to work with OpenEdge 12.8 on Windows for both ABL applications and .NET Open Client applications. .NET 8 is a long-term support release with end of support in November 2026. This certification ensures that ABL and .NET Open Client applications that upgrade to .NET 8 can take advantage of .NET 8 features and remain on a supported version of .NET.
For information on how to upgrade an ABL application to a different .NET version, see Adjust the OpenEdge installation to use a different .NET version.
For installation and configuration information for .NET Open Clients, see the .NET Open Client Support FAQ.
.NET support on Linux
OpenEdge 12.8 introduced the ability to access .NET classes from ABL on Linux, allowing the same OpenEdge application to run on both Windows and Linux. Customers with cloud-hosted OpenEdge .NET applications can migrate to Linux, where hosting costs are typically lower.
On Linux, OpenEdge supports access to .NET classes from the character client, the ABL batch
client, and the PAS for OpenEdge agent. GUI functionality such as
WinForms is not supported on Linux. OpenEdge .NET applications
without GUI functionality generally work on both platforms with little or no
modification. To enable this feature, install .NET and use the .NET Common Language Runtime (-clrnetcore) startup
parameter when running your application.
For more information, see Support for .NET in OpenEdge on Linux.
Language Updates to PROMSGS Files
In this release, the PROMSGS files have been updated for 13 supported languages: Chinese (Simplified), Czech, Dutch, English (International), French, German, Italian, Polish, Portuguese (Europe), Portuguese (Brazil), Spanish (Europe), Spanish (Latin America) and Swedish.
The PROMSGS files allow OpenEdge error and informational messages to be presented in languages other than English (US). Since the last translation of the messages in OpenEdge release 12.0, over 1000 new error and information messages have been added in English only. For international applications, the translated messages will improve the user experience, enabling end users to understand what action they need to take.
For more information on PROMSGS, see OpenEdge messages and The PROMSGS file.
OpenAPI Documentation for REST-Based Services that Use the REST Transport
In this release, OpenEdge provides an automated and industry-standard way to document REST APIs that use the REST transport. The documentation that is produced is in JSON format and follows the OpenAPI Specification. This format allows anyone to understand the details of how to call the services. Prior to this, the only option was to view the documentation using an OpenEdge-specific JSON format. The OpenAPI JSON can be used by tools (such as Swagger UI) to view and interact with the services graphically. For more information, see Deploy REST services and OpenAPI documentation for REST-based services in Manage Progress Application Server (PAS) for OpenEdge.
AI Enablement
As AI‑driven automation becomes integral to enterprise architectures, OpenEdge 12.8 introduces new capabilities that enable secure, standards‑based interoperability between OpenEdge services and LLM‑powered systems.
Enable AI-driven workflows with the OpenEdge MCP Server
The Progress® OpenEdge® MCP Server is a production-grade implementation of the Model Context Protocol (MCP) open standard, enabling OpenEdge business logic and data to participate securely and predictably in AI driven workflows. By automatically transforming OpenAPI specifications and optional prompt assets into AI accessible tools at startup, the OpenEdge MCP Server removes manual integration overhead for developers and provides a turnkey foundation for LLM-powered solutions.
As organizations increasingly adopt AI assistants and agents to automate business processes, the need for secure and reliable connections to existing enterprise applications becomes essential. The OpenEdge MCP Server fulfills this requirement through a controlled, standards‑based integration layer that gives developers a predictable interface for AI integration, while enforcing administrative controls required for secure operations in enterprise environments.
For complete conceptual guidance, setup instructions, and advanced configuration details, see Use the OpenEdge MCP Server.
Third-Party Support
The following updates were made to the supported third-party products, and the operating system and other platform certifications.
Version Updates for Tomcat and Spring
In this release, PAS for OpenEdge updates to Apache Tomcat 10.1.15. The Spring updates include Spring Framework 6.0.14 and Spring Security 6.1.4. These updates include new features, support for the latest specifications, and long-term support. These updates apply to the OpenEdge Authentication Gateway. For any service pack updates, see OpenEdge® 12 Platform Compatibility Guide.
For more information, see Tomcat, Spring Framework, and Spring Security FAQ.
Version Update for Infragistics Controls
In this release, the version of the OpenEdge Ultra Controls .NET license, which installs Infragistics Ultimate UI for Windows Forms, is updated to 23.1.20231.6.
Version Updates for Supported Aurea Messenger
Starting with the OpenEdge release 12.8.12, OpenEdge JMS Adapter and OpenEdge Adapter for Sonic ESB let you use Aurea Messenger 2025 R1 that supports Java 17. For more details, see OpenEdge® 12 Platform Compatibility Guide.
For details about OpenEdge JMS Adapter, see OpenEdge JMS Adapter.
For details about OpenEdge Adapter for Sonic ESB, see Use OpenEdge Adapter for Sonic ESB.