ServiceNow IDE の ServiceNow Fluent を使用してコードでアプリケーションメタデータを定義する
を使用してコードでアプリケーションメタデータを定義する ServiceNow FluentServiceNow IDEで。
始める前に
ServiceNow IDEを使用してスコープ対象のアプリケーションを作成またはクローンします。詳細については、「 ServiceNow IDE でアプリケーションを作成する 」または「 ServiceNow IDE で Git リポジトリのクローンを作成する」を参照してください。
必要なロール:admin
このタスクについて
ServiceNow Fluent は、アプリケーションを構成するメタデータファイル [sys_metadata] を定義するための TypeScript に基づくドメイン固有言語 (DSL) であり、テーブル、ロール、ACL、ビジネスルール、 自動テストフレームワーク (ATF) テストなど、さまざまなタイプのメタデータの API が含まれています。 ServiceNow Fluent API と例の詳細については、「ServiceNow Fluent API リファレンス」を参照してください。
ServiceNow IDE には、ServiceNow Fluent API の言語処理と検証がデフォルトで用意されています。これには、.now.ts ファイル内の必要なプロパティとインポートのチェックが含まれます。
手順
ServiceNow Fluent を使用してソースコードでアプリケーションメタデータを定義する
拡張子が .now.ts のファイルで、ServiceNow Fluent API のオブジェクトを使用して、アプリケーションのメタデータを定義します。また、@servicenow/sdk/core からの API に、必要なインポートも含める必要があります。
import '@servicenow/sdk/global'
import { BusinessRule } from '@servicenow/sdk/core'
import { ClientScript } from '@servicenow/sdk/core'
import { Table, DateColumn, StringColumn } from '@servicenow/sdk/core'
import { showStateUpdate } from '../server/script.js'
//creates todo table, with three columns (deadline, status and task)
export const x_snc_example_to_do = Table({
name: 'x_snc_example_to_do',
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 }),
},
})
//creates a client script that pops up 'Table loaded successfully!!' message everytime todo record is loaded
ClientScript({
$id: Now.ID['cs0'],
name: 'my_client_script',
table: 'x_snc_example_to_do',
active: true,
applies_extended: false,
global: true,
ui_type: 'all',
description: 'Custom client script generated by Now SDK',
messages: '',
isolate_script: false,
type: 'onLoad',
script: script`function onLoad() {
g_form.addInfoMessage("Table loaded successfully!!")
}`,
})
//creates a business rule that pops up state change message whenever a todo record is updated
BusinessRule({
$id: Now.ID['br0'],
action: ['update'],
table: 'x_snc_example_to_do',
script: showStateUpdate,
name: 'LogStateChange',
order: 100,
when: 'after',
active: true,
})アプリケーションのビルド後、このソースコードはインスタンスで次のアプリケーションメタデータファイルを生成します。
次のタスク
アプリケーションをビルドして、ソースコードをアプリケーションメタデータにコンパイルし、変更をインスタンス全体で使用できるようにします。詳細については、「でのアプリケーションのビルド ServiceNow IDE」を参照してください。