Stored Filters are Culture Invariant - Microsoft Dynamics NAV Update

Applies to: Dynamics NAV 2017


In Dynamics NAV 2016 Cumulative Update 17 and Dynamics NAV 2017 Cumulative Update 4, the format in which table filter views are stored in the database has changed. This change affects the use of existing stored filters in filter pages that are based on the FilterPageBuilder data type. In particular, this includes the Event Conditions filter page for workflows.

Previously, filter views were stored based on the regional settings (language, currency, data and time format) of the user’s device when the filters were created. When the stored filter views were later used in the client, they were parsed by using the current user’s regional settings. If the current user's regional settings differed from the regional settings of the stored filter view, the filter view parsed incorrectly. Now, filter views are stored independent of the regional settings (culture invariant, format 9 in C/AL), and the invariant culture is used when parsing the filter views.


For workflow filters, client users can manually update the filters on a specific workflow by opening and saving the workflow as described in these steps:

  1. In the top right corner of the client, choose the Search for Page or Report icon, enter Workflows, and then choose the related link.
  2. Choose the worfklow from the list, choose the Edit action, and then choose the OK button.

To identify whether a stored filter view is in the old format or new format, you export the content of the BLOB data type fields that contain the filter views, and inspect the text strings that represent the views. If a string contains the 'VERSION(n)' token, where 'n' is an integer value, then the filter view string is in the new culture-invariant format. If a string does not have the 'VERSION(n)' token, then it is in old format. You should note that the GETVIEW function returns filter view strings in the new format as shown in the following example:

VERSION(1) SORTING(period Type,Period Start) WHERE(period Start=FILTER(2015-01-01)