ServiceNow Fluent
Définissez les métadonnées d’application dans le code source à l’aide du langage de programmation spécifique au ServiceNow Fluent domaine.
Vue d'ensemble de ServiceNow Fluent
ServiceNow Fluent est un langage spécifique à domaine (DSL) basé sur TypeScript pour définir les fichiers de métadonnées [sys_metadata] qui composent les applications et inclut des API pour les différents types de métadonnées, tels que les tables, les rôles, les ACL, les règles métier et Framework de tests automatisés les tests.
Les développeurs définissent ces métadonnées en quelques lignes de code plutôt que par le biais d’un formulaire ou d’une interface utilisateur d’outil de création. Applications créées ou converties avec le ou ServiceNow SDK la prise en charge en cours de ServiceNow IDE développement dans ServiceNow Fluent.
Pour commencer à utiliser le ServiceNow IDE ou ServiceNow SDK, consultez la documentation ou ServiceNow IDEServiceNow SDK .
API
ServiceNow Fluent inclut des API pour les types de métadonnées suivants. Vous pouvez utiliser l’API d’enregistrement pour définir les métadonnées d’application qui n’ont pas d’API dédiée.
Pour en savoir plus sur les API et des exemples, consultez ServiceNow Fluent API reference et le référentiel d’exemples du SDK ServiceNow GitHub .
- Listes de contrôle d’accès (ACL)
- Menus d'application
- Tests Framework de tests automatisés
- Règles métier
- Scripts clients
- Listes
- Propriétés
- Enregistrements
- Rôles
- API REST basées sur un script
- Tables
Utilisation
Dans les fichiers avec l’extension .now.ts , utilisez des objets dans ServiceNow Fluent les API pour définir les métadonnées dans l’application. Vous devez également inclure les importations requises pour les API à partir 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,
})Une fois l’application créée, ce code source génère les fichiers de métadonnées d’application suivants sur l’instance.
@fluent-ignorer: supprime les avertissements de diagnostic et les ServiceNow Fluent erreurs dans la ligne de code suivante.@fluent-disable-sync: désactive la synchronisation des modifications apportées à un ServiceNow Fluent objet. À utiliser avant une expression d’appel (par exemple,Record({ ... }))pour désactiver la synchronisation de cet objet et de ses objets enfants. N’utilisez cette directive que si vous souhaitez ignorer les modifications apportées à l’objet en dehors du code source et ne jamais le mettre à jour lors de la synchronisation.@fluent-disable-sync-for-file: désactive la synchronisation des modifications apportées à un ServiceNow Fluent fichier (.now.ts). Utilisez dans la première ligne du fichier pour désactiver la synchronisation de tout le code du fichier. N’utilisez cette directive que si vous voulez ignorer les modifications apportées au fichier en dehors du code source et ne jamais le mettre à jour lors de la synchronisation.