ServiceNow Fluent

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 2 Minuten Lesedauer
  • Definieren Sie Anwendungsmetadaten im Quellcode mit der domänenspezifischen Programmiersprache ServiceNow Fluent.

    Übersicht

    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 ServiceNow IDE oder ServiceNow erstellt wurden, unterstützen die Entwicklung in ServiceNow Fluent.

    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 ServiceNowfinden 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. Einzelheiten zu den APIs und Beispiele finden Sie unter ServiceNow Fluent API reference.
    • 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/core einschließ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.