Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

SCL-4397 Resolve issue with accented characters in the DataTypeHelper's GetStringFromWideMemptr method

Description:

Resolve issue in the Consultingwerk.Util.DataTypeHelper’s GetStringFromWideMptr method where non-ASCII characters were incorrectly handled. UTF-8 characters are now returned correctly.

SCL-4423 SmartRepositoryService:StoreObjectMasterAttributes now supports AppServer

Description:

We have improved the SmartRepositoryService method StoreObjectMasterAttributes. The method can now be used from an AppServer client.

Improvement

SCL-3714 Business Entities and Data Access classes support fast retrieval of single records using static queries in the Data Access layer

Description:

Business Entities and Data Access classes support fast retrieval of single records using static queries in the Data Access layer. Static queries are implemented for individual Data Access classes, and are intended to return a single record from a single temp-table in the Business Entity’s dataset (effectively operating like a FIND statement).

These static queries and their supporting classes are generated by the Business Entity Generator, based on indexes that have the Default Search Code Generation toggle selected. Each query is in a protected method named _Fetch<Table>By<Field>[<Field>]_ that contains statically-defined buffers and queries for just that method. These methods are called based on the OOABL type of the parameter object used; one parameter object is generated per index, and is named _Fetch<Table>By<Field>[<Field>]Request.cls_ . These parameter objects implement the new Consultingwerk.OERA.IFetchDataByStaticQueryRequest interface,

For example a request for a customer record based on the {{CustNum}} field would be called FetchByCustomerByCustNumRequest.cls . A request to retrieve a single orderline based on order number and line number would be FetchOrderlineByOrderNumLinenumRequest.cls. These request parameters would be used to call the FetchByCustomerByCustNum and FetchOrderlineByOrderNumLinenum methods in the Data Access classes (respectively).

By default, the methods do not run the dataset’s read events (if defined). This behaviour can be added using preprocessors in the implementing Data Access class. By default, no errors are thrown, for either no record being found, nor for mul,.tiple records being found; again, this behaviour is customisable via preprocessors.

The Data Access abstract base class does not implement any functionality: if a Data Access class does not override the {{FetchDataByStaticQuery}} method, a Consultingwerk.OERA.Exceptions.StaticQueryNotSupportedException exception is thrown.

Static queries may also be run from a Table Model, using a new {{FillByStaticQuery}} method. This method takes a request parameter object with a type of Consultingwerk.OERA.IFetchDataByStaticQueryRequest .

SCL-4290 New entitySchemaType attribute value for the ApiDoc annotation

Description:

