API de table : ServiceNow Fluent
L’API Table inclut des objets pour définir des tables [sys_db_object] dans une application incluse dans le périmètre.
Créez une table à l’aide de l’objet Table . À partir de la propriété de schéma , ajoutez des objets Column, tels que StringColumn ou IntegerColumn, pour définir les colonnes.
Pour des informations générales sur l’administration des tables, reportez-vous à la section Table administration.
Objet de table
Créer une table [sys_db_object] dans une application incluse dans le périmètre.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Requis. Nom pour la table commençant par le périmètre de l’application et en lettres minuscules, au format suivant : <périmètre>_<nom>. Le nom doit correspondre à l’identificateur de variable de l’objet Table . Remarque : Pour ajouter des colonnes à une table existante dans un périmètre d’application différent, vous pouvez fournir le nom de la table sans le périmètre de l’application suivi de comme n’importe lequel. Les noms de colonnes doivent commencer par le périmètre de l’application à la place.Longueur maximale : 80 |
| Schéma | Tableau | Requis. Liste d’objets de colonne . Pour plus d'informations, consultez Objet de colonne. |
| étend | Chaîne | Nom de toute autre table sur laquelle la table est basée. L'extension d'une table de base intègre tous les champs de la table d'origine et crée des champs système pour la nouvelle table. S’ils se trouvent dans le même champ d’application ou s’ils peuvent être configurés à partir d’autres champs d’application, vous pouvez étendre les tables marquées comme extensibles. |
| étiquette | Chaîne ou tableau | Étiquette unique pour la table dans les vues de liste et de formulaire. Les étiquettes de champ peuvent être fournies sous forme de chaîne ou de tableau d’objets d’étiquette . Pour en savoir plus, consultez Objet d’étiquette. Longueur maximale : 80 Par défaut : la valeur de la propriété name |
| affichage | Chaîne | Colonne d’affichage par défaut. Utilisez un nom de colonne à partir de la propriété schema . |
| extensible | Booléen | Marqueur indiquant si d’autres tables peuvent étendre la table. Valeurs valides :
Le changement de cette propriété de true à false empêche la création de tables enfants supplémentaires, mais les tables enfants existantes restent inchangées. Valeur par défaut : false |
| live_feed | Booléen | Marqueur indiquant si des flux en direct sont disponibles pour les enregistrements de la table. Valeurs valides :
Valeur par défaut : false |
| auto_number | Objet | Configuration de la numérotation automatique [sys_number] d’une table. Pour plus d'informations, consultez auto_number objet. |
| accessible_from | Chaîne | Périmètres de l’application pouvant accéder à la table. Valeurs valides :
Par défaut : public |
| caller_access | Chaîne | Niveau d’accès pour les demandes entre périmètres. Valeurs valides :
Pour plus d'informations, consultez Paramètres des privilèges d’accès restreint pour l’appelant. Valeur par défaut : aucun |
| actions | Tableau | Une liste des options d’accès. Valeurs valides :
Par défaut : read |
| allow_web_service_access | Booléen | Marqueur indiquant si les services Web peuvent effectuer des appels vers la table. Valeurs valides :
Valeur par défaut : false |
| allow_new_fields | Booléen | Marqueur indiquant s’il faut autoriser la configuration au moment de la conception de nouveaux champs sur la table à partir d’autres périmètres de l’application. Valeurs valides :
Valeur par défaut : false |
| allow_ui_actions | Booléen | Marqueur indiquant s’il faut autoriser la configuration au moment de la conception des actions d’interface utilisateur sur la table à partir d’autres périmètres de l’application. Valeurs valides :
Valeur par défaut : false |
| allow_client_scripts | Booléen | Marqueur indiquant s’il faut autoriser la configuration au moment de la conception des scripts clients sur la table à partir d’autres périmètres de l’application. Valeurs valides :
Valeur par défaut : false |
| audit | Booléen | Marqueur indiquant s’il faut suivre la création, la mise à jour et la suppression de tous les enregistrements dans la table. Valeurs valides :
Valeur par défaut : false |
| read_only | Booléen | Marqueur indiquant si les utilisateurs peuvent modifier les champs de la table. Valeurs valides :
Valeur par défaut : false |
| text_index | Booléen | Marqueur indiquant si les moteurs de recherche indexent le texte dans une table. Valeurs valides :
Valeur par défaut : false |
| attributs | Objet | Paires clé/valeur de tous les attributs de dictionnaire pris en charge [sys_schema_attribute]. Par exemple :Pour plus d’informations, consultez Attributs de dictionnaire. |
| Index | Tableau | Une liste de références de colonnes pour générer des index dans le XML de métadonnées de la table. La valeur de la propriété element doit correspondre à la clé d’objet utilisée avec l’objet Column . Un index de base de données augmente la vitesse d’accès aux données de la table avec le coût de l’utilisation d’un stockage supplémentaire. |
Pour la prise en charge de la suggestion automatique pour les colonnes, affectez l’objet Table à une variable exportée portant le même nom que la propriété name .
import { Table, StringColumn } from "@servicenow/sdk/core";
import { myFunction } from "../server/myFunction.js"
export const x_snc_example_to_do = Table({
name: 'x_snc_example_to_do',
label: 'My To Do Table',
extends: 'task',
schema: {
status: StringColumn({ label: 'Status' }),
deadline: StringColumn({
label: 'Deadline',
active: true,
mandatory: false,
read_only: false,
maxLength: 40,
dropdown: 'none',
attributes: {
update_sync: false,
},
default: 'today',
dynamic_value_definitions: {
type: 'calculated_value',
calculated_value: '',
},
choices: {
choice1: {
label: 'Choice1 Label',
sequence: 0,
inactive_on_update: false,
dependent_value: '5',
hint: 'hint',
inactive: false,
language: 'en',
},
choice2: { label: 'Choice2 Label', sequence: 1 },
},
}),
dynamic1: StringColumn({
dynamic_value_definitions: {
type: 'calculated_value',
calculated_value: myFunction,
},
}),
dynamic2: StringColumn({
dynamic_value_definitions: {
type: 'dynamic_default',
dynamic_default: `gs.info()`,
},
}),
dynamic3: StringColumn({
dynamic_value_definitions: {
type: 'dependent_field',
column_name: 'status',
},
}),
dynamic4: StringColumn({
dynamic_value_definitions: {
type: 'choices_from_other_table',
table: 'sc_cat_item',
field: 'display',
},
}),
},
actions: ['create', 'read'],
display: 'deadline',
accessible_from: 'package_private',
allow_client_scripts: true,
allow_new_fields: true,
allow_ui_actions: true,
allow_web_service_access: true,
extensible: true,
live_feed: true,
caller_access: 'none',
auto_number: {
number: 10,
number_of_digits: 2,
prefix: 'abc',
},
audit: true,
read_only: true,
text_index: true,
attributes: {
update_sync: true,
},
index: [
{
name: 'idx',
element: 'status',
unique: true,
},
],
})
Objet de colonne
Ajouter une colonne [sys_dictionary] à une table.
Ajoutez des objets Colonnedans la propriété schema de l’objet Table .
Il existe de nombreux types de colonnes basés sur le type de champ. Les objets de colonne utilisent le format <Type>Column où <Type> est le type de champ. Pour en savoir plus sur les types de champs, reportez-vous à la section Field types reference.
Les types de colonnes suivants sont pris en charge : ListColumn, RadioColumn, StringColumn, ChoiceColumn, ScriptColumn, BooleanColumn, ConditionsColumn, DecimalColumn, IntegerColumn, VersionColumn, DomainIdColumn, FieldNameColumn, ReferenceColumn, TableNameColumn, UserRolesColumn, BasicImageColumn, DocumentIdColumn, DomainPathColumn, TranslatedTextColumn, SystemClassNameColumn, TranslatedFieldColumn, GenericColumn, DateColumn, DateTimeColumn, CalendarDateTime, BasicDateTimeColumn, DueDateColumn, CalendarDateTime, IntegerDateColumn, ScheduleDateTimeColumn et OtherDateColumn.
| Nom | Type | Description |
|---|---|---|
| étiquette | Chaîne ou tableau | Étiquette unique pour la colonne qui apparaît sur les en-têtes de liste et les champs de formulaire. Les étiquettes de champ peuvent être fournies sous forme de chaîne ou de tableau d’objets d’étiquette . Pour en savoir plus, consultez Objet d’étiquette. Par défaut : clé utilisée pour l’objet de colonne |
| maxLength | Numéro | La longueur maximale des valeurs dans la colonne. Une longueur inférieure à 254 apparaît sous la forme d’un champ de texte sur une seule ligne. Tout ce qui compte 255 caractères ou plus apparaît comme une zone de texte à plusieurs lignes. Remarque : Pour éviter la perte de données, ne diminuez la longueur d’un champ de chaîne que lorsque vous développez une nouvelle application et non lorsqu’un champ contient des données. Par défaut : 40 |
| actif | Booléen | Marqueur indiquant s’il faut afficher le champ dans les listes et les formulaires. Valeurs valides :
Par défaut : true |
| obligatoire | Booléen | Marqueur indiquant si le champ doit contenir une valeur pour enregistrer un enregistrement. Valeurs valides :
Valeur par défaut : false |
| read_only | Booléen | Marqueur indiquant si vous pouvez modifier la valeur du champ. Valeurs valides :
Valeur par défaut : false |
| Par défaut | N'importe lequel | Valeur par défaut du champ lors de la création d’un enregistrement. La valeur doit utiliser le type correct en fonction du type de colonne. |
| choix | Objet | Liste de choix [sys_choice] pour une colonne. Pour plus d'informations, consultez Objet de choix. Cette propriété s’applique uniquement aux objets ChoiceColumn et aux types de colonnes qui étendent les colonnes de choix. Il peut inclure un tableau de valeurs primitives ou une série d’objets de choix. |
| attributs | Objet | Paires clé/valeur de tous les attributs de dictionnaire pris en charge [sys_schema_attribute]. Par exemple :Pour plus d’informations, consultez Attributs de dictionnaire. |
| function_definition | Chaîne | Définition d’une fonction exécutée par le champ, telle qu’une opération mathématique, un calcul de longueur de champ ou un calcul de jour de la semaine. Chaque définition commence par Par exemple, la définition de fonction suivante crée un champ qui affiche la brève description, suivie d’un espace, puis du nom de l’appelant : Pour plus d’informations sur les définitions de fonctions, reportez-vous à la section Function field. |
| dynamic_value_definitions | Objet | Valeurs par défaut qui sont générées dynamiquement en fonction de filtres dynamiques. Fournissez une combinaison d’un type et d’une clé de comportement associée pour spécifier des valeurs par défaut dynamiques. Les types suivants sont pris en charge :
|
| liste déroulante | Chaîne | Une option pour l’affichage d’une liste de choix pour les vues de liste et de formulaire de la table. Cette propriété s’applique uniquement aux objets ChoiceColumn et aux types de colonnes qui étendent les colonnes de choix. Valeurs valides :
Valeur par défaut : aucun |
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 }),
}schema: {
x_scope_myColumn: StringColumn({...})
}Objet de choix
Configurer les choix [sys_choice] pour une colonne d’une table.
L’objet choices est une propriété dans l’objet Column . Utilisez l’objet choicesavec les types de colonnes pris en charge dans la propriété schema d’un objet Table . Seuls certains types de colonnes étendent le type de colonne de choix (ChoiceColumn) et peuvent inclure des choix.
| Nom | Type | Description |
|---|---|---|
| étiquette | Chaîne | Requis. Texte à afficher pour le choix dans la liste. |
| dependent_value | Chaîne | Valeur que vous mappez à la dependent_field dans la propriété dynamic_value_definitions de l’objet Column . |
| hint | Chaîne | Description brève du choix qui s’affiche sous forme d’info-bulle lorsque vous le survolez. |
| language | Chaîne | Code BCP 47 de la langue pour le choix traduit. Par défaut : en |
| séquence | Entier | Ordre dans la liste des choix dans lequel un choix se produit. |
| inactif | Booléen | Marqueur indiquant s’il faut afficher le choix dans la liste ou non. Valeurs valides :
Valeur par défaut : false |
L’objet choices comprend une série d’objets choice, où les noms des choix sont fournis sous forme de clés d’objet associées aux définitions de choix.
choices: {
choice1: {
label: 'Choice1 Label',
sequence: 0,
inactive_on_update: false,
dependent_value: '5',
hint: 'hint',
inactive: false,
language: 'en',
},
choice2: { label: 'Choice2 Label', sequence: 1 },
}
Objet d’étiquette
Configurez une étiquette de champ [sys_documentation] pour une table ou une colonne.
L’objet étiquette est une propriété dans les objets Table et Colonne.
| Nom | Type | Description |
|---|---|---|
| language | Chaîne | Code BCP 47 de la langue pour l’étiquette de champ. Une langue ne peut avoir qu’une seule étiquette, chaque langue doit donc être unique dans un tableau d’objets d’étiquette . |
| étiquette | Chaîne | Le texte de l’étiquette du champ dans la langue spécifiée. |
| hint | Chaîne | Description brève qui s’affiche sous forme d’info-bulle lorsque vous survolez l’étiquette du champ. |
| aide | Chaîne | Informations supplémentaires sur le champ. Le texte d’aide n’est pas affiché dans les vues de formulaire ou de liste de la table. |
| pluriel | Chaîne | Forme pluriel de l’étiquette de champ. |
| URL | Chaîne | URL d’une page Web qui fournit des informations sur le champ. Lorsqu’une URL est fournie, l’étiquette s’affiche sous forme de lien hypertexte. |
| url_target | Chaîne | Non utilisé (déconseillé). |
label: [
{
label: 'English description',
language: 'en',
hint: 'Provide a short description'
},
{
label: 'Description de español',
language: 'es'
},
]
auto_number objet
Configurer la numérotation automatique [sys_number] pour une table.
L’objet auto_number est une propriété de l’objet Table.
| Nom | Type | Description |
|---|---|---|
| préfixe | Chaîne | Un préfixe pour chaque numéro d’enregistrement dans la table. Par exemple, INC pour Incident. Par défaut : pré |
| Numéro | Entier | Numéro d’enregistrement de base pour cette table. Les numéros d’enregistrement sont automatiquement incrémentés et le numéro suivant est conservé dans la table Compteur [sys_number_counter]. Si vous définissez le numéro de base sur une valeur supérieure au compteur actuel, le numéro d’enregistrement suivant utilise le nouveau numéro de base. Sinon, le numéro d’enregistrement suivant utilise le compteur actuel. Le compteur ne se réinitialise pas à un nombre de base inférieur à lui-même. Valeur par défaut : 1 000 |
| number_of_digits | Entier | Nombre minimal de chiffres à utiliser après le préfixe. Des zéros non significatifs sont ajoutés aux numéros automatiques, si nécessaire. Par exemple, INC0001001 contient trois zéros non significatifs. Le nombre de chiffres peut dépasser la longueur minimale. Par exemple, si number_of_digits est égal à 2 et que plus de 99 enregistrements sont créés sur la table, les nombres continuent au-delà de 100 (par exemple, INC101). Avertissement : La modification de ce champ peut mettre à jour toutes les valeurs numériques des enregistrements existants dans une table. Soyez prudent lorsque vous modifiez ce champ sur une instance de production. Par défaut : 7 |
auto_number: {
prefix: 'TODO',
number: 2000,
digits: 9,
}