ServiceNow Fluent

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 3 Minuten Lesedauer
  • Definieren Sie Anwendungsmetadaten im Quellcode mit der domänenspezifischen Programmiersprache ServiceNow Fluent.

    Übersicht über ServiceNow Fluent

    ServiceNow Fluent ist eine auf TypeScript basierende domänenspezifische Sprache ( Domain Specific Language, Domänenspezifische Sprache) zum Definieren der Metadatendateien [sys_metadata], aus denen Anwendungen bestehen. Sie enthält APIs für die verschiedenen Arten von Metadaten, z. B. Tabellen, Rollen, ACLs, Business-Regeln und Automated Test Framework Tests.

    Entwickler definieren diese Metadaten in wenigen Codezeilen anstatt über ein Formular oder die Anwenderoberfläche des Builder-Tools. Anwendungen, die mit dem ServiceNow IDE - oder ServiceNow SDK -Support erstellt oder konvertiert wurden, werden in ServiceNow Fluententwickelt.

    ServiceNow Fluent unterstützt die bidirektionale Synchronisierung. Dadurch können Metadaten-Changes von anderen Now Platform -Benutzeroberflächen mit Quellcode synchronisiert und Quellcode-Changes mit Metadaten in der gesamten Instanz synchronisiert werden.
    Hinweis:
    Die Automated Test Framework -Test-API unterstützt nur unidirektionale Synchronisierung. Wenn nach der Definition eines ATF-Tests im Quellcode die Metadaten außerhalb des Quellcodes geändert werden, werden diese Änderungen nicht synchronisiert und im Quellcode nicht wiedergegeben.

    Informationen zu den ersten Schritten mit ServiceNow IDE oder ServiceNow SDKfinden Sie in der Dokumentation ServiceNow IDE oder ServiceNow SDK.

    APIs

    ServiceNow Fluent enthält APIs für die folgenden Metadatentypen. Sie können die Datensatz-API verwenden, um Anwendungsmetadaten zu definieren, die keine dedizierte API haben.

    Weitere Informationen zu den APIs und Beispielen finden Sie unter ServiceNow Fluent API reference und im ServiceNow SDK-Beispiel- GitHub Repository.

    • Zugriffssteuerungslisten (ACLs)
    • Anwendungsmenüs
    • Automated Test Framework-Tests
    • Business-Regeln
    • Client-Skripts
    • Listen
    • Eigenschaften
    • Datensätze
    • Rollen
    • Scripted REST APIs
    • Tabellen

    Monatlich

    Verwenden Sie in Dateien mit der Erweiterung „.now.ts“ Objekte in den ServiceNow Fluent APIs, um Metadaten in der Anwendung zu definieren. Sie müssen auch die erforderlichen Importe für die APIs von @servicenow/sdk/coreeinschließen.

    Das folgende Beispiel enthält die Definitionen einer Tabelle, eines Client-Skripts und einer Geschäftsregel in der Anwendung. Die Geschäftsregel verwendet eine Funktion aus dem JavaScript-Modul script.js.
    import '@servicenow/sdk/global'
    import { BusinessRule } from '@servicenow/sdk/core'
    import { ClientScript } from '@servicenow/sdk/core'
    import { Table, DateColumn, StringColumn } from '@servicenow/sdk/core'
    import { showStateUpdate } from '../server/script.js'
    
    //creates todo table, with three columns (deadline, status and task)
    export const x_snc_example_to_do = Table({
        name: 'x_snc_example_to_do',
        schema: {
            deadline: DateColumn({ label: 'deadline' }),
            state: StringColumn({
                label: 'State',
                choices: {
                    ready: { label: 'Ready' },
                    completed: { label: 'Completed' },
                    in_progress: { label: 'In Progress' },
                },
            }),
            task: StringColumn({ label: 'Task', maxLength: 120 }),
        },
    })
    
    //creates a client script that pops up 'Table loaded successfully!!' message everytime todo record is loaded
    ClientScript({
        $id: Now.ID['cs0'],
        name: 'my_client_script',
        table: 'x_snc_example_to_do',
        active: true,
        applies_extended: false,
        global: true,
        ui_type: 'all',
        description: 'Custom client script generated by Now SDK',
        messages: '',
        isolate_script: false,
        type: 'onLoad',
        script: script`function onLoad() {
            g_form.addInfoMessage("Table loaded successfully!!")
        }`,
    })
    
    //creates a business rule that pops up state change message whenever a todo record is updated
    BusinessRule({
        $id: Now.ID['br0'],
        action: ['update'],
        table: 'x_snc_example_to_do',
        script: showStateUpdate,
        name: 'LogStateChange',
        order: 100,
        when: 'after',
        active: true,
    })

    Nach dem Erstellen der Anwendung generiert dieser Quellcode die folgenden Anwendungsmetadatendateien in der -Instanz.

    Abbildung : 1. Aus ServiceNow Fluent -Code generierte Anwendungsmetadaten
    Anwendungsdateien, die aus dem Beispielcode generiert wurden.
    Tipp:
    Sie können die folgenden Anweisungen in einem Codekommentar verwenden, um Ihren Code zu verwalten:
    • @fluent-ignore: Unterdrückt ServiceNow Fluent Diagnosewarnungen und -fehler in der folgenden Codezeile.
    • @fluent-disable-sync: Deaktiviert die Synchronisierung von Changes mit einem Objekt ServiceNow Fluent. Verwenden Sie vor einem Anrufausdruck (z. B. Record({ ... })), um die Synchronisierung für dieses Objekt und seine untergeordneten Objekte zu deaktivieren. Verwenden Sie diese Direktive nur, wenn Sie Änderungen, die außerhalb des Quellcodes am Objekt vorgenommen werden, ignorieren und bei der Synchronisierung niemals aktualisieren möchten.
    • @fluent-disable-sync-for-file: Deaktiviert die Synchronisierung von Changes mit einer Datei ServiceNow Fluent (.now.ts). Verwenden Sie in der ersten Zeile der Datei, um die Synchronisierung für den gesamten Code in der Datei zu deaktivieren. Verwenden Sie diese Direktive nur, wenn Sie Änderungen, die außerhalb des Quellcodes an der Datei vorgenommen werden, ignorieren und bei der Synchronisierung niemals aktualisieren möchten.