Release Notes 2019-02-01

Version Information

OpenEdge Release

Version Information

11.3.3, 11.3.4, 11.4, 11.6.2, 11.6.3, 11.7, 11.7.1, 11.7.2, 11.7.3.007, 11.7.4

Release 11.3 #50416@2019-02-01

OpenEdge 11.7.4 support!

We are please to announce that we are not aware of any issues using the SmartComponent Library on OpenEdge 11.7.4. We hereby declare OpenEdge 11.7.4 fully supported for the SmartComponent Library as of the release of November 5th 2018.

OpenEdge 11.7.3 support!

The previously reported issues with the Progress Developer Studio Visual Designer (Visual Designer related OpenEdge 11.7.3 product alert!!!) has been resolved by Progress Software with Hotfix 007 of OpenEdge 11.7.3. We hereby announce full compatibility of the SmartComponent Library with OpenEdge 11.7.3.007. 

Besides the issue with the Visual Designer however, we have not been aware of any incompatibilities with OpenEdge 11.7.3. 

.NET Framework Version 4.7

.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.

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!

Announcing the SmartFramework ERD Designer

We are announcing the availability of the SmartFramework ERD Designer

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.

OpenEdge 11.7.3 compatibility

During our tests on OpenEdge 11.7.3 we have experienced the following issues: 

  • [SCL-2216] - 11.7.3 Visual Designer disabling properties of ABL user controls

The issue has been resolved by Progress Software with hotfix 007 for OpenEdge 11.7.3.

OpenEdge 11.7.2 compatibility

During our tests on OpenEdge 11.7.2 we have experienced two issues: 

  • [SCL-2007] - Correct support for WebHandler in CcsServiceManager
  • [SCL-2008] - Closing SmartWindowForm causes crash on OpenEdge 11.7.2

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

  • [SCL-1924] - SmartViewerControl: copy mechanism cannot cope with clob datatype

from Progress Software for in OpenEdge 11.7.2.001 we further recommend all customers to apply this hotfix as well. 

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:

<assembly name="proparse.net, Version=4.0.1.1177, Culture=neutral, PublicKeyToken=cda1b098b1034b24"/>

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

Download Link

http://esd.consultingwerkcloud.com/

https://github.com/consultingwerk/SmartComponentLibrary

Overview of included tickets


Bug

SCL-2488 In OpenEdge 11.7.4 the scl-pasoe-query metrics resulted in an error because the maxQueueDepth property is no longer available.

Description:

