Release Notes

4.2 Release

WorkflowFirst v4.2 Release Notes

Date: October 29th, 2018

Hotfix ID: wff42
Installation Instructions: Here


Fixed an issue where the Title Override for a dropdown field wouldn’t be applied if the field used a DbfScript Link.

An issue was fixed where an error was displayed with multi-selection totaling in certain circumstances.

Fixed a problem where you couldn't retrieve emails on a scheduled job using the POP3 functions.

Fix for the API functions where you would sometimes erroneously get the 'Path must point to a record' error.

The login screen now authenticates through AJAX. If you have a customized login screen, you should study the changes in the login page to see how it should be adapted to use AJAX

Link DbfScript now has a #text variable which holds the text entered by the user before clicking the dropdown button. This can be useful to perform searches in a plugin script.

Fix for Scheduled Jobs Machine Specific setting, which failed if it was set to blank (after it had previously been set).

The LoadUrl function now works with web proxies. The ProxyHost and ProxyPort global variables can be set prior to running LoadUrl functions, to use the given proxy details.

Admin Tools script now supports #selection. The #selection variable contains a list of paths of the current selection based by the user in that same session.

Various fixes for POP3 email encoding and attachment decoding. The POP3 functions now return the CC list, and the Importance.

Inherited types now also inherit the actions and events of that type. Previously only the fields of the type were inherited.

Fix inline change for rich edit and HTML. Any use of
was lost when set within an inline change event.

A change was made to make sure redirects aren’t ever cached.

The search engine now also excludes subtypes of any form marked in Advanced as Exclude from Search Engine. This can make it easier to focus searching to specific areas of your application. Also, fixed an issue with the search results to ensure no HTML is displayed in the preview.

Fixed the Export XML option so that the URL now no longer downloads files if the files=true URL option is removed. Previously it would download files regardless.

Custom Views now have an Alternative Name setting that can be used to reference the in webmode. Also, fixed the What's Next / action embed option so that it showed correctly.

The Scheduled Jobs list on the Configuration tab which has a MachineSpecific setting can now refer to the web URL not just the machine name.

New Features

Workflow can now be approved through email. By enabling “Email-Based Approval” on the application configuration record, the system will provide options in the Configuration tab of your application for you to enter the POP3 server to scan. Once that is configured, it will then automatically scan that inbox and look for any assignment email response that contains an action name, such as Approve, and will automatically run that action if it can match up the email to the user who has permission to run that action. This then allows emails to reply to their assignment email with, for example, “approve” and the system will automatically run the approve workflow stage for that record, without the user having to log in to the system.

New "Allow Cloning" option on workflow, provides a Clone action to start a new workflow with the same values as the selected record.

When enabling Back Links on a tab, you can now select to show the parent of the record in the list of records that it shows. For example if you have an invoice with line items that link to catalog items, the catalog tab can show the invoices (the parent of the form that contains the link) related to that catalog item.

Support for sub-ref queries that have link value predicates. Previously you could only search sub-ref fields with primitive values and not links. For example, if you have an invoice with invoice items, you can search for /Invoice[InvoiceItem/Catalog=&path] to search for invoices have sub-items that link to the current catalog item.
Inline change events are now triggered when sub-forms are removed. Previously they would only trigger when fields change.

The GrandTotal function now refreshes the total when sub-items are deleted.

Support for email logging. If you have an emailserver.cfg file, you can now add a line called LogFile=xxx where xxx is a filename to log to. It will add a line to that file with the time, server name, IP address of the sender, hosting account name (if any), the sender user name, who the email is to, the subject and the first part of the sent email, and finally if the email had attachments.

The Exclude From Search Index option in Advanced now applies to all subforms.


The workflow setting ‘Show Buttons’ now only pertains to the initial entry stage form, not the others.

You can now specify a role for the Dashboard view, in the application settings. If the user doesn't have that role, they won't see the Dashboard tab.
New events are available: Assigned and Unassigned. These are raised when a user is assigned to a record (and unassigned). #input is the assignment record, and &path is the path to the record being assigned.

Change Management now has an optional Authorization Condition. This condition, if specified, determines whether to ask for approval, or if the update can just be applied by anyone.

Fixed a problem where the Change Management cannot be used with regular workflow.

Fixed a problem with Change Management where the Reject button would remain visible.

If a user is admin, they will once again be able to run any stage in the workflow. This feature was removed in the previous version.

Fixed a problem where role assignments would sometimes send notifications even though receive emails was set to no.

New 'Assignment Condition' on a workflow stage lets you specify a condition which must be true for the stage to be assigned. If the condition is false, then the role of that stage will not be assigned.

Change Management can now apply to admins also. An option has been added to the Change Management so that authorization can be requested for changes even made by an administrator.


New functions: GetActionsForRecord(record) and GetActionsForRecordAsUser (record). This functions can be used to retrieve meta information about the actions available for a given record.

New function ParseURLToPath(url) will return a path for a specified WorkflowFirst URL (dataview URL).

The StripOutHtml function has been enhanced to handle a wider variety of HTML codes.

New function math:MoneyToFloating to allow most math functions to be used with money types

The GetFileName function now works with file objects that aren't fully loaded.

New function workflow:RemoveReminder(path, role, user) will remove any reminders for the given record path for the given user or role.

New DbfScript function: GetCTypeDetails that returns some meta details about the given type.

New function CreateICalFile(&path) that creates an .ical file for the record's calendar info, configured as a calendar invite.

Improved the error reporting for publish/subscribe API calls.

New DbfScript function path:LeaveOnlyIDPredicates(path) - removes all but the ID predicates.

New function GetFileSize(file) returns the size of the file in bytes.

