Ranking not working

Hi,

in EE 4.0 (on prem) I have a table that basically only consists of links and data from other tables. It calculates numbers in all kinds of ways.
Now I’ve got this issue that I cannot use the ranking data processing on a column. The source column is a currency formatted formula column. It shows as number column. The values are only negative, e.g. €-1,00, €-50,00.
When I run the ranking data processing nothing happens in the frontend. The logs however show this:

==> logs/dtable-events.log <==
[2023-07-18 21:45:50,067] actions.py[line:2812] [ERROR] 'NoneType' object has no attribute 'get'
Traceback (most recent call last):
  File "/opt/seatable/seatable-server-latest/dtable-events/dtable_events/automations/actions.py", line 2793, in do_actions
    CalculateAction(self, self.data, calculate_column_key, result_column_key, action_info.get('type')).do_action()
  File "/opt/seatable/seatable-server-latest/dtable-events/dtable_events/automations/actions.py", line 2039, in do_action
    self.init_updates()
  File "/opt/seatable/seatable-server-latest/dtable-events/dtable_events/automations/actions.py", line 1994, in init_updates
    view_rows = self.query_table_rows(table_name, self.auto_rule.view_columns, filter_conditions)
  File "/opt/seatable/seatable-server-latest/dtable-events/dtable_events/automations/actions.py", line 1948, in query_table_rows
    sql = filter2sql(table_name, columns, filter_conditions, by_group=False)
  File "/opt/seatable/seatable-server-latest/dtable-events/dtable_events/utils/sql_generator.py", line 1693, in filter2sql
    return sql_generator.to_sql(by_group=by_group)
  File "/opt/seatable/seatable-server-latest/dtable-events/dtable_events/utils/sql_generator.py", line 1671, in to_sql
    filter_clause = self._filter2sql()
  File "/opt/seatable/seatable-server-latest/dtable-events/dtable_events/utils/sql_generator.py", line 1634, in _filter2sql
    column_type = column.get('type')
AttributeError: 'NoneType' object has no attribute 'get'
[2023-07-18 21:45:50,067] actions.py[line:2814] [ERROR] rule: 33, do action: {'type': 'calculate_rank', '_id': '131230', 'result_column': 'U8EC', 'calculate_column': '2rRB'} error: 'NoneType' object has no attribute 'get'

Is there anything I can do to work around this?

We will give it a check in the next week.

Hi, I guess the problems may be caused by some columns in the filters are hidden in the current view. Please unhide the columns and try again and see if it is solved.

I just copied the view, disabled all column and row filter, update the data processing to consider the new copied view. It is still not working.

Thanks.

Are the same errors show up in the logs as before? If you don’t mind please send me a dtable through the private message in the forum if it is not fixed.

As far as I can tell the errors are the same. I was able to create a base on the cloud in the free tier that reproduces that issue.

Since the base has no crutial data in it and I cannot upload it here, I uploaded it to wetransfer for anyone to test.

@daniel.pan , did you look into this already?

There will be a fix in 4.1.

This problem should be fixed now with todays update to Version 4.1.
Can you please re-test?

Thanks. It is looking good on the demo base I provided, but it is still not working on my actual one.

I just discovered, that it is not working when the view is filtered using the column that is the base for the ranking. I can also reproduce this in the cloud.
e.g. column < 5