Release Notes for 1.5.0.1621

The following is the list of changes in the latest release.

  • In OfficeSuite, applications won't start up until they are first accessed. This is to save server resources where many applications are deployed but used infrequently. It's also consistent with how IIS works.
  • Fixed some problems with the use of emailserver.cfg. If you put emailserver.cfg into your application's Files folder, you can override the Server, UserName, Password and FromEMail in an .ini style file. These settings override what is normally defined in the Configuration tab.
  • New DbfScript functions:
  • void InsertAt(List, Record, Index)
    Inserts the record into the list at the specified position.

    bool CheckPasswordStrength(Password)
    Verifies that the given password is of sufficient strength to meet ISO 27001 standards. Returns true if it does.

    Any table:Get(table, col, row, colGroup)
    Returns the given cell at the specified location.

    void table:SetTotalFormat(table, format)
    Sets the format for automatically added totals.

    void table:AddTotalsRow(table, atRow)
    Adds a totals row at the specified row, totalling all values above.

    List FindAllImages(XPath)
    Returns a list of paths of all records below XPath that contain images.

    void ClearSelection()
    Clears the current #selection for multi-selection actions.

    bool HasRole(role)
    Returns true if the current user has the specified role ID.

    string str:CharAt(string, index)
    Returns the character of the string at the given location.

    bool str:IsDigit(char)
    Returns true if the character is a digit.

    bool str:IsLetter(char)
    Returns true if the character is a letter.

    List GetCTypes()
    Returns a list of all types in the system.

    Any GetReturnValue()
    Returns the value previously set by the return statement.

    Record domain:GetLDAPUser(server, user, password)
    Returns a record containing the profile information from the specified LDAP server.


  • You can now override the default colors of charts in Quick Reports (under Default Coloring).
  • Additional aggregate functions have been added for Group, Min and Max in Quick Reports.
  • The Authenticate function (in Application, Advanced, System Events) now supports providing a DbfScript. This function will be called automatically when the user tries to login, and will give a script a chance to authenticate the user. This script will be provided UserName and Password in the #input variable. It must set GroupNames in the #input record and return this. It can also add a user record after retrieving user profile information using the domain:GetUser functions. If it cannot authenticate the user, it should error.
  • Roles can now have a "Disable If Present" list of roles specified. If any of those roles are present, then that role will not be applied. This can be useful for having roles that disable the default "Restrict User Access" role, without them being administrator.
  • When defining a role permission, if the Filter Expression is an asterisk "*", it will refer to the path of the user record. This allows filters to be set up based on fields set to the current user (eg. an Assigned To field).
  • You can now specify an input mask, in the field definition, Advanced section. This will provide a mask while editing the field in the form, for example for entering telephone numbers.
  • You can now specify to suppress security for dropdown links, in the Advanced section of a field definition. This will show all values in the dropdown regardless of security permissions applied to that user. This can be useful for showing user dropdowns, where the user may have Restrict User Access role that will otherwise limit them to viewing their own user record.
  • A new flag "Thumbnail" can be added to file fields. This will show the file as a thumbnail in the record.
  • Fixed a problem where a user could double click the submit button and occasionally this would cause the record to be entered twice.
  • In Row Renditions (in a nested list field) you can now apply a background color. Previously this was ignored.
  • Fixed a problem that can arise if the user doesn't have access to view the default application tab. It now automatically selects the next visible application tab at startup.
  • Improved the form posting process internally so it's more efficient in low network bandwidth scenarios.
  • The login page no longer shows the sign out link
  • An additional option is available for the right side of the application banner (above the application tabs). In the application's Advanced section, you can now specify the banner to show the date and time.
  • The Default field, in a field definition, can now contain =Date to set it to the current date, and =UserName to set to the current user's name. Previously these were =DateTime.Now and =Environment.UserName. These still work but are now obsolete.
  • In DbfScript, you can now use "and" and "or" instead of "&" and "|" in logical expressions.
  • A new flag "Keep With Parent" can be added to Nested List. This will try to keep the record with its parent when displayed in notifications.
  • The "Admin Only" flag can now be set on nested lists and application tabs.
  • Publishing will now copy over the sqlserver.cfg and emailserver.cfg files from the source to application folder.
  • The workflow state column that is automatically added is now titled 'Last Action', because it reflects the last action taken in workflow.
  • A workflow stage can now have a background color defined, as well as the foreground color.
  • All workflow scripts now have #user passed in, which is set to be the current user record.
  • The "Value To Use" in a workflow input field can now be set to a calculation expression (in DbfScript) if it starts with equals (=).
  • A problem has been solved where email notifications would be sent out when entering a workflow stage with a script, even if the script produced an error.
  • Fixed several problems with importing JSON.
  • Improved the performance of deep queries with the new database format.
  • Predicates in path conditions now support field tagging, which can be used to OR together field conditions of different fields. For example if you wanted to see all priority 1 records OR all records assigned to me, you can assign both fields the same tag and it will OR them, instead of ANDing them. You specify the tag by putting a colon after the field name. For example, &path[Priority:Important = 1, AssignedTo:Important = &user]. Because both fields have the tag Important, they will be ORd together. Otherwise it will only show records that are BOTH priority 1 and assigned to this user. This feature can also be used in role permission filters to OR together different filters.
  • Fixed a problem where triple clicking in a list header would cause a SQL error to appear.
  • Enhanced the support for creating SQL databases with more than 2000 tables at startup. Previously this would fail because the T-SQL script would have too many parameters defined.


Next Topic:
v4.2.0.956 (beta)
Up Since 2/29/2024 12:02:23 AM