Release Notes 2024-12-08
Version Information
OpenEdge Release | Version Information |
---|---|
11.7.17, 12.2, 12.7, 12.8, 12.8.3, 12.8.4 | Release 11.7 #83128@2024-12-08 |
Security Bulletin - log4j CVE-2021-44228
Further details: log4j CVE-2021-44228
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.7 support!
We are pleased to announce that we are not aware of any issues using the SmartComponent Library on OpenEdge 12.7. We hereby declare OpenEdge 12.7 fully supported for the SmartComponent Library as of the release of May 10th 2023.
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.
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 handler1=Consultingwerk.OERA.JsdoGenericService.WebHandler.CatalogWebHandler: /Catalog/{EntityName} handler2=Consultingwerk.OERA.JsdoGenericService.WebHandler.CatalogsWebHandler: /Catalogs/{PackageName} handler3=Consultingwerk.OERA.JsdoGenericService.WebHandler.CountWebHandler: /Resource/{EntityName}/count handler4=Consultingwerk.OERA.JsdoGenericService.WebHandler.ResourceSubmitWebHandler: /Resource/{EntityName}/SubmitData handler5=Consultingwerk.OERA.JsdoGenericService.WebHandler.InvokeMethodWebHandler: /Resource/{EntityName}/{MethodName} handler6=Consultingwerk.OERA.JsdoGenericService.WebHandler.ResourceWebHandler: /Resource/{EntityName} handler7=Consultingwerk.OERA.JsdoGenericService.WebHandler.BusinessServicesWebHandler: /BusinessServices/{OutputFormat}/{PackageName} handler8=Consultingwerk.Web2.WebHandler.SmartMenuWebHandler: /SmartMenu/{MenuStructureId} handler9=Consultingwerk.Web2.WebHandler.SmartMenuStructureWebHandler: /SmartMenuStructure handler10=Consultingwerk.Web2.WebHandler.SmartRoutesWebHandler: /SmartRoutes handler11=Consultingwerk.Web2.Services.SmartViewsHandler.SmartGridWebHandler: /SmartViews/Grid/{EntityName}/{ViewName}/{DetailTemplate} handler12=Consultingwerk.Web2.Services.SmartViewsHandler.SmartGridWebHandler: /SmartViews/Grid/{EntityName}/{ViewName} handler13=Consultingwerk.Web2.Services.SmartViewsHandler.SmartGridWebHandler: /SmartViews/Grid/{CustomViewName} handler14=Consultingwerk.Web2.Services.SmartViewsHandler.SmartViewerWebHandler: /SmartViewer/Viewer/{EntityName}/{ViewName} handler15=Consultingwerk.Web2.Services.SmartViewsHandler.SmartViewerWebHandler: /SmartViewer/Viewer/{ObjectName} handler16=Consultingwerk.Web2.Services.SmartViewsHandler.SmartFormWebHandler: /SmartForm/{FormTemplate}/{EntityName}/{ViewName} handler17=Consultingwerk.Web2.Services.SmartViewsHandler.SmartFormWebHandler: /SmartForm/{FormTemplate}/{ObjectName} handler18=Consultingwerk.Web2.WebHandler.SmartMessageWebHandler: /SmartMessage/{MessageGroup}/{MessageNumber} handler19=Consultingwerk.Web2.WebHandler.GetImageWebHandler: /Image/{FileName} handler20=Consultingwerk.Web2.WebHandler.SmartValueListWebHandler: /ValueList/{ValueList} handler21=Consultingwerk.Web2.WebHandler.SmartAttachmentsWebHandler: /Attachments/{Table}/{KeyValues} handler22=Consultingwerk.Web2.WebHandler.SmartAttachmentWebHandler: /Attachment/{Guid} handler23=Consultingwerk.Web2.WebHandler.SessionContextWebHandler: /SessionContext handler24=Consultingwerk.Web2.WebHandler.ContextPropertiesWebHandler: /ContextProperties/{PropertyName} handler25=Consultingwerk.Web2.WebHandler.ContextPropertiesWebHandler: /ContextProperties handler26=Consultingwerk.Web2.WebHandler.SessionInfoWebHandler: /SessionInfo handler27=Consultingwerk.Web2.WebHandler.FileSearchWebHandler: /FileSearch/{FileName} handler28=Consultingwerk.Web2.WebHandler.ExecuteAblWebHandler: /ExecuteAbl handler29=Consultingwerk.Web2.WebHandler.SmartLanguagesWebHandler: /Languages handler30=Consultingwerk.OERA.RestResource.RestEntitiesWebHandler: /Entities handler31=Consultingwerk.OERA.Swagger.SwaggerWebHandler: /Swagger/{EntityName} handler32=Consultingwerk.OERA.Swagger.SwaggerRestEntitiesWebHandler: /SwaggerEntities/{OutputType} handler33=Consultingwerk.Web2.WebHandler.SmartTokenSecurityCheckWebHandler: /TokenSecurityCheck/{ObjectName} handler34=Consultingwerk.Web2.WebHandler.SmartTokenSecurityCheckWebHandler: /TokenSecurityCheck handler35=Consultingwerk.Web2.WebHandler.SmartEntityTableMappingHandler: /EntityTableMapping/{EntityName}/{TableName}/{UiTypeCodes} handler36=Consultingwerk.Web2.WebHandler.SmartTreeRootNodeWebHandler: /SmartViews/TreeRootNode/{rootnodeid} handler37=Consultingwerk.Web2.WebHandler.SmartTreeChildNodesWebHandler: /SmartViews/TreeChildNodes/{parentnodeid} handler38=Consultingwerk.Web2.WebHandler.SmartSecurityCheckWebHandler: /IsRestricted/{SecurityRealmCode}/{SecurityItemGuid} handler39=Consultingwerk.Web2.WebHandler.SmartFieldSecurityCheckWebHandler: /RestrictedFields/{TableName} handler40=Consultingwerk.Web2.WebHandler.GetImageNamesHandler: /ImageNames |
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
- Support for RESTful invocation of Business Task and Business Entity Methods
- Invalid Proparse code-page setting corrupts temp-table field labels during "Refresh from Include"
- Generic Factory Service
- Using Invokable Business Entity Methods with Dataset Model Classes
- Using the Business Entity method FetchDataByKeyTable
- PASOE management scripts
- Business Entity Designer Launcher
- Searching data using ROWID's within the SmartBusinessEntityAdapter
- Business Entity Count Method
- SmartFramework ERD Designer
- Changes to the SmartDB and SmartDB upgrade and migration utility
- How to implement dynamic initial values
- How do I control the amount of details provided for error messages caused by our web handler
- Using custom log entry types
- Strong-typed Query Support
- Swagger REST API Documentation for RESTful Services
- Swagger REST API Documention for JSDO Generic Service
- Scaffolding utility for common helper classes
- RESTful services
- JSON Configuration File Format
- Common Component Specification (CCS)
Download Link
http://esd.consultingwerkcloud.com/
https://github.com/consultingwerk/SmartComponentLibrary
Overview of included tickets
Bug
SCL-4315 Renaming of Business Entity using Rename/Move tool did not rename the DataAccess and DatasetController
Description:
This is resolved now.
SCL-4411 Re-genration of business entity failed, if code block has both label and sonarlint annotation
Description:
We have updated ProParse to no longer fail parsing of ABL source code where a block contains both a block label and a sonarlint annotation, e.g.:
ePaymentCalculationEventLoop: {&_proparse_ prolint-nowarn(sortaccess-wholeindex)} FOR EACH ePaymentCalculationEvent ON ERROR UNDO, THROW:
SCL-4427 Fixed Proparse Web App for OpenEdge 12.8
Description:
We have updated the .war file for the proparse web app so that it works properly on PASOE in OpenEdge 12.8 now.
SCL-4603 Business Entity Designer: Refreshing business entity temp-table schema from database schema failed in certain case
Description:
We have fixed issues with refreshing of a temp-table design from code in certain issues, like when a database table was named like the begin of another database table’s name.
SCL-4659 NetworkHelper:ValidateEmailAddress now fails on empty local part
Description:
The ValidateEmailAddress method now fails on an empty local part (before the @ sign).
SCL-4663 Fixed calculation of container height when rendering by columns
Description:
When rendering repository containers by columns, Width and Height have been mixed up when calculating the container’s height. This is resolved now.
SCL-4669 Fixed InvokeMethod Memory Leaks in MessageProvider
Description:
We have fixed an issue in the MessageProvider that was leaking a ProDataset on the InvokeMethod call.
SCL-4670 "Group Restricted" column now populated in Security Assignment Verification
Description:
We have fixed the population of the “Group Restricted” column in the security assignment verification. The field was not populated in some cases.
SCL-4679 MethodInvokationException.cls was misspelled
Description:
We have fixed the typo in the name of the MethodInvokationException, by creating a new class called MethodInvocationException.
As the new name inherits from the old name, customers can still CATCH the old class, so that this is not a breaking change. It is however recommended to fix customers code as well to catch te new exception name.
SCL-4681 Clicking on menu item for form that is already running but minimized needs to restore the window
Description:
The LaunchFormCallParameter now restores minimized windows before activating them.
SCL-4683 Fixed issues with rendering more or less than 3 page sizes with Angular grids
Description:
The rendering of the page sizes property of the Angular grid was failing for page sizes with less or more than three entries.
SCL-4686 Wrong reference fields have been reported in SmartRepositoryIntegrityCheckTask
Description:
The repository integrity check was reporting the wrong reference fields for some broken links. This is resolved now.
Improvement
SCL-4657 FieldSecurityItemDataAccess now considers GenericDataImporter:Importing for AssignSkipList
Description:
To allow versioning security field definitions.
SCL-4660 Implemented ability to customize Exceptions thrown from SmartWebHandler
Description:
We have implemented the ability to customize how exceptions and stop conditions are reported by he SmartWebHandler. The code to return the (JSON) response has been moved into a new service implementing the Consultingwerk.OERA.JsdoGenericService.WebHandler.ISmartWebErrorHandler interface.
In addition, we’re now adding the Request ID and time stamp of the exception to the JSON response. This behavior can be disabled by setting the
"JsonErrorWriteRequestId": "false", "JsonErrorWriteTimeStamp": "false",
properties in the .restapplicationsettings file.
SCL-4661 Implemented support for dumping and loading web routes
Description:
The RouteDataAccess class now honors the GenericDataImporter:Importing flag to determine of AssignSkipFields should be set or not.
SCL-4662 MapEnterToTab no longer applies to the date drop-down
Description:
When using the MapEnterToTab setting, users could no longer select a value in the date drop down with the “Enter” key. This is resolved now.
SCL-4664 Rendering of SplitContainer instances now assigns Name to SplitContainer and Splitter
Description:
When rendering the SplitContainer instances from the repository, we’re now assigning the instance name to the Name of the SplitContainer and Splitter. This is required to store and restore the splitter position in the user profile.
SCL-4665 Fixed issue with the parsing of the end-user description in prowcapp files
Description:
The End-User Description returned by ProWcAppParser was off by one. This issue is fixed now.
SCL-4666 Moved code in CountResultRecords
Description:
We have move the code that assigns the FetchDataRequest property to earlier in the method, so that it’s already set when executing AttachDataSources.
SCL-4671 Added prompts to the three buttons in the Security Mass Assignment tool
Description:
The buttons to set all assignments to Unrestricted, restricted or delete them will now prompt the user if he is sure - as there is no undo operation.
SCL-4676 Removed ABHack from our code base
Description:
We’re no longer shipping ABHack as part of the SmartComponent Library, as it was only used on 32 bit anyway - and Progress developer tools are 64 bit anyway.
SCL-4682 Pixel perfect rendering of Angular viewers now respects field order
Description:
The field order is now respected when rendering fields in a pixel-perfect MetaViewer instance.
SCL-4684 Improved error handling when rendering Angular forms
Description:
Error message now include the component instance name causing the error.
SCL-4685 Fixed issues in MathHelper:IsNumber method
Description:
Some symbols like + or * have not been treated as invalid characters in a number. This is resolved now.
New Feature
SCL-4680 Smart Data Source JSON rendering now provides a pageSize property
Description:
We’re rendering the MetaDataSource BatchSize property now also for Angular.