API de règle métier : ServiceNow Fluent
L’API Business Rule inclut des objets qui définissent les scripts côté serveur [sys_script] qui s’exécutent lorsqu’un enregistrement est affiché, inséré, supprimé ou lorsqu’une table est interrogée.
Objet BusinessRule
Créer une règle métier [sys_script] qui change 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 nombre.Lorsque vous créez l’application, cet ID est haché dans un sys_ID unique. |
| nom | Chaîne | Requis. Nom de la règle métier. |
| table | Chaîne | Requis. Nom de la table sur laquelle la règle métier s’exécute. |
| order | Entier | Un nombre indiquant la séquence dans laquelle cette règle métier doit s’exécuter. S’il existe plusieurs règles pour 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é à partir d’un module JavaScript et importé dans le fichier .now.ts . Pour en savoir plus sur les modules JavaScript, reportez-vous à la section Modules JavaScript et bibliothèques tierces. Les scripts inline utilisent la balise script au format suivant :
|
| quand | Chaîne | Quand cette règle métier doit s’exécuter. Pour en savoir plus sur les conditions d’exécution des règles métier, reportez-vous à Fonctionnement des règles métier. Valeurs valides : before, after, async, display 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 à 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 :
Valeur 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 la transaction de base de données actuelle. Par exemple, dans une règle métier avant 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 lorsque la règle métier s’exécute. |
| role_conditions | Tableau | Une liste d’identificateurs variables d’objets de rôle que les utilisateurs qui modifient les enregistrements dans la table doivent posséder pour que cette règle métier s’exécute. Pour plus d'informations, consultez API de 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 de condition avec les filter_condition propriétés ou script . En ajoutant la 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 équivaut à vrai. Pour que l’instance réévalue l’instruction de condition une seconde fois 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 | Une requête de filtre qui spécifie 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 ce que fait 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],
})