分析擴充功能連線疑難排解

本主題說明 Tableau 連線至外部分析擴充功能服務時可能會收到的錯誤。

附註:Tableau 技術支持人員無法協助編寫、調整外部指令碼或排除其問題。

與任何外部分析擴充功能服務通訊時可能會發生的錯誤

錯誤訊息註解
傳遞給 SCRIPT 函數的參數是不支援的類型。

Tableau 只能將以下 Tableau 資料類型匯出到 R:

  • 數字(十進位)

  • 數位(整數)

  • 布林值

  • 字串

  • Date(日期)

  • 日期/時間

SCRIPT 函數返回了意外數量的結果。函數預期 %2 個值;返回了 %1 個值。指令碼結果必須是為所有列複製的長度為 1 的標量或向量,或者長度等於 Tableau 結果表中的列數的向量。
憑證檔案對特定連線 (%1 %2:%3) 無效。檢查伺服器和用戶端是否使用相同的憑證,憑證檔案未損毀且日期有效。驗證用於連線外部服務的憑證是否編碼並正確格式化。您必須連線副檔案名為 .crt 的有效 PEM 編碼 x509 憑證。
SCRIPT 函數返回的結果是意外類型。

在收到無效資料類型時出現。Tableau 只能從 Rserve 伺服器匯入以下資料類型:

  • RDouble

  • RInteger

  • RLogical

  • RCharacter

對於 TabPy,Tableau 只能匯入以下資料類型:

  • 浮點數清單

  • 整數清單

  • 布林值清單

  • 字串清單

如果結果為 null 或存在 Tableau 無法從外部伺服器收集到說明的指令碼執行錯誤,也會報告此錯誤。

與伺服器通訊時出錯 (403)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 簽名。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 伺服器:

plaintext enable

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