...
A login is required to participate in the forum. Don't be shy - create your account today!
Announcing the SmartFramework ERD Designer
...
SCL-2528 REST Entities Web Handler now supports exposing individual array elements for GET requests to Collections
Description:
The REST Entities Web Handler now supports exposing individual array elements for GET requests to Collections.
http://localhost:8820/web/Entities/SCL2528/Salesreps ?fields=SalesRep,RepName,MonthQuota[4] ( http://localhost:8820/web/Entities/SCL2528/Salesreps ?fields=SalesRep,RepName,MonthQuota%5B4%5D) will now return just the MonthQuota[4] field.
Individual array elements can also be specified in the @RestAddress annotation for collections. When receiving the individual resource or during update array fields are still represented as JsonArray's only.
SCL-2551 Providing a more meaningful error message when wrong type of menu function is used in menu structure
Description:
We are raising now a more meaningful error message when attempting to render a web menu structure that contains an incompatible menu function.
SCL-2552 Added Group Boxes to Security Realm Maintenance
Description:
To simplify the distinction between implementation details and site configuration data for security realms, we have added group boxes to the maintenance form.
SCL-2555 Implemented Security Assignment Maintenance Screen Input Restrictions
Description:
We have implemented client side input restrictions (validation) to the security assignment maintenance screen. This restriction blanks out the user name when entering a group name and vice versa as only one of the fields may be populated.
New Feature
SCL-2138 Implemented Business Entity Designer Plugin that supports generating Repository Meta Lookup
Description:
We have implemented a Business Entity Designer plugin that supports creating lookup controls in the Repository for a selected Table of the current Business Entity Design.
SCL-2303 Release of the first prototype of a rendering engine for GUI for .NET Forms
Description:
We have implemented a rendering engine compatible to the Meta-Repository-Types. This rendering engine support rendering the same repository data to GUI for .NET, Angular and NativeScript.
SCL-2426 Implemented Refresh functionality in the SmartDataBrowser
Description:
The SmartDataBrowser now supports a Hotkey for Refresh. The the Hotkey can either be set as an ABL Shortcut (e.g. F5 or CTRL-R) to the
Code Block | ||
---|---|---|
| ||
Consultingwerk.SmartComponents.Implementation.SmartDataBrowserSettings:RefreshHotKeyString |
property or an System.Windows.Forms.Shortcut value to the
Code Block | ||
---|---|---|
| ||
Consultingwerk.SmartComponents.Implementation.SmartDataBrowserSettings:RefreshHotKeyString |
property. The property can also be set using the JSON Startup file of the GUI session using a static property setting:
Code Block | ||
---|---|---|
| ||
"staticProperties": { ... "Consultingwerk.SmartComponents.Implementation.SmartDataBrowserSettings:RefreshHotKeyString": "F5", ... } |
When the user hit's the property, the SmartDataBrowser will let the linked Data Adapter to either reopen it's query or fetch updated data from the backend.
SCL-2530 Implement new utility to perform bulk updates or deletions to object master records
Description:
Implemented a new utility that supports updating or deleting multiple object master records. The product module can be updated for a set of objects using a button in the Ribbon.
!screenshot-1.png|thumbnail!
SCL-2553 Implemented REST Endpoint to retrieve Security Item Lookup configuration
Description:
We have implemented a new RESTful endpoint which supports web rendering of the security item lookup for a security realm.
http://localhost:8820/web/Entities/SmartFramework/GetSecurityRealmItemLookup ?Value=99c76236-bd65-aeb8-e013-4ffcf411e4c1
Where Value is the GUID of the Security Realm.
Sample response:
Code Block | ||
---|---|---|
| ||
{ "SerializedType": "Consultingwerk.Framework.RepositoryServices.SmartBusinessEntityLookupDescriptor", "LookupBrowserFields": "SecurityTokenCode,SecurityTokenDescription", "LookupDialogFilterFields": "SecurityTokenCode,SecurityTokenDescription", "LookupDialogFilterOperators": "BEGINS,BEGINS", "LookupDialogQuerySort": "BY eSmartSecurityToken.SecurityTokenCode", "LookupDialogQueryString": "FOR EACH eSmartSecurityToken", "LookupDialogTitle": "Select Security Token", "LookupEntityName": "Consultingwerk.SmartFramework.Authorization.SecurityTokenBusinessEntity", "LookupEntityTable": "eSmartSecurityToken", "LookupKeyField": "SecurityTokenCode", "LookupKeyValueColumn": "SecurityTokenGuid", "LookupQueryString": "FOR EACH eSmartSecurityToken WHERE eSmartSecurityToken.SecurityTokenCode BEGINS \"&1\"" } |
...
SCL-2554 Implemented a JSON Endpoint for Security Assignment Verification
Description:
Implemented a RESTful endpoint for the security assignment verification (similar to the GUI form).
Sample URL:
http://localhost:8820/web/Entities/SmartFramework/IsRestrictedCheck ?RealmGuid=9f2d813a-d8c2-2bbb-dc13-7aabd0d7e66f&SecurityItemGuid=cd229641-1db6-81b3-e211-66569ba03908&UserGuid=ffcc4f24-af98-8187-e211-4714049f854c
That is the Message Translation Realm, Security Item Dutch and user mikefe (in Consultingwerk)
Returns:
Code Block | ||
---|---|---|
| ||
{ "IsRestricted": true, "Reason": "User", "Runtime": 0, "Groups": [ { "GroupName": "Consultingwerk Admin", "ParentGroupName": "Admin", "LoginCompanyName": "Consultingwerk Ltd." }, { "GroupName": "User" }, { "GroupName": "Admin" } ] } |
...
SCL-2558 Implemented ClassHelper:GetClassNamesInClassPath as a Business Entity
Description:
To simplify usage of the ClassHelper:GetClassNamesInClassPath in environments support business entities, we have implemented a business entity as a wrapper to ClassHelper:GetClassNamesInClassPath
This feature is implemented using a Named Query on the new Consultingwerk.Util.ClassHelper.ClassHelperBusinessEntity business entity.
Query name: ClassNamesInClassPath
Parameter BaseClassName (Character): Consultingwerk.SmartFramework.Authorization.ISecurityRealmService
Parameter IncludeAbstractClasses (Logical): false
When invoking this via the JSDO generic service, you should also set the StopAfter to zero (turn off stop-after) using an additional query string parameter: &stopAfter=0
...
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