New DbfScript function: CorrectDateTZ, will change a date value to be in the time zone of the current user.

New DbfScript function GetRequestHeader(field) lets you retrieve a specific HTTP header from the current web request.

New function str:ExpandUrls(text) will convert any URLs into HTML anchor links.

The assignment emails subject has been simplified.

New functions WorkHoursBetweenEx(start, stop, startTime, stopTime, daysAlwaysOff, otherdaysOff, maxOutAt) and AddWorkHoursEx(start, hours, minutes, startTime, stopTime, daysAlwaysOff, otherDaysOff). Used for determining SLA timings.

New function ReverseList(list) that returns a reversed version of the same list.


Added support for providing a Google API Key to use for when the system uses Google’s geocoding service (for converting addresses into long/lat coordinates). The key is entered in Features / Map Options. Previously a guest account was used, but Google no longer accept guest access to the API. If you wish to continue using the mapping features, you will have to sign up for a Google API key.

New system event “End Point”, can be used for create webhook. A new system event, End Point, will be called for any posted (or GET request) data to endpoint.aspx, which can be used to create webhooks for third party services. Use GetRequestHeader to retrieve HTTP headers used in the post, and #input to retrieve any form-encoded data in the payload. The #input/Method will be either GET or POST to help you differentiate between the two. The GET returns a string value containing the HTML or JSON to return.

Support for USERNAME only in the URL. If USERNAME is specified, with no password, then it will verify the user is logged in as that username. If not, it will redirect to the login page. If they have no password, it will log them in automatically.

We now have an HTML Injection field in the Application's Advanced area, which will be inserted into every page. You can use this to include counters, web chat and other features if you are familiar with HTML.

Fixed a problem with the pub/sub API where permissions filters were interfering with updates.


The “Guest sign up” option on the application configuration now makes the system ask to verify the user’s email address that was entered, and creates a user login for that user automatically.

This allows for guests to more easily sign up and use your application. The guest login will use the details of the “template” user (the user with the User ID = template).

The Authentication script now supports #input/Extra, which is the contents of an Extra field used for Two-Factor Authentication.

Minor fix related to redirecting to a domain outside of the current domain.

For site licenses, we now presume that all users are power users.

The Requires Login option on the Configuration tab is now set as “admin only”.

Fixed a problem where sometimes cookies weren't set to secure on an SSL connection.

Passwords longer than 30 characters no longer need to have a symbol and digit. This is based on current guidance by security experts, who say longer password phrases are more secure than shorter passwords with symbols and digits.

Fixed an issue with filter permissions not being correctly applied when viewing certain records.

Fixed a problem where adding Admin Edit Only to a tab would still allow editing through the context menu.

Fixed an issue where the calendar view wouldn't always honor filter permissions.

Fix for certain issues that arise if there is inconsistency with the casing of login names.

Added additional permission filter expressions, Today(-1) to refer to yesterday. The filter expression can now also be prefixed with <, <=. > or >=.

We now require TLS 1.2 for HTTPS uploading. This requires that .Net Framework 2 SP2 is installed. The industry as a whole now requires TLS 1.2 for most API access, for security reasons.

Custom Views can now have Required Roles. Only users with the specified roles will be able to see that custom view option.


Emails are now only sent when the action completes. This means that if a script performs an email send before an error occurs, the email will no longer be sent. Also, emails are sent in the background and won't slow down the running of the action.

Fixed an issue with caching with Web Mode pages. Previously setting the tab's Advanced / Web Mode Cache policy would only impact server-side page generation caching, and not impact the browser caching policy.

Some fixes were made to the asynchronous functions (especially WaitBatch) to make them more reliable.

User Interface Related

The preview text in rows is now reduced in mobile.

New setting "Hide Title In Form" in the field's Advanced area will suppress the title display. This can be useful if you hide the title on all fields in a line and put a static label at the start, for some variations in form layout.

Dropdown fields with Short Titles (in Advanced) no longer show the text in the cell, only the icon. This only applies if an icon is selected for the dropdown value, and only if the value is displayed in the summary (list) view.

Custom views now have the option of hiding tabs below the view.

Fix issue with the text that describes the current filters would not wrap correctly on the screen.

We now allow the app logo to be overridden from within the app. If you perform an InternalSaveFile to newlogo.png, then it will override the displayed logo in the application. This can be used to provide seasonal/holiday logo changes, for example.

Fix for lag in inline change events. Change from keydown to key up for inline change, so we can get the updated value immediately.

Fixed some problems with Collapsed Pages. It now always expands the first page when the form is first opened. It now also sets focus to the first field when the page is expanded. Same for collapsed groups.

Fix for Boolean switch boxes in FireFox. They wouldn't show properly because of how they process floated divs (different to other browsers).

New flag "Exclude From Insert" will only show a field on the edit page, not when being inserted.

The QR code icon no longer requires Google's URL shortener. It now performs the URl shortening internally without going to the Internet. This means that the QR codes can be used without any concerns for publishing sensitive information on the Internet (eg. default values).

The Total setting on a field now also supports Count to show a count of all records.

Custom views now have the ability to control the page title. If the custom view contains script that sets #input/appTitle, then whatever value is set will be reflected in the page's application title. This can also be used in web mode pages.

On Custom Views, added "Replace If Condition" and "Default If Condition" which are DbfScript expressions that control whether the Replace and Default options are enabled.

Fixed an issue where radio buttons won't disable in a form if they have an Enable When setting.

Next Topic: 4.1.1 Release

Release Notes - WorkflowFirst Customer Support Server, Version 1.0.816 (beta)
Up Since 2/15/2019 12:59:20 PM