Release Notes 2026-04-13
- 1 Version Information
- 2 Retirement of OpenEdge 11.7
- 3 OpenEdge 13.0 support!
- 4 OpenEdge 12.8 support!
- 5 OpenEdge 12.2 support!
- 6 PASOE / OEMANAGER VS Code Extension
- 7 Introducing the SmartComponent Library developer forum
- 8 Release Notes
- 9 New Versions of Proparse .NET Assemblies (30 December 2018)
- 10 New Version of the Consultingwerk.SmartComponents Assemly (09 January 2019)
- 11 Hybrid Realm now using IAuthenticationService
- 12 Web Handler overview
- 13 UTF-8 based deployments available
- 14 New Feature Documentation
- 15 Download Link
- 16 Overview of included tickets
- 16.1 SCL-3196 - MetaGrid generation wizard added to the SmartFramework reference application
- 16.2 SCL-3197 - MetaViewer generation wizard added to the SmartFramework reference application
- 16.3 SCL-4716 - Scheduler now supports ICheckReadyToExecute interface for deferred job execution
- 16.4 SCL-4719 - WindowTitleField support added to SmartDataBrowser for dynamic window titles
- 16.5 SCL-4720 - JSON rendering support added for Document Viewer toolbar buttons
- 16.6 SCL-5030 - MCP Server resources added for toolbar button collections
- 16.7 SCL-5041 - JSON rendering support added for Smart Grid double-click actions via the doubleClickAction component option
- 16.8 SCL-5062 - Added test mode for Legacy GUI Migration MCP Server frame analysis
- 16.9 SCL-5098 - Token resolution support added to ConfigurationProvider property values
- 16.10 SCL-5152 - Custom fetch methods can now be added to DatasetModels
- 16.11 SCL-5200 - GenericMockDataAccess now supports static query requests
- 16.12 SCL-5203 - Fixed: SmartFramework data access class source-default queries now use WHERE instead of OF
- 16.13 SCL-5208 - ExcelWorksheetExporter now supports all ABL data types including DATE, DATETIME, DATETIME-TZ, and LONGCHAR
- 16.14 SCL-5209 - CefSharp updated to v146.0.70 (Chromium 146.0.7680.165)
- 16.15 SCL-5210 - Fixed: Static query artifacts are now correctly generated when using the SmartFramework MCP Server
- 16.16 SCL-5211 - TempTableMetaInformationPlugin refactored to support server-side Business Entity generation via MCP Server
- 16.17 SCL-5212 - Fixed: SwaggerRestEntitiesGenerator now respects RestMethod CanCreate, CanUpdate, and CanDelete values
- 16.18 SCL-5213 - Relaxed EQ matching when filtering datetime fields by date value
- 16.19 SCL-5214 - Fixed: WordUtility no longer throws an ambiguous match error on OpenEdge 12.2 when using OpenXml IEnumerable
- 16.20 SCL-5215 - Business Entity Designer query resolver now supports named buffers with the OF syntax
- 16.21 SCL-5216 - File rotation support added to Telemetry Service NDJSON output via configurable rotateEverySeconds setting
- 16.22 SCL-5217 - Fixed: SchedulerJobStatusId field now visible in Scheduler Job Status Monitor
- 16.23 SCL-5218 - MCP Server Tools added to create MetaViewer and MetaGrid from MetaDataSource instances
- 16.24 SCL-5219 - TOON (Token-Oriented Object Notation) parser and serializer added via Consultingwerk.Framework.Toon.ToonConverter
- 16.25 SCL-5220 - JSON to YAML bidirectional converter added to Consultingwerk.Framework.Yaml.YamlConverter
- 16.26 SCL-5221 - RegEx processor added with pattern matching and search/replace capabilities
- 16.27 SCL-5222 - Fixed: Workflow Task Status form no longer crashes when no workflow definitions exist
- 16.28 SCL-5223 - Added MCP Server tool to retrieve PASOE session information
Version Information
OpenEdge Release | Version Information |
|---|---|
11.7.21, 12.2.19, 12.8.9, 12.8.11, 13.0.0 | Release 11.7 #89042@2026-04-13 |
Retirement of OpenEdge 11.7
OpenEdge 11.7 has been retired by Progress Software on April 1st 2025. In consequence we urge all customers still using OpenEdge 11 to upgrade to OpenEdge 12.2 or 12.8 as soon as possible.
We are intending to drop the official support of the SmartComponent Library for OpenEdge 11.7 during the second half of the year 2025. We will then no longer ensure that new features of the framework will be usable with OpenEdge 11.7
Customers that are concerned by this intention, should reach out to us as soon as possible, so that we can discuss about a solution.
OpenEdge 13.0 support!
We are pleased to announce that we are not aware of any issues using the SmartComponent Library on OpenEdge 13.0. We hereby declare OpenEdge 13.0 fully supported for the SmartComponent Library as of the release of February 15th 2026.
OpenEdge 12.8 support!
We are pleased to announce that we are not aware of any issues using the SmartComponent Library on OpenEdge 12.8. We hereby declare OpenEdge 12.8 fully supported for the SmartComponent Library as of the release of January 15th 2024.
OpenEdge 12.2 support!
We are pleased to announce that we are not aware of any issues using the SmartComponent Library on OpenEdge 12.2. We hereby declare OpenEdge 12.2 fully supported for the SmartComponent Library as of the release of April 09th 2020.
PASOE / OEMANAGER VS Code Extension
Our first VS Code extension is available in the VS Code marketplace: https://marketplace.visualstudio.com/items?itemName=ConsultingwerkApplicationModernizationSolutionsLtd.oemanager
The extension supports developers with PASOE related routine tasks during development:
checking agent or session status
trimming the PASOE agents
restarting a new agent vai the ping request
Introducing the SmartComponent Library developer forum
Got questions about using the SmartComponent Library? Wish to discuss feature requests with other users of the SmartComponent Library? To facilitate networking in the growing number of SmartComponent Library users and developers, we've added a developer forum on our new home-page. The developer forum can be found at: https://www.consultingwerk.com/support/forum
A login is required to participate in the forum. Don't be shy - create your account today!
Release Notes
Following the release of the OpenEdge 11.7 Release we have completed our testing of the SmartComponent Library on this release of Progress and are proud to announce formal support for the SmartComponent Library on OpenEdge 11.7 with the 2017-04-24 release of the SmartComponent Library. Generally we recommend customers on OpenEdge 11 to upgrade to OpenEdge 11.7 quickly. Starting the 2017-07-14 release we are supporting OpenEdge 11.7 Service Pack 1 (11.7.1).
Starting the 2015-10-09 release the Business Entity Designer will feature a start page with links to most recent release note articles on this site.
With SCL-751 we have adopted native Enums for OpenEdge 11.6. To activate this feature customers must add a definition to products.i. SCL-751 provides details for this.
With SCL-1113 we have modified the templates for SmartWindowForms and SmartTabFolderPages generated from the Business Entity Designer. We have removed the initialization of the viewer controls SmartTableIOState property (value was set to "NoDataSource" within the InitializeComponent method). Customers using their own set of templates should adopt the same fix to their templates.
New Versions of Proparse .NET Assemblies (30 December 2018)
We have updated proparse with further enhancements in this release (see https://github.com/consultingwerk/proparse/releases/tag/4.0.1.1177). Please download the .NET Assemblies ZIP file from our ESD and replace the proparse.net.dll in your environment with the latest one. The new assembly reference is:
|
|---|
As proparse is used by our Business Entity Generator, this new version of the proparse.net Assembly is also relevant for customers not doing GUI for .NET development and require support for parsing new ABL language constructs.
This version of proparse provides additional debug information when errors are thrown from proparse.net.dll.
New Version of the Consultingwerk.SmartComponents Assemly (09 January 2019)
To support the new SmartFilterControl and the "Filter" link between the SmartFilterControl/SmartDynamciFilterControl and a SmartBusinessEntityAdapter or SmartDatasetChildAdapter we have updated the Consultingwerk.SmartComponents.dll. The new Assembly reference is:
<assembly name="Consultingwerk.SmartComponents, Version=2.2.0.49856, Culture=neutral, PublicKeyToken=10603cb31df311b3"/>Customers need to update this Assembly in order to compile the latest releases of the SmartComponent Library.
Hybrid Realm now using IAuthenticationService
We've updated the SmartHybridRealm class used for http authentication to leverage the IAuthenticationService. It is therefor required that for AppServers requiring http Authentication (e.g. REST or Web) the correct IAuthenticationService implementation is registered (using service.xml files).
Customers relying on the previous behavior should ensure that the Consultingwerk.SmartFramework.Authentication.AuthenticationService is regsitered as the IAuthenticationService. This implementation will auhtenticate users against the password stored in the SmartUser database table.
When users with no Login Company set should be able to login using the SmartHybridRealm, it's required to set the Login Company Tennant Domain (similar to the field in the Login Company Maintenance) in the .restapplicationsettings / .applicationsettings, e.g.:
"DefaultAuthenticationDomain": "consultingwerk" |
|---|
This is required as the Hydrid Realm Interface from Progress does not provide the domain name to the authentication method.
Web Handler overview
This is an overview of the web handlers supported by this release
defaultHandler=OpenEdge.Web.CompatibilityHandler |
|---|
UTF-8 based deployments available
Starting August 14th 2016 we ship our source code also as UTF-8 encoded. The ZIP files ending with _utf8.zip contain the source code encoded with that code page. The source code in the remaining archives is still encoded in ISO8859-1. Also on Github there is a new branch containing the OpenEdge 11 based source code in UTF-8.
Related article (Progress K-Base): How to get Progress Developer Studio to save in UTF-8 encoding
New Feature Documentation
Download Link
http://esd.consultingwerkcloud.com/
https://github.com/consultingwerk/SmartComponentLibrary
Overview of included tickets
SCL-3196 - MetaGrid generation wizard added to the SmartFramework reference application
A new wizard has been added to the SmartFramework reference application that allows developers to generate a MetaGrid based on a MetaDataSource instance. This wizard provides similar functionality to the one previously available only in the Business Entity Designer. The underlying APIs serve as the foundation for the SFRBO variant of the same wizard. No changes required in customer code.
SCL-3197 - MetaViewer generation wizard added to the SmartFramework reference application
A new wizard has been added to the SmartFramework reference application that allows developers to generate a MetaViewer based on a MetaDataSource instance. This wizard provides similar functionality to the one previously available only in the Business Entity Designer. The underlying APIs in the ObjectMasterDesignBusinessTask serve as the foundation for the SFRBO variant of the same wizard. No changes required in customer code.
SCL-4716 - Scheduler now supports ICheckReadyToExecute interface for deferred job execution
The Scheduler runtime now supports a new ICheckReadyToExecute interface (Consultingwerk.SmartFramework.Scheduler.ICheckReadyToExecute) that job command implementations can implement to control whether a job instance is ready for execution. When CheckReadyToExecute() returns FALSE, the scheduler skips the job instance without changing its status, allowing it to be retried on the next scheduler cycle. Verbose logging emits a message when a job is deferred. Existing job commands that do not implement this interface continue to work as before. No changes required in customer code unless adopting the new interface.
SCL-4719 - WindowTitleField support added to SmartDataBrowser for dynamic window titles
The SmartDataBrowser component now supports a WindowTitleField attribute that allows appending field values from the current record to the window title. When configured with a comma-delimited list of field names, the SmartWindowForm automatically updates its title based on the selected record using a configurable WindowTitlePattern. The feature raises a WindowTitleFieldChanged event via new WindowTitleFieldChangedEventArgs that can also be consumed by custom implementations.
SCL-4720 - JSON rendering support added for Document Viewer toolbar buttons
The DocumentViewerWebRendering class has been extended to support JSON-based configuration of toolbar buttons via the ToolbarButtons repository attribute. Supported button types include spacer, pager, and named action buttons (search, selection, zoom, zoomInOut, open, download, print). A new document-viewer-buttons.json definition file and the IWebToolbarButtonProvider service interface with its default WebToolbarButtonProvider implementation are used to resolve individual button definitions. No changes required in customer code.
SCL-5030 - MCP Server resources added for toolbar button collections
New MCP Server resources have been implemented that expose toolbar button metadata (names, labels, tooltips, and images) in three collections: all, web, and windows. This allows MCP-based tooling to query the available toolbar buttons and their properties for use in code generation and UI automation scenarios. No changes required in customer code.
SCL-5041 - JSON rendering support added for Smart Grid double-click actions via the doubleClickAction component option
The Smart Grid component now renders double-click action behavior as JSON through the new doubleClickAction property within the componentOptions object. The Consultingwerk.Web2.Services.Rendering.FormComponents.GridWebRendering class maps repository attributes such as EditInViewerOnDefaultAction, DetailForm, DetailFormForUpdates, and the presence of a TableIOLink source to the rendered values editinviewer, detailformview, detailformedit, edit, or an empty string. No changes are required in customer code to take advantage of this enhancement.
SCL-5062 - Added test mode for Legacy GUI Migration MCP Server frame analysis
The Legacy GUI Migration MCP Server now provides a test mode via the new TestViewerMigration method on the IAblFrameMigrationService. Instead of creating a MetaViewer in the repository directly, developers can first perform a test analysis of a frame to check migration readiness. The new test-frame-to-metaframe.p procedure returns a JSON/TOON response indicating whether the frame can be migrated and listing all selected frame widgets with their alternative control mappings.
SCL-5098 - Token resolution support added to ConfigurationProvider property values
The ConfigurationProvider class has been extended with two new methods, GetValueResolved(pcName) and GetValueResolved(pcName, pcDefault), which resolve OpenEdge tokens in configuration property values before returning them. This allows .restapplicationsettings and .applicationsettings files to use token placeholders (e.g., for paths relative to the working directory). Developers wishing to use token resolution should call GetValueResolved instead of GetValue; no changes are required in customer code for existing calls.
SCL-5152 - Custom fetch methods can now be added to DatasetModels
DatasetModels in SmartComponent Library now support custom fetch methods, giving developers greater flexibility in how data is retrieved. Developers can extend their DatasetModel classes to register custom ABL methods as fetch handlers, supplementing or overriding the default fetch behavior. No changes are required for existing DatasetModel implementations that do not need custom fetch logic.
SCL-5200 - GenericMockDataAccess now supports static query requests
The GenericMockDataAccess class has been extended to support static query requests (FetchDataByStaticQuery). Previously, static queries that use generated include files instead of dynamically-created queries would fail with a StaticQueryNotSupportedException. Developers using GenericMockDataAccess for unit testing can now test Business Entities that rely on static queries without encountering this exception.
SCL-5203 - Fixed: SmartFramework data access class source-default queries now use WHERE instead of OF
Auto-generated source-default queries in several SmartFramework data access classes (including WorkflowInstanceDataAccess, RouteDataAccess, SchedulerJobPlanDataAccess, CustomizationDataAccess, and ModuleDataAccess) have been corrected to use the WHERE clause instead of the OF option, resolving compatibility and code quality issues flagged by static analysis. No changes are required in customer code.
SCL-5208 - ExcelWorksheetExporter now supports all ABL data types including DATE, DATETIME, DATETIME-TZ, and LONGCHAR
The ExcelWorksheetExporter class has been extended to support the full range of ABL data types, including DATE, DATETIME, DATETIME-TZ, and LONGCHAR/CLOB. Values are now exported using their correct native data types so they can be used directly in Excel formulas without manual conversion. No changes to existing customer code are required to benefit from this improvement.
SCL-5209 - CefSharp updated to v146.0.70 (Chromium 146.0.7680.165)
SmartComponent Library now ships with CefSharp v146.0.70, based on CEF 146.0.7 and Chromium 146.0.7680.165, released March 29, 2026. This update brings the latest Chromium engine improvements and security fixes to the embedded browser components. Microsoft Visual C++ 2022 Redistributable and .NET 6.0 or higher are required for this version.
SCL-5210 - Fixed: Static query artifacts are now correctly generated when using the SmartFramework MCP Server
This bug has been fixed. Static queries configured in the Business Entity Designer are now correctly generated when Business Entities are created via the SmartFramework MCP Server. No changes required in customer code.
SCL-5211 - TempTableMetaInformationPlugin refactored to support server-side Business Entity generation via MCP Server
The TempTableMetaInformationPlugin class has been refactored into three components: a server-side plugin for use with the SmartFramework MCP Server, a shared abstract base class containing common logic, and the existing Business Entity Designer GUI implementation. This ensures temp-table meta information is generated consistently whether Business Entities are created via the designer UI or the MCP Server. No changes are required in customer code.
SCL-5212 - Fixed: SwaggerRestEntitiesGenerator now respects RestMethod CanCreate, CanUpdate, and CanDelete values
The ProcessRestAddress method in the SwaggerRestEntitiesGenerator has been fixed to evaluate the RestAddress CanCreate, CanUpdate, and CanDelete properties in combination with the ttServices.Include[Get|Put|Post|Delete|Patch] flags when determining which HTTP operations to include in the generated Swagger output. Previously, only the ttServices flags were checked, causing operations to appear in the Swagger definition even when the RestMethod explicitly disabled them. No changes are required in customer code.
SCL-5213 - Relaxed EQ matching when filtering datetime fields by date value
SmartComponent Library now relaxes equality (EQ) matching when a date value is compared against a datetime field. When an ABL filter uses EQ with a plain date (e.g., ScheduleDateTime = '3.4.2026'), the framework now matches all records within that calendar day, ignoring the time component. No changes are required in customer code.
SCL-5214 - Fixed: WordUtility no longer throws an ambiguous match error on OpenEdge 12.2 when using OpenXml IEnumerable
This bug has been fixed. The WordUtility class now correctly handles the CLR Bridge ambiguity present in OpenEdge versions below 12.8 when using the OpenXml IEnumerable GetEnumerator. No changes required in customer code.
SCL-5215 - Business Entity Designer query resolver now supports named buffers with the OF syntax
The query expression resolver in the Business Entity Designer has been updated to correctly handle named buffers when the OF keyword is used in source default queries. Previously, using a named buffer (e.g., bufSmartCustomizationType) with OF would cause a 'Could not create buffer object' error because the resolver looked up the physical table name instead of the buffer alias. The QueryHelper.ResolveOfInQueryExpression method and the QuerySourceEditorDialogForm have been extended to support this scenario. No changes are required in customer code.
SCL-5216 - File rotation support added to Telemetry Service NDJSON output via configurable rotateEverySeconds setting
The TelemetryService now supports optional file rotation for its NDJSON output files. A new rotateEverySeconds integer setting can be added to telemetry.conf; the TelemetryService reads this value and passes it to the NdjsonTelemetryOutputWriter. On each WriteData call, the writer checks whether the configured interval has elapsed and, if so, begins writing to a new output file. Developers wishing to enable rotation should add rotateEverySeconds to their telemetry.conf — no changes to existing code are required.
SCL-5217 - Fixed: SchedulerJobStatusId field now visible in Scheduler Job Status Monitor
The SchedulerJobStatusId field has been added to both the Grid and the Viewer/Form of the Scheduler Job Status Monitor (SmartSchedulerJobStatusForm and SmartSchedulerJobStatusViewerControl). This allows customers to identify specific scheduled jobs directly in the UI without having to deserialize the JobParameter field. No changes required in customer code.
SCL-5218 - MCP Server Tools added to create MetaViewer and MetaGrid from MetaDataSource instances
New MCP Server Tools have been added that allow AI agents to create MetaViewer and MetaGrid objects based on a MetaDataSource instance. These tools expose the existing ObjectMasterDesignBusinessTask APIs so that AI agents (e.g. through Claude or similar) can create MetaViewer and MetaGrid objects in the repository without requiring the Business Entity Designer wizard UI. No changes required in customer code.
SCL-5219 - TOON (Token-Oriented Object Notation) parser and serializer added via Consultingwerk.Framework.Toon.ToonConverter
A new ToonConverter class has been added to the SmartComponent Library that supports serialization and deserialization between Progress.Json.JsonObject/JsonArray and the TOON format. TOON is a compact, human-readable encoding that achieves approximately 40% fewer tokens than JSON, making it well-suited for AI integration scenarios. The converter supports all three delimiter modes (comma, tab, pipe), tabular encoding for uniform arrays, and strict mode validation.
SCL-5220 - JSON to YAML bidirectional converter added to Consultingwerk.Framework.Yaml.YamlConverter
A new YamlConverter class has been added to the Consultingwerk.Framework.Yaml namespace, providing bidirectional conversion between JSON and YAML formats based on the YAML 1.2.2 specification. The class offers a Convert method to transform JsonObject instances to YAML-formatted longchar strings, and a ToJson method to parse YAML strings back to JsonObject instances. The converter handles YAML-specific features including comments, anchors and aliases, multi-document streams, and permissive number and boolean formatting.
SCL-5221 - RegEx processor added with pattern matching and search/replace capabilities
A new RegEx (Regular Expression) processor has been added to the Consultingwerk.Framework.RegEx package, providing pattern matching and search/replace capabilities for OpenEdge CHARACTER data types. The processor supports literal characters, concatenation, alternation, quantifiers, character classes, anchors, grouping with capture groups, and escape sequences. Methods include Test (returns LOGICAL), Match (first match), MatchAll (all matches), Replace (first occurrence), and ReplaceAll (all occurrences) with back-reference support in replacement strings. A static helper class is provided for simple one-liner usage without object instantiation.
SCL-5222 - Fixed: Workflow Task Status form no longer crashes when no workflow definitions exist
The Workflow Task Status form previously failed with a FIND FIRST/LAST error for table eSmartBusinessEntityTable when no workflow definitions were present. The WorkflowEngine GetWorkflowDefinition method now catches this error and throws a more meaningful CannotFetchSmartBusinessEntityDefinitionException with details about the entity name and table. No changes required in customer code.
SCL-5223 - Added MCP Server tool to retrieve PASOE session information
A new MCP Server procedure get-session-info.p has been added to the SmartFramework MCP Server. It returns PASOE session information by leveraging the ISessionInfoProvider service, similar to the existing SessionInfoWebHandler. The session info is returned as a longchar response for use in MCP-based tooling and diagnostics.