데이터 스트림 작업 작성

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기11분
  • 재사용 가능한 동작을 생성하여 플로우 내에서 응답 데이터 스트림을 처리합니다.

    시작하기 전에

    • Guided Application Creator에서 컨텐츠를 저장할 워크플로우 스튜디오 애플리케이션을 설정합니다.
    • 작업을 생성하기 전에 상충하는 비즈니스 규칙 또는 워크플로우를 비활성화합니다.
    • 필요한 역할: action_designer 또는 admin

    이 태스크 정보

    컨텐츠를 포함할 워크플로우 스튜디오 사용자 지정 애플리케이션을 생성하면 애플리케이션 리포지토리 또는 .Application sharingServiceNow Store

    주:
    구성 페이지에서 옵션을 지우면 데이터 스트림 개요에서 단계가 제거되고 단계와 관련된 모든 데이터가 삭제됩니다.

    프로시저

    1. 다음으로 이동 모두 > 플로우 디자이너 > 디자이너.
    2. 작업 탭을 클릭하고 데이터 스트림을 선택합니다.
    3. 작업 속성을 입력하고 제출을 클릭합니다.
      필드 설명
      작업 이름 데이터 스트림 작업의 고유한 이름을 입력합니다.
      설명 데이터 스트림 작업에 대한 설명입니다.
      애플리케이션 데이터 스트림 작업의 애플리케이션 범위입니다.
      도메인 데이터 스트림 작업의 도메인 범위입니다. 도메인 분리에 대한 자세한 내용은 다음 문서를 참조하십시오 Domain separation explained.
      추가 속성
      다음에서 접근 가능 범위가 지정된 모든 애플리케이션 범위 또는 지정된 애플리케이션 범위 내에서만 접근 가능합니다.
      범주 작업에 대한 애플리케이션 범위 내에서 정의된 범주입니다. 릴리스부터 Xanadu 사용자 지정 범주를 생성하여 데이터 스트림 작업을 구성할 수 있습니다.
      보호 데이터 스트림 작업을 읽기 전용으로 할지 여부를 선택합니다. 소유한 애플리케이션 범위에서 데이터 스트림 작업을 생성할 때만 값을 선택할 수 있습니다. 기본값은 없음입니다.
      작업 주석 데이터 스트림 작업 제목 워크플로우 스튜디오 아래에 표시되는 도움말 텍스트로, 데이터 스트림 작업 작성자가 플로우에서 사용될 때 데이터 스트림 작업이 수행하는 작업을 이해하는 데 도움을 줍니다.
      데이터 스트림 작업이 열립니다.
    4. 작업 단계에서 데이터를 사용할 수 있도록 작업 입력을 정의합니다.
      1. + 입력 만들기를 선택하고 필드를 작성합니다.
        입력은 오른쪽 창에 데이터 알약으로 표시됩니다.
      작업 입력에 대한 자세한 내용은 다음을 참조하십시오. 워크플로우 스튜디오 - 사용자 지정 작업 빌드.
    5. 개요에서 데이터 스트림작업 전처리를 클릭하고 원하는 옵션을 구성합니다.
      1. 연결 정보 가져오기를 선택하여 연결 정보 가져오기 단계를 작업 전처리의 첫 번째 단계로 추가합니다.
        연결 정보 가져오기 단계를 사용하면 작업에 사용할 연결 및 자격 증명 상세 정보를 검색할 수 있습니다. 자세한 내용은 Get Connection Info step 문서를 참조하십시오.
      2. 전처리 스크립트를 실행하여 실행을 선택합니다.동작이 초기 API 요청을 전송하기 전의 전처리 스크립트. 예를 들어 동작 입력을 확인하거나 기본값을 설정합니다. 전처리는 첫 번째 API 요청 이전에 작업당 한 번씩 실행됩니다.

        이 옵션을 선택하면 데이터 스트림 동작에 스크립트 단계가 추가됩니다. 자세한 내용은 Script step 문서를 참조하십시오.

        중요사항:
        데이터 스트림 동작에는 응답 스트림에 대해 일관적인 연결이 필요합니다. 작업을 일시 중지하여 MID 서버를 호출하거나 작업을 일시 중지하여 조건 또는 기간을 대기하는 전처리 스크립트를 지원하지 않습니다. 어떤 이유로든 작업을 일시 중지하는 전처리 스크립트는 오류 메시지를 반환합니다.
    6. 개요에서 데이터 스트림요청을 클릭하고 원하는 옵션을 구성합니다.
      1. 데이터를 가져오는 방법 필드에서 REST 단계, SOAP 단계 또는 JDBC 단계를 선택하여 연관된 단계를 데이터 스트림 작업에 추가하십시오.

        자세한 내용은 , SOAP 단계, 및 JDBC 단계 를 참조하십시오REST 단계.

        이 섹션은 또는 MID 서버 인스턴스 중 하나에서 실행할 수 있습니다. 환경은 연결된 연결 [sys_connection] 기록의 MID 서버 사용 필드에 의해 결정됩니다.

        주:
        • JDBC 단계를 사용하는 경우 테스트해야 합니다. 실행이 성공하면 결과를 사용하여 단계 출력 및 데이터 스트림 작업 출력을 만들 수 있습니다.
        • REST 단계 또는 SOAP 단계를 사용하는 경우 데이터 스트림 조치 출력을 수동으로 작성해야 합니다.
      2. 요청 결과를 일괄적으로 처리합니다. 데이터 페이지 한 개가 처리되면 데이터 스트림 작업이 요청 섹션을 다시 실행하여 다음 결과 세트를 반환합니다. 하려면 페이지 매김 사용을 선택합니다. 데이터 스트림 이 옵션은 개요에 페이지 매김 설정 단계를 추가합니다.
        주:
        JDBC 단계의 경우 페이지 매김이 적용되지 않습니다. 각 페이지는 최대 1GB의 데이터를 검색할 수 있으며 하나의 요청으로 최대 8GB의 데이터를 검색할 수 있습니다.
      3. 페이지 매김된 API를 호출할 때 다음 페이지에 대한 모든 요청 전에 스크립트를 실행하려면 각 요청 전에 스크립트 실행을 선택합니다.
        예를 들어, 다음 페이지에 대한 요청을 보내기 전에 초기 응답에서 변수 데이터 유형을 변환하는 스크립트를 작성합니다.

        이 옵션을 선택하면 데이터 스트림 동작에 스크립트 단계가 추가됩니다. 자세한 내용은 Script step 문서를 참조하십시오.

        주:
        JDBC 단계의 경우 이 항목이 적용되지 않습니다.

        이 섹션은 MID 서버 또는 인스턴스 중 하나에서 실행할 수 있습니다. 환경은 스크립트 단계의 필요한 런타임 필드에 의해 결정됩니다.

        중요사항:
        인스턴스와 MID 서버 사이에 실행 환경을 여러 번 바꾸지 마십시오. 예를 들어 요청 스크립트 단계는 MID 서버에서 실행되고 REST 단계는 인스턴스에서 실행되도록 구성할 수 있습니다. 이 경우 시스템이 모든 데이터 페이지의 MID 서버와 인스턴스 사이에 환경을 이동하여 성능이 저하될 수 있습니다.
    7. 옵션: 페이지 매김이 활성화된 경우 페이지 매김 설정 단계를 구성합니다.
      페이지 매김 설정 단계를 수동으로 구성하거나 사전 구축된 템플릿을 선택하여 공통 구성을 적용합니다. 예를 들어 제한 / 오프셋 템플릿을 적용하여 페이지당 반환할 항목 수(제한)와 첫 번째 항목의 시작 번호(오프셋)를 지정합니다. 템플릿을 적용한 후 구성이 API의 요구 사항을 준수하도록 값을 업데이트하십시오.
      1. 페이지 매김 변수를 생성합니다.
        예를 들어 외부 공급업체 API가 요청에서 제한 매개변수를 사용하는 경우 제한 변수를 생성하고 초기 값을 설정하여 페이지당 결과 수를 제한합니다. 초기 값은 첫 번째 요청에만 사용됩니다. getNextPage 는 예약된 읽기 전용 변수입니다. getNextPage 변수가 true이고 이전 페이지에 데이터가 포함되면 동작은 다음 페이지에 대한 요청을 계속 보냅니다.
      2. 다음 값(From) 필드에서 페이지 매김 변수가 후속 요청에 대한 값을 받는 방법을 정의합니다.

        다음 중에서 선택합니다.

        • 스크립트: 페이지 매김 변수 스크립트를 작성하여 변수를 채우는 방법을 정의합니다. 페이지 매김 변수는 문자열 데이터 유형만 지원합니다. 수학 연산을 수행하려면 값을 정수로 변환하고, 필요한 조작을 수행한 후 다시 문자열로 변환해야 합니다.
        • 응답 본문: 이전 요청의 응답에 값을 사용하여 변수를 채웁니다. 응답이 JSON 형식인 경우 값 추출 사용(Extract value using )을 JSONPath 식(JSONPath Expression )으로 설정하고 식(Expression ) 필드에 값의 경로를 제공합니다. 응답이 XML 형식인 경우 값 추출 방법을XPath 식으로 설정하고 값의 경로를 제공합니다.
      이 예에서 getNextPage 변수는 nextOffset 변수가 API 응답 헤더에 반환된 총 개수 값에 도달할 때까지 true입니다. getNextPage 변수가 true이고 이전 페이지에 데이터가 포함되면 동작은 다음 페이지에 대한 요청을 계속 보냅니다. 이 예에는 일반적인 제한/오프셋 페이지 매김 구성이 포함되어 있습니다. 작업이 상호작용하는 데이터 스트림 타사 API는 페이지 토큰 또는 다른 메서드를 사용할 수 있습니다.

      페이지 매김 변수 스크립트를 사용한 페이지 매김 설정.

      중요사항:
      getNextPage 변수를 false로 설정하는 조건을 생성하여 페이지 매김 요청에 무한 루프를 피하십시오. 장기 실행 플로우를 취소합니다. 항상 프로덕션에 사용하기 전에 데이터 스트림 작업을 테스트하십시오.
    8. 개요에서 데이터 스트림구문 분석을 클릭하고 원하는 옵션을 구성합니다.
      주:
      JDBC 단계의 경우 이 항목이 적용되지 않습니다.
      1. 각 레코드 필드를 식별하는 방법에서 JSON/XML 분할자를 선택하여 개요에 데이터 스트림 분할자 단계를 추가합니다.
      2. 각 항목을 개체로 구문 분석하는 방법 필드에서 스크립트 파서를 선택하여 개요에 데이터 스트림 스크립트 파서 단계를 추가합니다.
    9. 분할 단계를 구성합니다.

      이 단계에서는 다음을 식별합니다. 응답 스트림의 상위 노드로, 복합 개체로 매핑할 수 있습니다. 예를 들어, XML 페이로드의 사용자 요소를 식별하여 응답 스트림에서 각 사용자에 대한 복합 객체를 생성합니다.

      주:
      JDBC 단계의 경우 이 항목이 적용되지 않습니다.
      1. 소스 형식 필드에서 요청 섹션에서 반환되는 형식을 선택합니다.
        • JSON: JSON 데이터 스트림의 객체를 식별합니다. JSONPath 표현식을 사용하여 반복된 데이터를 포함하는 JSON 배열을 식별합니다.
        • XML: XML 데이터 스트림에서 객체를 식별합니다. XPath 표현식을 사용하여 반복된 데이터를 포함하는 XML 요소를 식별합니다.
      2. 항목 경로 필드에서 개체에 매핑할 데이터 스트림의 항목에 대한 절대 경로를 정의합니다.
        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>
    10. 스크립트 파서 단계에서 JavaScript 및 ServiceNow API를 사용하여 응답 스트림의 항목을 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)
    11. 옵션: JDBC 단계를 선택한 경우 변환을 클릭합니다.
      JDBC 단계를 성공적으로 테스트한 후 결과 사용을 클릭하여 단계 출력 및 데이터 스트림 작업 출력을 작성합니다. 이 결과를 사용하거나 변환 스크립트를 사용하여 사용자 지정할 수 있습니다.
      1. 변환 스크립트 사용 확인란을 선택하여 기본 데이터 스트림 출력을 변환하고 사용자 지정합니다.
    12. 복잡한 객체 출력을 생성합니다.
      주:
      JDBC 단계의 경우 이 항목이 적용되지 않습니다.
      1. 작업 개요에서 출력을 선택하고 + 를 클릭하여 출력을 생성합니다.
      2. 객체를 나타내도록 레이블 필드를 업데이트합니다.
        예를 들어 작업이 회사 기록 스트림을 구문 분석하는 경우 회사 레이블을 추가합니다.
      3. 유형 필드를 객체로 업데이트합니다.
        이는 스크립트 파서 단계에서 targetObject 전역 객체로 표현되는 복합 객체 출력입니다.
      4. + 아이콘을 사용하여 복합 객체에 하위 필드를 추가합니다.
      5. 스크립트에서 의미 있게 참조할 수 있도록 각 하위 필드의 이름을 보다 사용자 친화적으로 만듭니다.

        이름 필드의 값은 스크립트 파서 단계에서 사용되는 내부 이름입니다. 예를 들어 스크립트 파서 단계에서 도시 출력을 참조하려면 outputs.targetObject.city를 사용합니다.

        복합 객체 출력의 하위 항목에 대한 기본값입니다.

        경고:
        작업을 저장한 데이터 스트림 후에는 이름 필드의 값을 변경할 수 없습니다.
    13. 저장을 클릭합니다.
      워크플로우 스튜디오 작업 초안을 저장합니다.

    다음에 수행할 작업

    데이터 스트림 작업 테스트.