Share via


Stored filters are culture invariant - Microsoft Dynamics NAV Update

This article introduces a change about the format in which table filter views are stored in the database in Microsoft Dynamics NAV.

Applies to:   Microsoft Dynamics NAV 2017
Original KB number:   4016555

Symptoms

In Microsoft Dynamics NAV 2016 Cumulative Update 17 and Microsoft 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.

Resolution

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, select the Search for Page or Report icon, enter Workflows, and then select the related link.
  2. Select the workflow from the list, select the Edit action, and then select 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)