데이터 스트림 작업 작성

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 소요 시간: 11분
  • 재사용 가능한 동작을 생성하여 플로우 내에서 응답 데이터 스트림을 처리합니다.

    시작하기 전에

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

    이 태스크 정보

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

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

    프로시저

    1. 다음으로 이동 모두 > 플로우 디자이너 > 디자이너.
    2. 작업 탭을 클릭하고 데이터 스트림을 선택합니다.
    3. Action Properties(작업 속성)를 입력하고 Submit(제출)을 클릭합니다.
      필드 설명
      작업 이름 데이터 스트림 작업에 고유한 이름을 입력합니다.
      설명 데이터 스트림 작업에 대한 설명입니다.
      애플리케이션 데이터 스트림 작업의 애플리케이션 범위입니다.
      도메인 데이터 스트림 작업의 도메인 범위입니다. 도메인 분리에 대한 자세한 내용은 다음 문서를 참조하십시오 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 서버 OR 인스턴스에서 실행할 수 있습니다. 환경은 연결된 연결 [sys_connection] 기록의 MID 서버 사용 필드에 의해 결정됩니다.

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

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

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

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

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

        다음 중에서 선택합니다.

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

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

      중요사항:
      getNextPage 변수를 false로 설정하는 조건을 생성하여 페이지 매김 요청에 무한 루프를 피하십시오. 장기 실행 플로우를 취소합니다. 항상 프로덕션에 사용하기 전에 데이터 스트림 작업을 테스트하십시오.
    8. 개요에서 Parsing(구문 분석 )을 데이터 스트림 클릭하고 원하는 옵션을 구성합니다.
      주:
      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 요소의 각 인스턴스를 결과 개체로 구분합니다.
        주:
        Splitter 단계는 XML 네임스페이스를 무시합니다.
        예를 들어, REST 단계가 JSON 데이터 스트림을 반환한다고 가정합니다. 항목 경로 $.response.result.companiescompanies 배열의 각 항목을 반환합니다.
        {​
          "response": {​
            "result": {​
              "companies": [​
                {​
                  "name": "company1"​
                },​
                {​
                  "name": "company2"​
                },​
                {​
                  "name": "company3"​
                }​
              ],​
              "metadata": {​
                "token": 1558666526​
              }​
            }​
          }​
        } 
        예를 들어, REST 단계가 XML 데이터 스트림을 반환한다고 가정합니다. 항목 경로 /response/result/companies/company 는 XML 데이터에서 각 company 요소를 반환합니다.
        <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. Type(유형) 필드를 Object(개체)로 업데이트합니다.
        이는 스크립트 파서 단계에서 targetObject 전역 객체로 표현되는 복합 객체 출력입니다.
      4. + 아이콘을 사용하여 복합 객체에 하위 필드를 추가합니다.
      5. 스크립트에서 의미 있게 참조할 수 있도록 각 하위 필드의 이름을 사용자 친화적으로 만듭니다.

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

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

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

    다음에 수행할 작업

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