ビジネスルール API - ServiceNow Fluent
ビジネスルール API は、レコードが表示、挿入、更新、または削除されるとき、またはテーブルに対してクエリが実行されるときに実行されるサーバー側スクリプト [sys_script] を定義します。
ビジネスルールに関する一般的な情報については、「 Classic Business rules」を参照してください。
BusinessRule オブジェクト
特定のサーバー側条件が満たされたときにフォームフィールドの値を自動的に変更するビジネスルール [sys_script] を作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| $id | 文字列または数値 | 必須。メタデータオブジェクトの一意の ID。アプリケーションをビルドすると、この ID は一意のsys_idにハッシュされます。詳細については、「ServiceNow Fluent 言語構成」を参照してください。 形式: |
| name | 文字列 | 必須。ビジネスルールの名前。 |
| table | 文字列 | 必須。ビジネスルールが実行されるテーブルの名前。 |
| スクリプト | スクリプト | カスタムスクリプトは、定義された条件が true の場合に実行されます。 このプロパティは、JavaScript モジュールからの関数、スクリプトを含むアプリケーション内の別のファイルへの参照、またはインライン JavaScript をサポートします。 Format (形式):
|
| 順序 | 番号 | ビジネスルールを実行する順序を示す番号。特定のアクティビティに複数のルールがある場合、ルールは指定された順序 (昇順) で実行されます。 デフォルト:100 |
| アクティブ | ブール | ビジネスルールが有効かどうかを示すフラグ。 有効な値:
デフォルト:true |
| when | 文字列 | ビジネスルールを実行する時間。ビジネスルールを実行するタイミングの詳細については、「How business rules work」を参照してください。 有効な値:
デフォルト:before |
| action | アレイ | ビジネスルールが適用されるレコードオプション。ビジネスルールアクションの詳細については、「How business rules work」を参照してください。 有効な値:
|
| addMessage | ブール | ビジネスルールの実行時に表示されるメッセージを追加するかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| abortアクション | ブール | 現在のデータベーストランザクションを中止するかどうかを示すフラグ。たとえば、挿入前のビジネスルールで、条件が満たされている場合は、レコードをデータベースに挿入しません。 有効な値:
デフォルト値:false |
| message | 文字列 | ビジネスルールの実行時に表示されるメッセージ。 |
| ロール条件 | アレイ | テーブル内のレコードを変更するユーザーがビジネスルールを実行するために持っている必要がある ロール オブジェクトの変数識別子のリスト。詳細については、「ロール API - ServiceNow Fluent」を参照してください。 |
| condition | 文字列 | スクリプトを実行するために true でなければならないフィールドと値を指定する JavaScript 条件ステートメント。 このプロパティは、インライン JavaScript、またはスクリプトを含むアプリケーション内の別のファイルへの参照をサポートします。 注: filterCondition またはスクリプトプロパティに条件ステートメントを含める場合は、このプロパティを使用しないでください。 このプロパティで条件ステートメントを指定すると、条件が個別に評価され、条件が true の場合にのみビジネスルールが実行されます。非同期ビジネスルールを実行する前に条件ステートメントを再評価するには、 glide.businessrule.async_condition_check システムプロパティを true に設定します。 Format (形式):
|
| filterCondition | 文字列 | ビジネスルールを実行するために true でなければならないフィールドと値を指定するフィルタークエリ。詳細については、「Operators available for filters and queries」を参照してください。 |
| フィールド値の設定 | 文字列 | テーブルのフィールドに設定する値。これは、 setFieldValue: 'sec_created=false^EQ' などのエンコードされたクエリとして指定できます。 |
| 説明 | 文字列 | ビジネスルールの実行内容の説明。 |
| $meta | オブジェクト | アプリケーションメタデータのメタデータ。 installMethod プロパティを使用すると、特定の状況でのみロードされる出力ディレクトリにアプリケーションメタデータをマップできます。 installMethod の有効な値:
|
import { BusinessRule } from '@servicenow/sdk/core'
import { FunctionExport, FunctionExpression } from '../server/scripts.js'
import DefaultExportFunction from '../server/scripts.js'
const BR1 = BusinessRule({
name: 'exportedFunction',
table: 'x_snc_table',
when: 'after',
action: ['update', 'delete', 'insert'],
script: FunctionExport,
order: 100,
active: true,
addMessage: false,
message: '<p>message</p>',
abortAction: false,
$id: Now.ID[0],
})
const BR2 = BusinessRule({
name: 'businessrule2',
table: 'x_snc_table',
script: FunctionExpression,
when: 'after',
action: ['update'],
$id: Now.ID[1],
})
const BR3 = BusinessRule({
name: 'businessrule3',
table: 'x_snc_table',
script: DefaultExportFunction,
when: 'after',
action: ['update'],
filterCondition: `sys_updated_onSTARTSWITHb^sys_updated_bySTARTSWITHm^EQ
<item goto="false" or="false" field="sys_updated_on" endquery="false" value="b" operator="STARTSWITH" newquery="false"/>
<item goto="false" or="false" field="sys_updated_by" endquery="false" value="m" operator="STARTSWITH" newquery="false"/>
<item goto="false" or="false" field="" endquery="true" value="" operator="=" newquery="false"/>`,
$id: Now.ID[2],
})
const BR4 = BusinessRule({
name: 'templateBR',
action: ['insert'],
when: 'after',
table: 'x_snc_table',
roleConditions: [admin],
order: 100,
active: true,
addMessage: true,
message: '<p>message</p>',
script: `gs.info('info')`,
abortAction: false,
$id: Now.ID[3],
})