ServiceNow Fluent
Defina metadados da aplicação no código-fonte usando ServiceNow Fluentlinguagem de programação específica do domínio.
Visão geral do ServiceNow Fluent
ServiceNow FluentÉ uma linguagem 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 Frameworktestes.
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. IDE da ServiceNowou ServiceNow SDKapoiar o desenvolvimento em ServiceNow Fluent.
ServiceNow Fluentcompatível com sincronização bidirecional, o que permite que as mudanças nos metadados sejam sincronizadas a partir de outros ServiceNow AI Platformo 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. IDE da ServiceNowou ServiceNow SDK, consulte IDE da ServiceNowou ServiceNow SDKdocumentação.
ServiceNow Fluent APIs
ServiceNow Fluent Inclui APIs para os seguintes 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 detalhes sobre APIs e exemplos, consulte ServiceNow Fluent Referência de APIe o. Exemplos de SDK da ServiceNow GitHubrepositório.
- ACLs (listas de controle de acesso)
- Menus da aplicação
- Testes Automated Test Framework
- Regras de negócio
- Scripts de cliente
- Privilégios entre escopos
- Conjuntos para importação
- Listas
- Propriedades
- Registros
- Funções
- Ações de script
- Inclusões de script
- Scripted REST APIs
- Widgets do portal de serviços
- Tabelas
- Ações de IU
- Páginas de IU
- Políticas de IU
ServiceNow Fluent uso
Em arquivos com .now.ts extensão, use objetos no ServiceNow FluentAPIs 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.
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,
})function onLoad() {
g_form.addInfoMessage("Table loaded successfully!!")
}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.
fluent-ignore: Suprime ServiceNow Fluenterros e avisos de diagnóstico na seguinte linha de código.fluent-disable-sync: Desativa a sincronização de mudanças para um ServiceNow Fluentobjeto. 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 Fluentarquivo ( .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.