테이블 API - ServiceNow Fluent
테이블 API는 범위가 지정된 애플리케이션에 데이터를 저장할 테이블 [sys_db_object]을 정의합니다.
테이블 객체를 사용하여 테이블 을 생성합니다. 스키마 속성에서 StringColumn 또는 IntegerColumn과 같은 Column 객체를 추가하여 열을 정의합니다.
테이블에 대한 일반적인 정보는 다음 문서를 참조하십시오 Table administration.
테이블 객체
범위가 지정된 애플리케이션에서 테이블 [sys_db_object]을 생성합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 이름 | 문자열 | 필수 애플리케이션 범위로 시작하고 모두 소문자로 된 테이블 이름으로, <scope>_<name> 형식입니다. 이름은 테이블 객체의 변수 식별자와 일치해야 합니다. 주: 다른 애플리케이션 범위의 기존 테이블에 열을 추가하려면 애플리케이션 범위 뒤에 테이블 이름을 포함하지 않고 테이블의 이름을 제공할 수 있습니다. 열 이름은 대신 애플리케이션 범위로 시작해야 합니다.최대 길이: 80 |
| 스키마 | 배열 | 필수 열 객체의 목록입니다. 자세한 내용은 열 객체 문서를 참조하십시오. |
| 확장 | 문자열 | 테이블의 기반이 되는 다른 테이블의 이름입니다. 기본 테이블을 확장하면 원래 테이블의 모든 필드가 통합되고 새 테이블에 대한 시스템 필드가 생성됩니다. 동일한 범위에 있거나 다른 범위에서 구성할 수 있는 경우 확장 가능한 것으로 표시된 테이블을 확장할 수 있습니다. |
| 레이블 | 문자열 또는 배열 | 목록 및 양식 뷰의 테이블에 대한 고유 레이블입니다. 필드 레이블은 문자열 또는 레이블 객체의 배열로 제공할 수 있습니다. 자세한 내용은 레이블 객체 문서를 참조하십시오. 최대 길이: 80 기본값: 이름 속성의 값 |
| licensingConfig | 객체 | 테이블에 대한 라이선싱 구성 [ua_table_licensing_config]입니다. 자세한 내용은 licensingConfig 객체 문서를 참조하십시오. |
| 표시 | 문자열 | 기본 표시 열입니다. 스키마 속성의 열 이름을 사용합니다. |
| 확장 가능 | 부울 | 다른 테이블이 테이블을 확장할 수 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
이 속성을 true에서 false로 변경하면 추가 하위 테이블을 만들 수 없지만 기존 하위 테이블은 변경되지 않은 상태로 유지됩니다. 기본값: false |
| 라이브 피드 | 부울 | 테이블의 기록에 라이브 피드를 사용할 수 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| 접근 가능한 시작 | 문자열 | 테이블에 접근할 수 있는 애플리케이션 범위입니다. 유효한 값은 다음과 같습니다.
기본값: 공개 |
| callerAccess | 문자열 | 교차 범위 요청에 대한 접근 수준입니다. 유효한 값은 다음과 같습니다.
자세한 내용은 제한된 호출자 접근 권한 설정 문서를 참조하십시오. 기본값: 없음 |
| 작업 | 배열 | 액세스 옵션 목록입니다. 유효한 값은 다음과 같습니다.
기본값: 읽기 |
| allowWebServiceAccess | 부울 | 웹 서비스가 테이블을 호출할 수 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| allowNewFields | 부울 | 다른 애플리케이션 범위에서 테이블의 새 필드에 대한 설계 시간 구성을 허용할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| allowUiActions | 부울 | 다른 애플리케이션 범위에서 테이블에 대한 UI 작업의 설계 시간 구성을 허용할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| allowClientScripts | 부울 | 다른 애플리케이션 범위에서 테이블에 있는 클라이언트 스크립트의 디자인 타임 구성을 허용할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| 감사 | 부울 | 테이블의 모든 기록 생성, 업데이트 및 삭제를 추적할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| readOnly | 부울 | 사용자가 테이블의 필드를 편집할 수 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| 텍스트 인덱스 | 부울 | 검색 엔진이 테이블의 텍스트를 인덱싱하는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| 속성 | 객체 | 지원되는 딕셔너리 속성 [sys_schema_attribute]의 키 및 값 쌍입니다. 예:자세한 내용은 딕셔너리 속성을 참조하십시오. |
| 인덱스 | 배열 | 테이블의 메타데이터 XML에서 인덱스를 생성할 열 참조 목록입니다. 요소 속성의 값은 열 객체와 함께 사용되는 객체 키와 일치해야 합니다. 데이터베이스 인덱스는 추가 저장소 사용의 비용으로 테이블의 데이터에 액세스하는 속도를 높입니다. |
| 자동 번호 매기기 | 객체 | 테이블에 대한 자동 번호 매기기 구성[sys_number] 자세한 내용은 autoNumber 객체 문서를 참조하십시오. |
| 스크립트 가능한 테이블 | 부울 | 테이블이 외부 소스에서 검색된 데이터를 사용하는 원격 테이블인지 여부를 나타내는 플래그입니다. 자세한 내용은 Remote tables 문서를 참조하십시오. 유효한 값은 다음과 같습니다.
기본값: false |
열에 대한 자동 완성 지원의 경우 이름 속성과 이름이 같은 익스포트된 변수에 테이블 객체를 할당합니다.
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,
readOnly: false,
maxLength: 40,
dropdown: 'none',
attributes: {
updateSync: false,
},
default: 'today',
dynamicValueDefinitions: {
type: 'calculated_value',
calculatedValue: '',
},
choices: {
choice1: {
label: 'Choice1 Label',
sequence: 0,
inactiveOnUpdate: false,
dependentValue: '5',
hint: 'hint',
inactive: false,
language: 'en',
},
choice2: { label: 'Choice2 Label', sequence: 1 },
},
}),
dynamic1: StringColumn({
dynamicValueDefinitions: {
type: 'calculated_value',
calculatedValue: myFunction,
},
}),
dynamic2: StringColumn({
dynamicValueDefinitions: {
type: 'dynamic_default',
dynamicDefault: `gs.info()`,
},
}),
dynamic3: StringColumn({
dynamicValueDefinitions: {
type: 'dependent_field',
columnName: 'status',
},
}),
dynamic4: StringColumn({
dynamicValueDefinitions: {
type: 'choices_from_other_table',
table: 'sc_cat_item',
field: 'display',
},
}),
},
actions: ['create', 'read'],
display: 'deadline',
accessibleFrom: 'package_private',
allowClientScripts: true,
allowNewFields: true,
allowUiActions: true,
allowWebServiceAccess: true,
extensible: true,
liveFeed: true,
callerAccess: 'none',
autoNumber: {
number: 10,
numberOfDigits: 2,
prefix: 'abc',
},
audit: true,
readOnly: true,
textIndex: true,
attributes: {
updateSync: true,
},
index: [
{
name: 'idx',
element: 'status',
unique: true,
},
],
})
열 객체
테이블에 열 [sys_dictionary]을(를) 추가합니다.
테이블 객체의 schema 속성에 열 객체를 추가합니다.
필드 유형에 따라 다양한 유형의 열이 있습니다. 열 객체는 형식 <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, ScheduleDateTimeColumn, OtherDateColumn, Password2Column, GuidColumn,JsonColumn, NameValuePairsColumn, UrlColumn, EmailColumn, HTMLColumn, FloatColumn, MultiLineTextColumn, DurationColumn, TimeColumn, FieldListColumn, SlushBucketColumn, TemplateValueColumn 및 ApprovalRulesColumn.
| 이름 | 유형 | 설명 |
|---|---|---|
| 레이블 | 문자열 또는 배열 | 목록 헤더와 양식 필드에 표시되는 열의 고유 레이블입니다. 필드 레이블은 문자열 또는 레이블 객체의 배열로 제공할 수 있습니다. 자세한 내용은 레이블 객체 문서를 참조하십시오. 기본값: 열 객체에 사용되는 키 |
| maxLength | 번호 | 열에 있는 값의 최대 길이입니다. 길이가 254보다 작으면 1줄 텍스트 필드로 나타납니다. 255자 이상이라면 여러 줄 텍스트 상자로 표시됩니다. 주: 데이터 손실을 방지하려면 새 애플리케이션을 개발할 때만 문자열 필드의 길이를 줄이고, 필드에 데이터가 포함될 때는 줄이지 마십시오. 기본값: 열 유형에 따라 다름 |
| 활성 | 부울 | 목록과 양식에 필드를 표시할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: true |
| 필수 | 부울 | 기록을 저장하기 위해 필드에 값이 포함되어야 하는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| readOnly | 부울 | 필드 값을 편집할 수 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
| 기본값 | 모두 | 기록을 생성할 때 필드의 기본값입니다. 값은 열 유형에 따라 올바른 유형을 사용해야 합니다. |
| 선택 | 객체 | 열에 대한 선택 [sys_choice] 목록입니다. 자세한 내용은 선택 객체 문서를 참조하십시오. 이 속성은 선택 열을 확장하는 ChoiceColumn 개체 및 열 형식에만 적용됩니다. 여기에는 원시 값의 배열 또는 일련의 선택 객체가 포함될 수 있습니다. |
| 속성 | 객체 | 지원되는 딕셔너리 속성 [sys_schema_attribute]의 키 및 값 쌍입니다. 예:자세한 내용은 딕셔너리 속성을 참조하십시오. |
| 함수 정의 | 문자열 | 수학 연산, 필드 길이 계산 또는 요일 계산과 같이 필드가 수행하는 기능에 대한 정의입니다. 각 정의는 예를 들어, 다음 함수 정의는 짧은 설명, 공백, 호출자 이름을 표시하는 필드를 생성합니다. 함수 정의에 대한 자세한 내용은 다음 문서를 참조하십시오 Function field. |
| dynamicValue 정의 | 객체 | 동적 필터를 기반으로 동적으로 생성되는 기본값입니다. 유형과 관련 동작 키의 조합을 제공하여 동적 기본값을 지정합니다. 다음 유형이 지원됩니다.
|
| 드롭다운 | 문자열 | 테이블의 목록 및 양식 뷰에서 선택 목록이 표시되는 방법에 대한 옵션입니다. 이 속성은 선택 열을 확장하는 ChoiceColumn 개체 및 열 형식에만 적용됩니다. 유효한 값은 다음과 같습니다.
기본값: 없음 |
schema: {
deadline: DateColumn({ label: 'Deadline' }),
state: StringColumn({
label: 'State',
choices: {
ready: { label: 'Ready' },
completed: { label: 'Completed' },
inProgress: { label: 'In Progress' },
}
}),
task: StringColumn({ label: 'Task', maxLength: 120 }),
}schema: {
x_scope_myColumn: StringColumn({...})
}선택 객체
테이블의 열에 대한 선택 항목 [sys_choice]을 구성합니다.
선택 객체는 Column 객체 내의 속성입니다. Table 개체의 schema 속성에서 지원되는 열 형식과 함께 선택 개체를 사용합니다. 특정 열 유형만 선택 열 유형(ChoiceColumn)을 확장하고 선택 항목을 포함할 수 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 레이블 | 문자열 | 필수 목록에서 선택 항목에 표시할 텍스트입니다. |
| dependentValue | 문자열 | Column 객체의 dynamicValueDefinitions 속성에 있는 dependentField에 매핑하는 값입니다. |
| 힌트 | 문자열 | 마우스를 가져가면 도구 설명으로 표시되는 선택 항목에 대한 짧은 설명입니다. |
| 언어 | 문자열 | 번역된 선택 언어의 BCP 47 코드입니다. 기본값: en |
| 시퀀스 | 정수 | 선택이 발생하는 선택 목록 순서입니다. |
| 비활성 | 부울 | 목록에 선택 항목을 표시할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
선택 객체에는 일련의 선택 객체가 포함되며, 여기서 선택 항목의 이름은 선택 정의와 쌍을 이루는 객체 키로 제공됩니다.
choices: {
choice1: {
label: 'Choice1 Label',
sequence: 0,
inactiveOnUpdate: false,
dependentValue: '5',
hint: 'hint',
inactive: false,
language: 'en',
},
choice2: { label: 'Choice2 Label', sequence: 1 },
}
레이블 객체
테이블 또는 열에 대한 필드 레이블 [sys_documentation]을 구성합니다.
레이블 객체는 테이블 및 열 객체 내의 속성입니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 언어 | 문자열 | 필드 레이블에 대한 언어의 BCP 47 코드입니다. 언어는 레이블을 하나만 가질 수 있으므로 각 언어는 레이블 객체의 배열 내에서 고유해야 합니다. |
| 레이블 | 문자열 | 지정된 언어로 된 필드 레이블의 텍스트입니다. |
| 힌트 | 문자열 | 필드 레이블을 가리킬 때 도구 설명으로 표시되는 짧은 설명입니다. |
| 도움말 | 문자열 | 필드에 대한 추가 정보입니다. 도움말 텍스트는 테이블의 양식 또는 목록 뷰에 표시되지 않습니다. |
| 복수 | 문자열 | 필드 레이블의 복수형입니다. |
| URL | 문자열 | 필드에 대한 정보를 제공하는 웹 페이지의 URL입니다. URL이 제공되면 레이블이 하이퍼링크로 표시됩니다. |
| urlTarget | 문자열 | 사용되지 않음(사용되지 않음). |
label: [
{
label: 'English description',
language: 'en',
hint: 'Provide a short description'
},
{
label: 'Description de español',
language: 'es'
},
]
licensingConfig 객체
라이선싱 구성 [ua_table_licensing_config]을 생성하여 테이블의 구독 수를 추적합니다.
licensingConfig 객체는 Table 객체 내의 속성입니다. 이 속성을 지정하지 않으면 인스턴스의 테이블에 대해 licenseModel 이 없음으로 설정된 기본 라이선싱 구성이 생성됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| licenseModel | 문자열 | 구독 사용량을 추적하는 모델입니다. 유효한 값은 다음과 같습니다.
기본값: 없음 |
| 라이센스 역할 | 배열 | 테이블의 기록에 대한 모든 작업이 구독으로 집계되는 역할 목록입니다. |
| opDelete | 부울 | 생산자 모델이 있는 테이블에 대한 기록을 삭제하려면 구독이 필요한지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: true |
| opInsert | 부울 | 생산자 모델을 사용하여 테이블에 대한 기록을 삽입하려면 구독이 필요한지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: true |
| 운영 업데이트 | 부울 | 생산자 모델을 사용하여 테이블에 대한 기록을 업데이트하려면 구독이 필요한지 여부를 나타내는 플래그입니다.
기본값: true |
| 라이센스 조건 | 문자열 | 구독에 대한 작업을 계산하는 조건을 결정하는 필터 쿼리입니다. 이행자 모델의 경우 로그인한 사용자가 기록의 이행자인지 여부를 결정하는 조건 세트를 지정합니다. 생산자 모델의 경우 기록이 구독에 포함되는지 여부를 결정하는 조건 세트를 지정합니다. |
| 소유자조건 | 문자열 | 사용자가 이행자 모델에 대한 기록을 소유하는지 여부를 결정하는 필터 쿼리입니다. |
| isFulfillment | 부울 | 사용되지 않음(사용되지 않음). 애플리케이션을 구독하지 않는 사용자의 업데이트를 허용하지 않을지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: false |
licensingConfig: {
licenseModel: 'fulfiller',
opInsert: false,
licenseRoles: ['admin'],
}
autoNumber 객체
테이블에 대한 자동 번호 매기기 [sys_number]를 구성합니다.
autoNumber 객체는 Table 객체 내의 속성입니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 프리픽스 | 문자열 | 테이블의 모든 기록 번호에 대한 프리픽스입니다. 예를 들어 인시던트의 경우 INC입니다. 기본값: pre |
| 번호 | 정수 | 이 테이블의 기본 기록 번호입니다. 기록 번호는 자동으로 증가하고 다음 번호는 카운터 [sys_number_counter] 테이블에 유지됩니다. 기준 번호를 현재 카운터보다 높은 값으로 설정하면 다음 기록 번호가 새 기준 번호를 사용합니다. 그렇지 않으면 다음 기록 번호가 현재 카운터를 사용합니다. 카운터는 자신보다 낮은 기본 숫자로 재설정되지 않습니다. 기본값: 1000 |
| numberOfDigits | 정수 | 프리픽스 뒤에 사용할 최소 자릿수입니다. 필요한 경우 자동 번호 매기기에 선행 0이 추가됩니다. 예를 들어 INC0001001 첫 0이 세 개입니다. 자릿수는 최소 길이를 초과할 수 있습니다. 예를 들어 numberOfDigits 가 2이고 테이블에 99개 이상의 기록이 생성되면 숫자는 100을 넘어 계속됩니다(예: INC101). 경고: 이 필드를 변경하면 테이블의 기존 기록에 대한 모든 숫자 값을 업데이트할 수 있습니다. 프로덕션 인스턴스에서 이 필드를 변경할 때는 주의하십시오. 기본값: 7 |
autoNumber: {
prefix: 'TODO',
number: 2000,
numberOfDigits: 9,
}
number: IntegerColumn({
default: 'javascript:getNextObjNumberPadded();'
})