Open table with filter not working with fts

The problem can be reproduced in the attached example project. You have index the exisiting data with fts first.

Workflow:

  1. Login
  2. Open Application/Home
  3. Click ‘browser Customer Smith’
  4. The Customer browse view is displayed, but the filter is not applied and the filter is shown in fts mode.

If I switch defaultMode to “generic” in the code it works. This seems to be a bug to me.

These are the important code snippets

There is a page (home) with a button that opens a browse view with a filter (Home.java):


    public void openCustomerWithFilter() {
        Map<String, Object> params = new HashMap<>();
        params.put("filter", "customerSmith");
        openWindow("ftsfilterlinkdemo$Customer.browse", WindowManager.OpenType.NEW_TAB, params);
    }

The grid in the browse view uses the filter in the fts mode (customer-browse.xml):


 <filter id="filter"
                defaultMode="fts"
                applyTo="customersTable"
                datasource="customersDs">
            <properties include=".*"/>
        </filter>

Yours,
Joerg

fts-filterlink-demo.zip (253.6K)

Hi Joerg,

This is not a bug. The parameter value is the filter entity code and the entity with this code is automatically set to the filter even if the default mode is FTS (you can check it: switch back to the “generic” mode after the screen with the filter is opened).

However, I agree with you that there must be a way to set up a default value for the FTS mode as well. We created an issue. We plan to analyze a screen parameter with a name, say {filterComponentId}.ftsCriteria, and set its value to the FTS criteria field. We’ll also add an API to the filter component that will allow to set fts criteria from the screen controller code.

Hi Max,
thanks for your help. You are right the filter is set.
Will it be also possible to set the filter mode (e.g. to generic) using the (Java)-Api?
Setting the fts criteria is a good idea and I can think of some use cases where this is helpful for me.
But in this use case, fts is not suited because the syntax is quite limited (e.g. name:Smith is not possible).

:ticket: See the following issue in our bug tracker:

https://youtrack.cuba-platform.com/issue/PL-8503