Business Rule-API – ServiceNow Fluent

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 3 Minuten Lesedauer
  • Die Business Rule-API enthält Objekte, die serverseitige Skripts [sys_script] definieren, die ausgeführt werden, wenn ein Datensatz angezeigt, eingefügt, aktualisiert oder gelöscht wird oder wenn eine Tabelle abgefragt wird.

    BusinessRule-Objekt

    Erstellen Sie eine Geschäftsregel [sys_script], die automatisch Werte in Formularfeldern ändert, wenn bestimmte serverseitige Bedingungen erfüllt sind.

    Tabelle : 1. Eigenschaften
    Name Typ Beschreibung
    $ID Zeichenfolge oder Zahl Erforderlich. Eine eindeutige ID für das Metadatenobjekt, die im folgenden Format bereitgestellt wird: wobei<value> ist eine Zeichenfolge oder Zahl.
    $id: Now.ID[<value>]

    Wenn Sie die Anwendung erstellen, wird diese ID in eine eindeutige sys_ID gehasht.

    Name Zeichenfolge Erforderlich. Ein Name für die Geschäftsregel.
    Tabelle Zeichenfolge Erforderlich. Der Name der Tabelle, für die die Geschäftsregel ausgeführt wird.
    Bestellen Ganzzahl Eine Zahl, die die Reihenfolge angibt, in der diese Business-Regel ausgeführt werden soll. Wenn für eine bestimmte Aktivität mehrere Regeln vorhanden sind, werden die Regeln in der angegebenen Reihenfolge ausgeführt, von der niedrigsten zur höchsten.

    Standard: 100

    Skript Skript Eine Funktion oder ein Inline-Skript, dem ein Skript -Tag vorangestellt ist. Das anwenderdefinierte Skript wird ausgeführt, wenn die definierten Bedingungen „wahr“ sind.

    Verwenden Sie für Funktionen den Namen einer Funktion, eines Funktionsausdrucks oder einer Standardfunktion, die aus einem JavaScript-Modul exportiert und in die .now.ts -Datei importiert wurde. Informationen zu JavaScript-Modulen finden Sie unter JavaScript-Module und Bibliotheken von Drittparteien.

    Inline-Skripts verwenden das Skript -Tag im folgenden Format:
    script: script`gs.info('info')`,
    when Zeichenfolge Wann diese Business Rule ausgeführt werden soll. Weitere Informationen dazu, wann Business-Regeln ausgeführt werden, finden Sie unter Wie Business Rules funktionieren.

    Gültige Werte: vor, nach, asynchron, Anzeige

    Standard: before

    Aktion Array Die Datensatzoptionen, für die diese Geschäftsregel gilt. Weitere Informationen zu Business-Regel-Aktionen finden Sie unter Wie Business Rules funktionieren.

    Gültige Werte: Einfügen, Aktualisieren, Löschen, Abfragen

    aktiv Boolean Kennzeichnung, die angibt, ob die Geschäftsregel verwendet werden soll.
    Gültige Werte:
    • wahr: Die Business-Regel wird erzwungen.
    • „false“: Die Business-Regel wird nicht erzwungen.

    Standardwert: true

    add_message Boolean Kennzeichnung, die angibt, ob eine Nachricht hinzugefügt werden soll, die angezeigt wird, wenn die Business-Regel ausgeführt wird.
    Gültige Werte:
    • true: Zeigt eine Nachricht an.
    • false: Zeigt keine Nachricht an.

    Standardwert: false

    abort_action Boolean Kennzeichnung, die angibt, ob die aktuelle Datenbanktransaktion abgebrochen werden soll. Nehmen wir an, Sie haben eine Business Rule, die vor Einfügevorgängen ausgeführt werden soll. Wenn ihre Bedingungen zutreffen, wird der Datensatz nicht in die Datenbank eingefügt.
    Gültige Werte:
    • „falsch“: Bricht die aktuelle Datenbanktransaktion nicht ab.
    • „wahr“: Bricht die aktuelle Datenbanktransaktion ab. Sie können keine zusätzlichen Aktionen für den Datensatz ausführen, z. B. das Festlegen von Feldwerten und das Ausführen von Skripts. Sie können Benutzern mit den Eigenschaften add_message und message weiterhin eine Nachricht anzeigen.

    Standardwert: false

    Nachricht Zeichenfolge Eine Nachricht, die angezeigt wird, wenn die Geschäftsregel ausgeführt wird.
    role_conditions Array Eine Liste der Variablenbezeichner von Rollenobjekten, die Anwender haben müssen, die Datensätze in der Tabelle ändern, damit diese Business Rule ausgeführt werden kann. Weitere Informationen finden Sie unter Rollen-API – ServiceNow Fluent.
    Bedingung Zeichenfolge Eine bedingte JavaScript-Anweisung, die die Felder und Werte angibt, die „wahr“ sein müssen, damit die Geschäftsregel ausgeführt werden kann. Verwenden Sie diese Eigenschaft nicht, wenn Sie die Bedingungsanweisung mit den Eigenschaften filter_condition oder script einbeziehen.

    Indem Sie dieser Eigenschaft die Bedingungsanweisung hinzufügen, weisen Sie das System an, die Bedingung separat auszuwerten und die Geschäftsregel nur auszuführen, wenn die Bedingung „wahr“ ist. Damit die Instanz die Bedingungsanweisung vor dem Ausführen einer asynchronen Business Rule ein zweites Mal neu auswertet, fügen Sie die Systemeigenschaft glide.businessrule.async_condition_check hinzu, und legen Sie den Wert auf true fest.

    filter_condition Zeichenfolge Eine Filterabfrage, die die Felder und Werte angibt, die „wahr“ sein müssen, damit die Geschäftsregel ausgeführt werden kann. Weitere Informationen finden Sie unter Operators available for filters and queries.
    set_field_value Zeichenfolge Die Werte zum Festlegen von Feldern in der Tabelle. Dies kann als codierte Abfrage bereitgestellt werden, z. B. set_field_value: 'sec_created=false^EQ'.
    Beschreibung Zeichenfolge Beschreibung der Funktion der Business Rule.
    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],
    })