分析扩展程序连接疑难解答
本主题描述 Tableau 连接到外部分析扩展程序服务时可能会收到的错误。
注意:Tableau 技术支持人员无法协助编写、调整外部脚本或排除其问题。
错误消息 | 注释 |
传递给 SCRIPT 函数的参数是不支持的类型。 | Tableau 只能将以下 Tableau 数据类型导出到 R:
|
SCRIPT 函数返回了意外数量的结果。函数预期 %2 个值;返回了 %1 个值。 | 脚本结果必须是为所有行复制的长度为 1 的标量或矢量,或者长度等于 Tableau 结果表中的行数的矢量。 |
证书文件对指定的连接 (%1%2:%3) 无效。检查是否为服务器和客户端使用了相同的证书、证书文件未损坏并且日期有效。 | 验证用于连接到外部服务的证书的编码和格式正确无误。您必须使用有效的 PEM 编码 x509 证书(扩展名为 .crt)进行连接。 |
SCRIPT 函数返回的结果是意外类型。 | 在收到无效数据类型时出现。Tableau 只能从 Rserve 服务器导入以下数据类型:
对于 TabPy,Tableau 只能导入以下数据类型:
如果结果为 null 或存在 Tableau 无法从外部服务器收集到说明的脚本执行错误,也会报告此错误。 |
与外部服务通信时出错。 | Tableau 在“try”外部函数内运行所有外部脚本。当“try”函数捕获计算错误时,会显示此错误以及外部服务生成的错误消息。 |
此外部服务连接不支持身份验证。请尝试在不指定密码的情况下进行连接。 | |
身份验证失败。请提供有效的外部服务用户名和密码。 | |
外部服务中启用的身份验证类型不受支持。 | 禁用外部服务身份验证或更改为纯文本密码身份验证。 |
未配置外部服务连接。请指定服务器名称并重试。 | 请参见使用分析扩展程序传递表达式。 |
计算“%1”包含一个需要内部服务连接的 SCRIPT_ 函数。请配置外部服务连接以启用自定义脚本。 | 请参见使用分析扩展程序传递表达式。 |
尝试发布的工作簿包含需要外部服务连接的 SCRIPT_ 函数。公共工作簿中不允许包含自定义脚本。 | 无法将包含外部服务脚本的公共工作簿发布到 Tableau Public。 |
Tableau Public 不支持运行需要外部服务的自定义脚本。若要利用外部服务,请升级到 Tableau Desktop Professional Edition。 | “Tableau Public”(在此错误中)是指 Tableau Desktop Public。 |
Tableau Reader 不支持运行需要外部服务的自定义脚本。若要利用外部服务,请升级到 Tableau Desktop Professional Edition。 | 无法在 Tableau Reader 中查看包含外部服务脚本的工作簿。 |
错误消息 | 注释 |
无法识别 Rserve 签名。 | Rserve 标头签名必须为“Rsrv”。 |
无法识别 Rserve 版本。 | Rserve 标头版本必须为“0103”。 |
无法识别 Rserve 协议。 | Rserve 标头协议必须为“QAP1”。 |
在连接到 R 时身份验证失败。 | Tableau 尝试向 Rserve 进行身份验证但失败。请确认您输入了有效密码。 |
参数/主体中的字节数不正确。 | |
Tableau 读取的数据长度不等于标头承诺的长度。 | |
无法识别响应类型。 | 读取结果时的传输协议类型不是预期的 SEXP。 |
<type>vector 过长。 | 用于测量从或向 Rserve 发送的数据长度的数字过大,可能指示协议标头已损坏。 |
Rserve 命令无效。 | Tableau 可能错误地实施了 Rserve 协议。 |
来自服务器的响应是错误“<< (uint32_t)status <<”。有关详细信息,请参见 Rsrv.h。 | 各种错误条件记录在 Rsrv.h 中的注释中。 |
标头偏移过长。 | 这可能由于乱码标头与响应数据的偏移过大造成的。 |
Rserve 套接字失败。 | 登录、脚本计算、读取挂起检查、结果读取或 Tableau 字段到 R 脚本参数赋值引发非标准异常。 |
外部服务使用不受支持的身份验证类型。 | 若要同时支持通过启用 SSL 的方式和明文方式连接到 Rserve 实例,Rserve 服务器管理员必须将以下条目添加到 Rserve 服务器上的 Rserve 配置文件中:
|
RServe 上发生了加密系统错误。 | RServe 的加密系统发生错误。有关详细信息,请检查 RServe 日志。 |
RServe 由于安全违规而发起关闭命令。 | RServe 由于安全违规而关闭了连接。有关详细信息,请检查 RServe 日志。 |
为安全连接设置了“外部服务配置”,但缺少证书。 | 建立与外部服务的安全连接时,需要上载您希望用于对此外部服务签名的证书。与未使用此证书签署的服务器的连接将被拒绝。这可确保仅将数据发送到受信任的服务器。 |
证书文件对指定的连接 (%1%2:%3) 无效。检查是否为服务器和客户端使用了相同的证书、证书文件未损坏并且日期有效 | 提供的证书对于此连接配置无效。检查以确定它是否与用于签署外部服务服务器的证书匹配、它是否为 PEM 编码,并且对于当天的日期有效。 |
外部服务连接证书无效 | 提供的证书无效。检查以确定证书是否为 PEM 编码,并且它对于当天的日期有效。 |
外部服务连接未能创建 SSL/TLS 上下文 | Tableau 未能为此给定外部服务配置初始化安全环境。检查以确定主机和端口是否正确,并且证书有效。 |
外部服务未能与 SSL/TLS 连接 | Tableau 未能建立与外部服务的安全连接。验证外部服务是否配置为支持安全连接,并且提供的证书是否与用于签署外部服务的证书匹配。 |
无法识别外部服务服务器协议 | 主机前面附带了 Tableau 无法识别或不支持的协议。如果连接到 RServe,则不需要任何协议。如果连接到 TabPy,则在建立明文连接时需要 HTTP 协议,在建立安全连接时需要 HTTPS 协议。 |
SCRIPT 函数甚至在计算结果为 false 的逻辑语句中运行
将表达式发送给运行的外部服务实例的函数将会执行,即使它位于本该阻止它执行的逻辑语句中也是如此。IF、IIF 和 CASE 之类的逻辑函数就是如此。例如:
IF 1==0 THEN [[R script code]] ELSE "1 does not equal 0" END