Versions Compared

Key

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

...

A login is required to participate in the forum. Don't be shy - create your account today!

Image RemovedImage Added

Announcing the SmartFramework ERD Designer

...

SCL-2373 Excluded Consultingwerk.SmartFramework.SmartFrameworkServices from deployment without SmartFramework

Description:

We have excluded the Consultingwerk.SmartFramework.SmartFrameworkServices class from our deployments that do not include the SmartFramework as this was causing compile errors due to missing referenced types.

SCL-2376 Fixed Invalid ELSE branch in TextBox.cls

Description:

We have fixed an error with an empty ELSE branch of IF statements in the SmartComponents.Web classes

- Editor.cls
- HiddenField.cls
- TextBox.cls

SCL-2381 ValidationMessage.cls: ** WARNING: Invalid INITIAL option ignored for HANDLE or OBJECT REFERENCE variable. (3349)

Description:

We have removed the INITIAL option from a property definition in the ValidationMessage class. This option was creating a confusing compile-time message. It had not runtime impact however.

Improvement

SCL-2377 Added option for Tracing-Filter "*" to ProfilerService

Description:

We have added a new variant of the StartProfiler method of the IProfilerService interface:

Code Block
languagec#
    /**
     * Purpose: Starts a profiling session including debug listing
     * Notes:
     * @param pcOutputFileName The file name of the profiler output file (.prof)
     * @param pcDescription The description for the profiler session
     * @param pcDebugListingDirectory The directory to generate debug-listings in (? for output file directory)
     * @param pcTraceFilter The filter for procedure/names to enable detailled tracing for (use "" to disable detailled tracing)
     */
    METHOD PUBLIC VOID StartProfiler (pcOutputFileName AS CHARACTER,
                                      pcDescription AS CHARACTER,
                                      pcDebugListingDirectory AS CHARACTER,
                                      pcTraceFilter AS CHARACTER).




This method allows passing the TRACE-FILTER argument for the PROFILER system handle.

For more details on the parameters of the PROFILER system handle, see this article: https://knowledgebase.progress.com/articles/Article/19495

SCL-2380 Performance Improvements of the SmartRepositoryService

Description:

We have improved the performance of the SmartRepositoryService by

- optimizing the initial caching of the SmartObjectType table and the building of the base class list
- optimization of the query parsing codce in the ObjectMasterDataAccess (specific implementation, rather than using the DsQueryString class)
- optimization in the DataAccess class with regards to building the list of validation method. This is no longer done in the instance constructor of the DataAccess class each time a DataAccess instance is created. This is now stored in a static Dictionary.
- caching of the SmartBusinessEntityConfiguration objects in the SmartBusinessEntityConfigurationProvider

The startup time of the SmartRepositoryService has improved significantly (ca. 1/50 with a customer's database).

The time for the FetchRepositoryObject method execution has improved also significantly (ca. 1/2).

SCL-2382 Update "SmartDB Upgrade and Migration Routine" for ANT 1.10

Description:

Following the discussion here https://github.com/Riverside-Software/pct/issues/169 we have added the laoderRef option to the references to the PCT.jar file in the SmartDB Upgrade and Migration Utility. This ensures compatibility of the tool with ANT 1.10.

New Feature

SCL-1996 Added assignment of Menu Function Security Token to the Menu Structure Security Assignment

Description:

Menu Functions can both be authorized by the SMF (Smart Menu Function) and the SST (Smart Security Token) realm. Multiple menu functions can reference the same security token.

To simplify the assignment of the menu function authorization, we have now added the assignment of the security token as a combo-box to the tree view in the Menu Security Maintenance form.

SCL-2343 Implemented ability to assign RestartRowid to DatasetModel classes and start fetching data from a known ROWID

Description:

Implemented two new methods in the DatasetModel class:

Code Block
languagec#
    /**
     * Purpose: Returns the Next-Rowid
     * Notes:   The Next-Rowid is the row-identifier required for retrieving
     *          the next batch. The usage of this method is only required, when
     *          implementing ROWID based batching with Dataset Models throughout
     *          different AppServer requests. The SetRestartRowid method acecpts
     *          the same values
     * @return The row-identifier required for retrieving the next batch
     */
    METHOD PUBLIC CHARACTER GetNextRowid ():



and

Code Block
languagec#
    /**
     * Purpose: Sets the Restart-Rowid for the next request
     * Notes:   Allows to start retrieving data from a specific row.
     *          The usage of this method is only required, when implementing
     *          ROWID based batching with Dataset Models throughout different
     *          AppServer requests.
     * @param pcRowid The value for the Restart-Rowid
     * @return The reference to the DatasetModel itself for fluent style code
     */
    METHOD PUBLIC DatasetModel SetRestartRowid (pcRowid AS CHARACTER):



The GetNextRowid method allows to retrieve the next ROWID (or set of ROWID's) as a character value required to obtain the next batch.

The SetRestartRowid method initializes the DatasetModel (or DatasetModel performed), so that the following Fill() operation fetches for this next batch.

Both methods are implemented to allow ROWID based batching in different instances of the DatasetModel (typically when batches are retrieved during different AppServer requests).

SCL-2375 Implemented a Garbage-Capable version of the HandleHolder class

Description:

The Consultingwerk.HandleHolder class does not perform a DELETE OBJECT for the reference widget handle value. We have implemented a StrongHandleHolder class now which deletes the referenced widget handle when

- the StrongHandleHolder is deleted or garbage collected or
- another Handle value is assigned to the Value property of the StrongHandleHolder instance

Using the StrongHandleHolder instead of returning a widget handle value from a factory method will reduce the risk of memory leaks when working with handle based objects.