파일 형식 데이터 소스
경로 및 인증 정보를 제공하여 로컬 소스, 원격 네트워크 서버 또는 다른 인스턴스에서 파일을 임포트합니다.
파일 검색 방법
다음 파일 검색 방법을 사용하면 파일이 있는 위치에서 ServiceNow로 파일을 복사하여 임포트 세트로 로드할 수 있습니다.
임포트와 호환되는 파일을 정의한 후 파일을 임포트할 수 있는 방법을 정의합니다.
| 방법 | 설명 |
|---|---|
| 첨부 파일 | 첨부 파일, 기록에 파일을 추가 및 관리하고 임포트 세트에서 해당 파일을 임포트합니다. |
| SFTP | SFTP를 사용하여 파일을 검색합니다. 서버 이름 및 로그인 자격 증명에 대한 필드가 제공됩니다. |
| FTP | 네트워크의 FTP 서버에서 파일을 검색합니다. 서버 이름 및 로그인 자격 증명에 대한 필드가 제공됩니다. 주: FTP 전송은 일반 텍스트로 전송되며 암호화할 수 없습니다. 가능하면 SCP 또는 SFTP를 대신 사용합니다. |
| FTPS(인증 SSL)[권장하지 않음] | FTPS는 일부 방화벽 공급업체에서 더 이상 지원되지 않으므로 권장되지 않습니다. 대안으로 SFTP를 사용하는 것이 좋습니다. SSL(Secure Socket Layer) 프로토콜을 통해 실행되는 FTP 보안 인증 명령입니다. 이 방법을 SSL을 통한 명시적 FTP라고도 합니다. |
| FTPS(인증 TLS)[권장하지 않음] | FTPS는 일부 방화벽 공급업체에서 더 이상 지원되지 않으므로 권장되지 않습니다. 대안으로 SFTP를 사용하는 것이 좋습니다. TLS(전송 계층 보안) 프로토콜을 통해 실행된 FTP 보안 인증 명령입니다. 이 방법을 TLS를 통한 명시적 FTP라고도 합니다. |
| FTPS(암시적 SSL)[권장하지 않음] | FTPS는 일부 방화벽 공급업체에서 더 이상 지원되지 않으므로 권장되지 않습니다. 대안으로 SFTP를 사용하는 것이 좋습니다. 암시적 보안에서 FTPS 서버는 보안 연결에 사용할 클라이언트(990)에 대한 특정 포트를 정의합니다. 암시적 보안은 FTPS 클라이언트가 FTPS 서버에 연결되는 순간 SSL 연결로 자동으로 시작됩니다. |
| FTPS(암시적 TLS)[권장하지 않음] | FTPS는 일부 방화벽 공급업체에서 더 이상 지원되지 않으므로 권장되지 않습니다. 대안으로 SFTP를 사용하는 것이 좋습니다. 암시적 보안에서 FTPS 서버는 보안 연결에 사용할 클라이언트(990)에 대한 특정 포트를 정의합니다. 암시적 보안은 FTP 클라이언트가 FTP 서버에 연결되는 순간 TLS 연결로 자동으로 시작됩니다. |
| HTTP | HTTP를 사용하여 파일을 검색합니다. 서버 이름 및 로그인 자격 증명에 대한 필드가 제공됩니다. 중요사항: HTTP 및 HTTPS 프로토콜의 경우 파일 경로는 자동으로 URL로 인코딩됩니다. 이러한 프로토콜을 사용할 때는 URL로 인코딩된 파일 경로를 지정하지 마십시오. |
| HTTPS | HTTPS를 사용하여 파일을 검색합니다. 서버 이름 및 로그인 자격 증명에 대한 필드가 제공됩니다. 이 메서드를 사용하여 ServiceNow 인스턴스 간에 데이터를 전송합니다. |
| SCP | SCP(Secure Copy Protocol)는 SSH(Secure Shell) 프로토콜을 사용하여 로컬 호스트와 원격 호스트 간에 또는 두 원격 호스트 간에 파일을 안전하게 전송합니다. |
파일 데이터 소스 예
다음 예시에서는 다양한 파일 유형을 데이터 소스로 임포트하는 방법을 설명합니다.
Excel 데이터 소스 파일
XLSX 형식과 레거시 XLS 형식을 모두 사용하여 임포트할 수 있습니다. XLS는 2003 이하 버전의 Excel에서 작성된 스프레드시트의 기본 서식입니다. XLSX는 Excel 2007 이상의 기본 형식입니다. 최적의 성능을 위해 가능하면 레거시 XLS 대신 XLSX를 사용합니다.
- .xls 모든 파일은 1904 날짜 체계가 아닌 1900 날짜 체계를 사용해야 합니다. 1904 날짜 체계를 사용하면 스프레드시트에 표시된 연도보다 4년 빠른 연도로 날짜를 가져올 수 있습니다. 날짜 시스템에 대한 자세한 내용은 MS 지원을 참조하십시오.
- Excel에서 대문자 부울 값이 (TRUE/FALSE)인 파일을 임포트하면 두 값 모두 항상 false로 변환됩니다. 이 동작을 방지하려면 속성을 false로 설정하십시오 glide.transform.boolean.casesensitive .
XML 데이터 소스 파일
- 각 행의 XPath
- XML 데이터 소스 정의에는 각 행에 대한 XPath를 지정하는 추가 필드가 있습니다. 이 필드는 하위 항목이 임포트 세트 테이블의 행으로 변환되는 요소를 선택하기 위한 XPath 표현식입니다. 선택한 각 요소로 인해 임포트 세트 테이블에 행이 생성됩니다. 선택한 요소의 자식이 행의 열로 변환됩니다. 예를 들어 아래 샘플 XML 파일에서 자산 정보를 가져오려면 XPath 식을 /export/asset으로 지정해야 합니다. 이 식은 파일에 있는 세 개의 <asset> 요소와 일치하므로 세 개의 행이 만들어집니다. asset을 지정할 수도 있지만 이 식은 큰 파일의 경우 훨씬 덜 효율적입니다. XML 로더를 사용할 때 XPath 표현식에 대한 절대 위치 경로 양식을 사용하십시오. 즉, 꼭 필요한 경우가 아니면 포함된 표현식을 피하십시오.
큰 XML 파일에 대해 충분히 제한적이지 않은 XPath 식을 지정하지 않도록 주의하십시오. 예를 들어 식/export 은 문서(루트) 요소와 일치하므로 다음 샘플 파일에 대해 잘못될 수 있습니다. 일반적으로 문서의 모든 항목을 단일 행으로 만들지 않는 한 루트 요소와 일치하는 XPath 식을 지정하지 않아야 합니다. 큰 XML 파일을 로드하려고 할 때 XPath 식을 너무 제한적으로 지정하면 처리 시간이 길어지고 출력이 잘못될 수 있습니다. 따라서 몇 행의 데이터만 포함된 작은 XML 파일을 사용하여 XML 데이터 원본 사양을 테스트하고 디버그하는 것이 가장 좋습니다. 사양이 테스트되면 전체 파일을 사용하여 다시 실행할 수 있습니다.
- <userInfo> 요소
- <asset>에 포함된 <userInfo> 요소에는 자식 요소가 포함되어 있습니다. 이 유형의 중첩은 <userInfo> 요소에 대한 XML을 포함하는 userInfo라는 열을 만듭니다. 하위 노드 확장을 선택하면 userInfo/lastName 및 userInfo/firstName에 대한 개별 열도 생성됩니다. 하위 노드 확장을 선택하지 않으면 userInfo XML 열만 생성됩니다.
- XML 파일에서 데이터 로드
- XML 파일에서 데이터를 로드할 때 처음 ServiceNow 10개 기록을 샘플링하여 데이터를 저장하는 데 필요한 필드를 결정합니다. 처음 10개 기록 중 필드에 ServiceNow 대한 값을 지정하는 기록이 없으면 임포트한 데이터를 저장하는 테이블에 해당 필드를 추가하지 않습니다. 처음 10개 기록 중 적어도 하나 이상이 임포트되는 필드에 대한 값을 지정하는지 확인합니다.XML 데이터 소스에 사용되는 XML 파일에 처음 10개 노드에 필드가 포함되어 있지 않으면 필드는 무시됩니다. 필드를 임포트하고 무시되지 않도록 하려면 필드가 처음 발견되는 노드의 위치보다 크거나 같은 값으로 시스템 속성을 추가할 glide.db.impex.XMLLoader.max.scan_nodes 수 있습니다. 이 속성은 모든 XML 데이터 소스에 적용됩니다. glide.db.impex.XMLLoader.max.scan_nodes 기본값은 10이지만 1 에서 2147483647 사이의 값을 입력하여 임포트에 사용할 값을 결정하기 위해 스캔해야 하는 노드 수를 지정할 수 있습니다. -1을 지정하여 XML 파일의 모든 노드를 검색할 수 있습니다.중요사항:-1을 지정하거나 값을 glide.db.impex.XMLLoader.max.scan_nodes기본값 10 이상으로 늘리면 모든 XML 가져오기 처리에서 전체 로드 시간이 크게 증가할 수 있습니다.
<?xml version= "1.0" encoding= "utf-8" ?><export><asset><assetTag>AT-01939</assetTag><type>Desktop</type><os>Windows 7 Professional</os><lastlogondate>12-07-2010 12:31:24</lastlogondate><userInfo><lastName>Loo</lastName><firstName>David</firstName></userInfo><isenabled>true</isenabled></asset><asset><assetTag>AT-53480</assetTag><type>Desktop</type><os>Windows 7 Professional</os><lastlogondate>09-07-2010 13:25:53</lastlogondate><userInfo><lastName>Merritt</lastName><firstName>Norris</firstName></userInfo><isenabled>true</isenabled></asset><asset><assetTag>AT-55782</assetTag><type>Desktop</type><os>Unknown</os><lastlogondate>01-01-1900 00:00:00</lastlogondate><userInfo><lastName>Currie</lastName><firstName>Mike</firstName></userInfo><isenabled>true</isenabled></asset></export>CSV 데이터 소스 파일
CSV 파일은 플랫폼 간에 파일을 전송하기 위한 상호 호환 파일 형식으로 사용됩니다. CSV 파일은 그리드를 정의하는 텍스트 파일로, 여기서 쉼표는 열을 정의하고 줄 바꿈은 행을 정의합니다. 문자열을 임포트하기 위한 정확한 간격을 정의하려면 선택적으로 텍스트를 따옴표로 줄 바꿈할 수 있습니다.
"user_name","name","email","sys_created_on","active"
"jared.laethem","Jared Laethem","jared.laethem@yourcompany.com","2008-02-24 22:21:32","true"
"jerrod.bennett","Jerrod Bennett","jerrod.bennett@yourcompany.com","2007-08-12 12:12:18","true"
"eric.schroeder","Eric Schroeder","eric.schroeder@yourcompany.com","2007-07-03 11:50:20","true"
"rob.woodbyrne","Rob Woodbyrne","rob.woodbyrne@yourcompany.com","2007-07-03 11:49:57","true"
"admin","System Administrator","admin@yourcompany.com","2007-07-03 11:48:47","true"
"christen.mitchell","Christen Mitchell","christen.mitchell@yourcompany.com","2007-05-16 15:26:42","true"
"rob.phillips","Rob Phillips","rob.phillips@yourcompany.com","2007-01-22 11:25:34","true"
"davin.czukowski","Davin Czukowski","davin.czukowski@yourcompany.com","2006-07-11 14:01:26","true"
"luke.wilson","Luke Wilson","luke.wilson@yourcompany.com","2006-02-07 15:29:48","true"
"bow.ruggeri","Bow Ruggeri","bow.ruggeri@yourcompany.com","2005-07-07 11:39:58","true"
"don.goodliffe","Don Goodliffe","don.goodliffe@yourcompany.com","2005-05-02 12:28:40","true"
"david.loo","David Loo","david.loo@yourcompany.com","2005-02-22 16:00:00","true"
"guest","Guest","guest@yourcompany.com","2004-05-01 17:00:00","true"
"fred.luddy","Fred Luddy","fred.luddy@yourcompany.com","2004-05-01 17:00:00","true"
CSV 파일을 사용하는 경우 데이터 소스 양식의 속성 필드를 사용하여 인코딩 문자 집합을 지정할 수 있습니다. 이 필드를 보려면 데이터 소스 양식에서 양식 레이아웃을 구성해야 할 수 있습니다. 예를 들어 utf-8 인코딩을 사용하려면 charset=utf-8을 입력합니다.
단일 열의 데이터
JSON 및 XML 형식의 경우 이 기능을 사용하면 단일 열에 전체 기록을 저장할 수 있습니다.
전체 기록을 저장하는 데 사용되는 열 이름은 data입니다.
- 배열 취소 가 선택되지 않고 양식에서 제거됩니다.
- 하위 노드 확장 이 선택되고 양식에서 제거됩니다.
단일 열에 데이터를 저장하기 위해 XML 형식 데이터 소스를 만들고 단일 열의 데이터 확인란을 선택하면 하위 노드 확장 이 선택되고 양식에서 제거됩니다.
사용자 지정(스크립트를 통해 구문 분석) 형식
파일유형과사용자 지정(스크립트를 통해 구문 분석)형식을 선택하면 스크립트 구문 분석이라는 Javascript 편집기가 나타납니다. 구문 분석 스크립트를 사용하여 사용자 지정 Javascript를 작성하여 입력 라인을 맵 목록으로 구문 분석할 수 있습니다.
- 매개변수는 line 소스 파일의 라인 데이터를 포함하는 문자열입니다.
- 는 lineNumber 이 라인 데이터에 대한 소스 파일의 라인 번호입니다.
- 이 result 매개변수는 Javascript에서 구문 분석된 결과를 다시 전달하는 데 사용됩니다.
void setSkip(부울 건너뛰기);부울 getSkip();addRow(맵<문자열, 문자열> 맵);목록<Map<String,String>> getRows()
setSkip() 및 getSkip()은 건너뛰기 플래그를 설정하고 검색합니다. 건너뛰기 플래그가 예로 설정되면 Javascript의 전체 구문 분석 결과가 무시됩니다.
addRow()는 스테이징 테이블에 삽입되는 구문 분석 행 결과의 맵 하나를 추가합니다.
getRows()는 준비 테이블에 삽입된 현재 구문 분석 결과의 모든 행을 검색합니다.
소스 데이터 한 줄에는 한 행 또는 여러 행이 포함될 수 있습니다. 라인 데이터를 처리하는 방법을 결정하는 것은 스크립트 작성자의 몫입니다. 예를 들어, 라인 데이터 name=john,computer=windows의 경우; 이름=조, 컴퓨터=Linux; name=linda,computer=Windows, 세미콜론(;)을 행 분리로 사용하는 경우 이 줄에는 세 개의 데이터 행이 포함됩니다. 각 행은 이름과컴퓨터라는 두 개의 키가 있는 맵입니다. 이름과컴퓨터는 준비 테이블 스키마의 열 이름이 됩니다. 다음 Javascript 샘플을 사용하여이 행 데이터를 구문 분석 할 수 있습니다.
(function(line, lineNumber, result) {
var rowArr = line.split(";");
var i;
for(i in rowArr) {
var map = {};
var arr = rowArr[i].split(",");
var x;
for(x in arr) {
var items = arr[x].split("=");
map[items[0]]=items[1];
}
result.addRow(map);
}
})(line, lineNumber, result);스크립트 작성자는 결과가 준비 테이블에 삽입되도록 결과를 추가해야 합니다.