자습서 3부: 코드로 ServiceNow Fluent 테이블 정의

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 7분
  • 테이블을 생성하고 API를 사용하여 샘플 스크립트 정의에서 참조합니다.ServiceNow Fluent

    시작하기 전에

    다음을 완료합니다. 튜토리얼 2부: 애플리케이션의 리포지토리 초기화.

    필요한 역할: 관리자

    이 태스크 정보

    ServiceNow Fluent 은 애플리케이션을 구성하는 메타데이터 파일 [sys_metadata]을 정의하기 위한 TypeScript를 기반으로 하는 DSL(도메인별 언어)이며 테이블, 역할, ACL, 비즈니스 규칙 및 Automated Test Framework 테스트와 같은 다양한 유형의 메타데이터에 대한 API를 포함합니다. API의 ServiceNow Fluent 객체를 사용하여 확장명이 .now.ts 인 파일의 메타데이터를 정의합니다. ServiceNow IDE 기본적으로 API 및 애플리케이션에 대한 ServiceNow Fluent 언어 처리 및 확인이 있습니다. ServiceNow Fluent에 대한 자세한 내용은 ServiceNow Fluent 문서를 참조하십시오.

    이 예시에서는 Table API의 객체를 사용하여 할 일 목록에 대한 간단한 테이블을 ServiceNow Fluent 만듭니다. 그런 다음 비즈니스 규칙 및 클라이언트 스크립트 정의에 대한 샘플 코드를 업데이트하여 새 테이블을 참조합니다. 마지막으로 메타데이터 탐색기에서 변경 내용을 검토합니다. 테이블 API에 대한 자세한 내용은 다음 문서를 참조하십시오 테이블 API - ServiceNow Fluent.

    프로시저

    1. 활동 표시줄에서 파일 탐색기 보기( 파일 탐색기)를 선택합니다.
    2. 애플리케이션의 src/fluent 디렉터리로 이동합니다.
    3. index.now.ts 샘플 파일을 엽니다.
      팁:
      단일 파일 또는 원하는 수의 .now.ts 파일에 코드를 작성 ServiceNow Fluent 하고 Fluent 디렉터리 내의 디렉터리에 파일을 구성할 수 있습니다.
    4. 파일 끝의 새 줄에 Table({}) 을 입력하여 Table 객체를 추가합니다.
    5. 상태 표시줄에서 진단 아이콘( 진단)을 선택하여 문제 패널을 열고 코드에서 문제를 확인합니다.

      빠른 수정 옵션이 있는 빠른 수정 메뉴

    6. 나타나는 오류를 마우스 오른쪽 버튼으로 클릭하고 "@servicenow/sdk/core" 빠른 수정에서 임포트 업데이트를 선택합니다.

      문제 패널의 @servicenow/sdk/core에서 테이블 임포트를 추가하는 빠른 수정

      2행에서 테이블 객체가 @servicenow/sdk/core의 임포트 목록에 추가됩니다.
      import { BusinessRule, ClientScript, Table } from '@servicenow/sdk/core'
      팁:
      이 문제를 해결한 후 다음 단계를 진행하는 동안 문제 패널을 닫을 수 있습니다. 이후 단계에서 문제가 남아 있으면 해당 단계로 돌아갑니다.
    7. 테이블 객체에서 다음 속성을 추가합니다.
      • name: 테이블 이름은 애플리케이션 범위로 시작해야 하며 <scope>_<name> 형식의 모든 소문자를 사용해야 합니다. 애플리케이션의 now.config.json 파일에서 범위를 찾을 수 있습니다.
      • 레이블: 레이블은 고유해야 하며 목록 및 양식 뷰의 테이블에 대해 표시됩니다.
      • extends: 테이블의 기반이 되는 다른 테이블의 이름입니다.
      Table({
          name: 'x_snc_hello_world_to_do', //ensure that the name begins with the correct scope (<scope>_<name>)
          label: 'To-do Items',
          extends: 'task',
      })
      팁:
      객체 위에 마우스를 올려놓으면 해당 객체의 제품 내 설명서가 표시됩니다.

      테이블 객체 위로 마우스를 올리면 테이블 API에 대한 설명서가 나타납니다.

    8. 테이블에서 열을 정의할 때 자동 완성을 지원하려면 테이블 객체 앞에 이름 속성과 이름이 같은 익스포트된 변수를 추가합니다.
      export const x_snc_hello_world_to_do = Table({
          name: 'x_snc_hello_world_to_do',
          label: 'To-do Items',
          extends: 'task',
      })
    9. 테이블 객체에서 스키마 속성을 추가하여 테이블의 열을 정의합니다.
      export const x_snc_hello_world_to_do = Table({
          name: 'x_snc_hello_world_to_do',
          label: 'To-do Items',
          extends: 'task',
          schema: {
              //define columns here
          }
      })

      schema 속성은 Column 객체의 배열입니다. 필드 유형에 따라 다양한 유형의 열이 있습니다. 열 객체는 형식 <Type>Column 을 사용합니다. 여기서 <Type> 은 필드 유형입니다.

      다음 상세 정보를 사용하여 테이블에서 기한, 매트릭스 및 작업의 세 개 열을 정의합니다. 각 열을 구성하는 데 도움이 되는 설명서를 열 객체 참조하십시오.

      열 이름 세부사항
      마감 기한
      • 레이블: 마감
      • 유형: 날짜/시간
      매트릭스
      • 레이블: 매트릭스
      • 유형: 문자열
      • 선택:
        • 레이블: 긴급 및 중요
        • 레이블: 중요하지만 긴급하지는 않음
        • 레이블: 긴급하지만 중요하지 않음
        • 레이블: 긴급하지도 중요하지도 않음
      작업
      • 레이블: 작업
      • 유형: 문자열
      • 최대 길이: 120
      이러한 상세 정보를 바탕으로 스키마 속성은 이 예시와 유사해야 합니다. 선택 항목에 사용하는 키는 모든 문자열일 수 있습니다.
      export const x_snc_hello_world_to_do = Table({
          name: 'x_snc_hello_world_to_do',
          label: 'To-do Items',
          extends: 'task',
          schema: {
              deadline: DateColumn({ label: 'Deadline' }),
              matrix: StringColumn({
                  label: 'Matrix',
                  choices: {
                      do: { label: 'Urgent and Important' },
                      decide: { label: 'Important but Not Urgent' },
                      delegate: { label: 'Urgent but Not Important' },
                      delete: { label: 'Neither Urgent nor Important' },
                  },
              }),
              task: StringColumn({ label: 'Task', maxLength: 120 }),
          },
      })
    10. 2행에 DateColumnStringColumn 개체에 대한 가져오기를 추가합니다.
      import { BusinessRule, ClientScript, Table, DateColumn, StringColumn } from '@servicenow/sdk/core'
    11. 생성한 테이블을 참조하도록 기존 비즈니스 규칙 및 클라이언트 스크립트 정의를 업데이트합니다.
      1. ClientScript 객체에서 테이블 속성의 값을 테이블 이름(x_snc_hello_world_to_do)으로 변경합니다.
      2. BusinessRule 객체에 대해 이전 단계를 반복합니다.
    12. 진단 아이콘( 진단)에 오류 또는 경고가 표시되면 이를 선택하여 문제 패널을 열고 진단 메시지와 빠른 수정을 검토하여 해결합니다.
    13. 다음 바로 가기 키 중 하나를 사용하여 변경 내용을 저장합니다.
      • Windows: Ctrl-S
      • Mac: Cmd-S
      주:
      파일에 저장되지 않은 변경 내용이 있는 경우 파일 탭에 점 아이콘이 나타납니다.
    14. 상태 표시줄에서 빌드 및 설치를 선택합니다.

      설치가 성공적으로 완료되면 업데이트 ServiceNow Fluent 된 소스 코드가 인스턴스의 애플리케이션 파일 [sys_metadata]으로 컴파일됩니다.

    15. 변경 내용을 메타데이터로 검토합니다.
      1. 활동 표시줄에서 메타데이터 탐색기 보기( 메타데이터 탐색기)를 선택합니다.
      2. 확장할 애플리케이션을 선택합니다.
      3. 다음으로 이동 데이터 > 테이블 을 클릭하고 할 일 항목을 선택합니다.
        테이블이 열립니다 테이블 작성기.

        ServiceNow IDE의 메타데이터 탐색기에서 액세스한 테이블 작성기의 할 일 항목 테이블입니다.

    16. 옵션: 메타데이터를 편집하고 변경 내용을 소스 코드와 동기화합니다.
      메타데이터 탐색기에서 다른 사용자가 소스 코드 외부에서 메타데이터를 편집하는 것을 시뮬레이션하여 변경 내용이 추가한 코드로 다시 변환되는 것을 볼 수 있습니다.
      1. 테이블 작성기에서 작업 필드를 검색하고 열 레이블을 "작업"에서 "할 일"로 변경합니다.
      2. 저장을 선택합니다.
      3. 활동 표시줄에서 Now SDK 뷰( Now SDK)를 선택합니다.
      4. 변경 내용 동기화를 선택합니다.

        Now SDK 뷰의 동기화 명령.

        index.now.ts 파일에서 작업 열의 레이블 속성이 '할 일'로 변경된 것을 볼 수 있습니다.
        task: StringColumn({ label: 'To Do', maxLength: 120 }),

    결과

    API를 사용하여 ServiceNow Fluent 첫 번째 애플리케이션 메타데이터를 생성했습니다. 할 일 항목 [x_snc_hello_world_to_do] 테이블은 다른 ServiceNow IDE 사용자나 다른 ServiceNow AI Platform 사용자 인터페이스에서 소스 코드를 수정할 수 있습니다.

    ServiceNow AI Platform에서 탐색 필터에 x_snc_hello_world_to_do.list를 입력하여 테이블의 목록 보기로 이동할 수 있습니다. 할 일 항목 [x_snc_hello_world_to_do] 테이블에서 실행되도록 클라이언트 스크립트 정의를 업데이트했으므로 새로 만들기 를 선택하여 테이블에 기록을 추가하면 기록이 로드될 때 클라이언트 스크립트의 메시지가 나타납니다.

    할 일 항목 테이블에 새 기록이 추가되면 클라이언트 스크립트 정의의 메시지 문자열이 나타납니다.

    다음에 수행할 작업

    계속 진행합니다 튜토리얼 4부: 타사 라이브러리 설치 및 사용.