API Business Rule : ServiceNow Fluent

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 6 minutes de lecture
  • 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.

    Remarque :
    Pour obtenir la documentation et des exemples d’API les plus récents ServiceNow Fluent , consultez les ServiceNow Fluent Référence API et référentiel d’exemples de SDK ServiceNow sur GitHub.

    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.

    Tableau 1. Propriétés
    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 : Now.ID['chaîne' ou numéro]

    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 :
    • 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 importez-la dans le fichier .now.ts . Pour en savoir plus sur les modules JavaScript, reportez-vous à la section Modules JavaScript et bibliothèques tierces.
    • Pour utiliser le contenu textuel d’un autre fichier, reportez-vous à un fichier de l’application en utilisant le format suivant : Now.include('chemin/vers/fichier'). Pour plus d'informations, consultez ServiceNow Fluent Constructions linguistiques.
    • Pour fournir un script inline, utilisez des chaînes de caractères ou des modèles de lignes de code : « Script » ou « Script ».
    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 :
    • true : la règle métier est appliquée.
    • false : la règle métier n’est pas appliquée.

    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 :
    • 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 How business rules work.
    Valeurs valides :
    • insérer
    • mettre à jour
    • supprimer
    • requête
    addMessage Booléen Marqueur indiquant s’il faut ajouter un message qui s’affiche lorsque la règle métier fonctionne.
    Valeurs valides :
    • vrai : affiche un message.
    • faux : n’affiche pas de message.

    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 :
    • false : n’abandonne pas la transaction de base de données actuelle.
    • vrai : abandonne la transaction de base de données actuelle. Vous ne pouvez pas effectuer d’actions supplémentaires sur l’enregistrement, telles que la définition de valeurs de champ et l’exécution de scripts. Vous pouvez toujours afficher un message aux utilisateurs avec les propriétés addMessage et message .

    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 :
    • Pour utiliser le contenu textuel d’un autre fichier, reportez-vous à un fichier de l’application en utilisant le format suivant : Now.include('chemin/vers/fichier'). Pour plus d'informations, consultez ServiceNow Fluent Constructions linguistiques.
    • Pour fournir un script inline, utilisez des chaînes de caractères ou des modèles de lignes de code : « Script » ou « Script ».
    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 :
    • read : permet à quiconque de lire les valeurs de cet include de script téléchargé ou installé. Personne ne peut changer les valeurs de script sur l’instance sur laquelle il télécharge ou installe l’include de script.
    • protégé : fournit une protection de la propriété intellectuelle aux développeurs d’applications. Les clients qui téléchargent l’include de script ne peuvent pas voir le contenu du champ de script. Le script est chiffré en mémoire pour empêcher les utilisateurs non autorisés de le voir en texte brut.
    $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.
    $meta: {
          installMethod: 'String'
    }
    Valeurs valides pour installMethod :
    • demo : génère les métadonnées de l’application dans le répertoire metadata/unload.demo à installer avec l’application lorsque l’option Charger les données de démonstration est sélectionnée.
    • première installation : génère les métadonnées de l’application dans le répertoire metadata/unload à installer uniquement la première fois qu’une application est installée sur une instance.
    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],
    })