4.5 Release
Date: Dec 28th 2020
Hotfix ID: wff45
Build: 4.5.0.6555-9
Installation instructions here.
Notable features
You can now specify under the Application record (under Legal) a Privacy and Terms of Service page. This information will then be provided to the user through links in the login page.
Forms now gray-out and disable while submitting to better signal to the user that the system is busy.
We now support streaming downloads, which allow for uploading videos and other large media. This also provides support for resumable downloads of large attachments.
We now support SSO for OpenID Connect services. The OAuth or OpenID Connect URLs are provided in the Web Services section underneath the Configuration tab of your application. If discovered, then a sign-in option for that service will be displayed in the login page. This has been tested with Google SSO, but also works with other OIDC providers including Microsoft's ADFS.
The "System Update" process has been revamped. You can now specify a URL in the System Update / Hotfix page, instead of a hotfix ID. You can also specify a zip file that was created using the Zip Patch Files feature of WorkflowFirst Designer, and it will update your application from that zip file.
Change Management now gives the option of providing an Assignment Script that can return 1 or more users that the change will be assigned to for approval.
When using Export XML, current search filters are now applied to the exported data.
The Features / Audit Trail options now let you specify the types of changes that are captured (whether user changes only, or programmatic changes also), or whether the changes are handled manually through scripting.
Workflow Related
Fixed an issue with Change Management where items would remain pending if approved by an administrator.
Assignment delegation has been enhanced to warn you if you delegate to a user that does not have the same roles as yourself, or if you delegate to a user who is already delegating.
Fixed a problem where assignments remaining in a tab that had since been removed in Designer would cause the dashboard to stop working in the published application.
Fix to ensure that the tab name where the assignment exists is included in the dashboard.
Fixed an issue with double assignment count values in some cases (red highlighted number on the tab).
Scripting / API
Importing either spreadsheets or XML will now more intelligently "fix up" any broken links, to try to locate the record that the link value is referring to.
The apiget.aspx page now supports the parameter assignments=true to also return information about any pending assignments on the returned records.
Moving (pickup/drop) no longer raises delete events, as this caused issues with approval etc.
The DbfScript image:GetInfo is now more resilient to invalid files.
New DbfScript function str:EncryptSimple and str:DecryptSimple that performs a basic encryption on data.
New DbfScript function RemoveHtmlStyle(str, styleName) will remove all entries in the HTML that have that style applied.
The DbfScript-based spreadsheet import function has been improved for the importing of TSV files that have no type set. Previously this would fail.
The DbfScript function SwitchUser now also allows you to switch to an administrator user. Previously this was disabled. This will only be allowed if the current user is also an administrator.
New DbfScript function RemoveIDsFromNote(record) will remove all IDs from a record and any sub-records.
The workflow:AddAssignment function now lets you pass in lists of users, not just a single user.
Fixed an issue with DbfScript Link dropdowns not working if the comparator contained a "doesn't equal" condition.
Fixed an issue with DbfScript expressions. In certain situations, groupings of logical expressions with brackets would cause the short-circuit boolean evaluator to improperly calculate the result.
New DbfScript function DownloadToFile(path, files?, options) will download all data at the given location into a transaction XML file and return it as a file object you can insert into the database. Options currently isn't used but may be used in future releases.
New DbfScript function ClearDBCache() will clear any caches created with the "load cache" statement.
New DbfScript function FixUpListDeep(list, path) will fix any broken links in the given list and try its best to match it up against actual data. This can be used for importing data. It automatically runs when you import data using Import XML or Import Spreadsheet.
System and Performance
The emailserver.cfg config file used for overriding email server configuration can now contain an encrypted password. The password must be base64 encoded, and the encoded text must be prefixed with bbA.
The app.ini file is now updated to also include the current version of the application being published.
Increased the buffer size for copying streams, which should improve performance of various operations in WorkflowFirst.
Fixed a problem with overriding the From setting of an email where the reply-to setting was already overridden.
Fixed a problem for larger apps with a large number of workflows on one single tab, which caused an error at startup.
When moving records, we no longer delete the files from the old location, in case the move fails and the files could be lost.
Error messages for failure at startup have been improved to be clearer.
The sqlserver.cfg file can now contain an entry called Database to override the name of the database it uses.
If a tab visible condition has the format (?xxx), where xxx is a field name in the Configuration tab, the tab will only be displayed if the value of that field is true.
Fixed load predicates so that the != operator works with paragraph-text fields also.
Reporting
Fixed a problem where certain UTF characters (such as Chinese characters) would not display correctly in Quick Reports that were generated.
Quick Reports now have a Show TOC option that will include a table of contents at the beginning of the report. This will currently only work if you use custom render scripts and include headings in the output.
Security
Fixed a problem with the authentication process where the default roles would not always be properly applied to users.
If the Configuration tab has a field called _DisableLoginPageAutoLogout, and it is set to True, then clicking Logout at the top will take the user to the login page but will not log them out.
You can now override the login button text and username/password labels of the login page through the Advanced area under the application record in Designer.
Fixed an issue with applications randomly logging users out, which was caused by a cookie issue.
Moving (pick up/drop) now runs with elevated permissions, because of issues where some records could not be deleted to be moved because the user did not have permission to.
Fixed an issue with emailing, where if the user does not have permission to access the target user's user record, then the email would not send.
Fixed an issue where a discrepancy between the user ID casing that was entered, vs. the casing of the user ID in the database, caused some functions to break.
The Change Management feature now emails the originator with the outcome of the review (approval or rejection).
Search Engine
Fixed various problems with the text search engine, where deleted records would sometimes leave references in the search engine index that would not work when clicked. Also fixed search results where the next page link would sometimes break if the search was performed on a specific tab.
Fixed an issue where occasionally heavy concurrent use of the search engine would cause it to stop working with an error.
Fixed an issue where field names would interfere with search terms in the search index, so that searching for a word that was in a field name would return all records.
If a record has a field _DoNotSearch with a value of True, then the search engine will now skip that record and any records underneath it.
Fixed a SQL Server database engine bug that caused the search engine to pick up duplicates of inserted documents.
Fix issue with "Next page" showing in search results even though there are no more results.
General UI
Improved how the guest sign-up works, so the user interface is less confusing.
Fixed an issue where unset dates would still show even though Hide If Unset flag was set.
If there is an error when submitting a form, we now make sure the error message is visible by scrolling up if necessary.
Fixed a timing issue where sometimes the WorkflowFirst Designer workflow chart would not display.
Fixed an issue that caused login problems with Internet Explorer.
Fix for an issue where subtabs that are set to Admin Only would still show on the screen for non-admins, but crash when you click on them.
Fixes to the audit trail so that it no longer adds empty entries if only hidden fields have changed.
Fixed an issue where occasionally the admin tools link may appear (but would not function) momentarily when the server starts back up and the user logs in.
When entering text into a link field in the edit form, it would previously try to find an entry that matches the text that was entered. Now, if it cannot find an immediate match, it now also searches hierarchically traversing the database to look for other matches if it is appropriate to do so.
Fixed an issue introduced in the last release where certain screens would visibly "shift up" after loading.