API de table : ServiceNow Fluent

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 15 minutes de lecture
  • 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.

    Tableau 1. Propriétés
    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 :
    • vrai : d’autres tables peuvent étendre la table.
    • faux : les autres tables ne peuvent pas étendre la table.

    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 :
    • vrai : des flux en direct sont fournis pour les enregistrements de la table. Cette option ajoute l’option Afficher Flux en direct ( icône Afficher Flux en direct) dans l’en-tête du formulaire.
    • faux : les flux en direct ne sont pas fournis pour les enregistrements de la table.

    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 :
    • public : la table est accessible à partir de tous les périmètres de l’application.
    • package_private : La table est accessible uniquement à partir du périmètre de l’application dans lequel elle se trouve.

    Par défaut : public

    caller_access Chaîne Niveau d’accès pour les demandes entre périmètres.
    Valeurs valides :
    • restreint : les appels à la ressource doivent être approuvés manuellement. Les demandes d’accès sont suivies dans la table Accès restreint pour l’appelant avec l’état Demandé.
    • tracking : les appels à la ressource sont automatiquement approuvés. Les appels sont suivis dans la table Accès restreint pour l’appelant avec l’état Autorisé.
    • aucun : les appels entre périmètres vers la ressource sont approuvés ou refusés en fonction de la valeur de la propriété accessible_from .

    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 :
    • read : autorise les objets de script provenant d’autres périmètres de l’application à lire les enregistrements stockés dans cette table. Par exemple, un script dans une autre application peut interroger des données sur cette table. L’accès en lecture est requis pour accorder toute autre opération d’enregistrement d’API.
    • create : autoriser les objets de script provenant d’autres périmètres de l’application à créer des enregistrements dans cette table. Par exemple, un script dans une autre application peut insérer un nouvel enregistrement dans cette table.
    • mise à jour : autorise les objets de script provenant d’autres périmètres d’application à modifier les enregistrements stockés dans cette table. Par exemple, un script dans une autre application peut modifier une valeur de champ dans cette table.
    • supprimer : autoriser les objets de script provenant d’autres périmètres de l’application à supprimer des enregistrements de cette table. Par exemple, un script dans une autre application peut supprimer un enregistrement de cette table.

    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 :
    • true : les services Web peuvent effectuer des appels vers la table.
    • false : les services Web ne peuvent pas appeler la table.

    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 :
    • true : autorise la configuration au moment de la conception de nouveaux champs sur la table à partir d’autres périmètres de l’application.
    • faux : n’autorise pas la configuration au moment de la conception de nouveaux champs sur la table à partir d’autres périmètres de l’application.

    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 :
    • vrai : 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.
    • faux : n’autorise pas la configuration au moment de la conception des actions d’interface utilisateur sur la table à partir d’autres périmètres de l’application.

    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 :
    • true : autorise la configuration de la durée de conception des scripts clients sur la table à partir d’autres périmètres de l’application.
    • faux : n’autorise pas la configuration au moment de la conception des scripts clients sur la table à partir d’autres périmètres de l’application.

    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 :
    • vrai : suivre la création, la mise à jour et la suppression de tous les enregistrements dans la table
    • faux : ne suivez pas la création, la mise à jour et la suppression de tous les enregistrements de la table.

    Valeur par défaut : false

    read_only Booléen Marqueur indiquant si les utilisateurs peuvent modifier les champs de la table.
    Valeurs valides :
    • vrai : les utilisateurs ne peuvent pas modifier les champs de la table.
    • false : les utilisateurs peuvent modifier les champs de la table.

    Valeur par défaut : false

    text_index Booléen Marqueur indiquant si les moteurs de recherche indexent le texte dans une table.
    Valeurs valides :
    • true : le texte du tableau est indexé.
    • false : le texte de la table n’est pas indexé.

    Valeur par défaut : false

    attributs Objet Paires clé/valeur de tous les attributs de dictionnaire pris en charge [sys_schema_attribute]. Par exemple :
    attributes: 
       {
          update_sync_custom: Boolean,
          native_recordlock: Boolean
       }
    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.

    index: [
        {
            name: 'String',
            element: 'String',
            unique: Boolean
        },
        ...
    ]

    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<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.

    Tableau 2. Propriétés
    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 :
    • vrai : affiche le champ.
    • false : masque le champ.

    Par défaut : true

    obligatoire Booléen Marqueur indiquant si le champ doit contenir une valeur pour enregistrer un enregistrement.
    Valeurs valides :
    • vrai : le champ doit contenir une valeur.
    • faux : le champ n’est pas obligatoire.

    Valeur par défaut : false

    read_only Booléen Marqueur indiquant si vous pouvez modifier la valeur du champ.
    Valeurs valides :
    • vrai : vous ne pouvez pas modifier la valeur, et le système calcule et affiche les données pour le champ.
    • false : vous pouvez modifier la valeur du champ.

    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 :
    attributes: 
       {
          update_sync_custom: Boolean,
          native_recordlock: Boolean
       }
    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 glidefunction :, suivi de l’opération à effectuer (telle que, concat), suivi des paramètres de fonction. Les constantes doivent être placées entre guillemets simples.

    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 :
    function_definition: 'glidefunction:concat(short_description, ' ', caller_id.name)'

    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 :
    • dynamic_default : fournissez une fonction à partir de la table Options de filtre dynamique [sys_filter_option_dynamic]. Pour plus d'informations, consultez Create a dynamic filter option. Par exemple :
      dynamic_value_definitions: {
         type: 'dynamic_default',
         dynamic_default: `gs.info()`,
      },
    • dependent_field : indiquez un autre nom de colonne de la même table. Par exemple :
      dynamic_value_definitions: {
         type: 'dependent_field',
         column_name: 'status',
      },
    • calculated_value : fournissez une fonction pour calculer la valeur. La fonction peut être importée à partir d’un module JavaScript ou être définie en ligne. Par exemple :
      dynamic_value_definitions: {
         type: 'calculated_value',
         calculated_value: function,
      },
    • choices_from_other_table : fournir les choix d’une colonne d’une autre table. Par exemple :
      dynamic_value_definitions: {
         type: 'choices_from_other_table',
         table: 'sc_cat_item',
         field: 'display',
      },
    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 :
    • aucun : les choix ne sont pas appliqués.
    • liste déroulante sans aucun : un menu sans l’option -- Aucun - -. Si vous sélectionnez cette option, vous devez configurer la propriété par défaut pour la colonne.
    • liste déroulante avec aucun : menu avec l’option -- Aucun -- . La valeur par défaut est -- Aucun --.
    • Suggestion : les choix sont affichés dans une liste de valeurs suggérées.

    Valeur par défaut : aucun

    Les noms de colonnes sont fournis en tant que clés d’objet associées aux définitions de colonnes.
    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 }),
    }
    Si le nom de la table n’inclut pas le périmètre de l’application, les noms de colonnes doivent être précédés du périmètre de l’application.
    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.

    Tableau 3. Propriétés
    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 :
    • vrai : le choix est masqué dans la liste.
    • faux : le choix apparaît dans la liste.

    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.

    Tableau 4. Propriétés
    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.

    Tableau 5. Propriétés
    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,
    }