ServiceNow Fluent
ServiceNow Fluent ドメイン固有のプログラミング言語を使用して、ソースコードでアプリケーションメタデータを定義します。
ServiceNow Fluentの概要
ServiceNow Fluent は、アプリケーションを構成するメタデータファイル [sys_metadata] を定義するための TypeScript に基づくドメイン固有言語 (DSL) であり、テーブル、ロール、ACL、ビジネスルール、自動テストフレームワーク (ATF) テストなど、さまざまなタイプのメタデータの API が含まれています。
開発者は、フォームやビルダーツールのユーザーインターフェイスではなく、数行のコードでこのメタデータを定義します。ServiceNow IDE または ServiceNow SDK で作成または変換されたアプリケーションは、ServiceNow Fluent での開発をサポートしています。
ServiceNow IDE または ServiceNow SDK の使用を開始するには、『ServiceNow IDE』または『ServiceNow SDK』のドキュメントを参照してください。
API
ServiceNow Fluent には、次のタイプのメタデータの API が含まれています。レコード API を使用して、専用 API を持たないアプリケーションメタデータを定義できます。
API と例の詳細については、「 ServiceNow Fluent API reference および ServiceNow SDK サンプル GitHub リポジトリ」を参照してください。
- アクセス制御リスト (ACL)
- アプリケーションメニュー
- 自動テストフレームワーク (ATF) テスト
- ビジネスルール
- クライアントスクリプト
- リスト
- プロパティ
- レコード
- ロール
- スクリプト済み REST APIs
- テーブル
使用法
拡張子が .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,
})アプリケーションのビルド後、このソースコードはインスタンスで次のアプリケーションメタデータファイルを生成します。
@fluent-ignore:次のコード行 ServiceNow Fluent 診断の警告とエラーを抑制します。@fluent-disable-sync: ServiceNow Fluent オブジェクトへの変更の同期をオフにします。呼び出し式の前 (例: Record({ ... }))を使用して、そのオブジェクトとその子オブジェクトの同期をオフにします。このディレクティブは、ソースコードの外部でオブジェクトに加えられた変更を無視し、同期時に更新しない場合にのみ使用してください。@fluent-disable-sync-for-file: ServiceNow Fluent ファイル (.now.ts) への変更の同期をオフにします。ファイルの最初の行で使用して、ファイル内のすべてのコードの同期をオフにします。このディレクティブは、ソースコードの外部でファイルに加えられた変更を無視し、同期時に更新しない場合にのみ使用してください。