We have resolved an issue in the scl-pasoe-query utility ( https://documentation.consultingwerkcloud.com/display/SCL/PASOE+management+scripts ) caused by a change in the response of the oemanager web application in OpenEdge 11.7.4.

SCL-2515 "Progress.Lang.SysError: Array subscript 2 is out of range" when using DatasetAssert:HasValidationMessages

Description:

.

SCL-2516 Fixed a minor typo in error message of SmartViewerControl

Description:

The SmartViewerControl error message when adding a second SmartTableIOSource did contain a typo. This has been fixed.

SCL-2519 Errors thrown from ScenarioRunner:ExecuteTest have not been reported properly

Description:

Errors thrown while executing Scenario unit tests and raised by the ScenarioRunner:ExecuteTest method have not always been reported properly. This was caused by attempting to access the oResult properties in the FINALLY block at the end of the foreachPrimitiveList loop in the Execute() method overriding the orginal error.
This has been resolved now.

   [PCTRun] Invalid handle.  Not initialized or points to a deleted object. (3135)
   [PCTRun] Execute Consultingwerk.SmartUnit.OERA.RetrieveDataScenario.ScenarioRunner at line 406  (C:\Work_STREAM\SmartComponentLibrary\Develop\ABL\Consultingwerk\SmartUnit\OERA\RetrieveDataScenario\ScenarioRunner.r)
   [PCTRun] Consultingwerk/SmartUnit/runtest.p at line 564  (C:\Work_STREAM\SmartComponentLibrary\Develop\ABL\Consultingwerk\SmartUnit\runtest.r)
   [PCTRun] C:\Users\MikeFechner\AppData\Local\Temp\pctinit47124694.p at line 54  (C:\Users\MikeFechner\AppData\Local\Temp\pctinit47124694.p)


SCL-2521 OpenEdge 12.0 Native JSON Serialization failed with issues in LongcharInputStream

Description:

We have resolved an issue with the native JSON serialization in OpenEdge 12.0 caused by an issue in the LongcharInputStream implementation.

SCL-2525 After using the "Paste ABL Source Code" tool of the Business Entity Designer, an 15580 error is raised when closing the Business Entity Designer

Description:

This error has been fixed.

SCL-2526 Resolved functionality of the Business Entity Designer Database Login dialog

Description:

The dialog did not return the username and password. This has been fixed.

SCL-2533 WinKitGrid method FETCH-SELECTED-ROW() returned wrong record

Description:

With only a single selected record, the WinKit Grid method FETCH-SELECTED-ROW (1) did return the wrong record.
This has been fixed.

SCL-2534 Fixed System.ApplicationException when closing WinKit Browser

Description:

In certain Form's it appears that the RenderedBrowseControl has already been disposed when the BaseForm attempted to clear the UltraGrid Cell Editor references.
We're now handling the error in the GarbageCollectorHelper to avoid the error message.
System.ApplicationException: Lead attributes in a chained-attribute expression (a:b:c) must be type HANDLE or a user-defined type and valid (not UNKNOWN). (10068)
Call Stack:
ClearUltraGridColumnEditors Consultingwerk.Util.GarbageCollectorHelper at line 544 (\R-code\Consultingwerk\Util\GarbageCollectorHelper.r)
OnFormClosed Consultingwerk.Forms.BaseForm at line 1845 (\R-code\Consultingwerk\Forms\BaseForm.r)
OnFormClosed Consultingwerk.WindowIntegrationKit.Forms.EmbeddedWindowBaseForm at line 963 (\R-code\Consultingwerk\WindowIntegrationKit\Forms\EmbeddedWindowBaseForm.r)

SCL-2539 Fixed "Invalid Handle" error when closing MdiChild Form with SmartDynamicFilter

Description:

We have obserbed a case where the SmartDynamicFilter was excutiing the OnLoad method (called from CreateHandle) while closing an MdiChild Form containing the SmartDynamicFiilter control. The error occured when in sequence the control attempted to re-create the filter controls based on be binding source schema. Assumption is that at this point while closing the Form the binding source schema (Handle) was no longer valid.
We have now fixed this issue.

Improvement

SCL-2517 RenderedBrowseControl:ValueChangedSuspended should be set to TRUE during BindingSource:ListChanged events

Description:

The RenderedBrowseControl was raising the VALUE-CHANGED event of the Progress Browse widget also when opening the query. This caused different behavior from the original Progress Browse widget as the browse widget does not raise the VALUE-CHANGED event when the query is opened.
This has been fixed now.

SCL-2518 Support ValueBasedAppearanceFactory also with an UltraGridLayout reference passed to the constructor

Description:

This was required to support the usage of the ValueBasedAppearanceFactory with the SmartDataCombo (UltraCombo) Control. Those Controls provide an UltraGridLayout like the UltraGrid.

SCL-2520 Setting invalid LOG-ENTRY-TYPES in SmartUnit no longer cancels the execution of unit test

Description:

Setting an invalid LOG-ENTRY-TYPE in a SmartUnit jobs caused an error to be thrown resulting in cancelling the unit test execution. This has been resolved now.

   [PCTRun] Ignoring unknown log entry type: Test (11069)
   [PCTRun] ExecuteTest Consultingwerk.SmartUnit.OERA.RetrieveDataScenario.ScenarioRunner at line 892  (C:\Work_STREAM\SmartComponentLibrary\Develop\ABL\Consultingwerk\SmartUnit\OERA\RetrieveDataScenario\ScenarioRunner.r)
   [PCTRun] Execute Consultingwerk.SmartUnit.OERA.RetrieveDataScenario.ScenarioRunner at line 392  (C:\Work_STREAM\SmartComponentLibrary\Develop\ABL\Consultingwerk\SmartUnit\OERA\RetrieveDataScenario\ScenarioRunner.r)
   [PCTRun] Consultingwerk/SmartUnit/runtest.p at line 550  (C:\Work_STREAM\SmartComponentLibrary\Develop\ABL\Consultingwerk\SmartUnit\runtest.r)
   [PCTRun] C:\Users\MikeFechner\AppData\Local\Temp\pctinit94788175.p at line 54  (C:\Users\MikeFechner\AppData\Local\Temp\pctinit94788175.p)


SCL-2527 ESC key in Business Entity Designer Calc-Field Expression Editor no longer Cancels Update

Description:

The ESC key in the Business Entity Designer Calc-Fields Expression editor no longer cancels the current update operation.
This might have caused undesired resets of pending updates when ESC was used to close the temp-table field name assist.

SCL-2531 Filtering for DATE fields in RESTful Entities

Description:

The Filtering of date-fields was happening based on the AppServer's DATE-format ( http://localhost:8820/web/Entities/Customers/1/Orders ?OrderDate=18/11/2008) .
This might have caused confusion, as dates are returned in a YYYY-MM-DD format

[
  {
    "id": 79,
    "url": "http://localhost:8820/web/Entities/Customers/1/Orders/79",
    "OrderDate": "2008-11-18",
    "ShipDate": null,
    "OrderStatus": "Ordered"
  },
  {
    "id": 6080,
    "url": "http://localhost:8820/web/Entities/Customers/1/Orders/6080",
    "OrderDate": "2008-11-18",
    "ShipDate": null,
    "OrderStatus": "Approval Pending"
  }
]


We have now implement a .restapplicationsetting switch that allows to filter for DATE values based on the UTC format:
http://localhost:8820/web/Entities/Customers/1/Orders ?OrderDate=2008-11-18

SCL-2536 Business Entity Browser no longer initializes the UserTableStats instances

Description:

The Business Entity Browser used to initialized the UserTableStats instances ( https://documentation.consultingwerkcloud.com/display/SCL/Inspecting+User+Table+and+Index+Statistics ) used by the Business Entity Tester. As the Business Entity Browser is not intended to visualize the output of the UserTableStats, we have disabled the initialization of those instances. This will improve the performance of the Business Entity Browser especially in a client server environment.

SCL-2538 Added more details to ServiceLoader errors

Description:

The ServiceLoader will now add more details to errors thrown while loading services (e.g. invalid services.xml file name or errors while loading the service types or instances). The details include the name of the services.xml file causing the issue along with the name of the service type and service class.

SCL-2540 Improved number of times the UserTableStats is reading _file and _index records

Description:

The UserTableStats class ( https://documentation.consultingwerkcloud.com/display/SCL/Inspecting+User+Table+and+Index+Statistics ) used by the Business Entity Tester and for logging of database requests in the AppServer logfile has been improved. The class will no longer read the _file and _index tables each time the statistics are queries.
This will improve the performance in a client server environment significantly.
This can further be improved by using a large -Mm parameter (e..g 32600) on the database server (and pre OpenEdge 11.6 on the client as well) together with preset .... values on the client like

-prefetchNumRecs 10000
-prefetchDelay 
-prefetchFactor 100


New Feature

SCL-2433 Integrate Protop into SmartComponent Library Desktop

Description:

The #1 database performance monitoring utility ProTop by White Star Software is now integrated with the SmartComponent Library. ProTop can be launched from the SmartComponent Library developer desktop:
!screenshot-1.png|thumbnail!
ProTop needs to be installed separately. When ProTop is not installed yet (of the installed version of ProTop is below pt3.3u customers will need to download and install a more recent version of ProTop following the instructions available at https://dashboard.protop-europe.com/help/windowsinstall.php (basically this required to execute the p3inst.bat file).
When ProTop is launched from the SmartComponent Library desktop, we'll be parsing the ProTop configuration and prompt the developer for a database connection for which ProTop should be started:
!screenshot-2.png|thumbnail!
If ProTop cannot be found, you may have to manually create an "installdir" character registry entry containing the directory where ProTop is installed under
HKEY_LOCAL_MACHINE\Software\White Star Software\ProTop or
HKEY_CURRENT_USER\Software\White Star Software\ProTop
!screenshot-3.png|thumbnail!

SCL-2524 Implemented importing of Translated Table and Field names into smfdia

Description:

Based on previous enhancements in SCL-2282 and SCL-2283, we now support importing translated database table and field names from an Excel file. The functionality is implemented in the Consultingwerk.SmartFramework.Tools.ErdApi.TableAndFieldNamesImporter class.

SCL-2532 Developed an utility to ensure index names with <= 32 characters in .smfdia file

Description:

We have implemented methods in the ZamolxisApi class that allow renaming tables, fields an indexes in a batch routine.



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