To prevent the OOABL class names of Business Entities and Business Tasks from appearing in Swagger documentation for schemas (e.g. the record templates used for initial values requests, or in dataset schemas for invokable methods' parameters), a new entitySchemaType annotation argument has been added to the ApiDoc annotation. This attribute allows developers to provide an optional, alternative value to be used in the Swagger schemas instead of the Business Entity or Business Task class name.

For more detail, see https://consultingwerk.atlassian.net/wiki/spaces/SCL/pages/8094254/Support+for+RESTful+invocation+of+Business+Task+and+Business+Entity+Methods#Arguments-of-the-@ApiDoc-annotation

SCL-4347 Implemented support for adding custom descriptions for Swagger documentation for RestMethod and RestAddress annotations.

Description:

RESTful services using the RestAddress annotation allow the optional provision of descriptions for various HTTP methods (GET, PUT, POST, PATCH and DELETE) using a _methodDescription<Method>_ annotation attribute in the RestAddress annotation. This description is used for the operation in the generated Swagger documentation.

Invokable methods using the RestMethod annotation allow the optional provision of descriptions for the operation, as well as for any parameters to the method’s parameter class. The description is provided using a description attribute value, in the RestMethod annotation.

Descriptions for the parameters are provided using a new RestMethodParameter annotation, which has a name and a description attribute. The value of the name attribute should be the parameter name , which can be a path, header, cookie or query string. The descrption attribute contains a description for the parameter.

More information on the attribute values is avaliable at [ HTTP s://consultingwerk.atlassian.net/wiki/spaces/SCL/pages/8094254/Support+for+RESTful+invocation+of+Business+Task+and+Business+Entity+Methods| HTTP s://consultingwerk.atlassian.net/wiki/spaces/SCL/pages/8094254/Support+for+RESTful+invocation+of+Business+Task+and+Business+Entity+Methods|smart-link] and [ HTTP s://consultingwerk.atlassian.net/wiki/spaces/SCL/pages/8094560/RESTful+services| HTTP s://consultingwerk.atlassian.net/wiki/spaces/SCL/pages/8094560/RESTful+services|smart-link] .

SCL-4370 Silent mode for WebClientDeploymentHelper

Description:

The WebClientDeploymentHelper now supports reducing the output verbosity based on the JSON parameter object:

* silentCompile true/false: Suppress messages during compilation
* silentMode true/false: Suppress more status messages

SCL-4389 Implement generation of static data access queries with an explicit NO-LOCK

Description:

Static data access queries are generated with an explicit NO-LOCK in the OPEN QUERY statement, regardless of whether a lock mode was present anywhere in the query or not.

SCL-4392 Implement support for invokable methods with IWebRequest parameters with non-JSON message bodies

Description:

Support OpenEdge.Web.IWebRequest implementations as parameters to invokable methods, when the request has a message body (payload). When the RestMethod parameterClassName is “OpenEdge.Web.IWebRequest" or “IWebRequest", then a message body is allowed.

For all other cases, only a JSON message body is supported.

SCL-4402 Added new variant of method ClassHelper:IsInCallStack

Description:

Added a new variant to the ClassHelper:IsInCallStack method. This variant supports filtering by a method name in addition to the class name.

SCL-4409 Fixed exception raised in SmartRepositoryClientService:GetLookupDescriptor

Description:

We have fixed a potential exception raised by the GetLookupDescriptor method. This exception might have been raised based on the combination of attributes of the lookup master.

SCL-4419 Added max character length constant to Const.cls

Description:

We have added a new system constant to the Consultingwerk.Const class:

No Format
    /**
     * Purpose: The maximum length of an ABL character value
     * Notes:   31991
     */
    DEFINE PUBLIC STATIC PROPERTY MAX_CHARACTER AS INTEGER NO-UNDO INITIAL 31991
    GET. 

...

SCL-4420 ServiceInterface:InvokeMethod now also supports ServiceInterfaceSupportsSharedVariables with parameter object

Description:

The ServiceInterfaceSupportsSharedVariables switch in products.i is now also supported by ServiceInterface:InvokeMethod when a parameter object is passed. Previously, this was only supported when no parameter object was provided.

SCL-4421 ServiceInterfaceSupportsSharedVariables now also supports include files at the end of the si-... procedures

Description:

Based on a new setting in products.i

No Format
&IF 1=0 &THEN
/* Mike Fechner / Consultingwerk Ltd.
   SCL-4421 : Used together with ServiceInterfaceSupportsSharedVariables
              When defined, si-...p procedures will include a second include file at the end to support
              updating the session context from shared variables /
&ENDIF
GLOBAL-DEFINE ServiceInterfaceSupportsSharedVariablesEnd ServiceInterfaceSupportsSharedVariablesEnd



we now support also adding a second include file at the end of the si-…. procedures. These include files support reading values of SHARE VARIABLES and storing them in the persisted session context.

SCL-4424 SmartDataBrowser now supports alternative default operator for SmartFilter

Description:

The SmartDataBrowser now supports to set an alternative default operator for a column in the the SmartFilter row. By default BEGINS is used as an operator on all CHARACTER fields/columns and GE is used on all other columns.

Developers can now set the SmartFilterOperators attribute of the grid instance to a comma delimited list of name=operator values, e.g. “Custnum=EQ,Region=eq”

This attribute can also be set in the SmartFramework Repository.

SCL-4426 Improved StringHelper:RemoveCharacters implementation

Description:

We have slightly improved the implementation of the StringHelper:RemoveCharacters method.