테이블 API - ServiceNow Fluent

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

    테이블 객체

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

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

    최대 길이: 80

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

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

    레이블 문자열 목록 및 양식 뷰의 테이블에 대한 고유 레이블입니다.

    최대 길이: 80

    기본값: name 속성의 값

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

    이 속성을 true에서 false로 변경하면 추가 하위 테이블이 생성되지 않지만 기존 하위 테이블은 변경되지 않습니다.

    기본값: false

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

    기본값: false

    auto_number 객체 테이블에 대한 자동 번호 매기기 구성 [sys_number]입니다. 자세한 내용은 auto_number 객체 문서를 참조하십시오.
    accessible_from 문자열 테이블에 액세스할 수 있는 애플리케이션 범위입니다.

    유효한 값: public, package_private

    기본값: public

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

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

    기본값 : 없음

    작업 배열 액세스 옵션 목록입니다.

    유효한 값: READ, CREATE, UPDATE, DELETE

    기본값: read

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

    기본값: false

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

    기본값: false

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

    기본값: false

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

    기본값: false

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

    기본값: false

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

    기본값: false

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

    기본값: false

    속성 객체 지원되는 딕셔너리 속성 [sys_schema_attribute]의 키 및 값 쌍입니다.
    attributes: 
       {
          update_sync_custom: true,
          native_recordlock: false
       }
    자세한 내용은 Dictionary Attributes를 참조하십시오.
    index 배열 테이블의 메타데이터 XML에 인덱스를 작성하기 위한 열 참조 목록입니다.

    데이터베이스 인덱스는 추가 스토리지를 사용하는 비용으로 테이블의 데이터에 액세스하는 속도를 높입니다.

    index: [
        {
            name: 'deadline index',
            element: 'deadline',
            unique: true
        },
        {
            name: 'state index',
            element: 'state',
            unique: false
        },{
            name: 'task index',
            element: 'task',
            unique: false
        }
    ]

    열에 대한 자동 완성 지원의 경우, Table 객체를 name 속성과 동일한 이름으로 내보낸 변수에 할당하십시오.

    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 개체를 사용합니다.

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

    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 미만이면 한 줄 텍스트 필드로 표시됩니다. 255자 이상이라면 여러 줄 텍스트 상자로 표시됩니다.

    주:
    데이터 손실을 방지하려면 새 응용 프로그램을 개발할 때만 문자열 필드의 길이를 줄이고 필드에 데이터가 포함되어 있을 때는 줄이지 마십시오.

    기본값: 40

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

    기본값: true

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

    기본값: false

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

    기본값: false

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

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

    속성 객체 지원되는 딕셔너리 속성 [sys_schema_attribute]의 키 및 값 쌍입니다.
    attributes: 
       {
          update_sync_custom: true,
          native_recordlock: false
       }
    자세한 내용은 Dictionary Attributes를 참조하십시오.
    function_definition 문자열 필드가 수행하는 기능에 대한 정의입니다.

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

    예를 들어, 다음 함수 정의는 짧은 설명, 공백, 호출자 이름을 차례로 표시하는 필드를 만듭니다.
    glidefunction:concat(short_description, ' ', caller_id.name)

    함수 정의에 대한 자세한 내용은 을 참조하십시오 Function field.

    dynamic_value_definitions 객체 동적 필터를 기반으로 동적으로 생성되는 기본값입니다. 유형 및 관련 동작 키의 조합을 제공하여 동적 기본값을 지정합니다. 지원되는 유형은 다음과 같습니다.
    • dynamic_default: [sys_filter_option_dynamic]의 함수를 제공합니다.
      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]을 구성합니다.

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

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

    기본값: en

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

    기본값: false

    choices 객체에는 일련의 choice 객체가 포함되며, 여기서 선택 항목의 이름은 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 },
    },

    auto_number 객체

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

    Table 개체 내에서 auto_number 개체를 사용합니다.

    표 4. 속성
    이름 유형 설명
    프리픽스 문자열 테이블의 모든 기록 번호에 대한 프리픽스입니다. 예를 들어 인시던트의 경우 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,
    }