API de règle métier : ServiceNow Fluent

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 4 minutes de lecture
  • 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.

    Tableau 1. Propriétés
    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.
    $id: Now.ID[<value>]

    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 :
    script: script`gs.info('info')`,
    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 :
    • vrai : la règle métier est appliquée.
    • false : la règle métier n’est pas appliquée.

    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 :
    • true : affiche un message.
    • false : n’affiche aucun message.

    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 :
    • false : n’abandonne pas la transaction de base de données actuelle.
    • true : 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 et add_messagemessage .

    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],
    })