파일 형식 데이터 소스

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 13분
  • 경로 및 인증 정보를 제공하여 로컬 소스, 원격 네트워크 서버 또는 다른 인스턴스에서 파일을 임포트합니다.

    파일 유형 임포트 세트의 경우 SFTP, FTP, FTPS, HTTP, HTTPS 및 SCP와 같은 파일 검색 방법 목록에서 선택할 수 있습니다.
    주:
    FTPS는 일부 방화벽 벤더에서 더 이상 지원되지 않으므로 권장되지 않습니다. 대안으로 SFTP를 사용하는 것이 좋습니다.

    파일 검색 방법

    다음 파일 검색 방법을 사용하면 파일이 있는 위치에서 ServiceNow로 파일을 복사하여 임포트 세트로 로드할 수 있습니다.

    임포트와 호환되는 파일을 정의한 후 파일을 임포트할 수 있는 방법을 정의합니다.

    주:
    임포트에 성공하려면 여기에서 선택한 것과 동일한 인증 메커니즘에 대해 FTP 서버와 클라이언트를 설정해야 합니다.
    방법 설명
    첨부 파일 기록에 파일을 첨부 파일을 추가 및 관리하고 해당 파일을 임포트 세트로 임포트합니다.
    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는 Excel 버전 2003 이하에서 만든 스프레드시트의 기본 형식입니다. XLSX는 Excel 2007 이상의 기본 형식입니다. 최적의 성능을 위해 가능하면 레거시 XLS 대신 XLSX를 사용합니다.

    주:
    • 모든 .xls 파일은 1904년 날짜 시스템이 아닌 1900 날짜 시스템을 사용해야 합니다. 1904 날짜 시스템을 사용하면 스프레드시트에 표시되는 날짜보다 4년 빠른 연도로 날짜를 가져옵니다. 날짜 시스템에 대한 자세한 내용은 MS 지원을 참조하십시오.
    • 대문자 부울 값이 (TRUE/FALSE)인 Excel에서 파일을 임포트하면 두 값 모두 항상 false로 변환됩니다. 이 동작을 방지하려면 속성을 false로 설정합니다 glide.transform.boolean.casesensitive .
    그림 1. Microsoft Excel 데모 데이터
    Microsoft Excel 데모 데이터

    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/lastNameuserInfo/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을 지정하거나 기본값 10 이상으로 값을 glide.db.impex.XMLLoader.max.scan_nodes 늘리면 모든 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입니다.

    데이터를 단일 열에 저장하기 위해 JSON 형식 데이터 소스를 생성하는 경우 단일 열의 데이터 확인란을 선택하면 다음 옵션이 업데이트됩니다.
    • 배열 취소 가 선택 해제되고 양식에서 제거됩니다.
    • 하위 노드 확장이 선택되고 양식에서 제거됩니다.
    그림 2. 단일 열의 JSON 데이터
    단일 열의 JSON 데이터

    단일 열에 데이터를 저장하기 위해 XML 형식 데이터 원본을 만들고 단일 열의 데이터 확인란을 선택하면 노드 자식 확장이 선택되고 양식에서 제거됩니다.

    그림 3. 단일 열의 XML 데이터
    단일 열의 XML 데이터

    사용자 지정(스크립트를 통해 구문 분석) 형식

    파일형식사용자 지정(스크립트로 구문 분석)형식을 선택하면 스크립트 구문 분석이라는 Javascript 편집기가 나타납니다. 구문 분석 스크립트를 사용하여 사용자 지정 Javascript를 생성하고 맵 목록에 입력 라인을 구문 분석할 수 있습니다.

    Javascript에는 미리 정의된 세 가지 매개변수가 있습니다.
    • 매개변수는 line 소스 파일의 라인 데이터를 포함하는 문자열입니다.
    • lineNumber 이 라인 데이터에 대한 소스 파일의 라인 번호입니다.
    • result 이 매개변수는 Javascript에서 구문 분석된 결과를 다시 전달하는 데 사용됩니다.
    매개변수는 result Java 객체 ScopedScriptParseResult의 인스턴스입니다. result.를 입력하면 다음 네 가지 메서드가 Javascript 편집기에 스크립트 자동 완성으로 나타납니다.
    그림 4. 자동 완성 메뉴
    자동 완성 메뉴
    • void setSkip(부울 건너뛰기);
    • 부울 getSkip();
    • addRow(맵<문자열, 문자열> 맵);
    • List<Map<String,String>> getRows()

    setSkip()getSkip()은 건너뛰기 플래그를 설정하고 검색합니다. 건너뛰기 플래그가 true로 설정되면 Javascript의 전체 구문 분석 결과가 무시됩니다.

    addRow()는 스테이징 테이블에 삽입되는 구문 분석 행 결과의 맵을 하나 추가합니다.

    getRows()는 스테이징 테이블에 삽입된 현재 구문 분석 결과의 모든 행을 검색합니다.

    소스 데이터의 한 줄에는 한 행 또는 여러 행이 포함될 수 있습니다. 라인 데이터를 처리하는 방법을 결정하는 것은 스크립트 작성자에게 달려 있습니다. 예를 들어 라인 데이터 이름=john,computer=windows; 이름=조, 컴퓨터=리눅스; 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);

    스크립트 작성자는 결과가 준비 테이블에 삽입되도록 결과를 추가해야 합니다.