API Business Rule : ServiceNow Fluent
L’API Business Rule définit 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.
Pour obtenir des informations générales sur les règles métier, reportez-vous à la section Classic Business rules.
Objet BusinessRule
Créez 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. Lorsque vous créez l’application, cet ID est haché en une sys_id unique. Pour en savoir plus, consultez ServiceNow Fluent Constructions linguistiques. Format : |
| nom | Chaîne | Requis. Nom attribué à la règle métier. |
| Table | Chaîne | Requis. Le nom de la table sur laquelle la règle métier s’exécute. |
| script | Script | Un script personnalisé s’exécute lorsque les conditions définies sont vraies. Cette propriété prend en charge une fonction d’un module JavaScript, une référence à un autre fichier dans l’application qui contient un script ou JavaScript en ligne. Format :
|
| order | Numéro | Numéro indiquant l’ordre dans lequel la 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 |
| actif | Booléen | Marqueur indiquant si la règle métier est activée. Valeurs valides :
Par défaut : true |
| quand | Chaîne | Heure à laquelle la règle métier doit s’exécuter. Pour en savoir plus sur le moment où les règles métier s’exécutent, reportez-vous à la section How business rules work. Valeurs valides :
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 How business rules work. Valeurs valides :
|
| addMessage | Booléen | Marqueur indiquant s’il faut ajouter un message qui s’affiche lorsque la règle métier fonctionne. Valeurs valides :
Valeur par défaut : false |
| abortAction | 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 | Un message qui s’affiche lorsque la règle métier s’exécute. |
| roleConditions | Tableau | Liste des identificateurs de variables d’objets de rôle que les utilisateurs qui modifient des enregistrements dans la table doivent avoir pour que la règle métier s’exécute. Pour plus d'informations, consultez API du rôle : ServiceNow Fluent. |
| condition | Chaîne | Instruction conditionnelle JavaScript qui spécifie les champs et les valeurs qui doivent être vrais pour que le script s’exécute. Cette propriété prend en charge le JavaScript en ligne ou une référence à un autre fichier dans l’application qui contient un script. Remarque : N’utilisez pas cette propriété si vous incluez l’instruction condition avec les propriétés filterCondition ou script . Lorsque vous spécifiez l’instruction condition avec cette propriété, la condition est évaluée séparément et la règle métier s’exécute uniquement si la condition est vraie. Pour que l’instruction condition soit réévaluée une seconde fois avant d’exécuter une règle métier asynchrone, définissez la glide.businessrule.async_condition_check propriété système sur vrai. Format :
|
| filterCondition | 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. |
| setFieldValue | Chaîne | Les valeurs à définir pour les champs de la table. Cela peut être fourni sous la forme d’une requête codée, telle que setFieldValue : « sec_created=false^EQ ». |
| description | Chaîne | Description de ce que fait la règle métier. |
| Politique de protection | Chaîne | Une politique qui détermine si une personne peut afficher ou modifier l’include de script après l’installation de l’application sur son instance. Si cette propriété n’est pas définie, d’autres développeurs d’applications peuvent personnaliser l’include de script. Valeurs valides :
|
| $meta | Objet | Métadonnées pour les métadonnées de l’application. Avec la propriété installMethod , vous pouvez mapper les métadonnées d’application à un répertoire de sortie qui ne se charge que dans des circonstances spécifiques. Valeurs valides pour 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],
})