분석 확장 프로그램 연결 문제 해결

이 항목에서는 Tableau가 외부 분석 확장 프로그램 서비스에 연결될 때 발생할 수 있는 오류를 설명합니다.

참고: Tableau 기술 지원에서는 외부 스크립트의 작성, 문제 해결 또는 디버깅을 지원하지 않습니다.

분석 확장 프로그램과 통신할 때 발생할 수 있는 오류

오류 메시지설명
지원되지 않는 유형이 SCRIPT 함수에 인수로 전달되었습니다.

Tableau에서는 다음과 같은 Tableau 데이터 형식만 R로 내보낼 수 있습니다.

  • 숫자(실수)

  • 숫자(정수)

  • 부울

  • 문자열

  • 날짜

  • 날짜/시간

SCRIPT 함수에서 예기치 않은 수의 결과를 반환했습니다. 함수에 %2개의 값이 필요한데 %1개의 값이 반환되었습니다.스크립트 결과는 모든 행에 대해 복제되는 스칼라 또는 벡터 길이이거나 Tableau 결과 테이블에 있는 행 수와 같은 벡터 길이여야 합니다.
인증서 파일이 지정된 연결에 유효하지 않습니다(%1 %2:%3). 동일한 인증서가 서버와 클라이언트 모두에 사용되었고, 인증서 파일이 손상되지 않았으며 유효한 날짜인지 확인합니다.외부 서비스에 연결하는 데 사용 중인 인증서가 올바르게 인코딩되고 형식화되어 있는지 확인합니다. 확장명이 .crt인 유효한 PEM 인코딩 x509 인증서를 사용하여 연결해야 합니다.
SCRIPT 함수에서 반환된 결과가 예기치 않은 유형입니다.

잘못된 데이터 유형이 수신되면 발생합니다. Tableau에서는 다음과 같은 데이터 유형만 Rserve 서버에서 가져올 수 있습니다.

  • RDouble

  • RInteger

  • RLogical

  • RCharacter

TabPy의 경우 Tableau에서는 다음과 같은 데이터 형식을 가져올 수 있습니다.

  • 부동 소수점 목록

  • 정수 목록

  • 부울 목록

  • 문자열 목록

결과가 null이거나 Tableau가 외부 서버에서 설명을 수집할 수 없는 스크립트 실행 오류가 있어도 이 오류가 보고됩니다.

외부 서비스와 통신하는 동안 오류가 발생했습니다.Tableau는 "try" 외부 함수 안의 모든 외부 스크립트를 실행합니다. “try” 함수가 평가 오류를 트래핑할 경우 외부 서비스에서 생성된 오류 메시지와 함께 이 오류가 표시됩니다.
이 외부 서비스 연결이 인증을 지원하지 않습니다. 암호를 지정하지 않고 연결해 보십시오. 
인증이 실패했습니다. 올바른 외부 서비스 사용자 이름 및 암호를 제공하십시오. 
지원되지 않는 인증 유형이 외부 서비스에서 설정되었습니다.외부 서비스 인증을 사용하지 않도록 설정하거나 일반 텍스트 암호 인증으로 변경하십시오.
외부 서비스 연결이 구성되지 않았습니다. 서버 이름을 지정하고 다시 시도하십시오.분석 확장 프로그램에 식 전달을 참조하십시오.
계산 '%1'에 내부 서비스 연결이 필요한 SCRIPT_ 함수가 포함되어 있습니다. 사용자 지정 스크립트를 사용하도록 외부 서비스 연결을 구성하십시오.분석 확장 프로그램에 식 전달을 참조하십시오.
게시하려는 통합 문서에 외부 서비스 연결이 필요한 SCRIPT_ 함수가 포함되어 있습니다. 사용자 지정 스크립트는 공개 통합 문서에 사용할 수 없습니다.외부 서비스 스크립트를 포함하는 통합 문서를 Tableau Public에 게시할 수 없습니다.
Tableau Public은 외부 서비스가 필요한 실행 중인 사용자 지정 스크립트를 지원하지 않습니다. 외부 서비스를 사용하려면 Tableau Desktop Professional 버전으로 업그레이드하십시오."Tableau Public"은 Tableau Desktop Public을 참조합니다.
Tableau Reader는 외부 서비스가 필요한 실행 중인 사용자 지정 스크립트를 지원하지 않습니다. 외부 서비스를 사용하려면 Tableau Desktop Professional 버전으로 업그레이드하십시오.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 소켓이 실패했습니다.로그인, 스크립트 평가, 읽기 보류 검사, 결과 읽기 또는 R 스크립트 인수에 대한 Tableau 필드에서 비정상적인 예외를 throw했습니다.
외부 서비스가 지원되지 않는 인증 유형을 사용합니다.Rserve 인스턴스에 대한 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 프로토콜이 필요합니다.

기타 문제

False로 평가되는 논리 문에서도 SCRIPT 함수 실행

실행 중인 외부 서비스 인스턴스에 식을 보내는 함수가 실행되지 않도록 방지하는 논리 문 내에 있을 때에도 실행됩니다. IF, IIF 및 CASE와 같은 논리 함수에서도 마찬가지입니다. 예를 들면 다음과 같습니다.

IF 1==0 THEN
  [[R script code]]
ELSE
  "1 does not equal 0"
END