ServiceNow Fluent

  • Versão de lançamento: Australia
  • Atualizado 12 de mar. de 2026
  • 3 min. de leitura
  • Defina metadados da aplicação no código-fonte usando ServiceNow Fluent linguagem de programação específica do domínio.

    Visão geral do ServiceNow Fluent

    ServiceNow FluentÉ uma linguagem declarativa específica do domínio (DSL) baseada no typescript para definir os arquivos de metadados [sys_metadata] que compõem as aplicações e inclui APIs para os diferentes tipos de metadados, como tabelas, funções, ACLs, regras de negócios, e. Automated Test Framework testes.

    Os desenvolvedores definem esses metadados em algumas linhas de código, em vez de por meio de uma interface de usuário de ferramenta de formulário ou construtor. Aplicações criadas ou convertido com o. ServiceNow IDE ou ServiceNow SDK apoiar o desenvolvimento em ServiceNow Fluent.

    ServiceNow Fluent compatível com sincronização bidirecional, o que permite que as mudanças nos metadados sejam sincronizadas a partir de outros ServiceNow AI Platform o usuário interage com o código-fonte e muda o código-fonte para ser sincronizado de volta com os metadados na instância.

    Para começar a usar o. ServiceNow IDE ou ServiceNow SDK, consulte ServiceNow IDE ou ServiceNow SDK documentação.

    ServiceNow Fluent APIs

    ServiceNow Fluent Inclui APIs para muitos tipos de metadados. Você pode usar a API de registro para definir metadados da aplicação que não têm uma API dedicada. Para obter a lista mais recente de APIs compatíveis e exemplos, consulte ServiceNow Fluent Referência de API e. Repositório de exemplos do SDK da ServiceNow ativado GitHub.

    Nota:
    Um número limitado de tipos de metadados, como snapshots de metadados [sys_metadata_link] e ativos de UX [sys_ux_lib_asset], não pode ser representado como ServiceNow Fluent e não são transformados. Esses tipos de metadados permanecem como arquivos XML de metadados no metadados diretório da sua aplicação.

    ServiceNow Fluent uso

    Em arquivos com .now.ts extensão, use objetos no ServiceNow Fluent APIs para definir metadados na aplicação. Você também deve incluir as importações necessárias para as APIs de servicenow/sdk/core . Para objetos com scripts do lado do servidor, como BusinessRule Objeto, você pode importar e usar código de módulos JavaScript.

    O exemplo a seguir inclui as definições de uma tabela, script de cliente e regra de negócio na aplicação. O script do cliente usa um script do client-script.js arquivo. A regra de negócio usa uma função do script.js JavaScript.
    import '@servicenow/sdk/global'
    import { BusinessRule, ClientScript, DateColumn, StringColumn, Table } 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' },
                    inProgress: { 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,
        appliesExtended: false,
        global: true,
        uiType: 'all',
        description: 'Custom client script generated by Now SDK',
        isolateScript: false,
        type: 'onLoad',
        script: Now.include('../client/client-script.js'),
    })
    
    //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,
    })
    O script do cliente referenciado a partir de ClientScript objeto:
    function onLoad() {
        g_form.addInfoMessage("Table loaded successfully!!")
    }
    O módulo JavaScript referenciado a partir de BusinessRule objeto:
    import { gs } from '@servicenow/glide'
    
    export function showStateUpdate(current, previous) { 
        const currentState = current.getValue('state')
        const previousState = previous.getValue('state')
    
        gs.addInfoMessage(`state updated from "${previousState}" to "${currentState}"`)
    }

    Depois de criar a aplicação, este código-fonte gera os seguintes arquivos de metadados da aplicação na instância.

    Figura 1. Metadados da aplicação gerados a partir de ServiceNow Fluent código
    Arquivos de aplicação gerados a partir do código de exemplo.
    Dica:
    Você pode usar as seguintes diretivas em um comentário de código para ajudar a gerenciar seu código:
    • fluent-ignore : Suprime ServiceNow Fluent erros e avisos de diagnóstico na seguinte linha de código.
    • fluent-disable-sync : Desativa a sincronização de mudanças para um ServiceNow Fluent objeto. Antes de uma expressão de chamada (por exemplo, Registro(...) ) para desativar a sincronização desse objeto e seus objetos secundários. Use esta diretiva somente se você quiser ignorar as mudanças feitas fora do código-fonte no objeto e nunca atualizá-lo durante a sincronização.
    • fluent-disable-sync-for-file : Desativa a sincronização de mudanças para um ServiceNow Fluent arquivo ( .now.ts ). Use na primeira linha do arquivo para desativar a sincronização de todos os códigos no arquivo. Use esta diretiva somente se você quiser ignorar as mudanças feitas fora do código-fonte no arquivo e nunca atualizá-lo durante a sincronização.