Repository navigation
Filter query breaks in 0.14 with Tableau Server 2019.4 #732
Copy link
Copy link
Closed
Description
When connecting to Tableau Server 2019.4, tableauserverclient works fine on 0.13, however when moving to 0.14 the Filter breaks. When connecting to Tableau Server 2020.2, all functionality works fine. Is this a regression for older versions of Tableau Server? There was a change in the ChangeLog referring to RequestOptions so I wondered if that could be the cause. I note there are mutliple issues fixed by this change, which relate to url encoding, however I would expect this code should still work, as it does not use any reserved characters.
With 0.13:
(tsc) ...\tsc>py filter_test.py
Output:
0
With 0.14:
(tsc_014) ...\tsc_014>py ..\tsc\filter_test.py
Output:
(tsc_014) ...\tsc_014>py ..\tsc\filter_test.py
Traceback (most recent call last):
File "..\tsc\filter_test.py", line 12, in <module>
ds_list, p = server.datasources.get(req_option)
File "...\tsc_014\lib\site-packages\tableau
serverclient\server\endpoint\endpoint.py", line 127, in wrapper
return func(self, *args, **kwargs)
File "...\tsc_014\lib\site-packages\tableau
serverclient\server\endpoint\datasources_endpoint.py", line 40, in get
server_response = self.get_request(url, req_options)
File "...\tsc_014\lib\site-packages\tableau
serverclient\server\endpoint\endpoint.py", line 85, in get_request
return self._make_request(self.parent_srv.session.get, url, auth_token=self.
parent_srv.auth_token,
File "...\tsc_014\lib\site-packages\tableau
serverclient\server\endpoint\endpoint.py", line 55, in _make_request
self._check_status(server_response)
File "...\tsc_014\lib\site-packages\tableau
serverclient\server\endpoint\endpoint.py", line 70, in _check_status
raise ServerResponseError.from_response(server_response.content, self.parent
_srv.namespace)
tableauserverclient.server.endpoint.exceptions.ServerResponseError:
400065: Bad Request
None
With ...\tsc\filter_test.py:
import tableauserverclient as TSC
tableau_auth = TSC.PersonalAccessTokenAuth(token_name="poc", personal_access_token="ACCESS_TOKEN", site_id="MY_SITE") # redacted
server = TSC.Server('https://tableau.example.com', use_server_version=True) # redacted
with server.auth.sign_in_with_personal_access_token(tableau_auth):
name_query = "Account"
req_option = TSC.RequestOptions()
req_option.filter.add(TSC.Filter(TSC.RequestOptions.Field.Name,
TSC.RequestOptions.Operator.Equals,
name_query))
ds_list, p = server.datasources.get(req_option)
print(len(ds_list))
# output expected: "0"Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
shinchris commentedon Nov 20, 2020
@barscm thanks for catching this! Server versions before 2020.1 do not accept encoded delimiters in the query parameter. #745 should fix the issue
shinchris commentedon Dec 10, 2020
Fix for this is released in v0.14.1.