OpenEdge Release | Version Information |
---|---|
11.7.9, 11.7.10, 11.7.11, 11.7.12, 12.2, 12.6, 12.7 CQC | Release 11.7 #77703@2023-10-09 |
Further details: log4j CVE-2021-44228
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.
We are pleased to announce that we are not aware of any issues using the SmartComponent Library on OpenEdge 12.6. We hereby declare OpenEdge 12.6 fully supported for the SmartComponent Library as of the release of October 4th 2022.
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.
.NET 4.7 is not supported with OpenEdge 11.x, see: Is .NET 4.7 certified and supported for OpenEdge?
Progress has reported severy issues with OpenEdge GUI for .NET and .NET 4.7: GUI .Net Application crashes after .Net upgrade to 4.7
When using the .NET Framework 4.7, please make sure, you upgrade to OpenEdge 11.6.4 or OpenEdge 11.7.2 or later. Also, it may be required to recompile the application on a PC running .NET Framework 4.7 when applications are also executed on a PC with .NET Framework 4.7.
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!
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.
During our tests on OpenEdge 11.7.3 we have experienced the following issues:
The issue has been resolved by Progress Software with hotfix 007 for OpenEdge 11.7.3.
During our tests on OpenEdge 11.7.2 we have experienced two issues:
We consider it mandatory for customers using OpenEdge 11.7.2 to use at least the release #44166@2017-11-27 of the SmartComponent Library.
Due to an fix for
from Progress Software for in OpenEdge 11.7.2.001 we further recommend all customers to apply this hotfix as well.
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.
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.
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.
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 |
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
http://esd.consultingwerkcloud.com/
https://github.com/consultingwerk/SmartComponentLibrary
The security assignment verification form was using an invalid lookup query sort phrase breaking the ability to select users or groups in the lookups.
We have resolved an issue that was breaking the ability to clear the user or group lookup’s in the security assignment forms.
The menu structure security maintenance form was having issues with loading menu structures that have been deeper than 9 levels. We have extended number of supports menu levels to 20 and ensured that the user will not be seeing a runtime error message in case of deeper menu structures..
Previously the combo-box with the validation type in the Field Properties view of the Business Entity Designer did not reflect the type of the validation of the current field - which was confusing. Now, when selecting a field with validation properties, the combo-box shows the type of the validation of the selected field.
The “navigable” attribute of the Angular Grid component can now be set and rendered from grids in the repository.
We are now exposing the primaryDataSource reference (name) in the Angular JSON layout of a Form. The primaryDataSource is the first data source in a form that does not have a data-source.
The repository rendering now supportes the
Consultingwerk.Windows.Framework.Repository.Rendering.IRenderedToolbarCustomizer interface
which allows the customization of rendered toolbars/ribbons in a similar way as the
* Consultingwerk.Windows.Framework.Repository.Rendering.IRenderedViewerCustomizer
* Consultingwerk.Windows.Framework.Repository.Rendering.IRenderedGridCustomizer
services support.
The Object Master lookup of the instance viewer in the Object Master Maintenance now uses the specialized Open Object Master dialog - instead of the generic lookup dialog. In addition the filter values are remembered and restored between opening the dialog multiple times.
We have moved methods of the SDO Importer Plugin of the Business Entity Designer out of the plugin and into a new helper class Consulitngwerk.Util.SourceCodeHelper. The methods support searching for preprocessor values in an AppBuilder style program and my be useful for custom source code migration routines as well.
We have implemented a service interface Consultingwerk.Windows.Framework.Repository.Rendering.IRenderedControlGroupCustomizer. Similar to the customizer services for Forms, Viewer and Grids this service type allows to modify the properties of a renfered DynamicControlGroup at runtime.
Based on new API’s in the Consultingwerk.Util.FileHelper the Repository Object Exporter/Importer and the Generic Data Exporter/Importer now sanitize path references (e.g. of the product module definition) to the target operating system - using slash in Unix/Linux and the backslash on Windows.
We simplify the usage of the customer context and custom parameter with DatasetModel requests. The DatasetModel and TableModelFilter classes now provide two fluent style methods to set set CustomContext and the CustomParameter. In addition there are now additional variants of the Run() method of the TableModelFilter that allow setting the custom context when executing a query through a DatasetModel.
Lazy Loading MetaViewer instances in GUI for .NET rendering now support hidden controls.
We have now implemented a new scaling factor in the Consultingwerk.SmartFramework.Repository.WindowsRenderingScalingFactors class. This static property allows to scale up the column with in rendered grids.
We have introduced new methods in the Validate/ValidationHelper methods to simplify CanFind() style validation with primary unique key values:
ValidationHelper:CanFindByPrimaryKey(BUFFER eArtikelpackungEinkaufspreis:HANDLE, "AP-ID":U, "Beckelmann.Artikel.Artikelpackung.ArtikelpackungBusinessEntity":U, "eArtikelpackung":U, "AP-ID nicht bekannt!":U). |
or for single table business entities
ValidationHelper:CanFindByPrimaryKey(BUFFER eArtikelpackungEinkaufspreis:HANDLE, "AP-ID":U, "Beckelmann.Artikel.Artikelpackung.ArtikelpackungBusinessEntity":U, "AP-ID nicht bekannt!":U). |
These methods determine the query string in the target table based on the primary-unique key fields of that table. So developers no longer need to provide a query string matching the primary unique key fields.
The SmartFieldAuthorizationProvider now checks first for exact match by then fieldname and then for a match using the wildcard *.<fieldname>.
We have implemented two new base classes Consultingwerk.Framework. Http .[ Http ClientException| Http ClientException] and Consultingwerk.Framework. Http .[ Http ServerException| Http ServerException] that exception types in the Consultingwerk.Framework. Http package inherit from. This allows code using the OpenEdge Http client with the Smart Http Client decorator to catch any client or server (400 or 500) caused error.
The JSON layout of Angular forms now includes the width and height setting.
We have added buttons to the Object Master and Object Instance viewers of the repository object master maintenance that allow to copy the object master or instance name to the windows clipboard. The buttons are also enabled when the viewer is not in update mode.
The RestServerSessionActivator can now be configured to set the CLIENT-PRINCIPAL on the authenticationDb (setting in .restapplicationsettings). The new functionality can now be enabeld by setting the LOGICAL STATIC property
Consultingwerk.Framework.Server.RestServerSessionActivator:SetDbClient
to TRUE.
When migrating FRAME’s into the repository, we now honor the -aligned attributes of the original FRAME widgets and support converting even frames with a mix of left-aligned, colon-aligned and right-aligned widgets.
When rendering Angular Layouts with grids and detail forms, we are now providing the height and width of the detail form with the parent form.
The Open Object Master Dialog now allows filtering object masters to be opened by the design time data-source. This simplifies locating viewers and grids or multiple variants of those build against the same data-source definition.
We have resolved a conflict with Build.One in the GUID of a SmartAttribute record. The conflict was caused when we introduced the new MaxLength attribute that Build.One was already using in their repository schema.
As AttributeGuid values are not used for referential integrity the change is limited to the SmartAttribute master record.
The core functionality of the SmartDataObjectImporterPlugin of the Business Entity Designer has now been moved into the
Consultingwerk.Studio.LegacyGuiMigration.SDO.SmartDataObjectImporter
service which can be used outside of the Business Entity Designer in scripted migration routines.
We have implemented a new include file to obtain a Business Service from the service manager. This include file requests the business service from the service manager and casts the result to the target type simplifying the usage of ServiceManager:GetBuisnessService:
* Consultingwerk/get-businessservice.i
* Consultingwerk/Wrappers/get-businessservice.i
As usual the Consultingwerk/Wrappers folder can be added to the PROPATH by customers to support short references to the include file.