API de règle métier : ServiceNow Fluent
L’API Règle métier inclut des objets qui définissent des scripts côté serveur [sys_script] qui s’exécutent lorsqu’un enregistrement est affiché, inséré, mis à jour ou supprimé, ou lorsqu’une table est interrogée.
Objet BusinessRule
Créer une règle métier [sys_script] qui modifie automatiquement les valeurs des champs de formulaire lorsque certaines conditions côté serveur sont remplies.
| Nom | Type | Description |
|---|---|---|
| $id | Chaîne ou numéro | Requis. ID unique pour l’objet de métadonnées fourni au format suivant, où < valeur > est une chaîne ou un numéro.Lorsque vous créez l’application, cet ID est haché en une sys_ID unique. |
| nom | Chaîne | Requis. Nom pour la règle métier. |
| table | Chaîne | Requis. Le nom de la table sur laquelle la règle métier s’exécute. |
| order | Entier | Nombre indiquant l’ordre dans lequel cette règle métier doit s’exécuter. S’il existe plusieurs règles sur une activité particulière, les règles s’exécutent dans l’ordre spécifié, de la plus basse à la plus élevée. Par défaut : 100 |
| script | Script | Fonction ou script en ligne précédé d’une balise de script . Le script personnalisé s’exécute lorsque les conditions définies sont vraies.Pour les fonctions, utilisez le nom d’une fonction, d’une expression de fonction ou d’une fonction par défaut exportée à partir d’un module JavaScript et importée dans le fichier .now.ts . Pour plus d’informations sur les modules JavaScript, reportez-vous à la section Modules JavaScript et bibliothèques tierces. Les scripts en ligne utilisent la balise de script au format suivant :
|
| quand | Chaîne | Quand cette règle métier doit s’exécuter Pour plus d’informations sur le moment où les règles métier s’exécutent, reportez-vous à la section Fonctionnement des règles métier. Valeurs valides : avant, après, async, affichage Par défaut : avant |
| action | Tableau | Options d’enregistrement auxquelles la règle métier s’applique. Pour plus d’informations sur les actions de règle métier, reportez-vous à la section Fonctionnement des règles métier. Valeurs valides : insérer, mettre à jour, supprimer, interroger |
| actif | Booléen | Marqueur indiquant s’il faut utiliser la règle métier. Valeurs valides :
Par défaut : true |
| add_message | Booléen | Marqueur indiquant s’il faut ajouter un message qui s’affiche lorsque la règle métier s’exécute. Valeurs valides :
Valeur par défaut : false |
| abort_action | Booléen | Marqueur indiquant s’il faut abandonner ou non la transaction de base de données actuelle. Par exemple, dans une règle métier avant l’insertion, si les conditions sont remplies, n’insérez pas l’enregistrement dans la base de données. Valeurs valides :
Valeur par défaut : false |
| message | Chaîne | Message qui s’affiche lors de l’exécution de la règle métier. |
| role_conditions | Tableau | Une liste d’identificateurs de variables d’objets de rôle que les utilisateurs qui modifient des enregistrements dans la table doivent avoir pour que cette règle métier s’exécute. Pour plus d'informations, consultez API du rôle : ServiceNow Fluent. |
| condition | Chaîne | Une instruction conditionnelle JavaScript qui spécifie les champs et les valeurs qui doivent être vrais pour que la règle métier s’exécute. N’utilisez pas cette propriété si vous incluez l’instruction condition avec les filter_condition propriétés ou script . En ajoutant l’instruction condition à cette propriété, vous indiquez au système d’évaluer la condition séparément et d’exécuter la règle métier uniquement si la condition est vraie. Pour que l’instance réévalue une seconde fois l’instruction de condition avant d’exécuter une règle métier asynchrone, ajoutez la propriété glide.businessrule.async_condition_check système et définissez la valeur sur vrai. |
| filter_condition | Chaîne | Requête de filtre qui précise les champs et les valeurs qui doivent être vrais pour que la règle métier s’exécute. Pour plus d'informations, consultez Operators available for filters and queries. |
| set_field_value | Chaîne | Les valeurs pour définir les champs dans la table. Cela peut être fourni sous la forme d’une requête codée, telle que set_field_value : 'sec_created=false^EQ'. |
| description | Chaîne | Description de l’action de la règle métier. |
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,
add_message: false,
message: '<p>message</p>',
abort_action: 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'],
filter_condition: `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',
role_conditions: [admin],
order: 100,
active: true,
add_message: true,
message: '<p>message</p>',
script: script`gs.info('info')`,
abort_action: false,
$id: Now.ID[3],
})