Versions Compared


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


SCL-2771 Resolved dependency on the SESSION:DATE format for handling the initial value in the Business Entity Designer


We have resolved issues resulting from dependency on the current SESSION:DATE-FORMAT when loading and storing the Business Entity Design (.bedgm) file.
We're now always saving the .bedgm file with dates in american date format (DMY) and are converting the dates to the current SESSION:DATE-FORMAT when opening it in the designer.

SCL-2866 Resolved issues with SmartDB upgrade failing as "minimal" compile option is lacking in PROPATH


We have now added the procedure library to the propath used by the SmartDB Upgrade and Migration utility used for the "minimal" compile.


SCL-2757 Improve scl-pasoe-agents with details about agent sessions


The scl-pasoe-agents script ( ) does not also provide information of the Agent sessions of every agent launched for an ABL web application.

SCL-2844 Updated all references to old Confluence site in source code with references to Atlassian hosted site


Following the migration from our self hosted Confluence installation to the Atlassian cloud, we have updated as links to the documentation website in your source to to link directly to the site.
This will speed up access to documentation articles and remove dependency on our URL redirects.

SCL-2865 User Settings of grids (visible columns, column order and width) are now saved in user profile for dynamic forms


SmartDataBrowser instances used in SmartFramework repository based screens do now also store the column order, width and visibility in the user profile like static viewers do.

SCL-2869 Added Clone() method override to GenericFetchDataByKeyTableParameter


To simplify situations where multiple instances of the GenericFetchDataByKeyTableParameter class are needed with the same schema and data we have implemented a Clone() method in the class.
The Clone() method will copy both the schema and the data of the dynamically defined Key Value Table. There's an alternative variant of the Clone() method which accepts an Enum Value controlling if only the Schema or Schema and Data should be cloned.

SCL-2870 ServiceLoader now supports mapping SmartDB as RequiredDB to SmartDB alias from products.i


When the SmartDB switch in products.i is mapping all references to the SmartDB to a different database name than "SmartDB", the ServiceLoader now maps a required database entry in a processed services.xml file from "SmartDB" to that value. when checking the CONNECTED()

SCL-2871 Improved presentation of unknown SmartException


When an SmartException was thrown with an undefined message, the presentation of the message group and number was formatted like this: <MCS/19435>. However for known error messages the display is like (MCS:19435).
We have resolved this inconsistency now.

SCL-2873 DataAccess: lInRetrieveDataByKeyTable variable is now replaced by a static property


To allow access from within code in the actual Data Access class we've turned the private variable into a PROTECTED property. This allows to detect the FetchDataByKeyTable method from places like the AttachDataSources etc. in your actual Data Access class implementation.

SCL-2875 Dynamically populating a value list of message groups in Smart Message Maintenance


We are now dynamically populating a list of existing Message Group values in the Message maintenance form. This list is used for both filtering the Message Grid and updating messages.
Image Modified

SCL-2876 Dynamically populating value list of translation scopes in Smart Translation Maintenance


We are now dynamically populating a list of existing Translation Scope values in the Translation maintenance form. This list is used for both filtering the Translation Grid and updating translation records.
Image Modified

SCL-2877 Added method to Service Manager to detect if a certain IBusinessService is currently in the call stack


The new method ServiceManager:IsInCallStack () returns true when the provided Business Service name (Business Entity or Task) is in the current call stack.
This allows developers to decide if a call into a Business Entity should be made via the standard instances or a specific instance via Context Id.

SCL-2878 Implemented unmanaged mode for Business Services


We have implemented a new operating mode for business services. Previously the life cycle of a Business Service has always been determined by the Service Manager implementation of the SmartComponent Library.
The new unmanaged mode allows the caller to have full control over the life cycle of a Business Service. The Service Manager does not keep a reference to the Business Service (typically Business Task or Business Entity) at all.
This provides an alternative to launching additional instances of the Business Services using a CHR(1) delimited instance identifier. The consumer of the Business Service should typically be able to rely on the AVM's garbage collector to control the disposal of the Business Service instance from memory.
Unmanaged Business Services can also safely be killed using the DELETE OBJECT statement.

Code Block
     * Purpose: Returns a reference to a Business Service Instance
     * Notes:   Starts the Business Service if required (using LaunchBusinessService)
     *          It is possible to use multiple instances of the same Business Service
     *          class at once. In this case the business service name should be
     *          concatenated from the class name followed by CHR(1) and the instance
     *          identified
     *          Supports both managed and unmanaged operating mode for business services
     *          See notes in BusinessServiceOperatingModeEnum
     * @param pcServiceName The Name of the Business Service, evtl. containing a #, see Notes at LaunchBusinessService
     * @param poOperatingMode The BusinessServiceOperatingModeEnum controlling the operating mode of the business service
     * @return The reference to the IBusinessService
    METHOD PUBLIC IBusinessService GetBusinessService (pcServiceName AS CHARACTER,
                                                       poOperatingMode AS BusinessServiceOperatingModeEnum) .

The previous implementation of the GetBusinessService method returns a managed instance to remain compatible with the previous mode.
This new method can be used together with SCL-2877 to avoid circular calls into the same Business Entity instance with more ease.

SCL-2880 Implemented DecimalType class similar to CharacterType


We've added a new class DecimalType now similar to the existing CharacterType or IntegerType classes with supporting methods for the DECIMAL data type.

SCL-2881 Implemented rendering support for Stretch Mode on Angular Viewers and custom components


To support the Repository based rendering of the Stretch mode also for Viewers and Custom Components we have added support for those attributes when rending MetaViewer and Custom Control instances.

SCL-2884 Question class now serializes Null Values


We've set the option in the Question class to serialize null values. This allows to distinguish empty strings from ? in properties like the ContextID after serialization.

New Feature

SCL-512 Read-Only SmartDataBrowser based on the Telerik RadGrid Control


We are releasing now our alternative implementation of the SmartDataBrowser based on the Telerik RadGrid Control to the public. The Consultingwerk.SmartComponents.Implementation.SmartRadDataBrowser provides the same functionality as the SmartDataBrowser but is not based on the Infragistics UltraGrid Control.