【问题标题】:TSC Payload is either malformed or incompleteTSC Payload 格式错误或不完整
【发布时间】:2019-08-07 22:06:46
【问题描述】:

我正在使用 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

【问题讨论】:

  • 您通过了身份验证吗?异常中的消息/代码是什么?新所有者是否有权访问包含工作簿的网站或项目?
  • 是的,我可以成功认证。新用户有权访问服务器/项目。我尝试了不同的用户,但没有运气。异常显示“400000:错误请求。有效负载格式错误或不完整”
  • 不做修改就可以保存吗?获取后是否可以从中读取字段,以确保正确检索到它?
  • 即使是这个简单的代码也失败了:single_workbook = server.workbooks.get_by_id(workbook_id) server.workbooks.update(single_workbook) 它失败并出现同样的错误“tableauserverclient.server.endpoint.exceptions.ServerResponseError: 400000: Bad Request Payload is malformed or incomplete”
  • 如果你把 print(single_workbook.name) 放在 update() 调用之前会显示什么?

标签: python rest api tableau-api


【解决方案1】:

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

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 元素;如果我找到解决方案,将再次更新。

【讨论】:

  • 刚刚在我们的 tableau server 2020.2 上尝试了更新......就像一个魅力!所以我想我会留下它并等待我们的画面服务器升级:)
【解决方案2】:

我使用的是 0.12 版的 tableauserverclient 并遇到了类似的问题;但是当我降级到版本 0.10 时,我在更新工作簿项目时没有遇到这个问题。

【讨论】:

    猜你喜欢
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 2012-04-08
    相关资源
    最近更新 更多