首页 > 解决方案 > TSC Payload 格式错误或不完整

问题描述

我正在使用 TableauServerClient 更新 Tableau Server 上报表的所有者。这是我的简单代码:

Try:
                single_workbook = server.workbooks.get_by_id(workbook_id)       #default ownerid of fsg_tableaureporting
                single_workbook.owner_id = ownerid

                if (server.workbooks.update(single_workbook)):
                    print('Workbook owner has been updated successfully')

                else:
                    print('Workbook owner could not be updated. Please try again. Exiting..')

            except Exception as e:
                print('Exceptions occured while changing the owner.')
                print(e)

我在语句 server.workbooks.update(single_workbook) 处得到异常。有人有什么建议吗?

Python:3.7.3
TSC:0.8.1
Tableau 服务器:2019.1.3 (20191.19.0417.1429) 64 位 Windows

标签: pythonrestapitableau-api

解决方案


我刚刚遇到了同样的问题。查看日志(对于 Windows,C:\Tableau Server\data\tabsvc\logs\vizportal\vizportal-0.log),我看到了错误:

Caused by: com.sun.istack.internal.SAXParseException2; lineNumber: 1; columnNumber: 238; unexpected element (uri:"", local:"dataAccelerationConfig"). Expected elements are <{}owner>,<{}site>,<{}project>,<{}connections>,<{}connectionCredentials>,<{}views>,<{}tags>

该错误在此处生成 XML 时特别发生: https ://github.com/tableau/server-client-python/blob/188be71e0fbe9d87ac36628af21d2f63af32d020/tableauserverclient/server/endpoint/workbooks_endpoint.py#L103

在检查该请求中发生的情况后,我看到它在 xml 中为 data_acceleration_config 添加了一个部分,我认为这是从最近版本开始的新功能,可能是 2019.4: https ://github.com/tableau/server-client-python/ blob/188be71e0fbe9d87ac36628af21d2f63af32d020/tableauserverclient/server/request_factory.py#L485

不幸的是,API 还没有正确处理这个问题!我正在尝试调整我的代码以不生成该 xml 元素;如果我找到解决方案,将再次更新。


推荐阅读