Defina metadados da aplicação em código com ServiceNow Fluent e o ServiceNow SDK
Definir metadados da aplicação no código com ServiceNow Fluent e o ServiceNow SDK.
Antes de Iniciar
- Instale o servidor de idiomas ServiceNow Fluent para obter o processamento e a validação de idioma para ServiceNow Fluent em Visual Studio Code. Para obter mais informações, consulte Instale o servidor de idiomas ServiceNow Fluent em Visual Studio Code.
- Crie ou converta uma aplicação com escopo com o ServiceNow SDK. Para obter mais informações, consulte Criar uma aplicação com ServiceNow SDK ou .
Função necessária: administrador
Por Que e Quando Desempenhar Esta Tarefa
ServiceNow Fluent é uma linguagem específica de domínio (DSL) baseada em 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ócio e testes Automated Test Framework. Para obter mais informações sobre ServiceNow Fluent APIs e exemplos, consulte ServiceNow Fluent Referência de API.
Procedimento
@fluent-ignore: suprime ServiceNow Fluent avisos de diagnóstico e erros na linha de código a seguir.@fluent-disable-sync: desativa a sincronização de mudanças para um objeto ServiceNow Fluent. Use antes de uma expressão de chamada (por exemplo,Record({ ... })) para desativar a sincronização desse objeto e de seus objetos secundários. Use esta diretiva somente se quiser ignorar as mudanças feitas fora do código de origem no objeto e nunca atualizá-lo durante a sincronização.@fluent-disable-sync-for-file: desativa a sincronização de mudanças para um arquivo ServiceNow Fluent (.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 quiser ignorar as mudanças feitas fora do código de origem no arquivo e nunca atualizá-lo durante a sincronização.
Definição de metadados da aplicação no código de origem com ServiceNow Fluent
Em arquivos com a extensão .now.ts, use objetos nas APIs ServiceNow Fluent para definir metadados na aplicação. Você também deve incluir as importações necessárias para as APIs de @servicenow/sdk/core.
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,
})Depois de criar e implantar a aplicação, este código de origem gera os seguintes arquivos de metadados da aplicação na instância.