テーブル API - ServiceNow Fluent
テーブル API には、スコープ対象のアプリケーションのテーブル [sys_db_object] を定義するオブジェクトが含まれます。
Table オブジェクト
スコープ対象のアプリケーションにテーブル [sys_db_object] を作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | 必須。アプリケーションスコープで始まり、すべて小文字で、形式:<scope>_<name> で表記されたテーブルの名前。名前は、Table オブジェクトの変数識別子と一致する必要があります。 注: 別のアプリケーションスコープの既存のテーブルに列を追加するには、アプリケーションスコープなしでテーブルの名前、その後に as any を指定します。列名は、代わりにアプリケーションスコープで始める必要があります。最大長:80 |
| schema | アレイ | Column オブジェクトのリスト。詳細については、「Column オブジェクト」を参照してください。 |
| extends | 文字列 | テーブルの基になっている他のテーブルの名前。 ベーステーブルを拡張すると、元のテーブルのすべてのフィールドが組み込まれ、新しいテーブルのシステムフィールドが作成されます。拡張可能とマークされたテーブルは、同じスコープ内にある場合、または他のスコープからの構成が許可されている場合に拡張可能です。 |
| label | 文字列 | リストビューとフォームビューのテーブルの一意のラベル。 最大長:80 デフォルト:name プロパティの値 |
| display | 文字列 | デフォルトの表示列。schema プロパティの列名を使用します。 |
| extensible | ブーリアン | 他のテーブルがテーブルを拡張できるかどうかを示すフラグ。 有効な値:
このプロパティを true から false に変更すると、追加の子テーブルの作成はできなくなりますが、既存の子テーブルは変更されません。 デフォルト値:false |
| live_feed | ブーリアン | テーブル内のレコードでライブフィードが可能かどうかを示すフラグ。 有効な値:
デフォルト値:false |
| auto_number | オブジェクト | テーブルの自動番号付け構成 [sys_number]。詳細については、「auto_number オブジェクト」を参照してください。 |
| accessible_from | 文字列 | テーブルにアクセスできるアプリケーションスコープ。 有効な値:public、package_private デフォルト:public |
| caller_access | 文字列 | クロススコープ要求のアクセスレベル。 有効な値:
詳細については、「限定呼び出し元アクセス特権の設定」を参照してください。 デフォルト:none |
| actions | アレイ | アクセスオプションのリスト。 有効な値:read、create、update、delete デフォルト:read |
| allow_web_service_access | ブーリアン | Web サービスがテーブルを呼び出せるかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| allow_new_fields | ブーリアン | 他のアプリケーションスコープから、テーブル上の新しいフィールドの設計時の構成を許可するかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| allow_ui_actions | ブーリアン | 他のアプリケーションスコープから、テーブル上の UI アクションの設計時の構成を許可するかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| allow_client_scripts | ブーリアン | 他のアプリケーションスコープから、テーブル上のクライアントスクリプトの設計時の構成を許可するかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| audit | ブーリアン | テーブル内のすべてのレコードの作成、更新、削除を追跡するかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| read_only | ブーリアン | ユーザーがテーブル内のフィールドを編集できるかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| text_index | ブーリアン | 検索エンジンがテーブル内のテキストにインデックスを付けるかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| attributes | オブジェクト | サポートされている辞書属性 [sys_schema_attribute] のキーと値のペア。 詳細については、「辞書属性」を参照してください。 |
| index | アレイ | テーブルのメタデータ XML にインデックスを生成する列参照のリスト。 データベースインデックスを使用すると、テーブルからデータにアクセスする速度が向上しますが、追加のストレージを使用するコストがかかります。 |
列の先行入力をサポートするには、 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,
},
],
})
Column オブジェクト
テーブルに列 [sys_dictionary] を追加します。
Table オブジェクトの schema プロパティで Column オブジェクトを使用します。
フィールドタイプに基づく多くのタイプの列があります。Column オブジェクトは <Type>Column 形式で、<Type> はフィールドタイプです。フィールドタイプの詳細については、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、ScheduleDateTimeColumn、および OtherDateColumn です。
| 名前 | タイプ | 説明 |
|---|---|---|
| label | 文字列 | リスト見出しとフォームフィールドに表示される列の一意のラベル。 ラベルを更新すると、現在の言語の言語ファイル内のラベルも更新されます。ラベルが指定されていない場合、column オブジェクトで使用されるキーはラベルです。 |
| maxLength | 番号 | 列の値の最大長。 長さが 254 未満のテキストフィールドは、1 行のテキストフィールドとして表示されます。255 文字以上になると、複数行のテキストボックスとして表示されます。 注: データが失われないようにするため、新しいアプリケーションを開発する場合にのみ文字列フィールドの長さを短くし、フィールドにデータが含まれているときは短くしないでください。 デフォルト:40 |
| active | ブーリアン | リストとフォームのフィールドを表示するかどうかを示すフラグ。 有効な値:
デフォルト:true |
| mandatory | ブーリアン | レコードを保存するためにフィールドに値が含まれている必要があるかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| read_only | ブーリアン | フィールド値を編集できるかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| default | 任意 | レコード作成時のフィールドのデフォルト値。値は、列のタイプに基づいて正しいタイプを使用する必要があります。 |
| choices | オブジェクト | 列の選択肢 [sys_choice] のリスト。詳細については、「choices オブジェクト」を参照してください。 このプロパティは、ChoiceColumn および選択肢列を拡張する列タイプにのみ適用されます。これには、プリミティブ値のアレイまたは一連の選択肢オブジェクトを含めることができます。 |
| attributes | オブジェクト | サポートされている辞書属性 [sys_schema_attribute] のキーと値のペア。 詳細については、「辞書属性」を参照してください。 |
| function_definition | 文字列 | フィールドが実行する関数の定義。 glidefunction: で始まり、そのあとに実行される操作 (concat など)、関数のパラメーターが続きます。定数は単一引用符で囲む必要があります。 たとえば、次の関数定義では、簡単な説明、空白、発信者名の順に示すフィールドが作成されます。 関数定義の詳細については、「Function field」を参照してください。 |
| dynamic_value_definitions | オブジェクト | 動的フィルターに基づいて動的に生成されるデフォルト値。ダイナミックデフォルトを指定するには、タイプと関連する動作キーの組み合わせを指定します。次のタイプがサポートされています:
|
| dropdown | 文字列 | フォームのユーザーに対して選択肢のリストがどのように表示されるか。このプロパティは、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({...})
}choices オブジェクト
テーブルの列の選択肢 [sys_choice] を構成します。
Table オブジェクトの schema プロパティで、サポートされている列タイプを含む choices オブジェクトを使用します。特定の列のタイプのみが、選択肢列のタイプ (ChoiceColumn) を拡張し、選択肢を含めることができます。
| 名前 | タイプ | 説明 |
|---|---|---|
| label | 文字列 | 必須。リスト内の選択肢で表示するテキスト。 |
| dependent_value | 文字列 | Column オブジェクトの dynamic_value_definitions プロパティの dependent_field にマッピングする値。 |
| hint | 文字列 | 選択肢にカーソルを合わせたときにツールヒントとして表示される、選択肢の簡単な説明。 |
| language | 文字列 | 翻訳された選択肢の言語の BCP 47 コード。 デフォルト値:en |
| sequence | 整数 | 選択肢のリスト内で選択が行われる順序。 |
| inactive | ブーリアン | リストに選択肢を表示するかどうかを示すフラグ。 有効な値:
デフォルト値: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 オブジェクトを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| prefix | 文字列 | テーブル内のすべてのレコード番号のプリフィックス。たとえば、インシデントの場合は INC です。 デフォルト:pre |
| number | 整数 | このテーブルのベース番号。レコード番号は自動的にインクリメントされ、次の番号はカウンター [sys_number_counter] テーブルに保持されます。 ベース番号を現在のカウンターより大きい値に設定すると、次のレコード番号では新しいベース番号が使用されます。それ以外の場合は、次のレコード番号で現在のカウンターが使用されます。カウンターがそれ自体よりも小さいベース番号にリセットされることはありません。 デフォルト:1000 |
| number_of_digits | 整数 | プリフィックスの後に使用する最小桁数。 必要に応じて、自動番号に先行ゼロが追加されます。たとえば、INC0001001 には 3 つの先行ゼロが含まれています。桁数が最小長を超えることがあります。たとえば、number_of_digits が 2 で、テーブルに 99 を超えるレコードが作成された場合、その番号は 100 を超えて継続します (INC101 など)。 警告: このフィールドを変更して、テーブルの既存レコードのすべての番号値を更新できます。本番インスタンスでこのフィールドを変更する場合は注意が必要です。 デフォルト値:7 |
auto_number: {
prefix: 'TODO',
number: 2000,
digits: 9,
}