Forum Discussion

lucmax's avatar
lucmax
Helper II
3 years ago
Solved

Apply JSON filter with date hierachry not working

Hi all,

 

we are developing our own visual that creates filters based on the json filter (applyJsonFilter). this works great with all dates, but we are having problems with the date hierarchy. We have the following hierarchy in a table named 'Cases' and if I filter on the field 'Year' using a normal slider it will show that it is filtered on the field 'Cases'[Year].

 

 

 

 

 

 

 

Creating a basic filter on exactly this field from within our visual doas not create a filter in the report. The strange thing is, that it will be created in the jsonFilters array of the visualUpdateOptions object.

 

We are creating the filter the following way, of course in our code the values are not static like in th example. But these are the values that will be used in our example which is not working.

 

const target = {
    table: 'Cases',
    column: 'Year',
};

const values = [2018];
            
const basicFilter: IBasicFilter = {
    $schema: 'https://powerbi.com/product/schema#basic',
    filterType: FilterType.Basic,
    operator: 'In',
    target,
    values,
};

this._visualHost.applyJsonFilter([basicFilter], 'general', 'filter', FilterAction.merge);

 

What are we doing wrong? Is there no way to filter on date hierarchies in custom visuals?

 

Best regards,

lucmax

 

 

 

 

  • Figured it out, we needed to get the name from the source.entity object within the identityExprs array. Thats the, I  guess technical name, of the date hierarchy table. If we set a filter on this table everything works as expected.

     

3 Replies

    • lucmax's avatar
      lucmax
      Helper II

      Hi v-chenwuz-msft ,

      thank you for the answer, but I'm afraid that won't help. When we filter at the hierarchy level, we do not have a complete date object, only the individual values.

      If I filter on the underlying complete date, everything works as intended. Only the hierarchy causes problems.

  • Figured it out, we needed to get the name from the source.entity object within the identityExprs array. Thats the, I  guess technical name, of the date hierarchy table. If we set a filter on this table everything works as expected.