테이블 API - ServiceNow Fluent

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기19분
  • Table API에는 범위가 지정된 애플리케이션에서 테이블 [sys_db_object]을 정의하기 위한 객체가 포함되어 있습니다.

    Table 개체를 사용하여 테이블을 만듭니다. 스키마 속성에서 StringColumn 또는 IntegerColumn과 같은 Column 개체를 추가하여 열을 정의합니다.

    테이블 관리에 대한 일반적인 정보는 다음 문서를 참조하십시오 Table administration.

    테이블 객체

    범위가 지정된 애플리케이션에서 테이블 [sys_db_object]을 작성합니다.

    표 1. 속성
    이름 유형 설명
    이름 문자열 필수 애플리케이션 범위로 시작하고 모두 소문자인 테이블 이름이며 <scope>_<name> 형식입니다. 이름은 Table 개체의 변수 식별자와 일치해야 합니다.
    주:
    다른 애플리케이션 범위의 기존 테이블에 열을 추가하려면 애플리케이션 범위 뒤에 any를 제외한 테이블 이름을 제공할 수 있습니다. 대신 열 이름은 애플리케이션 범위로 시작해야 합니다.

    최대 길이: 80

    스키마 배열 필수 Column 개체의 목록입니다. 자세한 내용은 열 객체 문서를 참조하십시오.
    확장 문자열 테이블의 기반이 되는 다른 테이블의 이름입니다.

    기본 테이블을 확장하면 원래 테이블의 모든 필드가 통합되고 새 테이블에 대한 시스템 필드가 생성됩니다. 동일한 범위에 있거나 다른 범위에서 구성할 수 있는 경우 확장 가능으로 표시된 테이블을 확장할 수 있습니다.

    레이블 문자열 또는 배열 목록 및 양식 뷰의 테이블에 대한 고유 레이블입니다. 필드 레이블은 문자열 또는 레이블 객체의 배열로 제공될 수 있습니다. 자세한 내용은 레이블 객체 문서를 참조하십시오.

    최대 길이: 80

    기본값: name 속성의 값

    표시 문자열 기본 표시 열입니다. 스키마 속성의 열 이름을 사용합니다.
    확장 부울 다른 테이블에서 테이블을 확장할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 다른 테이블에서 테이블을 확장할 수 있습니다.
    • false: 다른 테이블에서 테이블을 확장할 수 없습니다.

    이 속성을 예에서 아니오로 변경하면 하위 테이블을 추가로 만들 수 없지만 기존 하위 테이블은 변경되지 않은 상태로 유지됩니다.

    기본값: false

    live_feed 부울 테이블의 기록에 라이브 피드를 사용할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 테이블의 기록에 라이브 피드가 제공됩니다. 이 옵션은 양식 헤더에 라이브 피드 표시 옵션( 라이브 피드 표시 아이콘)을 추가합니다.
    • false: 테이블의 기록에 라이브 피드가 제공되지 않습니다.

    기본값: false

    auto_number 객체 테이블에 대한 자동 번호 지정 구성 [sys_number]입니다. 자세한 내용은 auto_number 객체 문서를 참조하십시오.
    accessible_from 문자열 테이블에 액세스할 수 있는 애플리케이션 범위입니다.
    유효한 값은 다음과 같습니다.
    • public: 모든 애플리케이션 범위에서 테이블에 액세스할 수 있습니다.
    • package_private: 테이블은 해당 테이블이 속한 애플리케이션 범위에서만 액세스할 수 있습니다.

    기본값: public

    caller_access 문자열 교차 범위 요청에 대한 접근 수준입니다.
    유효한 값은 다음과 같습니다.
    • 제한됨: 자원에 대한 호출을 수동으로 승인해야 합니다. 접근 요청은 요청된 상태로 제한된 호출자 접근 테이블에서 추적됩니다.
    • 추적 중: 자원에 대한 호출이 자동으로 승인됩니다. 호출은 제한된 호출자 접근 테이블에서 허용됨 상태로 추적됩니다.
    • none: 자원에 대한 교차 범위 호출은 accessible_from 속성 값에 따라 승인되거나 거부됩니다.

    자세한 내용은 제한된 호출자 접근 권한 설정 문서를 참조하십시오.

    기본값: 없음

    작업 배열 액세스 옵션 목록입니다.
    유효한 값은 다음과 같습니다.
    • 읽기: 다른 애플리케이션 범위의 스크립트 객체가 이 테이블에 저장된 기록을 읽을 수 있도록 허용합니다. 예를 들어 다른 애플리케이션의 스크립트는 이 테이블의 데이터를 쿼리할 수 있습니다. 다른 API 기록 작업을 허가하려면 읽기 권한이 필요합니다.
    • 생성: 다른 애플리케이션 범위의 스크립트 객체가 이 테이블에 기록을 생성하도록 허용합니다. 예를 들어, 다른 애플리케이션의 스크립트가 이 테이블에 새 기록을 삽입할 수 있습니다.
    • update: 다른 애플리케이션 범위의 스크립트 객체가 이 테이블에 저장된 기록을 수정할 수 있도록 허용합니다. 예를 들어, 다른 애플리케이션의 스크립트는 이 테이블의 필드 값을 수정할 수 있습니다.
    • 삭제: 다른 애플리케이션 범위의 스크립트 객체가 이 테이블에서 기록을 삭제하도록 허용합니다. 예를 들어, 다른 애플리케이션의 스크립트가 이 테이블에서 기록을 제거할 수 있습니다.

    기본값: read

    allow_web_service_access 부울 웹 서비스가 테이블을 호출할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 웹 서비스가 테이블을 호출할 수 있습니다.
    • false: 웹 서비스에서 테이블을 호출할 수 없습니다.

    기본값: false

    allow_new_fields 부울 다른 애플리케이션 범위에서 테이블의 새 필드에 대한 설계 시간 구성을 허용할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 다른 애플리케이션 범위에서 테이블의 새 필드에 대한 설계 시간 구성을 허용합니다.
    • false: 다른 애플리케이션 범위에서 테이블의 새 필드에 대한 설계 시간 구성을 허용하지 않습니다.

    기본값: false

    allow_ui_actions 부울 다른 애플리케이션 범위에서 테이블의 UI 작업에 대한 설계 시간 구성을 허용할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 다른 애플리케이션 범위에서 테이블의 UI 작업에 대한 설계 시간 구성을 허용합니다.
    • false: 다른 애플리케이션 범위에서 테이블의 UI 작업에 대한 설계 시간 구성을 허용하지 않습니다.

    기본값: false

    allow_client_scripts 부울 다른 애플리케이션 범위에서 테이블에 있는 클라이언트 스크립트의 설계 시간 구성을 허용할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 다른 애플리케이션 범위에서 테이블의 클라이언트 스크립트에 대한 설계 시간 구성을 허용합니다.
    • false: 다른 애플리케이션 범위에서 테이블에 있는 클라이언트 스크립트의 설계 시간 구성을 허용하지 않습니다.

    기본값: false

    감사 부울 테이블에 있는 모든 기록의 생성, 업데이트 및 삭제를 추적할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 테이블에서 모든 기록의 작성, 업데이트 및 삭제를 추적합니다.
    • false: 테이블에서 모든 기록의 작성, 업데이트 및 삭제를 추적하지 않습니다.

    기본값: false

    read_only 부울 사용자가 테이블의 필드를 편집할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 사용자가 테이블의 필드를 편집할 수 없습니다.
    • false: 사용자가 테이블의 필드를 편집할 수 있습니다.

    기본값: false

    text_index 부울 검색 엔진이 테이블의 텍스트를 인덱싱하는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 테이블의 텍스트가 인덱싱됩니다.
    • false: 테이블의 텍스트가 인덱싱되지 않습니다.

    기본값: false

    속성 객체 지원되는 모든 딕셔너리 속성의 키 및 값 쌍 [sys_schema_attribute]. 예:
    attributes: 
       {
          update_sync_custom: Boolean,
          native_recordlock: Boolean
       }
    자세한 내용은 Dictionary Attributes를 참조하십시오.
    인덱스 배열 테이블의 메타데이터 XML에서 인덱스를 생성하기 위한 열 참조 목록입니다. element 속성의 값은 Column 개체와 함께 사용되는 개체 키와 일치해야 합니다.

    데이터베이스 인덱스를 사용하면 추가 저장소를 사용하는 대신 테이블의 데이터에 액세스하는 속도가 빨라집니다.

    index: [
        {
            name: 'String',
            element: 'String',
            unique: Boolean
        },
        ...
    ]

    열에 대한 자동 완성 지원의 경우 이름 속성과 동일한 이름으로 내보낸 변수에 Table 개체를 할당합니다.

    import { Table, StringColumn } from "@servicenow/sdk/core";
    import { myFunction } from "../server/myFunction.js"
    
    export const x_snc_example_to_do = Table({
        name: 'x_snc_example_to_do',
        label: 'My To Do Table',
        extends: 'task',
        schema: {
            status: StringColumn({ label: 'Status' }),
            deadline: StringColumn({
                label: 'Deadline',
                active: true,
                mandatory: false,
                read_only: false,
                maxLength: 40,
                dropdown: 'none',
                attributes: { 
                    update_sync: false,
                },
                default: 'today',
                dynamic_value_definitions: {
                    type: 'calculated_value',
                    calculated_value: '',
                },
                choices: {
                    choice1: {
                        label: 'Choice1 Label',
                        sequence: 0,
                        inactive_on_update: false,
                        dependent_value: '5',
                        hint: 'hint',
                        inactive: false,
                        language: 'en',
                    },
                    choice2: { label: 'Choice2 Label', sequence: 1 },
                },
            }),
            dynamic1: StringColumn({
                dynamic_value_definitions: {
                    type: 'calculated_value',
                    calculated_value: myFunction,
                },
            }),
            dynamic2: StringColumn({
                dynamic_value_definitions: {
                    type: 'dynamic_default',
                    dynamic_default: `gs.info()`,
                },
            }),
            dynamic3: StringColumn({
                dynamic_value_definitions: {
                    type: 'dependent_field',
                    column_name: 'status',
                },
            }),
            dynamic4: StringColumn({
                dynamic_value_definitions: {
                    type: 'choices_from_other_table',
                    table: 'sc_cat_item',
                    field: 'display',
                },
            }),
        },
        actions: ['create', 'read'],
        display: 'deadline',
        accessible_from: 'package_private',
        allow_client_scripts: true,
        allow_new_fields: true,
        allow_ui_actions: true,
        allow_web_service_access: true,
        extensible: true,
        live_feed: true,
        caller_access: 'none',
        auto_number: {
            number: 10,
            number_of_digits: 2,
            prefix: 'abc',
        },
        audit: true,
        read_only: true,
        text_index: true,
        attributes: {
            update_sync: true,
        },
        index: [
            {
                name: 'idx',
                element: 'status',
                unique: true,
            },
        ],
    })

    열 객체

    테이블에 열 [sys_dictionary]을(를) 추가합니다.

    Table 개체의 schema 속성에 Column 개체를 추가합니다.

    필드 유형에 따라 여러 유형의 열이 있습니다. 열 객체는 <Type>Column 형식을 사용하며, 여기서 <Type> 은 필드 유형입니다. 필드 유형에 대한 자세한 내용은 다음 문서를 참조하십시오 Field types reference.

    지원되는 열 유형은 ListColumn, RadioColumn, StringColumn, ChoiceColumn, ScriptColumn, BooleanColumn, ConditionsColumn, DecimalColumn, IntegerColumn, VersionColumn, DomainIdColumn, FieldNameColumn, ReferenceColumn, TableNameColumn, UserRolesColumn, BasicImageColumn, DocumentIdColumn, DomainPathColumn, TranslatedTextColumn, SystemClassNameColumn, TranslatedFieldColumn, GenericColumn, DateColumn, DateTimeColumn, CalendarDateTime, BasicDateTimeColumn, DueDateColumn, CalendarDateTime, IntegerDateColumn, ScheduleDateTimeColumnOtherDateColumn.

    표 2. 속성
    이름 유형 설명
    레이블 문자열 또는 배열 목록 헤더와 양식 필드에 표시되는 열의 고유 레이블입니다. 필드 레이블은 문자열 또는 레이블 객체의 배열로 제공될 수 있습니다. 자세한 내용은 레이블 객체 문서를 참조하십시오.

    기본값: 열 객체에 사용되는 키

    maxLength 번호 열에 있는 값의 최대 길이입니다.

    길이가 254 미만이면 1줄 텍스트 필드로 표시됩니다. 255자 이상이라면 여러 줄 텍스트 상자로 표시됩니다.

    주:
    데이터 손실을 방지하려면 새 애플리케이션을 개발할 때만 문자열 필드의 길이를 줄이고 필드에 데이터가 있을 때는 줄이지 마십시오.

    기본값: 40

    활성 부울 목록 및 양식에 필드를 표시할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 필드를 표시합니다.
    • false: 필드를 숨깁니다.

    기본값: true

    필수 부울 기록을 저장하기 위해 필드에 값이 포함되어야 하는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 필드에 값이 포함되어야 합니다.
    • false: 필드가 필수가 아닙니다.

    기본값: false

    read_only 부울 필드 값을 편집할 수 있는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 값을 변경할 수 없으며 시스템이 필드의 데이터를 계산하여 표시합니다.
    • false: 필드 값을 변경할 수 있습니다.

    기본값: false

    기본값 모두 기록을 생성할 때 필드의 기본값입니다. 값은 열 유형에 따라 올바른 유형을 사용해야 합니다.
    선택 객체 열에 대한 선택 [sys_choice] 목록입니다. 자세한 내용은 선택 객체 문서를 참조하십시오.

    이 속성은 ChoiceColumn 개체와 선택 열을 확장하는 열 형식에만 적용됩니다. 여기에는 기본 값의 배열 또는 일련의 선택 개체가 포함될 수 있습니다.

    속성 객체 지원되는 모든 딕셔너리 속성의 키 및 값 쌍 [sys_schema_attribute]. 예:
    attributes: 
       {
          update_sync_custom: Boolean,
          native_recordlock: Boolean
       }
    자세한 내용은 Dictionary Attributes를 참조하십시오.
    function_definition 문자열 수학적 연산, 필드 길이 계산 또는 요일 계산과 같이 필드가 수행하는 함수의 정의입니다.

    각 정의는 glidefunction:으로 시작하고, 그 뒤에 수행할 작업(예: concat), 함수 매개변수가 뒤따릅니다. 상수는 작은따옴표로 묶어야 합니다.

    예를 들어, 다음 함수 정의는 짧은 설명, 공백, 호출자 이름을 차례로 보여주는 필드를 생성합니다.
    function_definition: 'glidefunction:concat(short_description, ' ', caller_id.name)'

    기능 정의에 대한 자세한 내용은 다음 문서를 참조하십시오 Function field.

    dynamic_value_definitions 객체 동적 필터를 기반으로 동적으로 생성되는 기본값입니다. 유형 및 관련 동작 키의 조합을 제공하여 동적 기본값을 지정합니다. 지원되는 형식은 다음과 같습니다.
    • dynamic_default: 동적 필터 옵션 [sys_filter_option_dynamic] 테이블에서 기능을 제공합니다. 자세한 내용은 Create a dynamic filter option 문서를 참조하십시오. 예:
      dynamic_value_definitions: {
         type: 'dynamic_default',
         dynamic_default: `gs.info()`,
      },
    • dependent_field: 같은 테이블에서 다른 열 이름을 제공합니다. 예:
      dynamic_value_definitions: {
         type: 'dependent_field',
         column_name: 'status',
      },
    • calculated_value: 값을 계산하는 함수를 제공합니다. 함수는 JavaScript 모듈에서 가져오거나 인라인으로 정의할 수 있습니다. 예:
      dynamic_value_definitions: {
         type: 'calculated_value',
         calculated_value: function,
      },
    • choices_from_other_table: 다른 테이블의 열에서 선택 항목을 제공합니다. 예:
      dynamic_value_definitions: {
         type: 'choices_from_other_table',
         table: 'sc_cat_item',
         field: 'display',
      },
    드롭다운 문자열 테이블의 목록 및 양식 뷰에 대해 선택 목록을 표시하는 방법에 대한 옵션입니다. 이 속성은 ChoiceColumn 개체와 선택 열을 확장하는 열 형식에만 적용됩니다.
    유효한 값은 다음과 같습니다.
    • none: 선택 사항이 적용되지 않습니다.
    • 드롭다운(없음 제외): -- 없음 -- 옵션이 없는 메뉴입니다. 이 옵션을 선택하는 경우 열의 기본 속성을 구성해야 합니다.
    • 드롭다운(없음 포함): -- 없음 -- 옵션이 있는 메뉴입니다. 기본값은 -- 없음 --입니다.
    • 제안: 선택 항목이 제안된 값 목록에 표시됩니다.

    기본값: 없음

    열 이름은 열 정의와 쌍을 이루는 객체 키로 제공됩니다.
    schema: {
       deadline: DateColumn({ label: 'Deadline' }),
       state: StringColumn({
          label: 'State',
          choices: {
             ready: { label: 'Ready' },
             completed: { label: 'Completed' },
             in_progress: { label: 'In Progress' },
          }   
       }),
       task: StringColumn({ label: 'Task', maxLength: 120 }),
    }
    테이블 이름에 애플리케이션 범위가 포함되지 않은 경우 열 이름 앞에 애플리케이션 범위를 대신 추가해야 합니다.
    schema: {
       x_scope_myColumn: StringColumn({...})
    }

    선택 객체

    테이블의 열에 대한 선택 사항 [sys_choice]을 구성합니다.

    choices 개체는 Column 개체 내의 속성입니다. Table 개체의 schema 속성에서 지원되는 열 형식과 함께 choices 개체를 사용합니다. 특정 열 형식만 선택 열 형식(ChoiceColumn)을 확장하고 선택 항목을 포함할 수 있습니다.

    표 3. 속성
    이름 유형 설명
    레이블 문자열 필수 목록에서 선택 항목에 대해 표시할 텍스트입니다.
    dependent_value 문자열 Column 개체의 dynamic_value_definitions 속성에 있는 dependent_field에 매핑하는 값입니다.
    힌트 문자열 마우스를 가져갈 때 도구 설명으로 표시되는 선택 항목에 대한 간단한 설명입니다.
    언어 문자열 번역된 선택 항목에 대한 언어의 BCP 47 코드입니다.

    기본값: en

    시퀀스 정수 선택 목록에서 선택이 발생하는 순서입니다.
    비활성 부울 목록에 선택 항목을 표시할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 선택 항목이 목록에서 숨겨집니다.
    • false: 선택 항목이 목록에 나타납니다.

    기본값: false

    choices 개체에는 일련의 선택 개체가 포함되며, 여기서 선택 개체의 이름은 choices 정의와 쌍을 이루는 개체 키로 제공됩니다.

    choices: {
       choice1: {
          label: 'Choice1 Label',
          sequence: 0,
          inactive_on_update: false,
          dependent_value: '5',
          hint: 'hint',
          inactive: false,
          language: 'en',
       },
       choice2: { label: 'Choice2 Label', sequence: 1 },
    }

    레이블 객체

    테이블 또는 열에 대한 필드 레이블 [sys_documentation]을 구성합니다.

    label 개체는 TableColumn 개체 내의 속성입니다.

    표 4. 속성
    이름 유형 설명
    언어 문자열 필드 레이블에 대한 언어의 BCP 47 코드입니다. 언어에는 레이블이 하나만 있을 수 있으므로 각 언어는 레이블 개체 배열 내에서 고유해야 합니다.
    레이블 문자열 지정된 언어로 된 필드 레이블의 텍스트입니다.
    힌트 문자열 필드 레이블을 가리킬 때 도구 설명으로 표시되는 간단한 설명입니다.
    도움말 문자열 필드에 대한 추가 정보입니다. 도움말 텍스트는 테이블의 양식 또는 목록 뷰에 표시되지 않습니다.
    복수 문자열 필드 레이블의 복수형입니다.
    URL 문자열 필드에 대한 정보를 제공하는 웹 페이지의 URL입니다. URL을 제공하면 레이블이 하이퍼링크로 표시됩니다.
    url_target 문자열 사용되지 않음(사용되지 않음).
    label: [
       { 
          label: 'English description', 
          language: 'en', 
          hint: 'Provide a short description' 
       },
       {
          label: 'Description de español', 
          language: 'es' 
       },
    ]

    auto_number 객체

    테이블에 대해 자동 번호 매기기 [sys_number]를 구성합니다.

    auto_number 개체는 Table 개체 내의 속성입니다.

    표 5. 속성
    이름 유형 설명
    접두사 문자열 테이블의 모든 기록 번호에 대한 프리픽스입니다. 예를 들어 인시던트의 경우 INC입니다.

    기본값: pre

    번호 정수 이 테이블의 기본 기록 번호입니다. 기록 번호는 자동으로 증가하며 카운터 [sys_number_counter] 테이블에는 다음 번호가 유지됩니다.

    기본 번호를 현재 카운터보다 높은 값으로 설정하면 다음 레코드 번호에 새 기본 번호가 사용됩니다. 그렇지 않으면 다음 레코드 번호에서 현재 카운터를 사용합니다. 카운터는 자신보다 낮은 기본 번호로 재설정되지 않습니다.

    기본값: 1000

    number_of_digits 정수 프리픽스 뒤에 사용할 최소 자릿수입니다.

    필요한 경우 자동 번호 매기기에 선행 0이 추가됩니다. 예를 들어, INC0001001에는 세 개의 선행 0이 포함되어 있습니다. 자릿수가 최소 길이를 초과할 수 있습니다. 예를 들어, number_of_digits 2이고 테이블에 99개 이상의 레코드가 생성된 경우 숫자는 100을 넘어 계속됩니다(예: INC101).

    경고:
    이 필드를 변경하면 테이블의 기존 기록에 대한 모든 숫자 값이 업데이트 될 수 있습니다. 프로덕션 인스턴스에서 이 필드를 변경할 때는 주의하십시오.

    기본값: 7

    auto_number: {
       prefix: 'TODO',
       number: 2000,
       digits: 9,
    }