데이터 스트림 작업 생성
재사용 가능한 작업을 생성하여 플로우 내에서 응답 데이터 스트림을 처리합니다.
시작하기 전에
- Guided Application Creator에서 콘텐츠를 저장 워크플로우 스튜디오 하도록 애플리케이션을 설정합니다.
- 작업을 생성하기 전에 상충하는 비즈니스 규칙 또는 워크플로우를 비활성화하십시오.
- 필요한 역할: action_designer 또는 admin
이 태스크 정보
컨텐츠를 워크플로우 스튜디오 포함할 사용자 지정 애플리케이션을 만들면 애플리케이션 리 포지토리 또는 ServiceNow Store.
주:
구성 페이지에서 옵션을 지우면 개요에서 데이터 스트림 단계가 제거되고 단계와 관련된 모든 데이터가 삭제됩니다.
프로시저
- 다음으로 이동 모두 > 플로우 디자이너 > 디자이너.
- 작업 탭을 클릭하고 데이터 스트림을 선택합니다.
-
작업 속성을 입력하고 제출을 클릭합니다.
필드 설명 작업 이름 데이터 스트림 작업의 고유한 이름을 입력합니다. 설명 데이터 스트림 작업에 대한 설명입니다. 애플리케이션 데이터 스트림 작업의 애플리케이션 범위입니다. 도메인 데이터 스트림 작업의 도메인 범위입니다. 도메인 분리에 대한 자세한 내용은 다음 문서를 참조하십시오 Domain separation explained. 추가 속성 다음에서 접근 가능 범위가 지정된 모든 애플리케이션 범위 또는 지정된 애플리케이션 범위 내에서만 접근 가능합니다. 범주 작업에 대한 애플리케이션 범위 내에 정의된 범주입니다. 릴리스부터 Xanadu 사용자 지정 범주를 생성하여 데이터 스트림 작업을 구성할 수 있습니다. 보호 데이터 스트림 작업이 읽기 전용인지 여부를 선택합니다. 소유한 애플리케이션 범위에서 데이터 스트림 작업을 생성할 때만 값을 선택할 수 있습니다. 기본값은 없음입니다. 작업 주석 에서 워크플로우 스튜디오 데이터 스트림 작업 제목 아래에 표시되는 도움말 텍스트 데이터 스트림 작업 작성자가 플로우에서 사용될 때 데이터 스트림 작업이 수행하는 작업을 이해하는 데 도움을 줍니다. 빈 데이터 스트림 작업이 열립니다. -
작업 단계에서 데이터를 사용할 수 있도록 작업 입력을 정의합니다.
-
+ 입력 생성을 선택하고 필드를 완성합니다.
입력은 오른쪽 창에 데이터 알약으로 표시됩니다.
작업 입력에 대한 자세한 내용은 다음을 참조하십시오. 워크플로우 스튜디오 - 사용자 지정 동작 빌드. -
+ 입력 생성을 선택하고 필드를 완성합니다.
-
개요에서 데이터 스트림작업 전처리를 클릭하고 원하는 옵션을 구성합니다.
-
연결 정보 검색을 선택하여 연결 정보 가져오기 단계를 작업 전처리의 첫 번째 단계로 추가합니다.
연결 정보 가져오기 단계를 통해 작업에 사용할 연결 및 자격 증명 상세 정보를 검색할 수 있습니다. 자세한 내용은 문서를 참조하십시오.
-
전 처리 스크립트 사용을 선택하여 실행 작업이 초기 API 요청을 전송하기 전의 전처리 스크립트입니다. 예를 들어 작업 입력을 확인하거나 기본값을 설정합니다. 전처리는 첫 번째 API 요청 이전에 작업당 한 번씩 실행됩니다.
이 옵션을 선택하면 작업에 스크립트 단계가 추가됩니다 데이터 스트림 . 자세한 내용은 Script step 문서를 참조하십시오.
중요사항:데이터 스트림 작업에는 응답 스트림에 대해 일관적인 연결이 필요합니다. 작업을 일시 중지하여 a를 호출 MID 서버 하거나 작업을 일시 중지하여 조건 또는 기간을 대기하는 전처리 스크립트를 지원하지 않습니다. 어떤 이유로든 작업을 일시 중지하는 전처리 스크립트는 오류 메시지를 반환합니다.
-
연결 정보 검색을 선택하여 연결 정보 가져오기 단계를 작업 전처리의 첫 번째 단계로 추가합니다.
-
개요에서 데이터 스트림요청을 클릭하고 원하는 옵션을 구성합니다.
- 데이터를 가져오는 방법 필드에서 REST 단계, SOAP 단계 또는 JDBC 단계를 선택하여 연결된 단계를 데이터 스트림 작업에 추가합니다.
-
요청하려면 페이지 매김 사용을 선택합니다. 결과를 일괄적으로 처리합니다. 데이터 페이지 한 개가 처리 데이터 스트림 되면 작업이 요청 섹션을 다시 실행하여 다음 결과 세트를 반환합니다. 이 옵션은 개요에 데이터 스트림 페이지 매김 설정 단계를 추가합니다.
주:JDBC 단계의 경우 페이지 매김이 적용되지 않습니다. 각 페이지는 최대 1GB의 데이터를 검색할 수 있으며 하나의 요청은 최대 8GB의 데이터를 검색할 수 있습니다.
-
페이지 매김된 API를 호출할 때 다음 페이지에 대한 모든 요청 전에 스크립트를 실행하려면 각 요청 전에 스크립트 실행 을 선택합니다.
예를 들어, 다음 페이지에 대한 요청을 보내기 전에 초기 응답에서 변수 데이터 유형을 변환하는 스크립트를 작성합니다.
이 옵션을 선택하면 작업에 스크립트 단계가 추가됩니다 데이터 스트림 . 자세한 내용은 Script step 문서를 참조하십시오.
주:JDBC 단계의 경우, 이는 적용되지 않습니다.이 섹션은 또는 인스턴스에서 실행할 MID 서버 수 있습니다. 환경은 스크립트 단계의 필수 런타임 필드에 의해 결정됩니다.
중요사항:인스턴스와 MID 서버 여러 번 사이로 실행 환경을 바꾸지 마십시오. 예를 들어, 요청 스크립트 단계는 에서 실행 MID 서버되고 REST 단계는 인스턴스에서 실행되도록 구성할 수 있습니다. 이 경우 시스템이 인스턴스 MID 서버 와 데이터의 모든 페이지에 대한 환경을 이동하여 성능이 저하될 수 있습니다.
- 옵션:
페이지 매김이 활성화된 경우 페이지 매김 설정 단계를 구성합니다.
페이지 매김 설정 단계를 수동으로 구성하거나 사전 구축된 템플릿을 선택하여 공통 구성을 적용합니다. 예를 들어 제한/오프셋 템플릿을 적용하여 페이지당 반환할 항목 수(제한)와 첫 번째 항목의 시작 번호(오프셋)를 지정합니다. 템플릿을 적용한 후 구성이 API의 요구 사항을 준수하도록 값을 업데이트합니다.
-
페이지 매김 변수를 생성합니다.
예를 들어 타사 API가 요청에서
제한매개변수를 사용하는 경우제한변수를 만들고 초기 값을 설정하여 페이지당 결과 수를 제한합니다. 초기 값은 첫 번째 요청에서만 사용됩니다.getNextPage는 예약된 읽기 전용 변수입니다.getNextPage변수가 예이고 이전 페이지에 데이터가 포함되어 있는 한 작업은 다음 페이지에 대한 요청을 계속 보냅니다. -
다음 값 필드에서 페이지 매김 변수가 후속 요청에 대한 값을 받는 방법을 정의합니다.
다음 중에서 선택합니다.
- 스크립트: 페이지 매김 변수 스크립트를 작성하여 변수가 채워지는 방법을 정의합니다. 페이지 매김 변수는 문자열 데이터 유형만 지원합니다. 수학 연산을 수행하려면 값을 정수로 변환하고, 필요한 조작을 수행한 후 다시 문자열로 변환해야 합니다.
- 응답 본문: 이전 요청의 응답에서 값을 사용하여 변수를 채웁니다. 응답이 JSON 형식이면 값 추출 사용을JSONPath 표현식 으로 설정하고 표현식 필드에 값의 경로를 제공합니다. 응답이 XML 형식인 경우 XPath 표현식을 사용하여 값 추출을 설정하고 값에 대한 경로를 제공합니다.
이 예에서getNextPage변수는nextOffset변수가 API 응답 헤더에 반환된 총 카운트 값에 도달할 때까지 true입니다.getNextPage변수가 예이고 이전 페이지에 데이터가 포함되어 있는 한 작업은 다음 페이지에 대한 요청을 계속 보냅니다. 이 예에는 공통 제한/오프셋 페이지 매김 구성이 포함되어 있습니다. 작업이 상호작용하는 타사 API 데이터 스트림 는 페이지 토큰 또는 기타 메서드를 사용할 수 있습니다.중요사항:getNextPage변수를 false로 설정하는 조건을 생성하여 페이지 매김 요청에서 무한 루프를 방지합니다. 장기 실행 플로우를 취소합니다. 프로덕션에 사용하기 전에 항상 작업을 테스트 데이터 스트림 하십시오. -
페이지 매김 변수를 생성합니다.
-
개요에서 데이터 스트림구문 분석을 클릭하고 원하는 옵션을 구성합니다. 주:JDBC 단계의 경우, 이는 적용되지 않습니다.
- 각 기록을 식별하는 방법 필드에서 JSON/XML 스플리터 를 선택하여 개요에 데이터 스트림 스플리터 단계를 추가합니다.
- 각 항목을 객체로 구문 분석하는 방법 필드에서 스크립트 파서를 선택하여 개요에 데이터 스트림 스크립트 파서 단계를 추가합니다.
-
스플리터 단계를 구성합니다.
이 단계에서는 다음을 식별합니다. 응답 스트림의 상위 노드로, 복합 객체로 매핑할 수 있습니다. 예를 들어, XML 페이로드의 사용자 요소를 식별하여 응답 스트림에서 각 사용자에 대한 복합 객체를 생성합니다.
주:JDBC 단계의 경우, 이는 적용되지 않습니다.-
소스 형식 필드에서 요청 섹션에서 반환되는 형식을 선택합니다.
- JSON: JSON 데이터 스트림의 객체를 식별합니다. JSONPath 표현식을 사용하여 반복된 데이터를 포함하는 JSON 배열을 식별합니다.
- XML: XML 데이터 스트림에서 개체를 식별합니다. XPath 표현식을 사용하여 반복된 데이터를 포함하는 XML 요소를 식별합니다.
-
항목 경로 필드에서 객체에 매핑할 데이터 스트림의 항목에 대한 절대 경로를 정의합니다.
- JSON
- 객체 배열의 절대 경로를 JSONPath 표현식으로 식별합니다. 예를 들어
$.result를 사용하여 JSON결과배열의 각 항목을결과객체로 구분합니다.주:JSON 데이터 스트림의 루트 노드에서 배열을 선택하면 시스템이 실행 세부 정보 및 오류 메시지에 절대 경로를$.*로 표시합니다. - XML
- 반복되는 데이터 객체의 절대 경로를 XPath 표현식으로 식별합니다. 예를 들어
/result를 사용하여결과XML 요소의 각 인스턴스를결과객체로 구분합니다.주:분할 단계는 XML 네임스페이스를 무시합니다.
예를 들어 REST 단계에서 JSON 데이터 스트림을 반환한다고 가정해 보겠습니다. $.response.result.companies항목 경로는회사배열의 각 항목을 반환합니다.{ "response": { "result": { "companies": [ { "name": "company1" }, { "name": "company2" }, { "name": "company3" } ], "metadata": { "token": 1558666526 } } } }예를 들어, REST 단계에서 XML 데이터 스트림을 반환한다고 가정해 보겠습니다. 항목 경로/response/result/companies/company는 XML 데이터에서 각회사요소를 반환합니다.<response> <result> <companies> <company> <!-- company 1 info --> </company> <company> <!-- company 2 info --> </company> <company> <!-- company 3 info --> </company> <company> <!-- company 4 info --> </company> <batch>10645C53D4BED73YQ</batch> </companies> <metadata> <timestamp>1558666526</timestamp> </metadata> </result> </response>
-
소스 형식 필드에서 요청 섹션에서 반환되는 형식을 선택합니다.
-
스크립트 파서 단계에서 JavaScript와 API를 사용하여 응답 ServiceNow 스트림의 항목을
targetObject전역 객체로 표시되는 복합 객체 출력에 매핑합니다.예를 들어, 분할 단계에서 식별된 인시던트 기록 요소를 인시던트 필드가 포함된 복합 객체로 매핑합니다. 분할 단계에서 식별된, 복합 객체에 매핑하지 않을 항목의 형제가 데이터 스트림에 포함된 경우, 해당 항목을 제외하는 조건을 포함합니다.
주:JDBC 단계의 경우, 이는 적용되지 않습니다.다음을 제외하고 fd_data 객체를 사용하여 데이터 스트림 작업의 이전 단계의 출력에 액세스할 수 있습니다.- REST 또는 SOAP 단계 응답 본문, 스트림 또는 오류 메시지 출력입니다.
- 스플리터 단계 출력입니다.
JSON 응답을 구문 분석하는 예시 스크립트입니다.(function parse(inputs, outputs) { var record = JSON.parse(inputs.sourceItem); outputs.targetObject.id=record.number; outputs.targetObject.name=record.short_description; })(inputs, outputs)XML 응답을 구문 분석하는 스크립트 예시입니다.(function parse(inputs, outputs) { var xmlDoc = new XMLDocument(inputs.sourceItem, false); outputs.targetObject.id = xmlDoc.getNodeText("/result/number"); outputs.targetObject.name = xmlDoc.getNodeText("/result/short_description"); })(inputs, outputs) - 옵션:
JDBC 단계를 선택한 경우 변환을 클릭합니다.
JDBC 단계를 성공적으로 테스트한 후 결과 사용을 클릭하여 단계 출력 및 데이터 스트림 작업 출력을 작성합니다. 이 결과를 사용하거나 변환 스크립트를 사용하여 사용자 지정할 수 있습니다.
- 기본 데이터 스트림 출력을 변환하고 사용자 지정하려면 변환 스크립트 사용 확인란을 선택합니다.
-
복합 객체 출력을 생성합니다.
주:JDBC 단계의 경우, 이는 적용되지 않습니다.
- 작업 개요에서 출력을 선택하고 + 를 클릭하여 출력을 작성합니다.
-
개체를 나타내도록 레이블 필드를 업데이트합니다.
예를 들어, 이 작업이 회사 기록 스트림을 구문 분석하는 경우 회사 레이블을 추가합니다.
-
유형 필드를 객체로 업데이트합니다.
스크립트 파서 단계에서
targetObject전역 객체로 표시되는 복합 객체 출력입니다. - + 아이콘을 사용하여 복합 객체에 하위 필드를 추가합니다.
-
스크립트에서 의미 있게 참조할 수 있도록 각 하위 필드의 이름을 사용자 친화적으로 지정합니다.
이름 필드의 값은 스크립트 파서 단계에서 사용되는 내부 이름입니다. 예를 들어 스크립트 파서 단계에서 도시 출력을 참조하려면
outputs.targetObject.city를 사용합니다.경고:작업을 저장 데이터 스트림 한 후에는 이름 필드의 값을 변경할 수 없습니다.
-
저장을 클릭합니다.
워크플로우 스튜디오 작업 초안을 저장합니다.